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

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

页号

页框号

装入时刻[3]

访问位[4]

0

7

130

1

1

4

230

1

2

2

200

1

3

9

160

1

 

当给进程执行到时刻260时,要访问逻辑地址为17ACH [1]的数据,请回答下列问题:

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

     

 

答:(1)逻辑地址对应的页号是5。置换的页面为0号,将5号页面装入7号物理框,逻辑地址对应的物理地址是1FACH。

2)置换2号页面,5号页面装入2号页框。逻辑地址对应的物理地址是0BACH

 

小白解析:

(1)首先关注[1]处的数据。[1]处的数据是表示16进制,要把先换成2进制。注意这里17AC是一个数,H表示16进制。

(2)十六进制转换2进制很简单,把1和 7 和A和 C这4个数分别转成2进制即可。转换请参照如下表格:

0

0000

8

1000

1

0001

9

1001

2

0010

A

1010

3

0011

B

1011

4

0100

C

1100

5

0101

D

1101

6

0110

E

1110

7

0111

F

1111

 

所以17ACH转换成2进制 就是:0001 0111 1010 1100 B这里的B表示二进制

(3)因为[2]处数据是1KB,1KB就是1024 个字节。1024 就是2^10(2的10次方)为了计算页号,需要用 17ACH/ 2^10。 前者是16进制,后者是10进制。解法是都换成2进制计算,17ACH换成2进制 是 0001 0111 1010 1100 B。它/ 2^10 会得到一个商和余数,商和余数的计算就是把0001 0111 1010 1100 B 右移10位,分开得到:

 000101  和 11 1010 1100 B

前者按照上面的表格可以看出等于 5

这个时候可以直接回答页号是5。这就是第一大问的第一小问答案。

(4)接下来计算第二小问。因为用的FIFO算法,先进入内存的先移出,只需要寻找[3]对应的一列数据中,装入时刻最小的,也就是最先进入内存的。发现是7号页框里面的0号页。所以把它换出。程序的5号页进入7号页框,需要计算下物理地址。计算方法:

 进入几号页框就用几。这里是7号页框,所以我们先把7换成2进制:

0111 ,然后在后面添加10 个0变成:

01 1100 0000 0000 再加上第(3)步的余数11 1010 1100 B得到:

 

01 1111 1010 1100 B换成16 进制为 1FACH,这就是第一大问的第二小问答案。

(5)接下来计算第二大问。首先要回顾clock算法,增加一个访问位[4],在选择要换出的页面时,先看访问位是不是为1,如果为1,不换出这个页面,但是要把它的访问位改成0,然后检查下一个页面,直到检查到一个访问位为0的页面,才将它换出。

这里题目中给出的所有页面访问位都是1,所以,第一轮检查,每个页面都不会被换出,但是大家的访问位都会变成0。检查指针顺时针旋转一圈后,又指向2号页框,此时它的访问位已经是0了,所以将2号页框的2号页换出。接下来的计算方式和(4)类似。进入几号页框就用几,这里是2号页框,所以我们先把2换成2进制。

0010 然后在后面添加10个0变成:

00 1000 0000 0000 再加上第(3)步的余数11 1010 1100 B得到:

00 1011 1010 1100 B换成16进制就是 0BACH,这就是第二大问的答案。

 

  • 132
    点赞
  • 345
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值