计算机操作系统作业2含答案全解.doc

上传人:h**** 文档编号:1134925 上传时间:2018-12-11 格式:DOC 页数:15 大小:152.50KB
下载 相关 举报
计算机操作系统作业2含答案全解.doc_第1页
第1页 / 共15页
计算机操作系统作业2含答案全解.doc_第2页
第2页 / 共15页
计算机操作系统作业2含答案全解.doc_第3页
第3页 / 共15页
计算机操作系统作业2含答案全解.doc_第4页
第4页 / 共15页
计算机操作系统作业2含答案全解.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、一、选择题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 负责生产数据并放入缓冲区,进

2、程 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下面关于线程的叙述中

3、正确的是_。A线程包含 CPU 现场,可以独立执行程序 B每个线程有自己独立的地址空间C线程之间的通信必须使用系统调用函数 D进程只能包含一个线程12并发进程之间_。A彼此无关 B必须同步 C必须互斥 D可能需要同步或互斥13当一个进程运行时,系统可能基于某种原则强行将其撤下,把处理器分配给其他进程,这种调度方式是_。A非剥夺方式 B剥夺方式 C中断方式 D查询方式14信号量 S 不能用于_操作。Asignal Bwait C赋初值 D运算表达式15_是一种只能进行 wait 操作和 signal 操作的特殊变量 A 调度 B 进程 C 同步 D 信号量16分配给进程占用处理机的时间到而强迫进

4、程 P 让出处理器,或有更高优先级的进程要运行,迫使正在运行的进程 P 让出处理器,则进程 P 状态变化的情况为_ A 运行态就绪态 B 运行态等待态C 就绪态 运行态 D 等待态就绪态17下面关于进程的叙述中正确的是_。A进程获得 CPU 运行是通过调度得到的B优先级是进程调度的重要依据,一旦确定就不能改变C在单 CPU 的系统中,任何时刻都有一个进程处于运行状态D进程申请 CPU 得不到满足时,其状态变为阻塞B.错误优先级是可以动态改变的。 C.错误没进程的时候,系统可以空闲。 D.错误变为就绪态。18操作系统通过_对进程进行管理。A 进程 B 进程控制块 C 进程启动程序 D 进程控制区

5、19. 若一个进程拥有 100 个线程,这些线程属于用户级线程,它们在系统调度执行时间上占用的时间片个数是_。A1 B100 C1/100 D0本题主要考查关于进程和线程之间资源共享的知识点。在引入线程的操作系统中,线程是进程中的一个实体,是系统独立调度和分派的基本单位。但是线程自己基本上不拥有系统资源,所以它不是资源分配的基本单位,它只拥有一部分在运行中必不可少的与处理机相关的资源,如线程状态、寄存器上下文和栈等,它同样有就绪、阻塞和执行三种基本状态。它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。由于用户线程不

6、依赖于操作系统内核,因此,操作系统内核是不知道用户线程的存在的,用户线程是由用户来管理和调度的,用户利用线程库提供的 API 来创建、同步、调度和管理线程。所以,用户线程的调度在用户程序内部进行,通常采用非抢先式和更简单的规则,也无须用户态和核心态切换,所以速度很快。由于操作系统不知道用户线程的存在,所以,操作系统把 CPU 的时间片分配给用户进程,再由用户进程的管理器将时间分配给用户线程。那么,用户进程能得到的时间片即为所有用户线程共享。因此,正确答案应为 A。20. 解除死锁通常不采用的方法是_。A终止一个死锁进程 B终止所有死锁进程 C从死锁进程处抢夺资源 D从非死锁进程处抢夺资源21.

7、 到其他 3 种状态的进程状态是_。A就绪 B阻塞 C完成 D执行22信号量的初值为 2,当前值为-3,则表示等待进程有_。A1 个 B2 个 C3 个 D5 个若信号量为正,则表示资源数;若信号量为负,则表示等待的进程数23wait 操作可能导致_。A进程就绪 B进程结束 C进程阻塞(等待) D新进程创建24在操作系统中为避免系统的死锁采用_。A银行家算法 B破坏占有并等待条件C死锁检测和恢复 D破坏非剥夺条件25下列的进程状态变化中不可能发生的变化是_。A等待运行 B运行等待 C运行就绪 D等待就绪26如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置

8、为_。A 3 B 1 C 2 D 027进程之间交换数据不能通过_途径进行。A共享文件 B消息传递 C访问进程地址空间 D访问共享存储区域28进程控制块 PCB 不包括的内容是 _。ACPU 现场 B进程优先级 C进程运行状态 D文件缓冲区29PCB 是描述进程状态和特性的数据结构,一个进程 _。A可以有多个 PCB B可以和其他进程共用一个 PCBC可以没有 PCB D只能有唯一的 PCB30资源顺序分配法破坏了死锁发生的_必要条件。A互斥占用 B占有等待 C非剥夺 D循环等待解析:发生死锁的四个必要条件如下:互斥条件、占有并请求资源、非剥夺条件和循环等待条件。一次分配所有资源的方法是当进程

9、需要资源时,一次性提出所有的请求,若请求的所有资源均满足则分配,只要有一项不满足,那么不分配任何资源,该进程阻塞,直到所有的资源空闲后,满足了进程的所有需求时再分配。这种分配方法不会部分占有资源,所以就打破了死锁的四个必要条件之一,实现了对死锁的预防。但是,这种分配方式需要凑齐所有资源,所以,当一个进程所需的资源比较多时,资源的利用率会比较低,甚至会造成进程的饥饿。正确答案为 B。31进程和程序的本质区别是_。A内存和外存 B动态和静态特征 C共享和独占使用计算机资源 D顺序和非顺序执行指令32设有两个进程共享 3 个同类资源,为使系统不死锁,每个进程最多可以申请_资源。A 0 B 1 C 2

10、 D 333作业调度中的先来先服务算法是以_为出发点考虑的。A 作业执行时间 B 作业的周转时间C 作业等待时间 D 等待时间加运行时同34设 m 为同类资源数,n 为系统中的并发进程数。当 n 个进程共享 m 个互斥资源时,每个进程的最大需求是 w。下列情况下,系统会死锁的是_。A m=2,n=l,w=2 B m=2,n=2,w=1C m=4,n=3,W=2 D m=4,n=2,w=3当 2 个进程已经拥有 2 个资源,都申请第 3 个资源时,导致死锁。35用于解决进程间互斥的方法是_。 信号量及 wait、signal 操作 加锁与解锁 信箱方式 消息缓冲方式 特权指令方式A、和 B和 C

11、和 D和36在操作系统中,每个进程具有独立性,进程之间又具有相互制约性。对于任何两个并发进程,它们_。A 必定无关 B 必定相关 C 可能相关 D 可能相同二、简答题1什么是线程?进程和线程的关系是什么?2进程能自己将自己唤醒吗?进程能自己将自己撤销吗?3父进程创建子进程之后,父子进程间的关系是什么?4简述引进线程的好处。5当一个进程的父进程被撤销时,该进程是撤销好还是不撤销好?6为什么说进程同步问题关系到 OS 的成败?同步机制应遵循的准则是什么?7进程之间存在哪几种相互制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系?(1)若干同学去图书馆借书。(2)两队举行篮球比赛。(3)流水

12、线生产的各道工序。(4)商品生产和消费。8高级调度和低级调度的主要任务是什么?为什么引入中级调度?9在剥夺调度中,有哪些剥夺原则?10引起进程调度的主要因素。11何为死锁?产生死锁的原因和必要条件是什么?比较三种解决死锁的方法?12试比较说明进程和程序的区别有哪些?三、应用题1. 有一个理发师,一把理发椅和 n 把供等候理发的顾客坐的椅子。如果没有顾客,则理发师便在理发椅子上睡觉;当一个顾客到来时,必须唤醒理发师,进行理发;如果理发师正在理发时,又有顾客来到,则如果有空椅子可坐,他就坐下来等,如果没有空椅子,他就离开。为理发师和顾客各编一段程序描述他们的行为,要求不能带有竞争条件。2. 计算进

13、程 PC 和打印进程 P01、P02 共享一个单缓冲区,计算进程负责计算,并把计算结果放入单缓冲中;打印进程 P01、P02 则负责从单缓冲中取出计算结果进行打印,而且对每个计算结果,P01 和 P02 都需分别打印一次。请用记录型信号量描述上述进程间的同步关系。3. 设有三个进程,输入进程(input)、计算进程(compute)和输出进程(output),它们通过共享两个缓冲区 buf1 和 buf2 协作完成任务。如下图所示输入进程 计算进程 输出进程b u f 1 b u f 2三个进程之间的合作关系如下:(1)输入进程使用 put()函数把数据送到 buf1,供计算进程调用 calc

14、ulate()函数计算;(2)计算进程每次调用 get()函数从 buf1 取出已输入的可计算的数据进行计算,并把计算结果使用 put()函数把数据送到 buf2 送入 buf 供输出进程打印;(3)输出进程调用 get()函数把 buf2 中的数据使用 print()函数输出。定义合适的信号量,并用伪代码完成实现过程。4. 设系统中有三类资源 A、B 和 C,又设系统中有 5 个进程 P1,P2,P3,P4 和 P5。在 T0 时刻系统状态如下:最大需求量 已分配资源量 剩余资源量A B C A B C A B CP1P2P3P4P51 2 10 0 0 3 1 6 31 7 5 1 0 0

15、2 3 5 1 3 50 6 4 0 0 20 6 5 0 0 1(1)系统是否处于安全状态?(请给出详细的判断过程)如是,则给出进程安全序列。(2)如果进程 P5 申请 1 个资源类 A 和 1 个资源类 C,能否实施分配?为什么?5. 设有五道作业,它们的提交时间和运行时间见下表,试给出在如下表所示的三种调度算法下,作业的执行顺序,以及平均周转时间和带权平均周转时间:(1) 先来先服务调度算法;(2) 短作业优先调度算法;(3) 响应比高优先调度算法。作业提交和运行时间表作业名 提交时间/h 需执行时间/hJ1 10.1 0.8J2 10.3 0.5J3 10.5 0.4J4 10.6 0

16、.3J5 10.7 0.26. 假设系统有同类资源 10 个,供 P,Q、R 三个进程共享,P、Q、R 所需资源总数分别为 8、4、9,它们申请资源的次序和数量如下表所示。进程资源申请表次序 进程 申请量123456RPQPRQ242212按银行家算法为它们分配资源:(1) 写出执行完序号为 6 的申请时,各进程的状态和已占的资源数。(2) 请估计系统是否会出现死锁,并简要说明理由。7.下面给出的两个进程互斥的算法是安全的吗?为什么?define true;# define false;Int flag2;flag1=flag2=false;enter-crtsec(i)int i;While

17、(flag1-i)flagi=true;leave-crtsec(i)Int i;flagi=false;process I;Enter-crtsec(i);In critical section;Leave-crtsec(i);8. 设系统有三种类型的资源,数量为(4 ,2,2),系统中有进程 A,B,C 按如下顺序请求资源:进程 A 申请(3,2,1)进程 B 申请(1,0,1)进程 A 申请(0,1,0)进程 C 申请(2,0,0)请你给出一和防止死锁的资源剥夺分配策略,完成上述请求序列,并列出资源分配过程,指明哪些进程需要等待,哪些资源被剥夺。9. 进程 A1,A2,An 通过 K 个

18、缓冲区向进程 B1,B2,Bm 不断地发送消息。发送和接收工作遵循如下规则:(1) 每个发送进程一次发送一个消息,写入缓冲区,缓冲区大小与消息长度一致;(2) 对每个消息,B1 ,B2,Bm 都需接收一次,读入各自的数据区内;(3) K 个缓冲区都满时,发送进程等待,没有可读的消息时,接收进程等待。试用 wait 和 signal 原语操作组织正确的发送和接收操作。一、选择题BDABD BCCBD ADBDD AABAD DCCAA CCDDD BCCDB C二、简答题1.线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度实体。 在具有多线程机制的操作系统中,处理机调度的基本单位不

19、是进程而是线程。一个进程可以有多个线程,而且至少有一个可执行线程。进程和线程的关系是:(1)线程是进程的一个组成部分。(2)进程的多个线程都在进程的地址空间活动。(3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源分配额中扣除并分配给它。(4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。(5)线程在执行过程中,需要同步。2.唤醒进程和撤消进程都是要通过 CPU 上运行程序来实现的。一个进程入睡了,它就不可能被调度到 CPU 上运行;一个进程在撤消前必须先进入终止状态,而处于终止状态的进程不可能被调度到 CPU 上运行。因此,进程被唤

20、醒、被撤消都不能由自己来完成,只能由别的进程实现。3.一个进程创建子进程之后,进程与产生的进程之间的关系是父子关系,分别成为进程和子进程。子进程一经产生就与你进程并发执行,子进程共享父进程和子进程。子进程一经产生就与你进程并发执行,子进程共享父进程的正文段和已经打开的文件。4.(1)以线程作为系统调度的基本单位,减少了系统的时空开销。以进程为系统调度的基本单位的系统中,进程的切换是很频繁的。在切换中由于要保留当时的运行环境,还要设置新选中的进程的运行环境,这既花费了处理机的时间,又增加了主存的空间,从而也限制了系统进程的数量和进程的切换速度。(2)引进线程提高了系统的并行能力。线程作为进程内的

21、一个可执行实体,减少了并行粒度。线程作为调度的基本单位而不是资源分配的基本单位,调度更为容易,而且采用线程提高系统的并行能力比采用进程更为有效。(3)同一进程的线程共享进程的用户地址空间,所以同一进程的线程间的通信更容易实现。5.在实际系统中,两种处理办法都是可行的,且各有优缺点。若撤消,则该进程的任务可能还没有完成,这显然是不利的,特别是当该进程的运行结果对其他进程的运行很重要(如该进程是其他进程的前趋进程,没有它的运行结果其他进程无法运行)时;若不撤消,则该进程又可能成为不可控的“孤儿 “,从而产生不可预测的结果。比较好的做法是,当一个进程的父进程被撤消时,可以将该进程“过继“ 给系统内一

22、个级别较高的进程 (如 Unix 中的 1#进程),让它有一个“ 新的父亲 “,这样既可以继续完成其任务又不会成为不可控的。6.进程同步问题若处理不当,有可能会产生种种“与时间有关性错误“ ,特别是当两个或多个进程共享了公共变量而又没有互斥地使用这些变量时,极有可能导致用户程序运行结果的不正确,这量种灾难性的后果。这种 OS 显然是不成功的,是用户不敢使用的。有以下四条准则:空闲让进、忙则等待、有限等待、让权等待。7.进程间存在着两种相互制约的关系:直接制约关系(即同步问题)和间接制约关系(即互斥问题) 。同步问题是存在逻辑关系的进程之间相互等待产生的制约关系,互斥问题是相互无逻辑关系的进程间

23、竞争使用相同的资源所发生的制约关系。(1)属于互斥关系,因为书的个数是有限的,一本书只能借给一个同学。(2)属于互斥关系,篮球只有一个,两队都要争夺。(3)属于同步关系,各道工序的开始都依赖前道工序的完成。(4)属于同步关系,商品没生产出来,消费无法进行,商品未消费完,生产也无需进行。8.(1)高级调度又称为作业调度。它是批处理系统中使用的一种调度。其主要任务是按照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为其创建进程、分配必要的资源,然后再将所创建的进程控制块插入就绪队列中。(2)低级调度又称进程调度。它是距离硬件最近的一级调度。其主要任务是按照某种算法从就绪队列上选择一个(或

24、多个)进程,使其获得 CPU。(3)引入中级调度的目的是为了提高内存利用率和系统吞吐量。其功能是,让那些暂时不能运行的进程不再占用宝贵的内存资源,而是调其到外存上等候。此时的进程状态为挂起状态。当这些进程重新具备运行条件且内存空闲时,由中级调度选择一部分挂起状态的进程调入内存并将其状态变为就绪状态。9.(1)时间片原则。在轮转算法中,CPU 轮流为诸多进程服务,每个进程运行完自己的时间片后,系统就将 CPU 剥夺过来,交给下一个进程使用。(2)优先级原则。为紧迫的作业赋予较高的优先级,这种作业到达系统或由阻塞状态被唤醒后,若其优先级高于当前运行的进程的优先级,可以剥夺当前运行进程的 CPU。(

25、3)短作业(进程)优先原则。若一个作业(进程)到达系统,其运行长度比当前运行的进程长度明显的短,则剥夺当前运行的进程 CPU。10.1)一个进程运行完毕。(2)一个正在运行的进程被阻塞。(3)在抢占式调度中,一个高优先级的进程被创建。(4)在抢占式调度中,一个高优先级进程由阻塞唤醒。(5)在轮转式调度中,正垢进程运行完一个时间片。11.(1)死锁是指多个进程因竞争资源而造成的一种僵持状态。若无外力作用,这些进程都将永远处于阻塞状态,不能再运行下去。(2)产生死锁的原因有:资源不足、进程推进次序不当。(3)产生死锁的必要条件有:互斥条件、请求和保持条件、非剥夺条件、环路等待条件。比较三种解决死锁

26、的方法:(1)预防死锁方法,主要是破坏产生死锁的必要条件。该方法是最容易实现的,但系统资源利用率较低。(2)避免死锁方法,比较实用的有银行家算法(Banker Algorithm) 。该算法需要较多的数据结构,实现起来比较困难,但资源利用率最高。(3)检测死锁方法是基于死锁定理设计的。定期运行该算法对系统的状态进行检测,发现死锁便予以解除。其中,需要比较一下各咱死锁解除方案的代价,找到代价最小的方案。该方法最难实现,资源利用率较高。12.(1)每个进程实体中包含了程序段和数据段这两个部分,因此说进程是与程序是紧密相关的。但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即进

27、程控制块 PCB。(2)进程是程序的一次执行过程,因此是动态的;动态性还表现在进程由创建而产生、由调度而执行、由撤消而消亡,即它具有一定的生命周期。而程序则只是一组指令的有序集合,并和永久地存放在某种介质上,其本身不具有运动的含义,因此是静态的。(3)多个进程实体可同时存放在内存中并发地执行,也正是引入进程的目的。而程序(在没有为它创建进程时)的并发执行具有不可再现性,因此程序不能正确地并发执行。(4)进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。而因程序不具有 PCB,所以它是不可能在多道程序环境下独立运行的。(5)程与程序不一一对应。同一个程序的多次运行,将形成多个不同的进

28、程;同一个程序的一次执行也可以产生多个进程;而一个进程也可以执行多个程序。三、应用题1.#define CHAIRS /* 为等候的顾客准备的椅子数 */semaphore customers=0;semaphore barbers=0;semaphore mutex=1; /* 用于互斥 */int waiting=0;void barber()while (1)wait(customers);wait (mutex);waiting=waiting-1;signal (mutex);理发;signal(barbers);void customers()wait (mutex);if(wai

29、tingCHAIRS)waiting=waiting+1;signal (mutex):signal (customers);坐下等待;wait (barbers);elsesignal (mutex);2.为了实现计算进程和打印进程之间的同步,并使单缓冲中的每个计算结果都被两个打印进程分别打印一次。可设置四个信号量:full1 表示缓冲中是否有可供 P01 打印的计算结果,full2 表示缓冲中是否有可给 P02 打印的计算结果;emptypl、empty2 则表示计算结果是否已被 P01l、 P02 取走,只有当一个结果被两个打印进程都取走后,缓冲区才变空,计算进程才可将下一个计算结果放入单缓冲。相应的同步算法可描述如下:Var empty1,enpty2,full1,full2: semaphore:=1,1,0,0;beginParbeginPC:beginRepeatcomputrt next number;P(empty1):P(empty2);add the number to bufer;V(full1);V(full2);Until false;endP01: begin

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。