操作系统复习题2介绍_第1页
操作系统复习题2介绍_第2页
操作系统复习题2介绍_第3页
操作系统复习题2介绍_第4页
操作系统复习题2介绍_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

一、选择题1.在进度的组成部分之中,进度在运行中不能更正的部分是A.私用程序段B.共享程序段C.数据段D.进度控制块

_B_____。2.响应比高者优先作业调换算法是以计算时间和___D___来考虑的。A.输入时间B.达成时间C.周转时间D.等待时间3.在信息缓冲通信中,信息队列属于____A__资源。A.临界B.共享C.永远D.可剥夺4.进度间的同步是指进度间在逻辑上的相互___B___关系。A.联接B.限制C.连续D.调用5.最合适于分时系统的进度调换算法是____D__。A.先来先服务(FCFS)B.最短作业优先(SSJF)C.优先数法D.轮转法(RR)6.进度A和进度B经过共享缓冲区协作达成数据办理,进度A负责生产数据并放入缓冲区,进度B从缓冲区中读数据并输出。进度A和进度B之间的关系是___B___。A.互斥关系B.同步关系C.互斥和同步D.无穷制关系7.在优先级调换中,_____C_类进度可能被“饿死”,即长时间得不到调换。A.短进度B.进步程C.低优先级进度D.大内存进度8.进度从运行状态到拥塞状态可能是由于____C__。A.进度调换程序的调换B.现运行进度的时间片耗尽C.现运行进度执行了wait操作D.现运行进度执行了signal操作9.银专家算法在解决死锁问题中是用于_____B_的。A.预防死锁B.防范死锁C.检测死锁D.清除死锁10.___D___不是进度调换算法。A.时间片轮转法B.先来先服务方法C.响应比高者优先法D.均衡调换算法11.下面关于线程的表达中正确的选项是___A___。A.线程包括CPU现场,能够独立执行程序B.每个线程有自己独立的地址空间C.线程之间的通信必定使用系统调用函数D.进度只能包括一个线程12.并发进度之间____D__。A.相互没关B.必定同步C.必定互斥D.可能需要同步或互斥13.当一个进度运行时,系统可能基于某种原则强行将其撤下,把办理器分配给其他进程,这种调换方式是_B_____。A.非剥夺方式B.剥夺方式C.中断方式14.信号量S不能够用于____D__操作。A.signalB.waitC.赋初值

D.盘问方式D.运算表达式15.____D__是一种只能进行A.调换B.进度

wait

操作和signal操作的特别变量C.同步D.信号量16.分配给进度占用办理机的时间到而强迫进度P让出办理器,或有更高优先级的进程要运行,迫使正在运行的进度P让出办理器,则进度P状态变化的情况为___A___A.运行态->就绪态B.运行态->等待态C.就绪态->运行态D.等待态->就绪态17.下面关于进度的表达中正确的选项是

__A____。A.进度获得

CPU

运行是经过调换获得的B.优先级是进度调换的重要依照,一旦确定就不能够改变C.在单CPU的系统中,任何时刻都有一个进度处于运行状态D.进度申请CPU得不到满足时,其状态变为拥塞18.操作系统经过___B___对进度进行管理。A.进度B.进度控制块C.进度启动程序D.进度控制区若一个进度拥有100个线程,这些线程属于用户级线程,它们在系统调换执行时间上占用的时间片个数是___A___。A.1B.100C.1/100D.0清除死锁平时不采用的方法是__D____。到其他3种状态的进度状态是__D____。A.就绪B.拥塞C.达成D.执行22.信号量的初值为2,当前值为-3,则表示等待进度有__C____。A.1个B.2个C.3个D.5个23.wait操作可能以致__C____。A.进度就绪B.进度结束C.进度拥塞(等待)24.在操作系统中为防范系统的死锁采用___A___。A.银专家算法B.破坏占有并等待条件C.死锁检测和恢复D.破坏非剥夺条件

D.新进度创办25.以下的进度状态变化中不能能发生的变化是A.等待→运行B.运行→等待

_A_____。C.运行→就绪

D.等待→就绪26.若是有三个进度共享同一互斥段,而且每次最多赞同两个进度进入该互斥段,则信号量的初值应设置为___C___。A.

3

B.

1

C.

2

D.

027.进度之间交换数据不能够经过__C____路子进行。A.共享文件B.信息传达C.接见进度地址空间D.接见共享储藏地域28.进度控制块PCB不包括的内容是___D___。A.CPU现场B.进度优先级C.进度运行状态D.文件缓冲区29.PCB是描述进度状态和特色的数据结构,一个进度__D____。A.能够有多个PCBB.能够和其他进度共用一个PCBC.能够没有PCBD.只能有唯一的PCB30.资源次序分配法破坏了死锁发生的A.互斥占用B.占有等待

___D___必要条件。C.非剥夺D.循环等待31.进度和程序的实质差异是_B_____。A.内存和外存B.动向和静态特色C.共享和独占使用计算机资源D.次序和非次序执行指令32.设有两个进度共享3个同类资源,为使系统不死锁,每个进度最多能够申请

__C____资源。A.0B.1C.2D.333.作业调换中的先来先服务算法是以____C__为出发点考虑的。A.作业执行时间B.作业的周转时间C.作业等待时间D.等待时间加运行时同34.设m为同类资源数,n为系统中的并发进度数。当每个进度的最大需求是w。以下情况下,系统会死锁的是

n个进度共享_D_____。

m个互斥资源时,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=335.用于解决进度间互斥的方法是___B___。①信号量及wait、signal操作②加锁与解锁④信息缓冲方式⑤特权指令方式

③信箱方式A.③、④和⑤

B.①和②

C.①和③

D.②和⑤36.在操作系统中,每个进度拥有独立性,进度之间又拥有相互限制性。关于任何两个并发进度,它们__C____。A.必然没关

B.必然相关

C.可能相关

D.可能相同二、简答题1.什么是线程?进度和线程的关系是什么?线程可定义为进度内的一个执行单位,也许定义为进度内的一个可调换实体。在拥有多线程体系的操作系统中,办理机调换的基本单位不是进度而是线程。一个进度能够有多个线程,而且最少有一个可执行线程。进度和线程的关系是:线程是进度的一个组成部分。进度的多个线程都在进度的地址空间活动。资源是分给进度的,而不是分给线程的,线程在执行中需要资源时,系统从进度的资源分配额中扣除并分配给它。办理机调换的基本单位是线程,线程之间竞争办理机,真切在办理机上运行的是线程。(5)线程在执行过程中,需要同步。2.进度能自己将自己唤醒吗?进度能自己将自己撤掉吗?唤醒进度和撤消进度都是要经过CPU上运行程序来实现的。一个进度入睡了,它就不能能被调换到CPU上运行;一个进度在撤消前必定先进入停止状态,而处于停止状态的进度不能能被调换到CPU上运行。所以,进度被唤醒、被撤消都不能够由自己来达成,只能由其他进度实现。3.父进度创办子进度此后,父子进度间的关系是什么?一个进度创办子进度此后,进度与产生的进度之间的关系是父子关系,进度。子进度一经产生就与你进度并发执行,子进度共享父进度和子进度。

分别成为进度和子子进度一经产生就与你进度并发执行,子进度共享父进度的正文段和已经打开的文件。4.简述引进线程的好处。(1)以线程作为系统调换的基本单位,减少了系统的时空开销。以进度为系统调换的基本单位的系统中,进度的切换是很频频的。在切换中由于要保留当时的运行环境,还要设置新选中的进度的运行环境,这既开销了办理机的时间,又增加了主存的空间,从而也限制了系统进度的数量和进度的切换速度。引进线程提高了系统的并行能力。线程作为进度内的一个可执行实体,减少了并行粒度。线程作为调换的基本单位而不是资源分配的基本单位,调换更为简单,而且采用线程提高系统的并行能力比采用进度更为有效。同一进度的线程共享进度的用户地址空间,所以同一进度的线程间的通信更简单实现。5.当一个进度的父进度被撤掉时,该进度是撤掉好还是不撤掉好?在实质系统中,两种办理方法都是可行的,且各有优缺点。若撤消,则该进度的任务可能还没有达成,这显然是不利的,特别是当该进度的运行结果对其他进度的运行很重要(如该进度是其他进度的前趋进度,没有它的运行结果其他进度无法运行)时;若不撤消,则该进程又可能成为不能控的"孤儿",从而产生不能展望的结果。比较好的做法是,当一个进度的父进度被撤消时,能够将该进度"过继"给系统内一个级别较高的进度(如Unix中的1#进度),让它有一个"新的父亲",这样既能够连续达成其任务又不会成为不能控的。6.为什么说进度同步问题关系到OS的成败?同步体系应依照的准则是什么?进度同步问题若办理不当,有可能会产生各样"与时间相关性错误",特别是当两个或多个进度共享了公共变量而又没有互斥地使用这些变量时,极有可能以致用户程序运行结果的不正确,这量种灾祸性的结果。这种OS显然是不能功的,是用户不敢使用的。有以下四条准则:悠闲让进、忙则等待、有限等待、让权等待。7.进度之间存在哪几种相互限制关系?各是什么原因引起的?以下活动分别属于哪一种限制关系?1)若干同学去图书馆借书。2)两队举行篮球比赛。3)流水线生产的各道工序。4)商品生产和开销。进度间存在着两种相互限制的关系:直接限制关系(即同步问题)和间接限制关系(即互斥问题)。同步问题是存在逻辑关系的进度之间相互等待产生的限制关系,互斥问题是相互无逻辑关系的进度间竞争使用相同的资源所发生的限制关系。1)属于互斥关系,由于书的个数是有限的,一本书只能借给一个同学。2)属于互斥关系,篮球只有一个,两队都要强抢。3)属于同步关系,各道工序的开始都依赖前道工序的达成。4)属于同步关系,商品没生产出来,开销无法进行,商品未开销完,生产也无需进行。8.高级调换和初级调换的主要任务是什么?为什么引入中级调换?(1)高级调换又称为作业调换。它是批办理系统中使用的一种调换。其主要任务是依照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为其创办进度、分配必要的资源,尔后再将所创办的进度控制块插入就绪队列中。(2)初级调换又称进度调换。它是距离硬件近来的一级调换。其主要任务是依照某种算法从就绪队列上选择一个(或多个)进度,使其获得CPU。3)引入中级调换的目的是为了提高内存利用率和系统吞吐量。其功能是,让那些暂时不能运行的进度不再占用难得的内存资源,而是调其到外存上等待。此时的进度状态为挂起状态。当这些进度重新具备运行条件且内存悠闲时,由中级调换选择一部分挂起状态的进度调入内存并将其状态变为就绪状态。9.在剥夺调换中,有哪些剥夺原则?1)时间片原则。在轮转算法中,CPU轮流为诸多进度服务,每个进度运行完自己的时间片后,系统就将CPU剥夺过来,交给下一个进度使用。2)优先级原则。为紧迫的作业赐予较高的优先级,这种作业到达系统或由拥塞状态被唤醒后,若其优先级高于当前运行的进度的优先级,能够剥醒当前运行进度的CPU。3)短作业(进度)优先原则。若一个作业(进度)到达系统,其运行长度比当前运行的进度长度显然的短,则剥醒当前运行的进度CPU。10.引起进度调换的主要因素。1)一个进度运行达成。2)一个正在运行的进度被拥塞。3)在抢占式调换中,一个高优先级的进度被创办。4)在抢占式调换中,一个高优先级进度由拥塞唤醒。5)在轮转式调换中,正垢进度运行完一个时间片。11.何为死锁?产生死锁的原因和必要条件是什么?比较三种解决死锁的方法?1)死锁是指多个进度因竞争资源而造成的一种僵持状态。若无外力作用,这些进度都将永远处于拥塞状态,不能够再运行下去。2)产生死锁的原因有:资源不足、进度推进次序不当。3)产生死锁的必要条件有:互斥条件、恳求和保持条件、非剥夺条件、环路等待条件。比较三种解决死锁的方法:1)预防死锁方法,主若是破坏产生死锁的必要条件。该方法是最简单实现的,但系统资源利用率较低。(2)防范死锁方法,比较合用的有银专家算法(BankerAlgorithm)。该算法需要很多的数据结构,实现起来比较困难,但资源利用率最高。3)检测死锁方法是基于死锁定理设计的。如期运行该算法对系统的状态进行检测,发现死锁便予以清除。其中,需要比较一下各咱死锁清除方案的代价,找到代价最小的方案。该方法最难实现,资源利用率较高。12.试比较说明进度和程序的差异有哪些?(1)每个进度实体中包括了程序段和数据段这两个部分,所以说进度是与程序是亲密相关的。但从结构上看,进度实体中除了程序段和数据段外,还必定包括一个数据结构,即进度控制块PCB。2)进度是程序的一次执行过程,所以是动向的;动向性还表现在进度由创办而产生、由调换而执行、由撤消而消亡,即它拥有必然的生命周期。而程序则可是一组指令的有序会集,并和永远地存放在某种介质上,其自己不拥有运动的含义,所以是静态的。3)多个进度实体可同时存放在内存中并发地执行,也正是引入进度的目的。而程序(在没有为它创办进度时)的并发执行拥有不能再现性,所以程序不能够正确地并发执行。4)进度是一个能够独立运行、独立分配资源和独立接受调换的基本单位。而因程序不拥有PCB,所以它是不能能在多道程序环境下独立运行的。5)程与程序不一一对应。同一个程序的多次运行,将形成多个不相同的进度;同一个程序的一次执行也能够产生多个进度;而一个进度也能够执行多个程序。三、应用题有一个理发师,一把理发椅和n把供等待理发的顾客坐的椅子。若是没有顾客,则理发师便在理发椅子上睡觉;当一个顾客到来时,必定唤醒理发师,进行理发;若是理发师正在理发时,又有顾客到达,则若是有空椅子可坐,他就坐下来等,若是没有空椅子,他就走开。为理发师和顾客各编一段程序描述他们的行为,要求不能够带有竞争条件。#defineCHAIRS/*为等待的顾客准备的椅子数*/semaphorecustomers=0;semaphorebarbers=0;semaphoremutex=1;/*用于互斥*/intwaiting=0;voidbarber(){while(1){wait(customers);wait(mutex);waiting=waiting-1;signal(mutex);理发;signal(barbers);}}voidcustomers(){wait(mutex);if(waiting<CHAIRS){waiting=waiting+1;signal(mutex):signal(customers);坐低等待;wait(barbers);}else{signal(mutex);}}计算进度PC和打印进度P01、P02共享一个单缓冲区,计算进度负责计算,并把计算结果放入单缓冲中;打印进度P01、P02则负责从单缓冲中取出计算结果进行打印,而且对每个计算结果,P01和P02都需分别打印一次。请用记录型信号量描述上述进度间的同步关系。为了实现计算进度和打印进度之间的同步,并使单缓冲中的每个计算结果都被两个打印进度分别打印一次。可设置四个信号量:full1表示缓冲中可否有可供P01打印的计算结果,full2表示缓冲中可否有可给P02打印的计算结果;emptypl、empty2则表示计算结果可否已被P01l、P02取走,只有当一个结果被两个打印进度都取走后,缓冲区才变空,计算进度才可将下一个计算结果放入单缓冲。相应的同步算法可描述以下:Varempty1,enpty2,full1,full2:semaphore:=1,1,0,0;beginParbeginPC:beginRepeatcomputrtnextnumber;P(empty1):P(empty2);addthenumbertobufer;V(full1);V(full2);Untilfalse;endP01:beginrepeatP(full1);takefrombufer;V(emptyl):printlastnumber;untilflase;endP02:beginRepeatP(full2);takefrombuffer;V(empty2);printlastnumber;untilfalseendparendend设有三个进度,输入进度(input)、计算进度(compute)和输出进度(output),它们经过共享两个缓冲区buf1和buf2协作达成任务。以以下列图所示输入进度buf1计算进度buf2输出进度三个进度之间的合作关系以下:(1)输入进度使用put()函数把数据送到buf1,供计算进度调用calculate()函数计算;(2)计算进度每次调用get()函数从buf1取出已输入的可计算的数据进行计算,算结果使用put()函数把数据送到buf2送入buf供输出进度打印;

并把计3)输出进度调用get()函数把buf2中的数据使用print()函数输出。定义合适的信号量,并用伪代码达成实现过程。信号量:

nonf1、none1:输入进度与计算进度同步,nonf2、none1:计算进度与输出进度同步,s1、s2:分别互斥使用buf1和buf2

buf1可否为空;buf2可否为空;procedureinputbeginwait(nonf1)wait(s1)put(data);signal(s1);signal(none1);untilfalseend;procedurecomputebeginwait(none1);wait(s1);data=get();data=calculate(data);signal(s1);signal(nonf1);wait(nonf2);wait(s2);put(data);signal(s2);signal(none2);untilfalseend;procedureoutputbeginwait(none2);wait(s2);data=get();print(data);signal(s2);signal(nonf2);untilfalseend;4.设系统中有三类资源

A、B

C,又设系统中有

5个进度

P1,P2,P3,P4

P5。在

T0

时刻系统状态以下:最大需求量

已分配资源量

节余资源量AB

C

ABC

ABCP11210003163P2175100P3235135P4064002P5065001(1)系统可否处于安全状态?(请给出详细的判断过程)如是,则给出进度安全序列。2)若是进度P5申请1个资源类A和1个资源类C,可否推行分配?为什么?1)利用安全性算法对T0时刻的资源分配情况进行解析,结果以下:WorkNeedAllocationWork+AllocationFinishP3163100135298trueP12981270032911trueP229110751003911trueP439110640023913trueP539130620013914true系统处于安全状态,安全序列为:P3,P1,P2,P4,P5。(2)P1发出央求向量Request1(1,0,1),系统按银专家算法进行检查:Request1(1,0,1)<=Need1(1,2,6)Request1(1,0,1)<=Available(1,6,3)3)系统先假设可为P1分配资源,并更正Available、Allocation1、Need1向量,资源变化情况以下:maxAllocationAvailableNeedABCABCABCABCP11210004062016P2175100075P3235135100P4064002062P5065001064节余资源可满足P4,分给P4给还后(0,6,4)可满足P5,分配P5归还后(0,6,5)不满足其他进度要求,即不能够推行分配,由于分配后找不到安全序列,系统将处于不安全状态。设有五道作业,它们的提交时间和运行时间见下表,试给出在以下表所示的三种调换算法下,作业的执行次序,以及平均周转时间和带权平均周转时间:先来先服务调换算法;短作业优先调换算法;响应比高优先调换算法。作业提交和运行时间表作业名提交时间/h需执行时间/hJ110.10.8J210.30.5J310.50.4J410.60.3J510.70.2(1)采用先来先服务(FCFS)算法。作业名提交时间/h需执行时间/h开始运行时间/h达成时间/hJ110.10.310.110.4J210.30.510.410.9J310.50.410.911.3J410.60.311.311.6J510.70.211.611.8J1,J2,J3,J4,J5T=[(10.4-10.1)+(10.9-10.3)+(11.3-10.5)+(11.6-10.6)+(1l.8-10.7)]/5=3.8/5=0.76hT=[(10.4-10.1)/0.3+(10.9-10.3)/0.5+(11.3-10.5)/0.4+(11.6-10.6)/0.3+(1l.8-10.7)/0.2]/5=13.033/5=2.61短作业优先调换(SJF)算法。作业名提交时间/h需执行时间/h开始运行时间/h达成时间/hJ110.10.310.110.4J210.30.510.410.9J310.50.411.411.8J410.60.311.111.4J510.70.210.911.1J1,J2,J5,J4,J3T=[(10.4-10.1)+(10.9-10.3)+(11.8-10.5)+(11.4-10.6)+(11.1-10.7)]/5=3.4/5=0.68hT=[(10.4-10.1)/0.3+(10.9-10.3)/0.5+(11.8-10.5)/0.4+(11.4-10.6)/0.3+(11.1-10.7)/0.2]/5=10.117/5=2.02高响应比优先调换算法。作业名提交时间/h需执行时间/h开始运行时间/h达成时间/hJ110.10.310.110.4J210.30.510.4/10.711.0J310.50.410.6/11.511.8J410.60.311.211.5J510.70.211.011.2J1,J2,J3,J2,J5,J4,J3T=[(10.4-10.1)+(11.0-10.3)+(11.8-10.5)+(11.5-10.6)+(11.2-10.7)]/5=3.7/5=0.72hT=[(10.4-10.1)/0.3+(11.0-10.3)/0.5+(11.8-10.5)/0.4+(11.5-10.6)/0.3+(11.2-10.7)/0.2]/5=11.15/5=2.23假设系统有同类资源10个,供P,Q、R三个进度共享,P、Q、R所需资源总数分别为8、4、9,它们申请资源的次序和数量以下表所示。进度资源申请表次序进度申请量1R22P43Q24P25R16

Q

2按银专家算法为它们分配资源:写出执行完序号为6的申请时,各进度的状态和已占的资源数。请估计系统可否会出现死锁,并简要说明原因。执行完序号为6的申请时,各进度的状态和已占的资源数如表所示;P等待已占用资源4个Q就绪或运行已占用资源4个R等待已占用资源2个依照单项银专家算法,过程为:1)R申请2个资源时,节余资源可使各进度运行结束,所以这个分配是安全的,故将2个资源分给R;同理,P、Q分别申请4,2个资源时,节余资源可使各进度运行结束,所以这个分配也是安全的,故将4、2个资源分给P、Q;3)P申请2个资源时,系统现在节余资源数为2,若是将这两个资源分给P,系统就没有资源了。这时的P、Q、R都还需要资源才可运行完,这样,P、Q、R将都进入拥塞状态,所以P申请的这两个资源不能够分配。同理,接下来R欲申请1个资源也是不安全的分配,故不能够分给。Q申请2个资源时,假设操作系统分给它,Q进度将运行结束,Q释放的资源又可使P运行结束;P运行结束,释放的资源又可使R运行结束。所以这个分配是安全的,故将个资源分给Q。

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);从看法上讲,系统中各进度在逻辑上是独立的,它们能够按各自的速度向前推进。但由于它们共享某些临界资源,所以产生了临界区问题。关于拥有临界区问题的并发进度,它们之间必定互斥,以保证不会同时进入临界区。这种算法不是安全的。由于,在进入临界区的enter-crtsec()不是一个原语操作,若是两个进度同时执行完其循环(此前两个flag均为false),则这两个进度可同时进入临界区。设系统有三各种类的资源,数量为(4,2,2),系统中有进度A,B,C按以下次序央求资源:进度A申请(3,2,1)进度B申请(1,0,1)进度A申请(0,1,0)进度C申请(2,0,0)请你给出一和

温馨提示

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

评论

0/150

提交评论