2022年操作系统复习应用题 .pdf
《2022年操作系统复习应用题 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统复习应用题 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1若程序A 和 B单独执行时分别需要1 小时和 1.5 小时,其中CPU工作时间分别为18 分钟和 27 分钟。若采用多道程序设计方法,让A和 B并行工作,假定CPU利用率达到50,另加 15 分钟系统开销,请问系统效率能提高多少? 解:在多道系统中,程序A和 B共用的 CPU时间为: (18 十 27) 50 90 分钟系统效率提高(A 和 B单独执行的时间总和多道方式下总时间) A和 B单独执行的时间总和,即 (60 十 90) (90 十 15) (60 十 90) 45150301.假定在单CPU条件下有下列要执行的作业:作业运行时间优先级1 10 2 2 4 3 3 3 0 作业到来
2、的时间是按作业编号顺序进行的( 即后面作业依次比前一个作业迟到一个时间单位 ) 。(1) 用一个执行时间图描述在采用非抢占式优先级算法时执行这些作业的情况。(2) 对于上述算法,各个作业的周转时间是多少?平均周转时间是多少? (3) 对于上述算法,各个作业的带权周转时间是多少?平均带权周转时间是多少? 解: (1)非抢占式优先级算法作业的执行情况如下:作业到达时间运行时间完成时间周转时间带权周转时间1 0 10 10 10 1.0 2 1 4 17 16 4.0 3 2 3 13 11 3.7 平均周转时间12.3 平均带权周转时间2.9 2 若在后备作业队列中等待运行的同时有三个作业1、2、
3、3,已知它们各自的运行时间为a、b、c,且满足关系abc,试证明采用短作业优先调度算法能获得最小平均周转时间。证明: 由于短作业优先调度算法总是在后备作业队列中选择运行时间最短的作业作为调度对象,因此对短作业优先调度算法而言,这三个作业的总周转时间为T1=a+(a+b)+(a+b+c)=3a+2b+c (1) 若不按短作业优先调度算法来调度这三个作业,不失一般性,假定调度顺序为2、l 、3,则其周转时间为 T2=b+(b+a)+(b+a+c)=3b+2a+c (2) 由(1) 、(2) 两式可得: T2-T1=b-a0 由此可见,短作业优先调度算法能获得最小平均周转时间。3设有 4 道作业,它
4、们的提交时间及执行时间如下:试计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周转时间和平均带权周转时间,并指出它们的调度顺序。( 时间单位:小时,以十进制进行计算。 ) 解:若采用先来先服务调度算法,则其调度顺序为1、2、 3、4。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 18 页平均周转时间 T=(2.0十 2.8 十 3.1 十 3.3)/4 2.8 平均带权周转时间W=(1十 2.8 十 6.2 十 11) 4=5.25 若采用短作业优先调度算法,则其调度顺序为1、4、3、2 平均周转时间为 T=
5、(2.0+1.8+2.4+3.6)/4=2.45 平均带权周转时间 W=(1 十 6 十 4.8 十 3.6)/4=3.85 4假设有四个作业,它们的提交、运行时间如下表所示。若采用高响应比优先调度算法,试问平均周转时间和平均带权周转时间为多少? ( 时间单位小时,以十进制进行计算。) 解:根据响应比的定义每次调度前计算出各作业的响应比,得到四个作业的调度次序为:作业 1、作业 3、作业 2、作业 4。平均周转时间为 T=(2.0十 2.3 十 1.6 十 2.O)/4=1.975 平均带权周转时间W=(1十 4.6 十 16 十 5)/4=6.65 5有一个具有两道作业的批处理系统,作业调度
6、采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法。在下表所示的作业序列,作业优先数即为进程优先数,且优先数越小优先级越高。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 18 页(1) 列出所有作业进入内存时间及结束时间(2) 计算平均周转时间。分析 : 在本题中, 每个作业的运行将经历两级调度:作业调度和进程调度。作业调度采用短作业优先调度算法,进程调度采用基于优先数的抢占式调度算法,高优先级的进程可以抢占系统处理机。只有当作业调度程序将作业装入内存后,方能参与进程调度。本题中的批处理系统是两道作业系统,因此每次只
7、能有两道作业进入系统内存。本题中的作业和进程推进顺序如下:10:00 时,A作业到达。因系统的后备作业队列中没有其他作业,进程就绪队列中也没有进程, 故作业调度程序将作业A调入内存并将它排在就绪队列上,进程调度程序调度它运行。10:20 时,B作业到达。因系统的后备作业队列中没有其他作业,故作业调度程序将作业 B调入内存并将它排在就绪队列上。而作业 B的优先级高于作业A的优先级, 进程调度程序停止作业A的运行,将作业A放入就绪队列,调度作业B运行。 此时,系统中已有两道作业在内存中运行,作业A已运行 20 分钟,还需运行20 分钟才能完成。10:30 时,C作业到达。因系统中已有两道作业在内存
8、中运行,故作业 C只能在后备作业队列中等待作业调度。此时, 作业 B已运行了10 分针并将继续运行,还需运行20 分钟才能完成,作业A已等待 10 分针并将继续等待、还需运行20 分钟才能完成。10:50 时, B作业运行 30 分钟结束运行,D作业到达。因系统中只有作业A在内存中运行,作业后备队列中有C、D两道作业,按短作业优先的作业调度策略,作业D被作业调度程序选中,装入内存运行,作业C仍在后备作业队列中等待作业调度。在内存中,作业A的优先级高于作业D ,进程调度程序调度作业A运行,作业D在就绪队列中等待进程调度。此时, 作业 A已运行了20 分钟, 在就绪队列中等待了30 分钟, 还需运
9、行20 分钟才能完成;作业 C已在后备队列中等待了20 分钟并将继续等待11:10 时, A作业运行 40 分针结束运行。因系统中只有作业D在内存中运行,作业后备队列中只有作业C在等待, 作业调度程序将作业C装入内存运行。 因作业 C的优先级高于作业 D,进程调度程序调度作业C运行,作业D仍在就绪队列中等待进程调度。此时作业D已在就绪队列中等待了20 分钟并将继续等待。12:00 时, C作业运行 50 分针结束运行。因系统中只有作业D在内存,进程调度程序调度作业D运行。12:20 时, D作业运行 20 分钟结束运行。解: (1) 由上述分析可得出所有作业的进入内存时间和结束时间:(2)各作
10、业执行时的周转时间为:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 18 页作业 A: 70 分钟作业 B: 30 分钟作业 c: 90 分钟作业 D: 90 分钟作业的平均周转时间为:(70 十 30 十 90 十 90)470 分钟。6. 已知 3 个批处理作业中: 第一个作业10.00 时到达,需要执行2 小时;第二个作业在10.1时到达,需要执行1 小时;第三个作业在10.5 小时到达,需要执行0.5 小时。如果分别采用如下的表1 和表 2 所示的两种作业调度算法。(1) 计算各调度算法下的作业平均周转时间:(2) 这两种调度
11、算法各可能是什么作业调度算法? 表 1 调度算法1 表 2 调度算法2 解: (1) 采用调度算法1 的作业运行情况如下表3 所示:表 3 采用调度算法1 的作业运行情况表采用调度算法2 的作业运行情况如下表4 所示:表 4 采用调度算法2 的作业运行情况表(2) 调度算法1 是按照作业到达的先后次序执行的,所以它是先来先服务调度算法。调度算法 2 满足短作业优先的调度原则,所以它属于短作业优先调度算法。此外, 从响应比高者优先调度算法来看,当作业1 在 12.0 完成时,作业2 和作业 3 的响应比如下:作业2 的响应比 1+1.9/1 2.9 ,作业 3 的响应比 1+1.5/0.54 也
12、即,调度算法2 也可能是响应比高者优先调度算法。7有三个进程P1,P2 和 P3并发工作。进程P1需用资源S3 和 S1;进程 P2 需用资源 S1 和 S2;进程 P3需用资源S2和 S3。回答:(1) 若对资源分配不加限制,会发生什么情况?为什么 ? (2) 为保证进程正确工作,应采用怎样的资源分配策略?为什么 ? 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 18 页答: (1) 可能会发生死锁例如: 进程 P1,P2和 P3分别获得资源S3,S1 和 S2后再继续申请资源时都要等待,这是循环等待。 ( 或进程在等待新源时均不释
13、放已占资源) (2) 可有几种答案:A采用静态分配由于执行前已获得所需的全部资源,故不会出现占有资源又等待别的资源的现象 (或不会出现循环等待资源现象) 。或 B.采用按序分配不会出现循环等待资源现象。或 C.采用银行家算法因为在分配时,保证了系统处于安全状态。8设系统有三种类型的资源,数量为(4, 2,2) ,系统中有进程A,B, C 按如下顺序请求资源:进程 A申请 (3 ,2,1) 进程 B申请 (1 ,0,1) 进程 A申请 (0 ,1,0) 进程 C申请 (2 ,0,0) 请你给出一种防止死锁的资源剥夺分配策略,完成上述请求序列,并列出资源分配过程,指明哪些进程需要等待,哪些资源被剥
14、夺。解: 分配策略为: 当进程 Pi 申请 ri 类资源时, 检查 ri中有无可分配的资源,有则分配给 Pi ;否则将Pi 占有的资源全部释放而进入等待状态。(Pi 等待原占有的所有资源和新申请的资源 ) 资源分配过程:剩余资源进程 A: (3,2, 1) (1,0,1) 进程 B: (1,0, 1) (0,0,0) 进程 C: (2,0, 0) (1,2,1) 进程 A:(0 ,1,0)( 不满足 )(3 ,2,1) ,A的所有资源被剥夺,A处于等待, C ,B完成之后, A可完成。9某系统中有10 台打印机,有三个进程P1,P2,P3分别需要8 台, 7 台和 4 台。若 P1,P2,P3
15、已申请到4 台, 2 台和 2 台。试问:按银行家算法能安全分配吗?请说明分配过程。答:系统能为进程P3分配二台打印机。因为尽管此时10 台打印机已分配给进程P14 台,P22 台和 P34 台,全部分配完,但P3已分配到所需要的全部4 台打印机,它不会对打印机再提出申请,所以它能顺利运行下去,能释放占用的4 台打印机,使进程P1,P2均可能获得乘余的要求4 台和 5 台,按银行家算法是安全的。10在生产者消费者问题中,如果对调生产者进程中的两个P 操作和两个V 操作,则可能发生什么情况? 解:如果对调生产者进程中的两个P 操作和两个v 操作,则生产者消费者问题的同步描述为:int full=
16、0; int empty =n; int mutex=1; main ( ) cobegin producer ( ); consumer ( ); coend 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 18 页 producer ( ) while (生产未完成 ) 生产一个产品;p(mutex); p(empty); 送一个产品到有界缓冲区;v(full); v(mutex); consumer ( ) while(还要继续消费) p(full); p(mutex); 从有界缓冲区中取产品; v(mutex); v(empty
17、); 消费一个产品; 由于 V操作是释放资源,因此对调V操作的次序无关紧要。而对调 P操作的次序则可能导致死锁。 这是因为对调P操作后, 有可能出现这样一种特殊情况:在某一时刻缓冲区中己装满了产品且缓冲区中无进程工作( 这时信号量full的值为 n,信号量empty 的值为 0,信号量 mutex 的值为 1),若系统此时调度生产者进程运行,生产者进程又生产了一个产品,它执行 P(mutex) 并顺利进入临界区( 这时 mutex 值为 0) ,随后它执行p(empty) 时因没有空闲缓冲单元而受阻等待,等待消费者进程进入缓冲区取走产品以释放出缓冲单元;消费者进程执行 p(full)后再执行p
18、(mutex) 时,因缓冲区被生产者进程占据而无法进入。这样就形成了生产者进程在占有临界资源的情况下,等待消费者进程取走产品,而消费者进程又无法进入临界区取走产品的僵局,此时两进程陷入死锁。11 n 个进程共享某种资源R,该资源共有m个可分配单位,每个进程一次一个地申请或释放资源单位。 假设每个进程对该资源的最大需求量均小于m ,且各进程最大需求量之和小于m十 n,试证明在这个系统中不可能发生死锁。解:设 max(i) 表示第 i 个进程的最大资源需求量,need(i)表示第 i 个进程还需要的资源量, alloc(i)表示第 i 个进程己分配的资源量。由题中所给条件可知:max(1)+max
19、(2)+ max(n)=(need(1)+need(n)+(alloc(1)+alloc(n)m+n 如果在这个系统中发生了死锁,那么一方面m个资源应该全部分配出去,即alloc(1)+ +alloc(n)=m 另一方面所有进程将陷入无限等待状态。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 18 页由上述两式可得:need(1)+ +need(n)n 上式表示死锁发生后,n 个进程还需要的资源量之和小于n,这意味着此刻至少存在一个进程 i ,need(i)0,即它己获得了所需要的全部资源。既然该进程已获得了它所需要的全部资源, 那么
20、它就能执行完成并释放它占有的资源,这与前面的假设矛盾,从而证明在这个系统中不可能发生死锁。12在银行家算法中,若出现下述资源分配情况:试问: (1) 该状态是否安全? (2)如果进程P2 提出请求Request2(1 ,2,2,2) 后,系统能否将资源分配给它? 解: (1) 利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的安全性分析情况:从上述分析中可以看出,此时存在一个安全序列P0, P3,P4,P1,P2,故该状态是安全的。(2)P2 提出请求Request2 (1 , 2,2,2) ,按银行家算法进行检查:Request2(1 ,2,2, 2) Need2(2, 3, 5,
21、6) Request2(1 ,2,2, 2) Available(1, 6, 2, 2) 试分配并修改相应的数据结构,资源分配情况如下:再利用安全性算法检查系统是否安全,可用资源Available (0,4,0, 0)己不能满足任何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P2。13有相同类型的5 个资源被4 个进程所共享,且每个进程最多需要2 个这样的资源就可以运行完毕。试问该系统是否会由于对这种资源的竞争而产生死锁。答:该系统不会由于对这种资源的竞争而产生死锁。因为在最坏情况下,每个进程都需要 2 个这样的资源,且每个进程都已申请到了1 个资源,那么系统中还剩下1 个可用资
22、源。无论系统为了满足哪个进程的资源申请而将资源分配给该进程,都会因为该进程已获精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 18 页得了它所需要的全部资源而确保它运行完毕,从而可将它占有的2 个资源归还给系统,这就保证了其余三个进程能顺利运行。由此可知,该系统不会由于对这种资源的竞争而产生死锁。14考虑下列资源分配策略:对资源的申请和释放可以在任何时候进行。如果一个进程提出资源请求时得不到满足,若此时无由于等待资源而被阻塞的进程,则自己就被阻塞;若此时已有等待资源而被阻塞的进程,则检查所有由于等待资源而被阻塞的进程。如果它们有申请进程
23、所需要的资源,则将这些资源取出分配给申请进程。例如, 考虑一个有3 类资源的系统, 系统所有可用资源为(4 ,2,2) ,进程 A申请 (2 ,2,1),可满足;进程B申请 (1,0,1) ,可满足;若A再申请 (0 ,0,1) ,则被阻塞。此时,若C请求 (2 ,0,0) ,它可以分到剩余资源(1 ,0,0) ,并从 A已分到的资源中获得一个资源,于是进程A的分配向量变成(1 ,2,1) 而需求向量变成(1 ,0,1) 。这种分配策略会导致死锁吗?如果会,请举一个例子;如果不会,请说明产生死锁的哪一个必要条件不成立。这种分配方式会导致某些进程的无限等待吗?为什么 ? 解:本题所给的资源分配策
24、略不会产生死锁。因为本题给出的分配策略规定若一进程的资源得不到满足,则检查所有由于等待资源而被阻塞的进程,如果它们有申请进程所需要的资源,则将这些资源取出分配给申请进程。从而破坏了产生死锁必要条件中的不剥夺条件,这样系统就不会产生死锁。这种方法会导致某些进程无限期的等待。因为被阻塞进程的资源可以被剥夺,所以被阻塞进程所拥有的资源数量在其被唤醒之前只可能减少。若系统中不断出现其他进程申请资源,这些进程申请的资源与被阻塞进程申请或拥有的资源类型相同且不被阻塞,则系统无法保证被阻塞进程一定能获得所需要的全部资源。例如,本题中的进程A申请 (2 ,2,1)后再申请 (0 ,0,1)被阻塞。此后,进程C
25、又剥夺了进程A的一个资源,使得进程A拥有的资源变为 (1 ,2,1),其需求向量为(1 ,0, 1) 。之后,若再创建的进程总是只申请第1和第 3 类资源, 总是占有系统所剩下的第1 和第 3 类资源的全部且不阻塞,那么进程A将会无限期地等待。15一台计算机有8 台磁带机。它们由N个进程竞争使用,每个进程可能需要3 台磁带机。请问 N为多少时,系统没有死锁危险,并说明原因。解:当 N为 1,2,3 时,系统没有产生死锁的危险。因为,当系统中只有1 个进程时,它最多需要3 台磁带机, 而系统有8台磁带机, 其资源数目足够系统内的1 个进程使用, 因此绝不可能发生死锁:当系统中有2 个进程时, 最
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年操作系统复习应用题 2022 操作系统 复习 应用题
限制150内