5.不安全状态是指系统中有进程已经发生死锁。
答:这个观点是错误的。错在不知道不安全状态是指系统可能发生死锁的状态,并不意味着系统已经发生死锁。
6.段页式结合了段式和页式的优点,所以段页式的内部碎片和页式一样少。
答:这个观点是错误的。段页式的确结合了段式和页式的优点,而且克服了段式的外部碎片问题,但段页式的内部碎片并没有做到和页式一样少,页式存储管理方式下平均一个程序有半页碎片,而段页式存储管理方式下平均一段就有半页碎片,而一个程序往往有很多段,所以平均下来段页式的内部碎片比页式要多。 7.临界区就是临界资源所在的区域
答:这个观点是错误的。这个完全是字面上的理解,显然是错误的,要知道临界资源是进程需要互斥访问的对象(可以是硬件),而临界区则是进程中的代码,只不过这个代码有些特殊,是有来访问临界资源的代码罢了。 8.阻塞状态就是进程被销毁了。 答:这种错误相法根源是误以为进程得不到执行就是被销毁。其实进程有没有被销毁应该看进程的PCB,只要进程被销毁了,该进程的PCB就会被销毁。而阻塞状态下进程的PCB还在,而且进程可能在和I/O设备通信,只不过暂时没有被执行而已。 9.高速缓存等价于缓冲区,两者没有区别。
答:这观点是错误的。高速缓存和缓冲区都是介于一个高速设备和一个低速设备之间,但它们之间有很大的区别。
1)两者存放的数据不同,高速缓存上放的是低速设备上的某些数据的一个拷贝,也就是说高速缓存上有的数据低速设备上必然是有的;而缓冲区则是放置低速设备传递给高速设备的数据,这些数据从低速设备传递到缓冲区中,而在低速设备中却不一定有备份,然后再从缓冲区送到高速设备。
2)两者的目的不同,高速缓存是为了存放低速设备上经常被访问到的数据的拷贝;而缓冲区是为了缓和高速设备和低速设备间速度不匹配的矛盾而存在的,高速设备和低速设备间通信每次都经过缓冲区,高速设备不会直接去访问低速设备。 六、综合题(10分/小题,共40分)
1.一组合作进程,执行顺序如图所示,请用P、V操作实现进程间的同步操作。 解:
Var a,b,c,d,e,f,g,h:semaphore: =0,0,0,0,0,0,0,0; begin parbegin
begin P1; signal(a); signal(b); end;
begin wait(a); P2; signal(c); signal(d); end; begin wait(b); P3; signal(e); signal(f); end; begin wait(c); wait(e); P4; signal(g); end; begin wait(d); wait(f); P5; signal(h); end; begin wait(g); wait(h); P6; end; parend end
9
2.设公共汽车上,司机和售票员的活动分别是: 司机的活动: 售票员的活动:
启动汽车 关车门
正常行车 售票
到站停车 开车门
在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?请用信号量机制实现他们的同步。
解:
直接相互制约的同步关系,司机等售票员关好门才启动汽车,售票员等司机停好车才开门,他们的活动需要同步 Semaphore start=stop=0 Driver{ While(1){ Wait(start) 启动汽车 正常行驶 到站停车 Signal(stop)}} Conductor(){ While(1){ 开车门 等乘客上车 关车门 Signal(start) 售票} Wait(stop)}
3.在一单道批处理系统中,一组作业的提交时间和运行时间如表所示,试计算以下3种作业调度算法的平均周转时间T和平均带权周转时间W。 作业 提交时间 运行时间 (1)先来先服务;(2)短作业优秀;(3)响应比高者1 8.0 1.0 优先。 2 8.5 0.5 提示:优先级=(等待时间+运行时间)/运行时间
3 9.0 0.2
4 9.1 0.1 解:
请分别给出在算法FCFS、SJF和HRN中这组作业的调度顺序、平周转时间和平均带权周转时间。 【解答】
FCFS算法调度顺序:1,2,3,4,作业运行情况如下表 作业号 1 2
开始时间 完成时间 周转时间 带权周转时间 8.0 9.0
9.0 9.5
1.0 1.0
1.0 2.0
10
3 4
9.5 9.7
9.7 9.8
0.7 0.7
3.5 7.0
平均周转时间T=(1.0+1.0+0.7+0.7)/4=0.85 平均带权周转时间W=(1.0+2.0+3.5+7.0)/4=3.375
SJF(相当于等待时间最短)算法调度顺序:1,3,4,2,作业运行情况如下表 作业号 1 2 3 4
开始时间 完成时间 周转时间 带权周转时间 8.0 9.3 9.0 9.2
9.0 9.8 9.2 9.3
1.0 1.3 0.2 0.2
1.0 2.6 1.0 2.0
平均周转时间T=(1.0+1.3+0.2+0.2)/4=0.675 平均带权周转时间W=(1.0+2.6+1.0+2.0)/4=1.65
HRN(最高响应比调度算法就相当于等待时间/运行时间)算法调度顺序:1,2,4,3,作业运行情况如下表 作业号 1 2 3 4
开始时间 完成时间 周转时间 带权周转时间 8.0 9.0 9.6 9.5
9.0 9.5 9.8 9.6
1.0 1.0 0.8 0.5
1.0 2.0 4.0 5.0
平均周转时间T=(1.0+1.0+0.8+0.5)/4=0.825 平均带权周转时间W=(1.0+2.0+4.0+5.0)/4=3.0
4.假定某操作系统存储器采用页式存储管理,页的大小为64B。假定一进程的代码段的长度为702B,页表如下表所示。该进程在联想存储器中的页表项如第二个表格所示。现有如下的访问序列:其逻辑地址为八进制的105、217、567、1120、2500。试问给定的这些地址能否进行转换?若能,请说明地址转换过程及其相应的物理地址;若不能则说明理由。
页号 页帧号 页号 页帧号 0 F0 0 F0 1 F1 1 F1 2 F2 2 F2 3 F3 3 F3 4 F4 4 F4 5 F5 6 F6 7 F7 8 F8
9 F9
10 F10
解:一页的大小是64B,进程的代码长为702B,所以该进程有702/64=11页。可以看到11个页面全部都在内存中,页号从0到10。由于页的大小是64B=26B,所以页内偏移地址是6位,即逻辑地址的最后6位二进制是页内偏地址,前面其他位是页号。
1)逻辑地址105转换成二进制地址为:001 000 101,页号为1,所以逻辑地址可以转换
11
为物理地址,其物理帧号为F1,页内偏移为5(十进制)。物理地址为:11 1100 0100 0101=3C45H
2)逻辑地址217转换成二进制地址为:010 001 111,页号为2,所以逻辑地址可以转换成为物理地址,其物理帧号为F2,页内偏移为15(十进制)。物理地址为:11 1100 1000 1111=3C8FH
3)逻辑地址567转换为二进制地址为:101 110 111,页号为5,所以该逻辑地址可以转换为物理地址,其物理帧号为F5,页内偏移为55(十进制)。物理地址为:11 1101 0111 0111=3D77H
4)逻辑地址1120转换为二进制地址为:001 001 010 000,页号为9,所以该逻辑地址可以转换为物理地址,其物理帧号为F9,页内偏移为16(十进制数)。物理地址为:11 1110 0101 0000=3E50H
5)逻辑地址2500转换为二进制地址,010 101 000 000,页号为21,而该进程只有11页,发生了越界中断,所以该逻辑地址不能转换为物理地址。
5. 对访问串1,2,3,4,1,2,5,1,2,3,4,5指出在驻留集大小(即内存块)分别为3,4时,使用FIFO和LRU替换算法的页故障数。结果说明了什么。
解:
物理内存块为3时,FIFO算法: 引用串 内 存 是否缺页 引用串 内 存 是否缺页 引用串 内 存 是否缺页 引用串 内 存 是否缺页 1 1 √ 1 1 √ 1 1 √ 1 1 √ 2 2 1 √ 2 2 1 √ 2 2 1 √ 2 2 1 √ 3 3 2 1 √ 3 3 2 1 √ 3 3 2 1 √ 3 3 2 1 √ 4 4 3 2 √ 4 4 3 2 1 √ 4 4 3 2 √ 4 4 3 2 1 √ 1 1 4 3 √ 1 4 3 2 1 1 1 4 3 √ 1 1 4 3 2 2 2 1 4 √ 2 4 3 2 1 2 2 1 4 √ 2 2 1 4 3 5 5 2 1 √ 5 5 4 3 2 √ 5 5 2 1 √ 5 5 2 1 4 √ 1 5 2 1 1 1 5 4 3 √ 1 1 5 2 1 1 5 2 4 2 5 2 1 2 2 1 5 4 √ 2 2 1 5 2 2 1 5 4 3 3 5 2 √ 3 3 2 1 5 √ 3 3 2 1 √ 3 3 2 1 5 √ 4 4 3 5 √ 4 4 3 2 1 √ 4 4 3 2 √ 4 4 3 2 1 √ 5 4 3 5 5 5 4 3 2 √ 5 5 4 3 √ 5 5 4 3 2 √ 物理内存块为4时,FIFO算法: 物理内存块为3时,LRU算法: 物理内存块为4时,LRU算法: 12