从品牌网站建设到网络营销策划,从策略到执行的一站式服务
段式存储管理机制的灵活性和效率都比较差。以方面“段”是可变长度的,这就给盘区交换操作带来了不便;另一方面,如果为了增加灵活性而将每个进程的空间划分成很多小段时,就势必要求在程序中频繁地改变段寄存器的内容。同时,如果将段分小,虽然一个段描述符表中可以容纳8192个描述项,也未必就能保证足够使用。
80386的系统结构决定了它的页式存储管理只能建立在段式的基础之上。
80386增加了一个新的寄存器CR3作为指向当前页面目录的指针。这样,从线性地址到物理地址的映射过程为:
1、从CR3取得页面目录的基地址
2、以线性地址中的dir位段为下标,在目录中取得相应页面表的基地址
3、以线性地址中的page位段为下标,在所得到的页面表中取得相应的页面描述项。
4、将页面描述项中给出的页面基地址与线性地址中的offset位段相加得到物理地址。
为什么要使用两个层次,先找到目录项,再找到页面描述项,而不是像在使用段寄存器时一步到位呢?这是出于空间效率的考虑。如果将线性地址中dir和page两个尾端合并在一起是20位,因此页面表的大小就是1kx1k=1m个表项。由于每个页面大小4k,总的空间大小为4kx1m=4G。但是,实际上很少有进程会需要用到4G的全部空间,所以大部分表项势必空着。可是在一个数组中,即使空闲不用的表项也占用空间,这样就造成了浪费。而若分为两层,则页表可以视需要而设置,如果目录中某项为空,就不必设立相应的页表,从而省下了存储空间。另外一个页面的大小4k,而每一个页面表项或目录项表项的大小是4字节,1024个表项正好是4k,可以填充一页,而多过1024项则需要跨页面存放了。
目录项中含有指向一个页面表的指针,而页面表项中含有指向一个页面其实地址的指针。由于页面表和页表项的起始地址都总是在4K字节的边界上,这些指针的低12位永远都是0.这样,在目录项和页表项中都只要20位用于指针就够了,而余下的12位则可以用于控制或其他目的。
386CPU中还有寄存器CR0,器高位PG是页式映射机制的总开关。当PG被置为1时,CPU就开启页式管理。
从pentium Pro开始,Intel又作了扩充。Intel在另一个控制寄存器CR4中又增加了一个PAE,当PAE值为1时,地址总线的宽度就变成36位。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图