分页存储管理的基本方法

相关定义

地址结构

地址结构=页号+页内地址(位移量)

如下图所示:

页面大小:指分页中的一页的大小,知道页面大小可以求得页内地址位数

比如页面大小为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

此例题采用了该博主的博客例题

原文链接:操作系统之分页存储管理的基本方法_做个开心的小朋友的博客-CSDN博客_某系统使用简单分页内存管理

  • 19
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值