zoukankan      html  css  js  c++  java
  • 多级页表如何节省内存

    在谈到多级页表的优势的时候,很多地方都是这么说的:32位地址空间的分页系统,如果页面大小为4KB,则每个进程可达1M个页,假设每个页表项占用4个字节,这样每个进程仅仅页表项就占用了4MB连续的内存空间。

    那么多级页表怎么节省存储空间的?

    如果是2级页表,32位地址分为10,,10,12这3部分。则,页目录表1024项,每个小页表也是1024项,实际的存储空间是1024*4k(所有小页表大小)+4k(页目录大小),变大了!!!!!!

    在这里我谈谈个人的理解!

    实际上,一个进程并不是所有线性地址都会映射到页表中,假如所有页表都映射,的确多级页表占用了更多的内存,但是大多数地址都是没有映射的。

    如果是一级页表,因为页表是一个大数组,如果在初始化的时候没有分配好足够的空间,以后要扩展的话怎么办?所以一级页表在初始化的时候便分配了全部的连续内存,即使并不是所有地址都映射到页表上。

    如果是多级页表,这里以二级页表为例。在初始化的时候只需要先分配好页目录所需的连续内存,页表的内存可以到需要使用的时候再动态分配,增加了灵活性,同时节省了内存。

  • 相关阅读:
    oracle 分配表权限给用户的写法
    任务的一种写法:
    解决oracle 32位64位的问题
    设计模式学习
    Nginx 相关介绍
    (2) html 语义化
    (1)HTML5的常用新特性你必须知道
    less初学手记
    如何修改chrome记住密码后自动填充表单的黄色背景 ?
    HTML的水平居中和垂直居中解决方案
  • 原文地址:https://www.cnblogs.com/vinozly/p/5590428.html
Copyright © 2011-2022 走看看