操作系统大题分析

  1. 设某计算机的逻辑地址空间和物理地址空间均为64KB.按字节编址。若某进程最多需要6 页(Page)  数据存储空间,页的大小为1KB操作系统采用固定分配局部置换策略为此进程分配4个页框(Page Fame)。

当该进程执行到时刻260时,要访问逻辑地址为17 CAH 的数据,请答下列问题:

1该逻辑地址对应的页号是多少?

分析:逻辑地址中有H即16进制,17CA化为2进制: 0001 0111 1100 1010

根据页大小1KB(2^10B) 说明页内偏移量10位 即页内地址为11 1100 1010

页号为000101化为2进制,页号为5

(2)若采用先进先出(FIFO)置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。

分析:采用FIFO,则装入最早的先置换,也就是0号页,故将5号页装入7号页框装入后,页内地址不变 11 1100 1010 页号变为页框号(7号页框 0111)物理地址为 00 011111 1100 1010 即1FCAH (前面少2位补0)

2.若采用时钟(CLOCK) 置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。(设搜索下一页的指针沿顺时针方向移动,且当前指向2号页框,如图所示。)

分析:时钟置换算法:访问位是0时候置换,第一轮访问位都是1,访问过后变为0;第二圈在2号页框访问位为0,置换2号页框 (0010) 页内地址不变 11 1100 1010 装入后地址为  0000 1011 1100 1010 0BCAH

正确答案:

(1)页大小为1K,所以页内偏移地址为10位,于是6 位是页号,所以页号:5

(2)FIFO,则被置换的页面所在页框为7,所以对应的物理地址为(000111111100 1010)1FCAH

(3)CLOCK,则被置换的页面所在页框为2,所以对应的物理地址为(000010111100 1010)0BCAH

3.某计算机主存按字节编址,逻辑地址和物理地址都是32位,页表项大小为4字节。请

回答下列问题。

(1)若使用一级页表的分页存储管理方式,逻辑地址结构为:

页号(20位)

页内偏移量(12位)

则页的大小是多少字节?页表最大占用多少字节?

分析:页的大小去找页内偏移量 偏移量12位→页的大小为2^12字节 即2^12B

页表占用多大字节=页表项*页表项大小

有多少页号,就有多少页表项:根据页号去找页表项

页号位数决定了一个进程最多占多少页: 页号20位→页号有2^20个→页表项有2^20个;页表项大小有4B

页表最大占用2^20*4B=4MB

(若问页表占多少页框=页表大小/页框大小;页框大小=页面大小=2^12-----因此也就是4MB/4KB=2^10个)

4.采用(1)中的分页存储管理方式,一个代码段起始逻辑地址为00008000H,   其长度为8KB,被装载到从物理地址00900000H开始的连续主存空间中。页表从主存0020  0000H开始的物理地址处连续存放,如下图所示(地址大小自下向上递增)。请计算出该 代码段对应的两个页表项的物理地址、这两个页表项中的页框号以及代码页面2的起始物理地址。

分析:

200008000H 为16进制 化2进制 0000 0000 0000 1000 0000 0000 0000(32位) 前20位为页号也就是8,故这个代码段起始地址在8页————且长度为8KB,每个页面页的大小为2^12字节 即4KB 故该代码段有2页

因为代码段是连续的,所以代码段在8和9页;又因为页表是连续存放的:

地址1=8对应的页表项地址=起始地址+8*页表项长度=0020000H+8*4=0020000H+32(32=16*2)=0020020H

地址2=9对应的页表项地址=起始地址+9*页表项长度=0020000H+9*4=0020000H+36(36=16*2+4)=0020024H

②页框号对应的物理地址 00900000H 因为页面大小=页框大小为12位,故页框号为20位。即页框号1为00900H,又因为页面大小为4K,占12位,十六进制表示从000到FFF,一旦超过4K就需要进位变成 1000 故页框号2为00901H 物理地址位00901000H

答案:

(1)因为页内偏移量是12 位,所以页大小为4 KB,

页表项数为232/4 K=220, 该一级页表最大为220×4 B=4  MB

  1. 代码页面1的逻辑地址为00008000H,   表明其位于第8 个页处,对应页表中的第 8个页表项,所以第8 个页表项的物理地址=页表起始地址+8×页表项的字节数= 0020  0000H+8×4 =00200020H。由此可得如下图所示的答案。

5.虚拟分页存储管理系统中,设页面大小为1024,页表内容如下表,现访问虚地址 2785 和4000,问是否会发生缺页中断?若会,则简述缺页中断的处理过程,否则将虚地址变换为相应的物理地址。  (状态位为1表示该页在内存中)

正确答案:

虚地址2785的页号=2785/102 4=2,页内地址=2785 mod1024=737,查看页表2号页 面在内存,块号为6,则其物理地址=6×1024+737=6881。

虚地址4000的页号=4000/1024=    3,3号页面状态位为0,不在内存,故产生缺页中断。

缺页中断的处理过程如下:

若系统中有空闲的页,只需根据页表项中的外存地址将所缺的页面调入内存,然后修改页 表项中的存在位和内存块号即可;若系统中无空闲的内存块,则需要根据页面置换算法淘 汰内存中的某一页,若该被淘汰的页面被修改过还需先将其写回碱盘,然后再调入所缺的页。

分析:

1.2785/1024=2...737 对应页号为2 页内地址737 ,状态位1,不会缺页化 , 2号页对应块号6 物理地址=6*1024  +737=6881    

(物理地址=页面在内存中的起始地址(6*1024)+页内偏移量(737))   

2.4000/1024=3...928  对应页号为3,页内地址928,状态位为0,表示不再内存产生缺页中断;

【处理过程:若系统中有空闲的页,将所缺页面调入内存,修改页表中相应页表项

若系统中无空闲页,根据页面置换算法,淘汰某一页,若被淘汰页面在内存期间被修改过,需要先将修改内容写回到磁盘,在调入所缺页面。】

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值