操作系统的多级页表结构,可以节省页表所占空间吗?

作者&投稿:战迫 (若有异议请与网页底部的电邮联系)
操作系统中的多级页表的问题~

系统分配给每个进程的虚拟地址都是4G,那么采用一级页表需要4G/4K个表项,如果每个页表项是4B,那么需要4MB的内存空间。但是大多数程序根本用不到4G的虚拟内存空间,比如hello world程序,这样一个几kb的程序却需要4MB的内存空间是很浪费的。如果采用二级页表,那么一级页表只需要4KB的空间用来索引二级页表的地址,像hello world这样的程序可能只需要一个物理页,那么只需要一条记录就可以了,故对于二级页表也只要4KB就足够了,而一级页表中的其他表项可能为空,所以这样只需要8KB就能解决问题。

一、理解这样一个概念,操作系统为了方便管理内存,将内存划分成很若干个页,每个页表项就代表一个页的地址(页的地址,不是内存地址)。
二、4B大小的页表项,意味着支持最大的页表数是2的32次方=4294967296 (4B=32bit),一个页的大小4K,那么4B大小的页表项,表示操作系统支持4294967296*4K = 16GB大的内存。

三、现在问题是页表占用一定的内存。
(一)现在假设有2GB(一定要小于16GB)内存。
1、那么它一共有2GB/4KB=512K个页,也就是说页表项有512K项,而每个页表项的大小4B,那么页表在内存中占用的大小是:512K*4B=2MB,意味着,只要2MB就可以表示512K个页(每个页是4KB,总内存大小是2G),它页表本身占用了2MB/4K=512个页。2、这一题 就是问你1个页可以表示多少个页表项,4KB/4B=1024个页表项。页面大小与页表项没有绝对的关系,但它们有这样关系:
(二)页面大小 * 2 ^(页表项大小)=操作系统最大支持内存大小(虚拟内存)
1、本题是 4K * 2^(4B) = 16GB
2、页表占用内存 = 操作系统内存/页面大小 * 页表项大小,本题是,假设操作系统内存为2GB。 2GB/4KB*4B = 2MB3、页表占用的页数是=页表占用内存/页面大小,这题同上假设2MB/4K=512个页。
扩展资料

一、地址结构
1、逻辑地址:CPU所生成的地址。CPU产生的逻辑地址被分为 :p (页号) 它包含每个页在物理内存中的基址,用来作为页表的索引;d (页偏移),同基址相结合,用来确定送入内存设备的物理内存地址。
2、物理地址:内存单元所看到的地址。逻辑地址空间为2^m,且页大小为2^n,那么逻辑地址的高m-n位表示页号,低n位表示页偏移。
3、逻辑地址空间:由程序所生成的所有逻辑地址的集合。
4、物理地址空间:与逻辑地址相对应的内存中所有物理地址的集合,用户程序看不见真正的物理地址。
5、注:用户只生成逻辑地址,且认为进程的地址空间为0到max。物理地址范围从R+0到R+max,R为基地址,地址映射-将程序地址空间中使用的逻辑地址变换成内存中的物理地址的过程。由内存管理单元(MMU)来完成。
6、分页逻辑地址 =P(页号).d(页内位移)
7、分页物理地址=f(页帧号).d(同上)
8、P = 线性逻辑地址/页面大小
9、d= 线性逻辑地址-P*页面大小
二、基本分页存储管理方式
用固定大小的页(Page)来描述逻辑地址空间,用相同大小的页框(Frame)来描述物理内存空间,由操作系统实现从逻辑页到物理页框的页面映射,同时负责对所有页的管理和进程运行的控制。

三、分级页表
1、一个32位逻辑地址空间的计算机系统,页大小为4KB,那么页表有一百万条目。假设每个条目占4B,则需要4MB物理地址空间来存储页表本身。利用多级页表,可以减少页表所占用的空间。
2、一个逻辑地址(32位系统,页大小 4K) 可以被分为 :一个20位的页号 +一个12位的偏移。如果对页表进行再分页,那么页号分解为:一个10位的页号 +一个10位的偏移。因此,一个逻辑地址表示如下 :p1 是用来访问外部页表的索引, p2 是外部页表的页偏移。
参考资料来源:百度百科-页表

如果所有地址空间都有映射,那么页表级数越多,越浪费内存。但是,一般情况下有多少地址空间会被映射呢?看看你系统上的程序,占用几十兆内存的程序就已经比较猛了吧~ 那么,假设大多数地址空间是没有映射的。一级页表不管你映不映射,所有表项都必须存在;多级页表呢?如果第一级里面,某一个入口没有映射,那么这个入口下面的第二级、第三级页表就都不需要了。


详解Linux系统内存寻址的分页机制
第9~11位由操作系统专用,Linux也没有做特殊之用。页面项     80386的每个页目录项指向一个页表,页表最多含有1024个页面项,每项4个字节,包含页面的起始地址和有关该页面的信息。页面的起始地址也是4K的整数倍,所以页面的低12位也留作它用。第31~12位是20位物理页面地址,除第6位外第0~5位及9~11...

作业系统考试分页与分段的区别
3. 页表 分页系统中,允许将程序的每一页离散地储存在记忆体的任一物理块中,为了能在记忆体中找到每个页面对应的物理块,系统为每个程序建立一张页面对映表,简称页表。页表的作用是实现从页号到物理块号的地址对映。页表:页号 物理块号 存取控制 0 2 1 15F 2 14E 3 1 4. 地址变换 1 程式...

操作系统内存管理中的内存分页管理与分段管理的地址结构有何区别。_百...
这是在分段保护模式的基础上,再加上分页功能。把以前的对物理内存的分段改为对虚拟地址空间的分段,把4G的虚拟地址空间分段,段信息仍保存在GDT,LDT,IDT中。然后把物理内存分页,用二级页表结构来描述和记录物理内存分页后的各个页的信息。当使用物理内存时就参照二级页表。5。使用分页机制的目的:(1)...

计算机操作系统知识点
进程:可以简单地被看作是正在执行的程序。但是进程需要一定的资源来完成它的任务(例如CPU时间、内存、...5、多级队列 6、多级反馈队列 4.3.7进程的同步与互斥 进程的同步就是指相互协作的进程不断调整它们...页表:操作系统为每个用户程序建立一张页表,该表记录用户程序的每个逻辑页面存放在哪一个内存物理页框。

【操作系统】01--存储器的层次结构
操作系统存储器,如何对存储器进行有效的管理,直接影响着存储器的利用率和系统性能。1、存储器的层次结构 2、程序的装入和链接 3、连续分配存储管理方式 4、分页存储管理方式 5、分段存储管理方式 内部碎片和外部碎片 逻辑地址和物理地址 内存分配策略 分页的地址变换,页表的使用 ...

在基本分页存储管理中,页表所起的作用主要是实现()
在基本分页存储管理中,页表所起的主要作用是实现从逻辑地址到物理地址的映射。现在我们来详细解释一下这个概念。在计算机存储系统中,为了提高内存的使用效率和管理的灵活性,通常会将物理内存划分为固定大小的块,称为页(Page)。相应地,程序的逻辑地址空间也会被划分为与物理页大小相同的块,这些块被...

内存管理
将页表再分页,形成两级或多级页表,将页表离散地存放在物理内存中。 在进程切换时,要运行的进程的页目录表歧视地址被写入 页表寄存器。 在二级分页系统中,为页表再建立一个页目录表的目的是为了能在地址映射时得到页表在物理内存中的地址,在页目录表的表项中存放了每一个 页表 在物理内存中所在的 页框号。 虚拟...

Intel 80386 Reference Programmer's Manual - 5.2 Page Translation_百...
页转换主要实现了面向页的虚拟内存系统和页层次保护。若操作系统需要使用相关功能,则必须将CR0的PG位置位。页是一个以4KB的连续物理地址形成的单元。线性地址通过制定一个页表(page table),表中的页(page),以及页中的偏移量间接地指定一个物理地址。线性地址共分为三部分,最高位10位为页目录的索引...

操作系统(四)文件管理
索引分配允许文件离散地分配在各个磁盘块中,系统会为每个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块(索引表的功能类似于内存管理中的页表——建立逻辑页面到物理页之间的映射关系)。索引表存放的磁盘块称为索引块。文件数据存放的磁盘块称为数据块。 在显式链接的链式分配方式中,文件分配表FAT...

操作系统中什么是请求分页系统
它对页式系统中的页表机制进行了扩充但其基本作用是实现由用户地址空间到物理内存空间的映射。由于只将应用程序的一部分装入内存,还有一部分仍在磁盘上,故需在页表中增加若干项,供操作系统实现虚拟存储器功能时参考。常见的系统中,一般对页表的表项进行如下扩充:除了页号对应的物理块号,还增加了状态...

德兴市17547799019: 操作系统的多级页表结构,可以节省页表所占空间吗? -
微通益祺: 例如win2000的2级页表结构,网上很多人说用一级页表占4M,而二级页表仅占8K,但是在谭耀铭编写的2006版…

德兴市17547799019: 操作系统中的多级页表的问题 -
微通益祺: 如果只有一个页表,页表长度会很大,远超标准的一个页框大小.分配连续内存不一定成功,违背分页的初衷.多级页表的其中一个目的就是使得单个页表的最大长度限制在一页.

德兴市17547799019: 页面大小和页表项之间有必然的联系么? -
微通益祺: 理解这样一个概念,操作系统为了方便管理内存,将内存划分成很若干个页,每个页表项就代表一个页的地址(页的地址,不是内存地址).4B大小的页表项,意味着支持最大的页表数是2的32次方=4294967296 (4B=32bit),一个页的大小4K,...

德兴市17547799019: 谁能简洁明了地解释一下什么是多级页表(操作系统问题)?最好用形象的比喻,谢谢 -
微通益祺: 简单明了的形象的比喻是: 多级页表就好比多级目录,比如教材,都是先分章,每章再分节,这个就是多级页表的思想.页表不是直接就是页表项的一个大数组,而是先是一级页目录,然后每个目录项存放的是页表的首地址.就好比,先是章目录,然后每个章目录告诉你章的节目录在那里.(Windows x86架构下就是用的两级页表).

德兴市17547799019: 操作系统内存管理中的内存分页管理与分段管理的地址结构有何区别. -
微通益祺: 1.操作系统最大的功能就是管理功能,管理进程调度、管理内存、管理文件系统、管理I/O,....其中最核心的功能是进程管理,但管理的基础是内存管理,只有把内存管理好了,才能使进程在这个广阔的舞台上自由表演.2.系统工作模式有三...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网