计算机操作系统典型例题解析之三

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1计算机操作系统典型例题解析之三【例1】分配到必要的资源并获得处理机时的进程状态是(B)。A、就绪状态B、执行状态C、阻塞状态D、新状态分析:进程有三种基本状态:就绪状态、执行状态和阻塞状态。当进程已分配到除CPU以外的所有必要的资源后,只要能再获得处理机便可立即执行,这时的状态称为就绪状态;处于就绪状态的进程如果获得了处理机,其状态转换为执行状态;进程因发生某种事件(如I/O请求、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种状态为阻塞状态;而新状态是指创建了进程但尚未把它插入到就绪队列前的状态。所以本题的答案是B。【例2】挂起的进程被激活,应该使用(C)原语。A、CreateB、SuspendC、ActiveD、Wakeup分析:在不少系统中,进程除了三种基本状态外,又增加了一些新的状态,其中最重要的是挂起状态。“挂起”的实质是使进程不能继续执行,即使挂起后的进程处于就绪状态,它也不能参加对CPU的竞争,进程的挂起调用Suspend()原语。因此,被挂起的进程处于静止状态,相反,没有挂起的进程则处于活动状态。而且,处于静止状态的进程,只有通过“激活”动作,调用Active()原语,才能转换成活动状态,调入内存。所以本题的答案是C。【例3】任何时刻总是让具有最高优先数的进程占用处理器,此时采用的进程调度算法是(D)。A非抢占式的优先数调度算法B、时间片轮转调度算法C、先来先服务调度算法D、抢占式的优先2数调度算法分析:“让具有最高优先数的进程占用处理器”,我们可以知道,采用的进程调度算法是优先数调度算法,但是我们还要进一步分析是抢占式的还是非抢占式的。“任何时刻总让”,通过这句话我们知道采用的是抢占式的,所以本题的答案是D。【例4】若P、V操作的信号量S初值为2,当前值为-1,则表示有(B)等待进程。A、0个B、1个C、2个D、3个分析:信号量的初始值表示系统中资源的数目,每次的Wait操作意味着进程请求一个单位的资源,信号量进行减1的操作,当信号量小于0时,表示资源已分配完毕,进程自我阻塞。因此,如果信号量小于0,那么信号量的绝对值就代表当前阻塞进程的个数。所以本题的答案是B。【例5】发生死锁的必要条件有四个,要预防死锁的发生,可以破坏这四个必要条件,但破坏(A)条件是不太实际的。A、互斥B、请求和保C、不剥夺D、环路等待分析:预防死锁是指通过破坏死锁的某个必要条件来防止死锁的发生。四个必要条件中,后三个条件都可以被破坏,而第一个条件,即“互斥”条件,对某些像打印机这样的设备,可通过SPOOLing技术予以破坏,但其他资源,因受它们的固有特性的限制,该条件不仅不能被破坏,反而应加以保证。所以本题的答案是A。【例6】有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是1至1-m。3分析:采用信号量机制实现m个进程对临界资源的互斥访问,信号量的初始值为1,也是该信号量的最大值。如果有进程要访问临界资源,那么执行Wait()操作,信号量减1,考虑极端情况,m个进程都要求访问临界资源,信号量将执行m个减1操作,因此信号量的最小值为1-m。所以本题的答案是1至1-m。【例7】在一个单处理机系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程最多有4、0个,最少有个。分析:因为是单处理机系统,所以一个时刻只有一个进程处于执行状态,能占据处理机运行。所以,5个用户进程,处于就绪状态的进程最多有4个。最少时有0个就绪状态的进程,此时有两种情况:一、4个进程处于阻塞状态,1个处于执行状态,二、5个进程都处于阻塞状态。所以本题的答案是:4、0。【例8】在引入线程的操作系统中,独立调度和分派的基本单位是线程,资源分配的单位是进程。分析:引入线程的目的是为了进一步提高系统的并发程度,有效地提高系统的性能。在引入线程的操作系统中,线程是调度和分派的单位,而无论是否引入了线程,进程都是资源分配的单位。所以本题的答案是:线程、进程。【例9】试比较进程与程序的异同。答:进程和程序是紧密相关而又完全不同的概念。(1)每个进程实体中包含了程序段、数据段这两个部分,因此说进程和程序是紧密相关的。但从结构上看,进程实体中除了程序段和4数据段外,还必须包含一个数据结构,即进程控制块PCB。(2)进程是程序的一次执行过程,因此是动态的;动态性还表现在进程由创建产生、由调度而执行、由撤销而消亡,即它具有一定的生命周期。而程序则只是一组指令的有序集合,并可永久地存放在某种介质上,其本身不具有动态的含义,因此是静态的。(3)多个进程实体可同时存放在内存中并发执行,其实这正是引入进程的目的。而程序的并发执行具有不可再现性,因此程序不能正确地并发执行。(4)进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。而因程序不具有PCB,所以它是不可能在多道程序环境下独立运行的。(5)进程和程序不一一对应。同一个程序的多次运行,将形成多个不同的进程;同一个程序的一次执行也可以产生多个进程;而一个进程也可以执行多个程序。【例10】什么是进程控制块?它有什么作用?答:进程控制块PCB是一个记录进程属性信息的数据结构,是进程实体的一部分,是操作系统中最重要的数据结构。当操作系统要调度某进程执行时,需要从该进程的PCB中查询其现行状态和优先级调度参数;在调度到某进程后,要根据其PCB中保存的处理机状态信息去设置和恢复进程运行的现场,并根据其PCB中的程序和数据的内存地址来找到其程序和数据;进程在执行过程中,当需要与其它进程通信时,也要访问其PCB;当进程因某种原因5而暂停执行时,又需要将断点的现场信息保存在其PCB中。系统在建立进程的同时就建立了该进程的PCB,在撤销一个进程时也就撤销其PCB。由此可知,操作系统根据PCB来对并发执行的进程进行控制和管理,PCB是进程存在的惟一标志。【例11】什么是原语?答:原语是由若干条机器指令构成的一段程序,用以完成特定的功能。这段程序在执行期间不可分割。也就是说,原语的执行不能被中断,所以原语操作具有原子性。【例12】进程和线程的主要区别是什么?答:从调度、并发性、系统开销、拥有资源等方面来比较线程和进程:⑴调度。在传统的操作系统中,独立调度、分派的基本单位是进程。而在引入线程的操作系统中,则把线程作为调度和分派的基本单位。⑵并发性。在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。⑶拥有资源。不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位,它可以拥有自己的资源。一般地说,线程自己不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源。⑷系统开销。由于在创建、撤销或切换进程时,系统都要为之分配或回收资源,保存CPU现场。因此,操作系统所付出的开销将显著地大于在创建、撤销或切换线程时的开销。【例13】有4个进程P1,P2,P3,P4,它们进入就绪队列的先后6次序为P1、P2、P3、P4,它们的优先数和需要的处理器时间如下表所示。假定这四个进程执行过程中不会发生等待事件,忽略进行调度等所花费的时间,从某个时刻开始进程调度,请回答下列问题:①写出分别采用“先来先服务”调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及的平均等待时间;②写出分别采用“非抢占式的优先数”(固定优先数)调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间;③写出分别采用“时间片轮转”(时间片大小为5)调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间。进程处理器时间优先数P183P261P3225P444分析:先来先服务算法是把处理机分配给最先进入就绪队列的进程,并且一个进程一旦分得了处理机,便一直执行下去,直到该进程完成或因发生某事件而阻塞时,才释放处理机;非抢占式优先数(优先级)调度算法将CPU分配给就绪队列中优先级最高的进程,就算进程在运行过程中,有更高优先数的进程进入,也要等待运行完毕或阻塞再释放处理机;时间片轮转算法中每个进程轮流运行一个时间片的时间,7如果在一个时间片的时间内没有运行完毕,则进入就绪队列,等待下一个时间片继续运行。答:先来先服务算法选择进程的顺序依次为P1、P2、P3、P4。进程P1等待时间为0;进程P2等待时间为8;进程P3等待时间为8+6=14;进程P4等待时间为8+6+22=36。平均等待时间为(0+8+14+36)/4=14.5非抢占式的优先数算法选择进程的顺序依次为P3、P4、P1、P2。进程P1等待时间为4+22=26;进程P2等待时间为22+4+8=34;进程P3等待时间为0;进程P4等待时间为22。平均等待时间为(26+34+0+22)/4=20.5时间片轮转进程调度顺序为P1、P2、P3、P4、P1、P2、P3、P3、P3、P3。进程P1等待两次,时间为0+(5+5+4)=14;进程P2等待两次,时间为5+(5+4+3)=17;进程P3等待两次,时间为(5+5)+(4+3+1)=18;进程P4等待1次,时间为5+5+5=15。平均等待时间为(14+17+18+15)/4=16【例14】图3-3给出了四个进程合作完成某一任务的前驱图,试说明这四个进程的同步关系,并用信号量描述它。图3-3四个合作进程的前驱图分析:图3-3说明任务启动后S1先执行,当S1结束后,S2、S3可以开始执行,S2、S3执行完成后,S4才可以开始执行。为了确保这S1S2S3S48一执行顺序,设4个同步信号量a、b、c、d分别表示S1-S2、S1-S3、S2-S3、S2-S4的前驱关系,初始值均为0。利用信号量的Wait()和Signal()操作来实现同步。答:。Main(){Semaphorea=b=c=d=0;Cobegin{{S1;signal(a);signal(b);}{wait(a);S2;signal(c);}{wait(b);S3;signal(d);}{wait(c);wait(d);S4;}【例15】a,b两点之间是一段东西向的单行车道,现要设计一个自动管理系统,管理规则如下:当ab之间有车辆在行驶时同方向的车可以同时驶入ab段,但另一方向的车必须在ab段外等待;当ab之间无车辆在行驶时,到达a点(或b点)的车辆可以进入ab段,但不能从a点和b点同时驶入,当某方向在ab段行驶的车辆驶出了ab段且暂无车辆进入ab段时,应让另一方向等待的车辆进入ab段行驶。请用信号量为工具,对ab段实现正确管理以保证行驶安全。分析:此题是读者-写着问题的变形。我们设置3个信号量S1、S2和Sab,分别用于从a点进入的车互斥访问共享变量ab(用于记录当前ab段上由a点进入的车辆的数量),从b点进入的车互斥访问共享变量ba(用于记录当前ab段上由b点进入的车辆的数量)和a、b点的车辆互斥进入ab段。3个信号量的初值分别为1、1和1,两个共享变量ab和ba的初值分别为0、0。答:SemaphoreS1=1,S2=1,Sab=1;intab=ba=0;voidPab()9{while(1){wait(S1);if(ab==0)wait(Sab);ab=ab+1;signal(S1);车辆从a点驶向b点wait(S1);ab=ab-1;if(ab==0)signal(Sab);signal(S1);}}voidPb(){while(1){wait(S2);if(ba==0)wait(Sab);ba=ba+1;signal(S2);车辆从b点驶向a点;wait(S2);ba=ba-1;if(ba==0)signal(Sab)signal(S2);main(){cobegin{Pab();Pba();}}【例16】在公共汽车上,司机和售票员的工作流程如图3-4所示。为保证乘客的安全,司机和售票员应密切配合协调工作。请用信号量来实现司

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功