查缺补漏----页目录项和页表

1.关于页目录表的提醒

页目录项:记录每个页表的起始物理地址

页表:页表用于虚拟地址到物理地址的转换,页表会根据虚拟地址中的页号查找相应的物理页帧号,再结合页内偏移量得到物理内存的实际访问位置。

对于页目录表的提醒:

并不是说所有进程都共用一个页目录表,然后在其中查找对应的页表。每个进程都有自己独立的页目录表。通过为每个进程分配独立的页目录表,操作系统可以确保进程之间的内存访问是隔离的。这样,就实现了每个进程都拥有一个独立的虚拟地址空间。

不同的进程有不同的页目录表和页表,所以进程切换时PDBR会变,而线程之间是共享进程的虚拟地址空间,所以PDBR内容不会变。

2.页目录项与页表的关系

直接看(2):

1.页表项占4字节,理论上可以表示2^32(4*8=32)个页表项,但是页表项的多少看的是虚拟地址空间中有多少页。

第一种算法:

页目录表中的目录项记录的是进程每张页表的物理起始地址,页目录占10位,总共有2^10个页目录项,每个页目录项对应一张页表,而一张页表又对应2^10个页表项,所以页表项数目为:2^10*2^10=2^20。

第二种算法:

页大小为2^12次方,而操作系统为进程分配的虚拟地址空间大小是2^32,所以虚拟地址空间中有2^32/2^12=2^20个页,所以有2^20个页表项。

所以第(2)问:

不重要的补充,但有助于理解:

这里的2^20个页是供用户程序使用的虚拟空间,页表并不包含在这2^20的虚拟空间中。页表本身是操作系统用于管理这些虚拟页面到物理页面映射关系的一种数据结构。页表所占用的页面是从系统的物理内存(或虚拟内存)中分配的,而不是从这2^20个供程序使用的虚拟页中分配。

3.对比一下

这里的(2)有说每个表项仅存放簇号,占2字节,即16bit表示簇号:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值