Bootstrap

操作系统教程第六版——第三章课后作业

1.思考题

(1)什么是逻辑地址?什么是物理地址?

(2)什么是地址转换?哪些方法可以实现地址转换?

 

(3)什么是存储保护?在分区存储管理中如何实现分区的存储保护?

(4)在页式存储器中实现程序共享时,共享程序的页号是否一定要相同?为什么?

(5)试述页式虚拟存储管理的实现原理。

(6)什么是抖动?试述抖动产生的主要原因。

 

2.应用题

(1)某虚拟存储器基于缓存、内存、外存实现。如果数据在缓存中,访问数据需要 A ns;如果数据在内存中,则另外需要B ns将其装人缓存;如果数据在外存中,则还需要C ns 将其读人内存。假设缓存命中率为(n-1)/n,内存命中率为(m-1)/m,则数据的平均访问时间是多少?

(2)在可变分区存储管理方式下,如题图 3-1 所示,内存中有两个空闲区。现有大小分别为30 KB、70 KB、50 KB 的作业依次发出请求,分别使用最先适配、最坏适配和最优适配算法处理这个作业序列,请向哪种算法可以满足所有作业的分配要求?为什么?

     题图 3-1


 

(3)设某系统中作业J1、J2、J3占用内存的情况如题图3-2 所示。现有一个长度为20 KB 的作业J4要装入内存,当采用可变分区存储管理时,请回答:①J4装入前的内存已分配表和末分配表的内容。②写出装入J4的工作流程,并说明采用了何种分配算法。

 

(4)某一页式存储管理系统,假设其页表全部存放在内存中。① 若访问内存的时间为120 ns,那么访问一个数据的时间是多少?② 若增加一个快表,无论命中与否均需20 ns的开销,假设快表的命中率为80%,则此时访问一个数据的时间是多少?

①    120*2=240ns

②     (120+20)*0.8+(120+120+20)*0.2=164ns


(5)在一个有快表的页式虚拟存储管理系统中,设内存访问周期为 1 μs,内外存传送一个页面的平均时间为5 ms。已知快表的命中率为75%,缺页中断率为 10%,忽略快表访同时间,计算内存的有效存取时间。

            1*0.75+2*0.15+(5000+2)*0.1=0.75+0.3+500.2=501.25us


(6)采用 LRU 页面调度算法的页式虚拟存储管理系统,其页面尺寸为 4 KB,内存访向时间为100 ns,快表访问时间为20 ns,缺页中断处理耗时 25 ms。现有一个长度为30 KB 的进程P进入系统,分配给P 的页框有3块,进程的所有页面都在进行时动态装入。若P访问快表的命中率为 20%,对于页面号访向序列 7-0-1-2-0-3-0-4-2-3-0-3-2-1-2-0-1-7-0-1,计算平均有效访问时间。

  • 页号70120304230321201701
    页框号170120304230321201701
    页框号27012030423032120170
    页框号3701223042203312017
    命中

    系统缺页率:12/20=0.6

  • 访问时间:(100+20)*0.2+(100+100+20)*0.8*(1-0.6)+(100+100+20+2500)*0.8*0.6

(7)在某页式虚拟存储管理系统中,用户编程空间为32个页,页面大小为1 KB,内存空间为16 KB。如果应用程序有10页长,且己知页号为0—3的页已依次分得页框号为4、7、8、10的页框,试把逻辑地址 0AC5H 和 1AC5H 转换成对应的物理地址(十六进制表)。

           已知页面大小为1KB,则页内偏移有10位。

         0AC5H 的二进制为: 0000 1010 1100 0101,高六位为页号:0000 10,即为2,对应页框号为8,故物理地址为:0010 0010 1100 0101,即为:22C5H

        1AC5H 的二进制为: 0001 1010 1100 0101,高六位为页号:0001 10,即为6,页号6对应页框号不在内存空间上(缺页),无物理地址。

(8)在一个页式虛拟存储管理系统中,一个程序运行的页面走向是1-2-3-4-2-1-5-6-2-1-2-3-7-6-3-2-1-2-3-6。分别使用 FIFO、OPT 和 LRU 页面调度算法,对于分配给程序3个页框的情况,求出访向过程中所发生的缺页中断次数和缺页中断率。

 

 

(9)在一个页式虛拟存储管理系统中,进程访问地址的序列为 10-11-104-170-73-305-180-240-244-445-467-366。请回答:① 如果页面大小为 100 B,给出页面访向序列;② 若进程分得3个页框,采用 FIFO 和 LRU 页面调度算法,计算缺页中断率。

 

 ① 1-1-2-2-1-4-2-3-3-5-5-4

 


(10) 假设一个进程分配到 4 个页框,每页的装入时间、最后访问时间、访向位 R、修改位 D 如下表所示(所有数字为十进制,且从0开始),当进程访向第4 页时,产生缺页中断。请分别使用 FIFO 和LRU 页面调度算法,写出缺页中断服务程序选择换出的页面。

页框

装入时间

最后访问时间

R

D

2

0

60

161

0

1

1

1

130

160

0

0

0

2

26

162

1

0

3

3

20

163

1

1

FIFO 页面调度算法:3

LRU 页面调度算法:1


(11)已知数组 int A[100][100];其元素按行存储。在虛拟存储管理系统中,采用 LRU 页面调度算法,一个进程有3 页内存空间,每页可以存放200 个整数。其中第1页存放程序,且假定程序已在内存中。
    程序 A:
        for (int i=0; i<100; i++)
            for(int j=0; j<100; j++)
                A[i,j] = 0;
    程序 B:
        for (int j=0; j<100; j++)

            for(int i=0; i<100; i++)

                A[i,j] = 0;

分别计算程序A和程序B在执行过程中的缺页中断次数。

       一个进程在内存中有3个页,且其中的1页用于存 放程序,则用作存放数据的页面只有2个。  数组A中有10000个整数,每页 存放200个整数,故数组占用空间50页。

程序A: 程序A对数组A的访问是按行进行,即按照存储顺序进行。所以只有在访问每一页的第一个数据时会缺页,同一页的其他数据不会发生缺页,故程序A的缺页次数为50。

程序B: 程序B对数组A的访问是按列进行,而数组A每行有100个数据,每页可以存放200个数据,因此每页中有2个 数据属于同一列,每次缺页中断调进一页时,只有其中的 2个数据被赋予0值,即程序B对数组A每两次访问会遇到一次缺页。200/100=2,10000/2=5000,故缺页次数为5000.

 

(12)给定某段式存储器的段表如下:

段号

段首址

段长

0

219

600

1

2300

14

2

90

100

3

1327

580

4

1952

96


试计算以下二维逻辑地址<段号,段内位移>对应的物理地址(以十六进制表示):

①<0, 430>;②<3, 400>; ③ <1, 1>; ④ <2, 500>; ⑤ <4, 42>。

物理地址=段首地址+段内偏移

①649;②1727; ③ 2301; ④ 越界(500>100(该段段长)); ⑤ 1994。


假设一个任务被划分成4个大小相等的段,每段包含8个页表,页面大小为2 KB。请问在这一段页式存储管理系统中:

① 每段的最大尺寸是多少?

            2*8=16KB

② 此任务的逻辑地址空间最大是多少?

           4*16=64KB

③若此任务访同逻辑地址为5ABCH 的一个数据,请将该逻辑地址转化为“段号:页号|页内地址”的形式。

         5ABCH 对应二进制  0101 1010 1011 1100

        页面大小为2 KB,故低11位为页内偏移,高5位为页号 01011,即11。

        第12到14位为页号,高两位为段号。

        01:011 | 010 1011 1100

;