一、选择题1.在进程的组成部分之中,进程在运行中不可修改的部分是______。A.私用程序段B.共享程序段C.数据段D.进程控制块2.响应比高者优先作业调度算法是以计算时间和______来考虑的。A.输入时间B.完成时间C.周转时间D.等待时间3.在消息缓冲通信中,消息队列属于______资源。A.临界B.共享C.永久D.可剥夺4.进程间的同步是指进程间在逻辑上的相互______关系。A.联接B.制约C.继续D.调用5.最适合于分时系统的进程调度算法是______。A.先来先服务(FCFS)B.最短作业优先(SSJF)C.优先数法D.轮转法(RR)6.进程A和进程B通过共享缓冲区协作完成数据处理,进程A负责生产数据并放入缓冲区,进程B从缓冲区中读数据并输出。进程A和进程B之间的关系是______。A.互斥关系B.同步关系C.互斥和同步D.无制约关系7.在优先级调度中,______类进程可能被“饿死”,即长时间得不到调度。A.短进程B.长进程C.低优先级进程D.大内存进程8.进程从运行状态到阻塞状态可能是由于______。A.进程调度程序的调度B.现运行进程的时间片耗尽C.现运行进程执行了wait操作D.现运行进程执行了signal操作9.银行家算法在解决死锁问题中是用于______的。A.预防死锁B.避免死锁C.检测死锁D.解除死锁10.______不是进程调度算法。A.时间片轮转法B.先来先服务方法C.响应比高者优先法D.均衡调度算法11.下面关于线程的叙述中正确的是______。A.线程包含CPU现场,可以独立执行程序B.每个线程有自己独立的地址空间C.线程之间的通信必须使用系统调用函数D.进程只能包含一个线程12.并发进程之间______。A.彼此无关B.必须同步C.必须互斥D.可能需要同步或互斥13.当一个进程运行时,系统可能基于某种原则强行将其撤下,把处理器分配给其他进程,这种调度方式是______。A.非剥夺方式B.剥夺方式C.中断方式D.查询方式14.信号量S不能用于______操作。A.signalB.waitC.赋初值D.运算表达式15.______是一种只能进行wait操作和signal操作的特殊变量A.调度B.进程C.同步D.信号量16.分配给进程占用处理机的时间到而强迫进程P让出处理器,或有更高优先级的进程要运行,迫使正在运行的进程P让出处理器,则进程P状态变化的情况为______A.运行态-就绪态B.运行态-等待态C.就绪态-运行态D.等待态-就绪态17.下面关于进程的叙述中正确的是______。A.进程获得CPU运行是通过调度得到的B.优先级是进程调度的重要依据,一旦确定就不能改变C.在单CPU的系统中,任何时刻都有一个进程处于运行状态D.进程申请CPU得不到满足时,其状态变为阻塞B.错误优先级是可以动态改变的。C.错误没进程的时候,系统可以空闲。D.错误变为就绪态。18.操作系统通过______对进程进行管理。A.进程B.进程控制块C.进程启动程序D.进程控制区19.若一个进程拥有100个线程,这些线程属于用户级线程,它们在系统调度执行时间上占用的时间片个数是______。A.1B.100C.1/100D.0本题主要考查关于进程和线程之间资源共享的知识点。在引入线程的操作系统中,线程是进程中的一个实体,是系统独立调度和分派的基本单位。但是线程自己基本上不拥有系统资源,所以它不是资源分配的基本单位,它只拥有一部分在运行中必不可少的与处理机相关的资源,如线程状态、寄存器上下文和栈等,它同样有就绪、阻塞和执行三种基本状态。它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。由于用户线程不依赖于操作系统内核,因此,操作系统内核是不知道用户线程的存在的,用户线程是由用户来管理和调度的,用户利用线程库提供的API来创建、同步、调度和管理线程。所以,用户线程的调度在用户程序内部进行,通常采用非抢先式和更简单的规则,也无须用户态和核心态切换,所以速度很快。由于操作系统不知道用户线程的存在,所以,操作系统把CPU的时间片分配给用户进程,再由用户进程的管理器将时间分配给用户线程。那么,用户进程能得到的时间片即为所有用户线程共享。因此,正确答案应为A。20.解除死锁通常不采用的方法是______。A.终止一个死锁进程B.终止所有死锁进程C.从死锁进程处抢夺资源D.从非死锁进程处抢夺资源21.到其他3种状态的进程状态是______。A.就绪B.阻塞C.完成D.执行22.信号量的初值为2,当前值为-3,则表示等待进程有______。A.1个B.2个C.3个D.5个若信号量为正,则表示资源数;若信号量为负,则表示等待的进程数23.wait操作可能导致______。A.进程就绪B.进程结束C.进程阻塞(等待)D.新进程创建24.在操作系统中为避免系统的死锁采用______。A.银行家算法B.破坏占有并等待条件C.死锁检测和恢复D.破坏非剥夺条件25.下列的进程状态变化中不可能发生的变化是______。A.等待→运行B.运行→等待C.运行→就绪D.等待→就绪26.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为______。A.3B.1C.2D.027.进程之间交换数据不能通过______途径进行。A.共享文件B.消息传递C.访问进程地址空间D.访问共享存储区域28.进程控制块PCB不包括的内容是______。A.CPU现场B.进程优先级C.进程运行状态D.文件缓冲区29.PCB是描述进程状态和特性的数据结构,一个进程______。A.可以有多个PCBB.可以和其他进程共用一个PCBC.可以没有PCBD.只能有唯一的PCB30.资源顺序分配法破坏了死锁发生的______必要条件。A.互斥占用B.占有等待C.非剥夺D.循环等待解析:发生死锁的四个必要条件如下:互斥条件、占有并请求资源、非剥夺条件和循环等待条件。一次分配所有资源的方法是当进程需要资源时,一次性提出所有的请求,若请求的所有资源均满足则分配,只要有一项不满足,那么不分配任何资源,该进程阻塞,直到所有的资源空闲后,满足了进程的所有需求时再分配。这种分配方法不会部分占有资源,所以就打破了死锁的四个必要条件之一,实现了对死锁的预防。但是,这种分配方式需要凑齐所有资源,所以,当一个进程所需的资源比较多时,资源的利用率会比较低,甚至会造成进程的饥饿。正确答案为B。31.进程和程序的本质区别是______。A.内存和外存B.动态和静态特征C.共享和独占使用计算机资源D.顺序和非顺序执行指令32.设有两个进程共享3个同类资源,为使系统不死锁,每个进程最多可以申请______资源。A.0B.1C.2D.333.作业调度中的先来先服务算法是以______为出发点考虑的。A.作业执行时间B.作业的周转时间C.作业等待时间D.等待时间加运行时同34.设m为同类资源数,n为系统中的并发进程数。当n个进程共享m个互斥资源时,每个进程的最大需求是w。下列情况下,系统会死锁的是______。A.m=2,n=l,w=2B.m=2,n=2,w=1C.m=4,n=3,W=2D.m=4,n=2,w=3当2个进程已经拥有2个资源,都申请第3个资源时,导致死锁。35.用于解决进程间互斥的方法是______。①信号量及wait、signal操作②加锁与解锁③信箱方式④消息缓冲方式⑤特权指令方式A.③、④和⑤B.①和②C.①和③D.②和⑤36.在操作系统中,每个进程具有独立性,进程之间又具有相互制约性。对于任何两个并发进程,它们______。A.必定无关B.必定相关C.可能相关D.可能相同二、简答题1.什么是线程?进程和线程的关系是什么?2.进程能自己将自己唤醒吗?进程能自己将自己撤销吗?3.父进程创建子进程之后,父子进程间的关系是什么?4.简述引进线程的好处。5.当一个进程的父进程被撤销时,该进程是撤销好还是不撤销好?6.为什么说进程同步问题关系到OS的成败?同步机制应遵循的准则是什么?7.进程之间存在哪几种相互制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系?(1)若干同学去图书馆借书。(2)两队举行篮球比赛。(3)流水线生产的各道工序。(4)商品生产和消费。8.高级调度和低级调度的主要任务是什么?为什么引入中级调度?9.在剥夺调度中,有哪些剥夺原则?10.引起进程调度的主要因素。11.何为死锁?产生死锁的原因和必要条件是什么?比较三种解决死锁的方法?12.试比较说明进程和程序的区别有哪些?三、应用题1.有一个理发师,一把理发椅和n把供等候理发的顾客坐的椅子。如果没有顾客,则理发师便在理发椅子上睡觉;当一个顾客到来时,必须唤醒理发师,进行理发;如果理发师正在理发时,又有顾客来到,则如果有空椅子可坐,他就坐下来等,如果没有空椅子,他就离开。为理发师和顾客各编一段程序描述他们的行为,要求不能带有竞争条件。2.计算进程PC和打印进程P01、P02共享一个单缓冲区,计算进程负责计算,并把计算结果放入单缓冲中;打印进程P01、P02则负责从单缓冲中取出计算结果进行打印,而且对每个计算结果,P01和P02都需分别打印一次。请用记录型信号量描述上述进程间的同步关系。3.设有三个进程,输入进程(input)、计算进程(compute)和输出进程(output),它们通过共享两个缓冲区buf1和buf2协作完成任务。如下图所示输入进程计算进程输出进程buf1buf2三个进程之间的合作关系如下:(1)输入进程使用put()函数把数据送到buf1,供计算进程调用calculate()函数计算;(2)计算进程每次调用get()函数从buf1取出已输入的可计算的数据进行计算,并把计算结果使用put()函数把数据送到buf2送入buf供输出进程打印;(3)输出进程调用get()函数把buf2中的数据使用print()函数输出。定义合适的信号量,并用伪代码完成实现过程。4.设系统中有三类资源A、B和C,又设系统中有5个进程P1,P2,P3,P4和P5。在T0时刻系统状态如下:最大需求量已分配资源量剩余资源量ABCABCABCP1P2P3P4P51210003163175100235135064002065001(1)系统是否处于安全状态?(请给出详细的判断过程)如是,则给出进程安全序列。(2)如果进程P5申请1个资源类A和1个资源类C,能否实施分配?为什么?5.设有五道作业,它们的提交时间和运行时间见下表,试给出在如下表所示的三种调度算法下,作业的执行顺序,以及平均周转时间和带权平均周转时间:(1)先来先服务调度算法;(2)短作业优先调度算法;(3)响应比高优先调度算法。作业提交和运行时间表作业名提交时间/h需执行时间/hJ110.10.8J210.30.5J310.50.4J410.60.3J510.70.26.假设系统有同类资源10个,供P,Q、R三个进程共享,P、Q、R所需资源总数分别为8、4、9,它们申请资源的次序和数量如下表所示。进程资源申请表次序进程申请量123456…RPQPRQ…242212…按银行家算法为它们分配资源:(1)写出执行完序号为6的申请时,各进程的状态和已占的资源数。(2)请估计系统是否会出现死锁,并简要说明理由。7.下面给出的两个进程互斥的算法是安全的吗?为什么?#definetrue;#definefalse;Intflag[2];flag[1]=flag[2]=false;enter-crtsec(i)inti;{While(flag[1-i])flag[i]=true;}leave-crtsec(i)Inti;{flag[i]=false;}processI;…Enter-crtsec(i);Incriticalsection;Leave-crtsec(i);8.设系统有三种类型的资源,数量为(4,2,2),系统中有进程A,B,C按如下顺序请求资源:进