《操作系统》试题库-综合题_第1页
《操作系统》试题库-综合题_第2页
《操作系统》试题库-综合题_第3页
《操作系统》试题库-综合题_第4页
《操作系统》试题库-综合题_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、 设有三个进程,它们的提交时间及运行时间如下表,若采用短进程优先调度策略,试给出进程串行运行时的调度次序及平均周转时间。作业提交时间运行时间J1 04J2 2 8J3 35答:进程提交时间开始时间完成时间周转时间 J1 0 044 J2 2 9 1715 J3 3 4 9 6 平均周转时间(4156)/325/38.33各进程的调度次序: J1,J3,J22、 设有三道作业,它们的提交时间及运行时间如下表,若采用短作业优先调度策略,试给出作业单道串行运行时的调度次序及平均周转时间。 (8分)作业提交时间(单位:基本时间单位)运行时间(单位:基本时间单位)J1J2J3023745作业提交时间

2、开始时间完成时间周转时间 J1 0 077 J2 2 7 114 J3 311 16 13平均周转时间(7913)/329/39.67(4分)各作业的调度次序: (3分)3、 假定在单CPU条件下,有A,B,C,D四个作业依次到达(后面的作业依次比前一作业迟到一个时间单位)。四个作业分别需要运行11,6,2和1个时间单位,如果系统采用FCFS的调度算法,请计算:(1) 各作业的周转时间(2) 系统此时的平均周转时间;(3) 各作业的带权周转时间;(4) 系统此时的平均带权周转时间;解答:作业 作业到达时间 运行时间 完成时间 周转时间 带权周转时间 A 0 11 11 11 1 B 1 6 1

3、7 16 2.67 C 2 2 19 17 8.5 D 3 1 20 17 17平均周转时间T= 15.25平均带权周转时间 W= 7.294、 假设在单处理机上有五个(1,2,3,4,5)进程争夺运行,其运行时间分别为10、1、2、1、5(秒),其优先级分别为4、1、3、5、2;在某时刻这五个进程按照1,2,3,4,5的顺序同时到达。试回答:(1) 给出这些进程分别使用轮转法(时间片为2秒)、非剥夺优先级调度法时的运行进度表。(2) 在上述各算法的调度下每个进程的周转时间和等待时间为多少?解答:(1) 轮转法运行进度表:P1 P2 P3 p4 P5 P1 P5 P1 P5 P1 0 2 3

4、5 6 8 10 12 14 15 19非剥夺优先级调度法运行进度表: P4 P1 P3 P5 P2 0 1 11 13 18 19(2) 轮转法周转时间和等待时间: 作业运行时间(小时)周转时间(小时)等待时间(小时)110190+6+2+1=921323253416555156+2+2=10非剥夺优先级调度法周转时间和等待时间: 作业优先级调度顺序运行时间(小时)周转时间(小时)等待时间(小时)142101112151191833321311451110524518135、 画出进程的五种状态变化图,并说明状态变化原因。答:变化原因在图上说明。6、 某车站售票厅,任何时刻最多可容纳20名购

5、票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:(1)用PV(或wait和signal)操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。(2)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。(3)根据所定义的信号量,把应执行的PV(或wait和signal)操作填入下述括号中,以保证进程能够正确地并发执行。Buyi(I=1,2,) Do 进入售票厅; ( ) 购票;( )退出; while(1)解答: (1)定义一信号量S,初始值为20。(1分)意义:S>

6、;0S的值表示可继续进入售票厅的人数(1分)S=0表示售票厅中已有20名顾客(购票者)(1分)S<0|S|的值为等待进入售票厅的人数(1分)(2) S的最大值为20(1分) S的最小值为20n(1分)(3) 上框为P(S)(1分) 下框为V(S)(1分)注:信号量的符号可不同(如写成t),但使用时应一致(即上述的s全应改成t)。7、 现为某临界资源设一把锁w,当w1时,表示关锁,w0时,表示锁已打开,试写出开锁和关锁的原语,并说明如何利用它们去控制对该临界资源的互斥访问?(7分) 开锁原语unlock(w)如下:unlock(w):w:0 关锁原语lock(w)如下:Lock(w):L:

7、 if w1 then go to L eelsew:1;(4分) 可设临界段cs放在两者之间来实现互斥,即Lock(w);cs;unlock(w) (3分)8、 有两个用户进程A和B,在运行过程中都要使用系统中的一台打印机输出计算结果。(1) 试说明A、B两进程之间存在什么样的制约关系?(2) 为保证这两个进程能正确地打印出各自的结果,请用信号量和P、V操作写出各自的有关申请、使用打印机的代码。要求给出信号量的含义和初值。解答:(1) A、B两进程之间存在互斥的制约关系。因为打印机属于临界资源,必须一个进程使用完之后另一个进程才能使用。(2分)(2)mutex:用于互斥的信号量,初值为1。(

8、2分) 进程A 进程B . . P(mutex) P(mutex) 申请打印机 申请打印机 使用打印机 使用打印机 V(mutex) V(mutex) . .9、 进程process_A 进行计算后通过进程process_B输出,这两个并发进程的程序如下:int Count=0;process_A() do Count = Count + 10 while(1)process_B() do print(Count) Count =0; while(1)请回答:(1) 指出这两个并发进程的临界区。(2) 指出它们并发执行时可能出现的与时间有关的错误。(3) 用信号量机制进行管理,写出它们能正确并

9、发执行的程序。解答:(1) 临界区为process_A():Count = Count + 10,process_B():print(Count) Count =0;(2)错误顺序(不是唯一的) print(Count) Count = Count + 10 Count =0;(3)实现同步 信号量:S11(含义不清),S20; 信号量:mutex1;int Count=0;process_A() do wait(S1) wait(mutex);Count = Count + 10Signal(mutex)Signal(S2) while(1)process_B() do wait(S2) w

10、ait(mutex);print(Count) Count =0;Signal(mutex)Signal(S1) while(1)10、 有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息,试问:(?)(1)为描述读者的动作,应编写几个程序,设置几个进程?(2)试用PV操作描述读者进程之间的同步关系。答:读者的动作有两个,一是填表进入阅览室,这时要考虑阅览室里是否有座位;一是读者阅读完毕,离开阅览室,这时的操作要考虑阅览室里是否有读者。读者在阅览室读书时,由于没有引起资源的变动,不算动作变化。算法的信号量

11、有三个:seats表示阅览室是否有座位(初值为100,代表阅览室的空座位数);readers表示阅览室里的读者数,初值为0;用于互斥的mutex,初值为1。读者进入阅览室的动作描述getin:while(TRUE)P (seats); /*没有座位则离开*/P(mutex) /*进入临界区*/填写登记表;进入阅览室读书;V(mutex) /*离开临界区*/V(readers) 读者离开阅览室的动作描述getout:while(TRUE)P(readers) /*阅览室是否有人读书*/P(mutex) /*进入临界区*/消掉登记;离开阅览室; V(mutex) /*离开临界区*/V(seats)

12、 /*释放一个座位资源*/11、 假定进程A负责为用户作业分配打印机,进程B负责释放打印机,系统中设立一个打印机分配表如下,由各个进程共用。 打印机编号分配标志用户名用户定义的设备名001020试用P,V操作实现两进程对分配表的互斥操作。解答: 设一个互斥信号量mutex,其初值为1。 P1(分配进程)和P2(释放进程)的临界区代码可按下述形式组成: P(mutex); P(mutex); 分配打印机; 释放打印机; (读写分配表) (读写分配表) V(mutex); V(mutex);12、 设系统中只有一台打印机,有二个用户的程序在执行过程中都要使用打印机输出计算结果。设每个用户程序对应一

13、个进程。问:这二个进程间有什么样的制约关系?试用P,V操作写出这二个进程使用打印机的算法。解答: 因为打印机是一种临界资源,所以这二个进程只能互斥地使用这台打印机。即一个用户的计算结果打印完后,另一个用户再打印,因此是互斥关系。 设两个进程分别为A和B,设一个互斥信号量mutex,其初值为1,其算法如下: A进程 B进程 P(mutex); P(mutex); 使用打印机; 使用打印机; V(mutex); V(mutex); 13、 设P1,P2两进程共用一个缓冲区F,P1向F写入信息,P2则从F中读出信息。问这两个进程间是什么样的制约关系?试用P,V操作写出这两个进程读写缓冲区的算法。解答

14、: A,B两进程间是同步关系,即A进程向Q写满信息后,B进程才能从Q中取走信息。为此,设立两个信号量: empty:表示缓冲区Q为空(0为不空,1为空),初值为1, full: 表示缓冲区Q为满(0为不满,1为满),初值为0。 算法如下:A进程: B进程: while(true) while(true) P(empty); P(full); 向Q写入信息; 从Q中读出信息; V(full); V(empty); 注:若信号量初值不同,算法有些不同。如若empty和full的初值均为0,则A进程的算法中P(empty)语句应放在V(full)之后,即 解法不惟一 。14、 设A1,A2为两个并发

15、进程,它们共享一临界资源,其临界区代码分别为CS1,CS2。问这两个进程间是什么样的制约关系?试用P,V操作写出这两个进程共享临界资源的算法。解答: 因为A,B两个进程是并发的,它们共享一个临界资源,所以两个进程间应互斥地进入临界区。设立一个互斥信号量mutex,其初值为1。具体算法如下: A进程: B进程: P(mutex); P(mutex); 临界区代码Csa; 临界区代码Csb; V(mutex); V(mutex);15、 设有一台计算机,有一条I/O通道,接一台卡片输入机,卡片机把一叠卡片逐一输入到缓冲区Q1中,计算机从缓冲区Q1中取出数据再进行加工处理。假设系统中设一个输入进程P

16、r和一个计算进程Pc来完成这个任务。问这两个进程间有什么样的制约关系?请用P,V操作写出这些进程的算法。解答: 进程Pr受Pc进程的影响,B1放满信息后,Pr进程要等待,等Pc进程将其中全部信息取走,才能继续读入信息;同样地,Pc进程受Pr进程的约束,B1中信息放满后Pc进程才能从中取走信息。因此,两者之间是同步制约关系。 设两个信号量:B1full缓冲区B1满,初值为0; B1empty缓冲区B1空,初值为1。算法如下:Pr进程: Pc进程:while(true) while(true)P(B1empty); P(B1full);卡片信息写入缓冲区; 从B1中取出信息; V(B1full);

17、 V(B1empty); 注:若B1fullt 和B1empty的初值均为0,这时进程Pr有所不同,即,P(B1empty);应放在V(B1full)之后。也即解法不惟一 。16、 多个进程共享一个文件,其中只读文件的进程称为读者,只写文件的进程称为写者。读者可以同时读,但写者只能独立写。下面的同步算法是用P、V操作写出的,并且它对写者优先,即一旦有写者到达,后续的读者必须等待。(8分)问题:1)、在上述算法的空白处填上正确的语句,使得该算法完整。2)、该算法有可能会出现什么问题?算法如下:int rmutex=1, wmutex=1,count=0(正在读的读者的个数),s=1;main()

18、parbegin reader(); writer();parend;reader()while(1)_(1)_;_(2)_;if (count=1) p(wmutex);count+;_(3)_;_(4)_;读文件;p(rmutex);count-;if (count=0) _(5)_; v(rmutex);writer() while(1) p(s); p(wmutex); 写文件; v(wmutex);v(s); 答:1)问题1: (1)_p(s)_ (2)_p(rmutex)_(3)_v(rmutex)_ (4)_v(s)_ (5)_v(wmutex)_ 2)问题2:如果连续出现新的写

19、者进程,则可能导致读者进程饿死。17、 指出下列哲学家就餐问题的算法在什么情况下会导致死锁,并改进此算法,使它不会产生死锁。 算法描述: 五个哲学家在一张圆桌上进行思考和吃饭。哲学家思考时,并不影响他人。只有当他吃饭时,他才试图拿起左右两根筷子(一根一根的拿起)。如果筷子已在他人手上,则需等待。只有当他同时拿起左右两根筷子时,才可以吃饭。如图7-1所示:程序描述为:(第i个哲学家,i=0,1,2,3,4) Var chopstick: array0.4 of semaphore; /* 各信号量初值均为1*/ Repeat P(chopsticki); /* P操作,拿左筷子*/ P(chop

20、sticki+1 mod 5); /* P操作,拿右筷子*/ Eat();/*吃饭*/ V(chopsticki); /*V操作,放下左筷子*/ V(chopsticki+1 mod 5); /* V操作,放下右筷子*/ 图7.1 Think();/*思考*/ Until false;答:1)、可能导致死锁的情况:每位哲学家都拿了左筷子,而在等待右筷子。即每位哲学家进程都只执行了语句:P(chopsticki)。2)、改进:编号为双数的哲学家先拿左筷子,而单数的先拿右筷子。程序为:Repeat if (i mod 2 = 0) P(chopsticki); P(chopsticki+1 mod

21、 5); else P(chopsticki+1 mod 5); P(chopsticki); Eat(); V(chopsticki); V(chopsticki+1 mod 5); Think(); Until false;18、 简述信号量的定义和作用。P,V操作原语是如何定义的?解答: 信号量一般是由两个成员<S,Q>组成的数据结构,其中一个成员是整型变量,表示该信号量的值,它是与相应资源的使用情况有关的;另一个是指向PCB的指针。当多个进程都等待同一信号量时,它们就排成一个队列,由信号量的指针指出该队列的头。信号量通常可以简单反映出相应资源的使用情况,它与P,V操作原语一

22、起使用可实现进程的同步与互斥。 P,V操作原语的定义:P(S):顺序执行下述两个动作: 信号量S的值减1,即S=S-1; 如果S0,则该进程继续执行,如果S0,则把该进程的状态置为阻塞态,把相应的PCB连入该信号队列的末尾,并放弃处理机,进行等待。(直到有其它进程在S上执行V操作,把它释放出来为止。) V(S):顺序执行下述两个动作: 信号量S的值加1,即S=S+1; 如果S0,则该进程继续执行,如果S0,则释放信号量队列上的第一个PCB(即信号量指针所指向的PCB)所对应的进程(把阻塞态改为就绪态),执行V操作态的进程继续执行。19、 某虚拟存储器的用户编程空间共32KB,每个页面大小为1K

23、,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:页号物理块号051102437则逻辑地址0A5C(H)所对应的物理地址是什么?解答:逻辑地址0A5CH)所对应的二进制表示形式是:0000 1010 0101 1100 ,由于1K=210,下划线部分前的编码为000010,表示该逻辑地址对应的页号为2查页表,得到物理块号是4(十进制),即物理块地址为:0001 0010 0000 0000 ,拼接块内地址0000 0000 0101 1100,得0001 0010 0101 1100,即125C(H)。20、 某段表内容如下:段号段首地址段长度0120K40

24、K1760K30K2480K20K3370K20K 一逻辑地址为(2,154)的实际物理地址为多少?答:逻辑地址(2154)表示段号为2,即段首地址为480K,154为单元号,则实际物理地址为480K+154。21、 (1) 某页式存储系统页表如下,设每页1KB,请写出逻辑地址为8300时所对应的页号和页的地址,以及在内存中对应的物理地址。(请详细写出运算过程) 系统页表: 页号012345678块号3561087124(2)已知如下段表:段号01234基址21923009013271952长度6001410058096在分段存储管理下系统运行时,下列逻辑地址(第一位表示段号,第二位表示段内位

25、移)的物理地址是什么?(a):(1,10) (b):(4,112)答: (1)页号P=INTA/L=8300/1024=8 页内地址d=A MOD L=8300 MOD 1024=108 物理地址 4×1024+108=4024 (2) (a):地址(1,10)的段号为1,查表得基址为2300,段长为14,物理地址为:2300 + 10 = 2310。 (b):地址(4,112)的段号为4,查表得基址为1952, 段长为96,地址(4,112)的段内位移为112,大于段长96,发生段越界,产生中断。22、 在页式虚拟存储管理的计算机系统中,运行一个共有8页的作业,且作业在主存中分配到

26、4块主存空间,作业执行时访问页的顺序为6,0,1,2,0,4,3,1,2,6,7,4,2,5,6,请问用FIFO和LRU替换算法时,它们的缺页中断率分别是多少。(要求图示出内存页面变化情况)。答:(1)、采用FIFO算法: 访问串601204312674256 驻留集666664444444222000003333333551111111666666222222277777是否缺页××××××××××缺页中断率为:10/15=66.67%(2)、采用LRU算法: 访问串6012043126742

27、56 驻留集666664444666655000000022222221111333377776222211114444是否缺页×××××××××××××缺页中断率为:13/15=86.67%教材P156,6题(中南大学出版社)解答:访问串为:1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 3, 7, 6, 3, 2, 1, 2, 3, 6(一)、页框数为3时:(1) FIFO算法1 2 3 4 2 1 5 6 2 1 3 7 6 3 2 1 2 3 6

28、111223415621337662122334156213776221334415621376621136+ + + + + + + + + + + + + + + +故障数:16 页故障率:16/19 * 100% = 84%(2) LRU(最近最久未用页面)算法1 2 3 4 2 1 5 6 2 1 3 7 6 3 2 1 2 3 6111234215621376331222342156213763212334215621376321236+ + + + + + + + + + + + + + +故障数:15 页故障率:15/19 * 100% = 79%(3) OPT算法1 2 3 4

29、 2 1 5 6 2 1 3 7 6 3 2 1 2 3 6111111111133333333322222222227772222234445666666661116+ + + + + + + + + + +故障数:11 页故障率:11/19 * 100% = 58%23、 画出段页式存储管理系统的地址变换过程图。24、 假定在某移动臂磁盘上,刚刚处理了访问75号柱面的请求,目前正在80号柱面读信息,并且有下述请求序列等待访问磁盘: 试用:(1)电梯调度SCAN算法; (2)最短寻道时间优先SSTF算法;分别列出实际处理上述请求的次序。(1)电梯调度算法的处理次序为:58143627 (得4

30、分)若写出58(得1分)若写出58143 (得2分)(2)最短寻找时间优先算法的处理次序为:58627143 (得4分)若写出58(得1分)若写出58627 (得2分)亦即:前2个对(得1分) 前5个对(得2分)25、 假设一个活动头磁盘有200道, 编号从0-199. 当前磁头正在143道上服务, 并且刚刚完成了125道的请求. 现有如下访盘请求序列(磁道号): 86, 147, 91, 177, 94, 150, 102, 175, 130 试给出采用下列算法后磁头移动的顺序和移动总量(总磁道数). (1). 先来先服务(FCFS)磁盘调度算法. (2). 最短寻道时间优先(SSTF)磁盘

31、调度算法.(3). 扫描法(SCAN)磁盘调度算法.(假设沿磁头移动方向不再有访问请求时, 磁头沿相反方向移动.)答案:磁头移动的顺序:(1)86,147,91,177,94,150,102,175,130 (2)当前磁头在143道上: 147,150,130,102,94,91,86,175,177 (3)当前磁头在143道上,并且刚刚完成125道的请求 147,150,175,177,130,102,94,91,86 磁头移动总量(总磁道数):(1) (14386)+(147-86)+(147-91)+(177-91)+(177-94)+(150-94)+ (150-102)+ (175-

32、102)+ (175-130)=565(2) (147143)+(150-147)+(150-130)+(130-102)+(102-94)+(94-91)+ (91-86)+ (175-86)+ (177-175)=162(3) (177-143)+ (177-86)=12526、 文件系统采用多重索引结构搜索文件内容。设块长为512字节,每个块号长3字节,如果不考虑逻辑块号在物理块中所占的位置,分别求二级索引和三级索引时可寻址的文件最大长度。答:(1)、采用二级索引,可寻址的文件的最大长度: (512/3)*(512/3)*512=170*170*512=14796800(字节)(2)、采

33、用三级索引,可寻址的文件的最大长度: (512/3)*(512/3)*(512/3)*512=170*170*170*512=2515456000(字节)27、 设当前的工作目录在da1请看图回答(1) 文件mc.c的绝对路径名 ( /data/da1/ma.c ) 。(2) 文件mc.c 的相对路径名 ( mc.c ) 。(3) 要在文件abc原来的权限的基础上增加让所有用户都具有执行权限,请用一条命令完成该功能 ( chmod a + x abc ) 。(4) 将文件mc.c在当前目录下复制一份副本,副本的文件名为sss.c输入的命令是 ( cp mc.c sss.c ) 。(5) 在当前

34、目录下,创建子目录sd2命令是 ( mkdir sd2 ) 。(6) 要让所有用户对文件abc都具有读、写、执行权限。命令是 ( chmod a + rwx abc 或 chmod 777 abc ) 。(7) 命令$ cat /data/da3/sun.c 的实际的功能是 ( 在屏幕上显示/data/da3子目录下的sun.c文件的内容) 。(8) 删除sd1子目录下、扩展名为 BAS 的所有文件, 输入命令是 ( rm sd1/ *.BAS ) 。(9) 删除子目录sd1下的所有文件和子目录, 命令是 ( rm r /data/da1/sd1 ) 。 (10) 输入命令 $ chmod 7

35、54 abc 后,同组用户对文件abc存取权限是 ( 读和执行 ) 、其它用户对文件abc的权限是 ( 只读 ) 。 (11) 删除文件mc.c。 命令是 ( rm mc.c ) 。 (12) 在显示器上以长格式列出da1下的所有目录项 ( ls l /data/da1 (或 ls l) ) .28、 设系统中有三类资源A、B和C,又设系统中有5个进程P1,P2,P3,P4和P5.在T0时刻系统状态如下:最大需求量已分配资源量剩余资源量A B CA B CA B C P1 8 6 41 2 12 1 1 P2 4 3 33 1 1 P3 10 1 34 1 3 P4 3 3 33 2 2 P5

36、 5 4 61 1 3(1) 系统是否处于安全状态?如是,则给出进程安全序列.(2) 如果进程P5申请1个资源类A、1个资源类B和1个资源类C,能否实施分配?为什么?答案:(1)利用安全性算法对T0时刻的资源分配情况进行分析,结果如下: WorkNeedAllocationWork + AllocationFinishP42 1 10 1 13 2 25 3 3trueP25 3 31 2 23 1 18 4 4trueP18 4 47 4 31 2 19 6 5trueP39 6 56 0 04 1 313 7 8trueP513 7 84 3 31 1 314 8 11true 系统处于安

37、全状态,安全序列为:P4,P2,P1,P3,P5 (5分) (2)P5发出请求向量Request5(1,1,1),系统按银行家算法进行检查:1)Request5(1,1,1) <= Need5(4,3,3)2)Request5(1,1,1)<= Available(2,1,1)3) 系统先假定可为P5分配资源,并修改Available、 Allocation5、 Need5向量,资源变化情况如表3。 max Allocation Available Need A B CA B CA B C A B C P1 8 6 41 2 11 0 0 7 4 3 P2 4 3 33 1 1 1 2 2 P3 10 1 34 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论