分区式存储管理算法实现_答疑(存储管理)之一

题目1:有一个计算机的虚存系统采用请求式分页机制。其中,从内存读/写一个单元需要花费100ns。该虚存系统由内存和硬盘组成,硬盘具有以下参数:转速7200RPM,磁盘块大小4KB,平均寻道时间5ms,传输率1Gb/s,控制开销为0.1ms。请回答以下问题:

(1)假如缺页率为0,则该虚存系统的有效访问时间是多少?

(2)从硬盘读或写出一个磁盘块的时间是多少?

(3)如果缺页率为1%,缺页时页面被修改的比例是20%,不考虑缺页时的系统开销,则该虚存系统的有效访问时间是多少?

解答:(1)假如缺页率为0,则该虚存系统的有效访问时间是200ns(访问页表1次,访问有效内存一次)。

(2) 按照题意,磁盘控制开销时间为0.1ms,所以磁盘访问时间=

寻道时间+旋转延迟时间+传输时间+控制开销

平均寻道时间=5ms

平均旋转延迟时间=60×1000ms/7200/2=4.167ms

传输时间=(4KB/1Gb)s=4Kb×8×1000ms/(1024×1024Kb) = 0.0305ms

从硬盘读或写出一个磁盘块的平均时间是:

5ms+4.167ms+0.0305ms+0.1ms = 9.2975ms

(3) 不考虑缺页时的系统开销,99%的命中率,每次需要时间:200ns

1%的缺页率中80%未修改页,直接调入所需页即可,所需时间:

100ns + 9.2975ms + 200ns=9297800ns

1%的缺页率中20%修改页,需要保存页面然后调入所需页,所需时间:

100ns +2× 9.2975ms + 200ns =18595300ns

该虚存系统的有效访问时间是:

200ns×99% + 9297800ns×1%×80% + 18595300ns×1%×20% =

111771ns。

上面分析的是否正确?请留言讨论。

题目2. 在请求分页系统中,设某进程共有9个页,分配给该进程的主存块数为5(即工作集为5),进程运行时,实际访问页面的次序是0, 1, 2, 3, 4, 5, 0, 2, 1, 8, 5, 2, 7, 6, 0, 1, 2。试用FIFO、LRU、CLOCK、OPT等页面调度算法,列出其页面淘汰次序和缺页中断次数,以及最后留驻主存的页号顺序。

解答:FIFO页面调度算法。

426c6e654bb1ca586f927d6d815b49b4.png

FIFO页面调度算法:

页面淘汰的次序为0,1,2,3,4,5,0,1,8。

缺页中断次数:14

最后驻留主存的页号顺序为7,6,0,1,2 LRU页面调度算法: 页面淘汰的次序为0,1,3,4,5,0,1,8。 缺页中断次数:13 最后驻留主存的页号顺序为7,6,2,0,1 CLOCK页面调度算法: 淘汰页面的次序为0,1,3,4,5,0,2,8。 缺页中断次数:13 最后驻留主存的页号顺序为7,6,0,1,2 OPT页面调度算法: 页面淘汰的次序为3, 5,4,8 缺页中断次数:9 最后驻留主存的页号顺序为0,1,2, 6,7 注:OPT页面淘汰次序不唯一,同理后驻留主存的页号顺序也不唯一。

题目3.在某一采用固定分配局部置换策略的请求分页系统中,有一进程逻辑地址空间有10个页,分得了4个页框,每页的装入时间、最后访问时间、访问位R如下表所示(时间用时钟点数表示)。

272863b8ef2a8be07cbe261c82327f65.png

假设页的大小为4KB,当进程执行到时刻300时,要访问逻辑地址6AB8H的数据,请回答下列问题: (1)若采用先进先出(FIFO)置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。 (2)若采用最近最久未使用(LRU)页面置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。 (3)若采用时钟(CLOCK置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程(设搜索下一页的指针沿顺时针方向移动,且当前指向2号页,示意图如下)。

4ab1fd257f4589f506f76b53f2c48a8f.png

解答:(1)采用FIFO置换算法。 逻辑地址6AB8H,其对应的二进制的低12位为页内偏移值=0AB8H,剩余的高位为页号=6,但 第6页不在内存中,按照FIFO算法需要淘汰最早进入的页,即第2页,将第6页装到260号的页框。260的十六进制表示为104H,则逻辑地址6AB8H对应的物理地址为:104AB8H。 (2)采用LRU置换算法。 第6页不在内存中,按照LRU算法需要淘汰最近最久未用页面,即第1页,将第6页装到120号的页框。120的十六进制表示为78H,则逻辑地址6AB8H对应的物理地址为:78AB8H。 (3)采用CLOCK置换算法。 第6页不在内存中,按照CLOCK算法,依次搜索2号页、1号页、0号页,0号页满足淘汰条件,将第6页装到100号的页框。100的十六进制表示为64H,则逻辑地址6AB8H对应的物理地址为:64AB8H。

问题4: 某系统采用页式存储管理策略,拥有逻辑空间32页,每页为2KB,拥有物理空间1MB。

1)写出逻辑地址的格式。 2)若不考虑访问权限等,进程的页表有多少项?每项至少有多少位? 3)如果物理空间减少一半,页表结构应该做怎样的改变?

答:1)该系统拥有逻辑空间32页,故逻辑地址中页号至少用5位二进制来描述,而每页2KB,因此页内位移必须用11位二进制来描述。这样,可得到逻辑地址格式如下图所示。

72f4ab085f101d11dd5a7ccac8187875.png

2) 每个进程最多有32个页面,因此进程的页表项最多有32项。若不考虑访问权限等,则页表项中需要给出页所对应的物理块号。1MB的物理空间可分成512个内存块,故每个页表项至少有9位。

3) 如果物理空间减少一半,页表结构可以不改变,也可以将每个页表项的位数定义为8位。

注:题目要求“某系统采用页式存储管理策略,拥有逻辑空间32页,每页为2KB”,这就说明这个系统可以执行最大的进程为32页。即该存储管理策略可以管理逻辑空间为32页。

问题5:某分页式虚拟存储系统,用于页面交换所需时间是20ms,页表保存在主存,访问时间为1μs,即引用一次指令或数据,需要访问两次内存。为改善性能,可以增设一个关联寄存器,如果页表項在关联寄存器里,則只要访问一次内存就可以。假设80%的访问其页表项在关联寄存器中,剩下的20%中,10%的访问(即总数的2%)会产生缺页。请计算有效访问时间。

解:已知访问关联寄存器的命中率为80%,只需要访问一次主存,每次所需时间1μs。

访问关联寄存器的失败率为20%,其中有10%会产生缺页,则产生缺页时需要的时间总和为: 访问页表失败,页表在主存中,需要1μs; 用于页面交换所需时间是20ms,一般情况下,缺页中断处理程序会更新页表,但不会更新快表; 访问页表需要1μs,同时更新关联寄存器; 访问内存需要1μs。 访问关联寄存器的失败率为20%,其中有90%访问页表成功,则每次需要访问2次主存。 所以,有效访问时间为: 1μs×80% +(1μs+20ms+1μs+1μs)×20%×10% + 2μs×20%×90% = 401.22μs

问题6: 在分页存储管理系统中,存取一次内存的时间是8ns,查询一次快表的时间是1ns,缺页中断的时间是20ns。假设页表的查询与快表的查询同时进行,当查询页表时,如果该页在内存但快表中没有页表项,系统将自动把该页页表项送入快表。一个作业最多可保留3个页面在内存。现在开始执行一作业,系统连续对作业的2,4,5,2,7,6,4,8页面的数据进行一次存取,如分别采用FIFO算法和最优页面置换算法,求每种算法在存取这些数据时需要的总时间。

解:已知: 内存访问时间:8ns 查询一次快表的时间:1ns 缺页中断的时间是:20ns 页表的查询与快表的查询同时进行。 FIFO算法: ca50edee7b8b5f52281f04e705aa275e.png

2 8+20+8+8

4 8+20+8+8

5 8+20+8+8

2 1+8

7 8+20+8+8

6 8+20+8+8

4 8+20+8+8

8 8+20+8+8

采用FIFO算法时存取这些数据时需要的总时间为:7×44+9=317ns。

最优页面置换算法:

e656e4dd94224aff4318071703d2efbc.png

2 8+20+8+8

4 8+20+8+8

5 8+20+8+8

2 1+8

7 8+20+8+8

6 8+20+8+8

4 1+8

8 8+20+8+8

采用最优页面置换算法时存取这些数据时需要的总时间为:6×44+2×9=282ns。

问题7Virtual Memory:the following page table is for a process on a system with 12-bit virtual and physical addresses and pages that are 256 bytes each. The list of free frames in the order in which they would be allocated if needed is as follows: D. E. The process access the following virtual addresses in the following order: Read(0x0FE), Write(0x855), Write(0x100),Read(0x47F), Write(0x7F0). Update the bits in the page table to reflect these accesses and determine the physical address corresponding to each virtual address accessed. If a page must be replaced, used the reference and dirty bit to decide which one must be replaced and replace the page with the lowest number with the most appealing bits. 

Page

Page Frame

Referenced Bit

Dirty Bit

Valid Bit

0

-

0

0

0

1

2

0

0

1

2

C

0

0

1

3

A

0

0

1

4

-

0

0

0

5

4

0

0

1

6

3

0

0

1

7

-

0

0

0

8

B

0

0

1

9

0

0

0

1

   

Virtual Address

Physical Address

0x0FE

0x855

0x100

0x47F

0x7F0

注:The Referenced bit is set whenever a page is referenced, either for reading or for writing. Its value is used to help the operating system choose a page to evict when a page fault occurs.

The Dirty bit keeps track of page usage. When a page is written to, the hardware automatically sets the Dirty bit. This bit is of value when the operating system decides to reclaim a page frame. If the page in it has been modified, it must be written back to the disk. If it has not been modified (i.e., is ‘‘clean’’), it can just be abandoned, since the disk copy is still valid. The Dirty bit it reflects the page’s state.  The Valid bit Indicates page is in main memory 

解答:  

Page

Page Frame

Referenced Bit

Dirty Bit

Valid Bit

0

-

D

0

1

0

0

1

1

2

0

1

0

1

1

2

C

0

0

1

0

3

A

0

0

1

4

-

E

0

1

0

0

1

5

4

0

0

1

6

3

0

0

1

7

-

C

0

1

0

1

0

1

8

B

0

1

0

1

1

9

0

0

0

1

Virtual Address

Physical Address

0x0FE

0xDFE

0x855

0xB55

0x100

0x200

0x47F

0xE7F

0x7F0

0xCF0

问题8可变分区存储中,空闲分区大小按地址顺序,其大小分别是10KB,4KB,20KB,18KB,7KB,9KB,12KB和15KB,现在依次有三个存储要求:12KB,10KB,9KB.试问使用最先适应算法的分配情况如何?那么最佳适应、最坏适应呢?

答:最先适应算法:

12KB:20KB满足,分配。分配后空闲分区大小按地址顺序,其大小分别是10KB,4KB,8KB,18KB,7KB,9KB,12KB和15KB。

10KB:10KB满足,分配。分配后空闲分区大小按地址顺序,其大小分别是4KB,8KB,18KB,7KB,9KB,12KB和15KB。

9KB:18KB满足,分配。分配后空闲分区大小按地址顺序,其大小分别是4KB,8KB,9KB,7KB,9KB,12KB和15KB。

最佳适应算法:

12KB:12KB满足,分配。分配后空闲分区大小按地址顺序,其大小分别是10KB,4KB,20KB,18KB,7KB,9KB和15KB。

10KB:10KB满足,分配。分配后空闲分区大小按地址顺序,其大小分别是4KB,20KB,18KB,7KB,9KB和15KB。

9KB:9KB满足,分配。分配后空闲分区大小按地址顺序,其大小分别是4KB,20KB,18KB,7KB和15KB。

最坏适应算法:

12KB:20KB满足,分配。分配后空闲分区大小按地址顺序,其大小分别是10KB,4KB,8KB,18KB,7KB,9KB,12KB和15KB。

10KB:18KB满足,分配。分配后空闲分区大小按地址顺序,其大小分别是10KB,4KB,8KB,8KB,7KB,9KB,12KB和15KB。

9KB:15KB满足,分配。分配后空闲分区大小按地址顺序,其大小分别是10KB,4KB,8KB,8KB,7KB,9KB,12KB和6KB。

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值