相关定义
地址结构
地址结构=页号+页内地址(位移量)
如下图所示:
页面大小:指分页中的一页的大小,知道页面大小可以求得页内地址位数
比如页面大小为1KB,1kB等于2的10次方,故可求得业内地址为10位
而页号的多少就是指内存中有多少页数,图中一共有20位,故页数为2的20次方
页帧:也可称为页框,内存块,物理块,物理页,是指内存区域的划分。
逻辑空间页数,就是页号数,比如逻辑空间大小为32页,故逻辑地址中的页号必须由5位表述。
页表:就是页号数与物理块对应的表,页表项,就是页号与物理块一共对应了多少项,所以页表项的项数就等于页号数
物理空间,是指存放页面的空间,其由内存块组成,求页帧数就是拿物理空间内存大小除页面大小,就是每个页表项的位数
求页帧数,也等于求块号数
逻辑地址=页号+页内地址
物理地址=块号+业内地址
例题
若系统采用页式系统管理策略,拥有逻辑空间32页,已知页面大小为2KB,拥有的物理空间为1MB
1.求系统包含的页帧数
2.写出逻辑地址的格式(设置分页地址结构)
3.不考虑访问权限等,进程的页表有多少项?每项至少有多少位?
4.如果物理空间减少一半,页表结构应相应作出怎么样的改变?
解:1:解法一
知道物理空间大小,可知物理空间位数为20位,页面大小为2KB,页内地址为11位,可知块号为9位,页帧数为512
解法二
1MB/2KB=2的9次方,所以内存被分为2的9次方块,页帧数为2的9次方
2.页号数为32,页号位为5
逻辑地址格式
3.页表项等于页号数,所以页表项为32,每一项的位数等于块号位数为9,所以每项有9位
4.内存减少一半变为2的19次方,页面大小为2的11次方,相除得2的8次方,可知每一个页表项位数减少一位
例题2
设某系统采用纯分页存储管理方式,地址结构中0~10位为页内地址,11-31位为页号。现有进程w的大小为11.5K,现将其依次装入内存空闲块中执行(内存空闲块号为:10, 12,13, 20,21, 26, 28,30… )。
(1)请确定系统的页面大小。
(2)用户程序的逻辑地址空间最多允许有多少页?
(3)画出该进程的页表
(4)对于逻辑地址 7. 2K单元,计算其所在的页号及页内地址,再计算其内存中的物理地址。
解(1)首先根据页内地址和页号画一下分页地址
已知页内地址,我们可以求得页面大小,页内地址为11位,页面大小为2的11次方,为2k
(2)
求逻辑地址页数,我们需要直到页号位数,可知页号位数为21位,页号数为2的21次方
(3)
画页表,我们需要知道块号数,也就是页帧数
由进程大小为11.5k可知,页面大小为2k,11.5k/2k=5....1.5k,可以求得只划分了5页,5页分别对应物理块号
页表如图所示
(4) 由逻辑地址是7.2k,我们拿逻辑地址
7.2k/2k=3...1.2k,所以求得的页号为3,偏移量为1.2k
计算物理地址,我们观察页表3对应的块号为20
所以物理地址为 块号*页面大小+偏移量
=20*2k+1.2k=41.2k
此例题采用了该博主的博客例题