第三章 习题答案
6、答:(1)采用先来先服务调度算法,则其调度顺序是1、2、3、4。 作业号 1 2 3 4 提交时间 10.0 10.2 10.4 10.5 运行时间 2.0 1.0 0.5 0.3 开始时间 10.0 12.0 13.0 13.5 完成时间 12.0 13.0 13.5 13.8 周转时间 2.0 2.8 3.1 3.3 带权周转时间 1.0 2.8 6.2 11.0 平均周转时间:T=(2.0+2.8+3.1+3.3)/4=2.8 平均带权周转时间:T=(1.0+2.8+6.2+11)/4=5.25
(2)采用短作业优先调度算法,则其调度顺序是1、4、3、2。 作业号 1 2 3 4 提交时间 10.0 10.5 10.4 10.2 运行时间 2.0 0.3 0.5 1.0 开始时间 10.0 12.0 12.3 12.8 完成时间 12.0 12.3 12.8 13.8 周转时间 2.0 1.8 2.4 3.6 带权周转时间 1.0 6.0 4.8 3.6 平均周转时间:T=(2.0+1.8+2.4+3.6)/4=2.45 平均带权周转时间:T=(1.0+6.0+4.8+3.6)/4=3.85 7、答:各个作业执行的时间如下图所示:
8:00 8:10 8:20 8:30 8:40 8:50 9:00 9:10 9:20 9:30 1 2 3 4 5 注:深黑色表示作业独占CPU时间,浅黑色表示作业平分CPU时间,白色表示CPU空闲时间。
(1)作业调度顺序是:1,3,4,2,5。 (2)最大作业周转时间为55分钟。
(3)全部作业运行结束的时刻为:9:30 8、答:
8:00时,作业1运行;9:10时,作业1运行完毕,其他3个作业均已到达,它们的响应比分别为:R2=1+(9:10-8:40)/30=2;R3=1+(9:10-8:50)/10=3;R4=1+(9:10-9:10)/5=1 作业3先运行,10分钟后,作业3运行完毕。
9:20时,作业3运行完毕,其他两个作业的响应比是: R2=1+(9:20-8:40)/30=2.3 R4=1+(9:20-9:10)/5=3
作业4先运行,5分钟后,作业4运行完毕,最后作业2运行。 作业的执行顺序为:1、3、4、2。
第四章 习题答案
2、答:
?0?0
(1)Need=?
?1??0
07060504
0?0?? 2??2?
(2) Work值的变化情况如下:
因为存在一个安全序列
(3)先试着满足P1进程的要求,存在一个安全序列
3、答:当N≤3时没有死锁的危险。当N=4时,可能出现四个进程各自占有2台磁带机,又各自申请1台磁带机的情况,这样就出现了死锁,若N>4,死锁的可能性就更高了。
第五章 习题答案
5、答:(1)采用首次适应算法,在完成了题目所给的系列申请及释放内存操作后,空闲分区如下所示。
分区 0 1 2 大小 30K 20K 112K 起始地址 150K 280K 400K (2)采用最佳适应算法,在完成了题目所给的系列申请及释放内存操作后,空闲分区如下所示。
分区 0 1 2 大小 30K 42K 90K 起始地址 400K 470K 210K (3)采用最差适应算法,在完成了题目所给的系列申请及释放内存操作后,空闲分区如下所示。
分区 0 1 2 大小 30K 80K 52K 起始地址 150K 220K 460K
(4)如再申请100K,有上述结果可知,采用首次适应算法后剩下的空闲分区能满足这一申请要求,采用最佳适应算法和最差适应算法均不能满足申请要求。 6、答:(1)程序空间的大小为32KB,因此逻辑地址的有效位数是15位。 (2)内存储空间的大小是16KB,因此物理地址至少需要14位。
(3)当页面为1KB时,虚地址0A5C表示页号为00010,页内地址是1001011100。该页在内存的第4块,即块号为0100,因此0A5C的物理地址是01001001011100,即125CH。
用同样的方法可以求得,053C的物理地址是293CH,103C的逻辑地位在第4页,产生越界异常。 7、答:(1)1.5*2=3 微秒 (2)1.5*2*15%+1.5*85%=1.725 微秒
第六章 习题答案
4、答:0x2C27:0x7C27
0x1D71:缺页 0x4000:越界
5、答:m条指令实际花费时间应为执行m条指令花费的时间与操作系统处理一次页故障需要时间之和。一条指令执行平均需要k(ns),m条指令执行需要m * k(ns),执行m条指令发生一次缺页中断,需要n(ns),也即m条指令实际花费时间为(m * k + n)(ns),则平均每条指令的执行时间为(m * k + n)/ m(ns)。 答:(1)每执行一次A[i][j]:=0就产生一次缺页中断,总共需要产生(128*128-1)次缺页中断。(2)产生(128-1)次中断。 6、答:
LRU方法:10次,FIFO方法:14次,Optimal方法:8次。 10、答:
(1)一个作业最多可以有28=256个段。
(2)每段的最大长度为216=64KB=65 536字节。
(3)逻辑地址[0,430]主存地址为:2100+430=2530;
逻辑地址[1,50]无法进行地址变换,因为产生了越界中断; 逻辑地址[2,30]无法进行地址变换,因为产生了缺段中断; 逻辑地址[3,70]的主存地址为:4000+70=4070。 12、答: (1)页面大小为4KB,故页内偏移为12位。系统采用48位虚拟地址,故虚页号为48-12=36位。采用多级页表时,最高级页表项不能超出一页大小,故应采用36/9=4级页表,最高级页表项正好占据一页空间。
(2)系统进行页面访问操作时,首先读取页面对应的页表项,有98%的概率可以在TLB中直接取到,然后进行地址转换,如果TLB为命中,则要通过一次内存访问来读取页表项。页面的平均访问时间为:98%*(10+100)+(1-98%)*(10+100+100)=112ns (3)二级页表的平均访问时间计算同理:
98%*(10+100)+(1-98%)*(10+100+100+100+100)=114ns (4)设快表命中率为P,则应满足:
P*(10+100)+(1-P)*(10+100+100+100+100)<=120ns,解得:P>=95%
(5)系统采用48位虚地址,每段最大为4G,故段内地址为32位,段号:48-32=16位。每个用户最多可以有216个段,段内采用页式地址,与(1)中计算同理,(32-12)/9,取上整为3,故段内应采用3级页表。 4、详解
一个程序P的用户空间为16K,存储管理采用请求式分页系统,每个页面大小为2K,存在以下的页表:其中,有效位=1表示页面在内存;0表示页面不在内存。请将虚地址0X060C,0X1502,0X1D71,0X2C27,0X4000转换为物理地址。 注:请求分页存储管理系统的地址变换与分页存储管理系统的地址变换类似,只是增加了缺页中断处理部分。当由逻辑地址计算出页号后,查找页表确定此页在不在内存,如果在内存
就计算物理地址,如果不在内存中,就产生一个缺页中断将所缺的页按照一定的策略调入内存。程序P共有8页,页面大小为2K,即211,页号占剩余高位。 答:
逻辑地址0X060C的二进制表示如下: 0000 0 110 0000 1100 页号 页内地址
其页号为0,从表中可知该页对应的物理块号为12,所以,将二进制表示中的页号换为块号,则物理地址用二进制表示为: 0110 0 110 0000 1100 块号 块内地址
用十六进制表示即为0X660C。
逻辑地址0X1502的二进制表示如下: 0001 0 101 0000 0010,页号为2,从表中可知该页对应的物理块号为0,所以,物理地址用二进制表示为0000 0 101 0000 0010,用十六进制表示为0X0502。
逻辑地址0X1D71的二进制表示如下: 0001 1 101 0111 0001,页号为3,从表中可知该页不在内存,产生缺页中断,无物理地址。
逻辑地址0X2C27的二进制表示如下: 0010 1 100 0010 0111,页号为5,从表中可知该页对应的物理块号为15,所以,物理
地址用二进制表示为0111 1 100 0010 0111,用十六进制表示为0X7C27。
逻辑地址0X4000的二进制表示如下: 0100 0 000 0000 0000,页号为8,从表中可知没有第8页,所以产生越界中断,无物理地址。
附加:有一请求分页存储管理系统,页面大小为每页100字节。有一个50*50的整型数组按行连续排放,每个整数占两个字节,将数组初始化为0的程序描述如下: int a[50][50]; int i,j; for(i=0;i<50;i++) for(j=0;j<50;j++) a[i][j]=0; 若在程序执行时内存中只有一个存储块用来存放数组信息,试问该程序执行时产生多少次缺页中断?
答:由题目所给条件可知:数组有2500个整数,每个占两个字节,共需要5000字节,即50个页面。按行存放,意味着一页存放一行数据。又因为只分配一个物理块,发生50次缺页中断。