操作系统原理测试答案

更新时间:2023-11-06 08:47:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、设有3个并发执行的进程:输入进程Pi、计算进程Pc和输出进程Po。其中进程Pi不断地从键盘读入整数,放入缓冲区Buf1,Pc按输入顺序从Buf1中取数据,每次取出2个整数,计算其和,将结果放入缓冲区Buf2。Po负责将Buf2中的数据按顺序输出。设缓冲区Buf1、Buf2可存放的整数个数分别为m、n(m、n>0)。要求利用信号量的P、V操作写出进程Pi、Pc、Po的算法。

解:设信号量e1,f1,e2,f2,其初值分别为:e1=m,f1=0,e2=n,f2=0 e1:表示buf1是否有空间放数据,f1:表示buf1是否有数据可取。 e2:表示buf2是否有空间放数据,f2:表示buf2是否有数据可取 3个并发进程分别为: Cobegin Pc: Po: Pi: begin begin begin L2:P(f1); L3:P(f2); L1: P(e1); x=从Buf1中读1个数; W=从Buf2中读1个数; 向Buf1中输入1个数; V(e1); 打印W; V(f1); P(f1); V(e2); Goto L1; y=从Buf1中读1个数; Goto L3; end V(e1); End z=x+y; Coend P(e2); 将z送入Buf2中; V(f2); Goto L2; end

2、某系统中进程有如下的状态变化图:

② 运行

③ ① 就绪队列

等待IO传输队列

请回答下列问题:

(1)该系统采用了怎样的进程调度算法?说明理由。 (2)把图中发生①-④的状态变化原因填入下表中。

解:(1)该系统采用的是“时间片轮转调度算法”。

该调度算法让就绪进程按就绪的先后次序排成队列,每次总是选择就绪队列中的第一个进程占用处理器,但规定只能使用一个“时间片”。如果一个时间片用完,进程工作尚未结束,则它也必须让出处理器而被重新排到就绪队列的末尾,等待再次运行,当再次轮到运行时,重新开始使用一个新的时间片。这样,就绪队列中的进程就依次轮流地占用处理器运行。

(2) 变化 变化原因 进程到达就绪队列头,从就绪状态① 变为运行状态。 运行的时间片到,从运行状态变为② 就绪状态,进入就绪队列末尾排队,等待调度。 运行过程中,进程申请IO,从运行③ 状态变为等待状态,进入等待队列等待IO完成。 进程所申请的IO完成,进入就绪④ 队列末尾排队,等待调度。

3、已知主存容量为64kB,某作业A的地址空间如图所示,它的4个页面(页面大小为1KB)0,1,2,3被分配到主存的2,4,6,7块中。

(1)试画出作业A的页面映像表(即页表);

(2)当200号单元处有一条指令“mov r1, [3500]”执行时,如何进行正确的地址变换,以使3500处的内容12345装入r1中,要求用图画出地址变换过程并给出最终的物理地址。

0 1KB 2KB

Mov r1, [3500] 3KB 4KB-1

12345 解:3500/1024=3,余数为428,物理地址=7*1024+428=7596

4、在动态分区分配中,主存容量为256KB,有这样一个作业序列:作业A要求18KB,作业B要求25KB,作业C要求30KB。用首次适应算法、最佳适应算法、最坏适应算法来处理该作业序列,看哪种算法合适?为什么?请画出三种算法分配的空闲区队列。

0 20KB

OS 30KB(空闲) 在使用 100KB

20 KB(空闲) 在使用 160KB

5 KB(空闲) 在使用 210KB

46 KB(空闲) 256KB-1

解:最佳适应算法对该作业序列是合适的。

5、在一个采用分页式虚拟存储管理的系统中,有一用户作业,它依

次要访问的字地址序列是:115,228,120,88,446,102,321,432,

260,167。若分配给作业可使用的主存空间共300个字,作业的页面大小为100个字,且第0页已经装入主存,请回答下列问题: (1)按FIFO页面调度算法将产生多少次缺页中断?写出依次淘汰的页号。

(2)按LRU页面调度算法将产生多少次缺页中断?写出依次淘汰的页号。

解:[分析]由于作业的页面大小为100个字,因而主存块的大小也为100个字。现该作业

可使用的主存空间共300个字,即共可使用三个主存块。根据作业依次要访问的字地址,可以得到作业将依次访问的页如下:

次序 所要访问的字地址 该地址所在页号 1 115 1 2 228 2 3 120 1 4 88 0 5 446 4 6 102 1 7 321 3 8 432 4 9 260 2 10 167 1

现只有第0页已经在主存但尚有两块主存空间可供使用,所以作业执行时依次访问第1页和第2页时均要产生缺页中断,但不必淘汰已在主存中的页面,可把第五页和第2页装入到可使用的主存块中,现在主存中已有0、1、2三个页面的信息。在进行第三、第四次访问时不会产生缺页中

断,而在第五次访问第4页时将产生一次缺页中断。此时,若采用FIFO算法应淘汰最先装入主存的第0页,而采用LRU算法则应淘汰最近最久没有使用的第2页。显然,进行第六次访问不会产生缺页中断,而在第七次访问时必须经缺页中断处理来装入第3页。为此,FIFO算法会淘汰第1

页,LRU算法会淘汰第0页。于是,作业继续执行时,对FIFO算法来说,将在第十次访问时再产生一次缺页中断,为了装入当前需用的第1页而应淘汰第2页;对LRU算法来说,将在第九次访问时产生缺页中断,为了装入当前需用的第2页而应淘汰第二页,在随后的第十次访问时仍将产生

缺页中断,为了把第1页重新装入而应淘汰第3页。

可见,按FIFO页面调度算法将产生五次缺页中断,依次淘汰的页面为:0、1、2。按LRU页面调度算法将产生六次缺页中断,依次淘汰的页面为:2、0、1、3。

[题解]根据作业依次要访问的字地址序列可以知道作业应访问的页面顺序为:1、2、1、0、4、1、3、4、2、1。

现只有第0页在主存中,但尚有两块主存空间可供使用。因而,作业在进行前两次访问时均会产生缺页中断,但不必淘汰已在主存中的页面。目前主存中有第0、1、2三个页面。 (1)按FIFO页面调度算法将在后继的第五、七、十次访问时再产生三次缺页中断。因而,共产生五次缺页中断,依次淘汰的页号为:0、1、2。

(2)按LRU页面调度算法将在后继的第五、七、九、十次访问时再产生四次缺页中断。因而,共产生六次缺页中断,依次淘汰的页号为:2、0、1、3。

本文来源:https://www.bwwdw.com/article/imp2.html

Top