1、四、计算题1. 这是一个从键盘输入到打印机输出的数据处理流图,其中键盘输入进程通过缓冲区 buf1 把输入数据传送给计算进程,计算进程把处理结果通过缓冲 buf2 传送给打印进程。buf1 和 buf2 为临界资源,试写出键盘输入进程,计算进程及打印进程间的同步算法。(10分) 输入进程 buf1 计算进程 buf2 打印进程解答:从键盘输入到打印机输出的数据传送过程,可以看作是由键盘输入进程到计算进程,以及由计算进程到打印输出进程这两个数据传送进程所组成。其中,对键盘输入进程而言,计算进程是消费者进程;而对打印输出进程而言,计算进程又是生产者进程。据此可将它们之间的同步问题描述如下: var
2、:mutex1,mutex2,empty1,empty2,full1,full2:=1,1,1,1,0,0;IP:begin repeat P(empty); P(mutex1); input a charcter from keyboard;Add to buffer;V(mutex1);V(full);until false endCP:begin repeatP(full);P(mutex1);Take a charactor form buffer1;Add to ch1;V(mutex1);V(empty1);P(empty2);P(mutex2);Take a charactor
3、form ch1;Add to buffer2;V(mutex2);V(full2); until falseendOP:begin repeat p(full2);P(mutex2);Take a charactor from buffer2;Add to printer controler;start printer;V(mutex2);V(empty2); until falseend2设在一个页面大小为 1K的系统中,正在处理器上执行的一个进程的页表如图所示:页号状态位访问位修改位物理块号01104111172000-310024000-51010起始页号和块号均为0。1详述在设有快表
4、的请求分页存储管理系统中,一个虚地址转换成物理内存地址的过程。2下列虚地址(十进制)对应与什么物理地址:5449,2221。解:(10分)5449的物理地址为:3292221的物理地址为:22213设系统有三种类型的资源,数量为(4,2,2),系统中有进程A,B,C按如下顺序请求资源: 进程A申请(3,2,1) 进程B申请(1,0,1) 进程A申请(0,1,0) 进程C申请(2,0,0)请你给出一和防止死锁的资源剥夺分配策略,完成上述请求序列,并列出资源分配过程,指明哪些进程需要等待,哪些资源被剥夺。(10分)解:(10分) 分配策略为:当进程Pi申请ri类资源时,检查ri中有无可分配的资源:
5、有则分配给Pi;否则将Pi占有的资源全部释放而进入等待状态。(Pi等待原占有的所有资源和新申请的资源) 资源分配过程:剩余资源进程A:(3,2,1)(1,0,1)进程B:(1,0,1)(0,0,0)进程A:(0,1,0)(不满足)(3,2,1)A的所有资源被剥夺,A处于等待进程C:(2,0,0)(1,2,1)C,B完成之后,A可完成。4设公共汽车上,司机和售票员的活动分别是: 司机:启动车辆 售票员:上乘客正常行车关车门到站停车售票开车门下乘客在汽车不断地到站,停车,行使过程中,这两个活动有什么同步关系?并用 wait和signal 原语操作实现它们的同步。解:BEGIN integer st
6、op,run;Stop:=0;Run:=0;COBEGINDriver: BEGIN L1: wait(run);启动车辆;正常行车;到站停车; signal(stop); Goto L1;ENDConductor:BEGINL2:上乘客;关车门;signal(run);售票;wait(stop);开车门;下乘客;Goto L2;ENDCOENDEND5、某虚拟存储器的用户编程空间共321KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:页号物理块号152103447则逻辑地址0A5C(H)所对应的物理地址是什么?答:逻辑地址0A5CH)所对应的二进制表
7、示形式是:0000 1010 0101 1100 ,由于1K=210,下划线部分前的编码为000010,表示该逻辑地址对应的页号为3查页表,得到物理块号是4(十进制),即物理块地址为:0001 0010 0000 0000 ,拼接块内地址0000 0000 0101 1100,得0001 0010 0101 1100,即125C(H)。6、某段表内容如下:段号段首地址段长度0120K40K1760K30K2480K20K3370K20K 一逻辑地址为(2,154)的实际物理地址为多少?答:逻辑地址(2154)表示段号为2,即段首地址为480K,154为单元号,则实际物理地址为480K+154。
8、7、设系统中有三种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5),A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态如表1和表2所示。(共10分) 系统采用银行家算法实施死锁避免策略。 T0时刻是否为安全状态?若是,请给出安全序列。 在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么? 在的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么? 在的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么? 表1 T0时刻系统状态 最大资源需求量已分配资源数量ABCABCP1559212P253640
9、2P34011405P4425204P5424314表2 T0时刻系统状态 ABC剩余资源数2338系统中有五个进程P1、P2、P3、P4、P5,有三种类型的资源:R1、R2、和R3。在T0时刻系统状态如表所示。若采用银行家算法实施死锁避免策略,回答下列问题: (共9分,每小题3分)1 T0时刻是否为安全状态?为什么?2 若这时P4请求资源(1,2,0),是否能实施资源分配?为什么?3 在上面的基础上,若进程P3请求资源(0,1,0),是否能实施资源分配?为什么? T0时刻系统状态已分配资源数量最大资源需求量R1R2R3R1R2R3P1001001P2200275P3003665P411543
10、5P5033065 R1R2R3剩余资源数330解:(共9分,每小题3分)1 T0时刻是安全的,安全序列为:P1,P4,P5,P2,P32 P4请求资源(1,2,0),根据银行家算法,预分配后系统是安全的,安全序列为:P1,P4,P5,P2,P33 P3请求资源(1,1,0),根据银行家算法,预分配后系统不安全,所以不能实施资源分配。 9一个进程的大小占5个页面,每页的大小为1K,系统为它分配了3个物理块。当前进程的页表如图所示:(共8分)块号存在位P访问位R修改位M0x1C1100x3F111-0000x5D100-0001 有那些页面不在内存?(2分)2 请分别计算进程中虚地址为0x3B7
11、、0x12A5、0x1432单元的物理地址(用十六进制表示),并说明理由。 (6分)解:(共8分)不在内存的是第2和4页(按页号),或第3和5页(按序号)。 (2分)0x3B7的物理地址=0x 73 B7 (2分)0x12 A5的物理地址=0x 176 A5,缺页,换出第三页。 (2分)0x1432地址越界,出错。 (2分)10系统运行有三个进程:输入进程、计算进程和打印进程,它们协同完成工作。输入进程和计算进程之间共用缓冲区buffer1,计算进程和打印进程之间共用缓冲区buffer2。输入进程接收外部数据放入buffer1中;计算进程从buffer1中取出数据进行计算,然后将结果放入buf
12、fer2;打印进程从buffer2取出数据打印输出。用算法描述这三个进程的工作情况,并用wait和signal原语实现其同步操作。(共8分)解:(共8分)解答:输入进程、计算进程和打印进程之间的同步问题描述如下:var:mutex1,mutex2,empty1,empty2,full1,full2:=1,1,1,1,0,0;InP:begin repeat wait(empty1); wait(mutex1); input a data from keyboard;Add to buffer1;signal(mutex1);signal(full1);until falseendCalP:begin repeatwait(full1);wait(mutex1);Take a data form buffer1;Add to ch1;signal(mutex1);signal(empty1);calculate ch1;wait (empty2);wait(mutex2);Take a data form ch1;Add to buffer2;signal (mutex2);signal (full2); until falseendOutP:begin repeat wait(full2);wait(mutex2);Take a data from buffer2;A
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1