首页 (完整版)现代操作系统课后习题答案(20210205084719)

(完整版)现代操作系统课后习题答案(20210205084719)

举报
开通vip

(完整版)现代操作系统课后习题答案(20210205084719)第二章进程管理第一部分教材习题(P81)3、为什么程序并发执行会产生间断性特征?(P36)4、程序并发执行,为何会失去封闭性和可再现性?(P37)【解】程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。同时由于失去了封闭性,也将导致其再失去可再现性。程序在并发执行时,由于失去了封闭性,程序经过多次执行后,其计算机结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性。5、在操作系统中为什么要引入进程概念?(P37)它会产生什么样的影响?[解...

(完整版)现代操作系统课后习题答案(20210205084719)
第二章进程管理第一部分教材习题(P81)3、为什么程序并发执行会产生间断性特征?(P36)4、程序并发执行,为何会失去封闭性和可再现性?(P37)【解】程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。同时由于失去了封闭性,也将导致其再失去可再现性。程序在并发执行时,由于失去了封闭性,程序经过多次执行后,其计算机结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性。5、在操作系统中为什么要引入进程概念?(P37)它会产生什么样的影响?[解]在操作系统中引入进程的概念,是为了实现多个程序的并发执行。传统的程序不能与其他程序并发执行,只有在为之创建进程后,才能与其他程序(进程)并发执行。这是因为并发执行的程序(即进程)是“停停走走”地执行,只有在为它创建进程后,在它停下时,方能将其现场信息保存在它的PCB中,待下次被调度执行是,再从PCB中恢复CPU!场并继续执行,而传统的程序却无法满足上述要求。建立进程所带来的好处是使多个程序能并发执行,这极大地提高了资源利用率和系统吞吐量。但管理进程也需付出一定的代价,包括进程控制块及协调各运行机构所占用的内存空间开销,以及为进行进程间的切换、同步及通信等所付出的时间开销。&试从动态性、并发性和独立性上比较进程和程序?(P37)[解](1)动态性:进程既然是进程实体的执行过程,因此,动态性是进程最基本的特性。动态性还表现为:“它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡”。可见,进程有一定的生命期。而程序只是一组有序指令的集合,并存放在某种介质上,本身并无运动的含义,因此,程序是个静态实体。(2)并发性:所谓进程的并发,指的是多个进程实体,同存于内存中,能在一段时间内同时运行。并发性是进程的重要特征,同时也成为—OS的重要特征。引入进程的目的也正是为了使其程序能和其它进程的程序并发执行,而程序是无法并发执行的。(3)独立性:进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。凡未建立进程的程序,都不能作为一个独立的单位参加运行。试比较进程与程序的异同。【解】进程和程序是紧密相关而又完全不同的两个概念。(1)每个进程实体中包含了程序段和数据段这两个部分,因此说进程与程序是紧密相关的。但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即PCB(2)进程是程序的一次执行过程,因此是动态的;动态性还表现在进程由创建而产生、由调度而执行、由撤消而消亡,即它具有一定的生命期。而程序则只是一组指令的有序集合,并可永久地存放在某种介质上,其本身不具有运动的含义,因此是静态的。(3)多个进程实体可同时存放在内存中并发地执行,其实这正是引入进程的目的。程序(在没有为它创建进程时)的并发执行具有不可再现性,因此程序不能正确地并发执行。(4)进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。程序(在没有为它创建进程时)因其不具有PCB所以它是不可能在多道程序环境下独立运行的。(5)进程与程序不一一对应。同一个程序的多次运行,将形成多个不同的进程;同一个程序的一次执行也可以产生多个进程;一个进程在其生命期的不同时候也可以执行不同的程序。7、试说明PCB的作用?为什么说PCB是进程存在的惟一标志?(P41)【解】PCB是进程实体的一部分,是OS中最重要的 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 型数据结构。它记录了OS所需的、用于描述进程情况及控制进程运行所需的全部信息。PCB的作用,是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。在进程的整个生命期中,系统总是通过PCB对进程进行控制,也就是说,系统是根据进程的PCB感知到该进程的存在的,所以说,PCB是进程存在的标志。8、试说明进程在三个基本状态之间转换的典型原因?(P38)【解】(1)处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程就由就绪状态变为执行状态(2)正在执行的进程因发生某事件而无法执行,如暂时无法取得所需资源,则由执行状态转变为阻塞状态。(3)正在执行的进程,如因时间片用完或被高优先级的进程抢占处理机而被暂停执行,该进程便由执行转变为就绪状态。某系统的进程状态转换图如图所示。说明引起各种状态转换的典型事件。分析下述状态转换是否可立即引起其他的状态转换:1,2,3,4[解](1)引起各种状态转换的典型事件如表所示状态转换引起转换的典型事件转换1CPU调度转换2执行进程的时间片用完,或被其他优先权更高的进程抢占CPU转换3等待某种事件(如I/O的完成,或被他人占用的临界资源变为可用状态转换4进程所等待的事件发生(如I/O完成,或所等待的临界资源变为可用状态)(2)状态转换1不会立即引起其他状态转换。状态转换2必然立即引发状态转换1:状态转换2发生后,进程调度程序必然要选出一个新的就绪进程投入运行,该新进程可能是其他进程,也可能是刚从执行状态转换成就绪状态的那个进程。状态转换3可能立即引发状态转换1:状态转换3发生后,若就绪队列非空,则进程调度程序将选出一个就绪进程投入执行。状态转换4可能引发状态转换1:状态转换4发生后,若CPU空闲,并且没有其他进程竞争CPU则该进程将被立即调度。另外,状态转换4还可能同时引发状态转换1和2:若系统采用抢占调度方式,而新就绪的进程具备抢占CPU的条件(如其优先权很高),则它可立即得到CPU转换成执行状态,而原来正在执行的进程则转换成就绪状态。某系统的进程状态变迁图,请说明:(1)引起各种状态转换的典型事件有哪些?(2)当我们观察系统中某些进程时,能够看到某一进程产生的一次状态转换能引起另一进程作一次状态转换。在什么情况下,当一个进程发生转换3时能立即引起另一个进程发生转换1?(3)试说明是否会发生下述因果转换:a)21b)32c)41解:(1)当进程调度程序从就绪队列中选取一个进程投入运行时引起转换1;正在执行的进程如因时间片用完而被暂停执行就会引起转换2;正在执行的进程因等待的事件尚未发生而无法执行(如进程请求完成I/O)则会引起转换3;当进程等待的事件发生时(如I/O完成)则会引起转换4。(2)如果就绪队列非空,则一个进程的转换3会立即引起另一个进程的转换1。这是因为一个进程发生转换3意味着正在执行的进程由执行状态变为阻塞状态,这时处理机空闲,进程调度程序必然会从就绪队列中选取一个进程并将它投入运行,因此只要就绪队列非空,一个进程的转换3能立即引起另一个进程的转换1。(3)所谓因果转换指的是有两个转换,一个转换的发生会引起另一个转换的发生,前一个转换称为因,后一个转换称为果,这两个转换称为因果转换。当然这种因果关系并不是什么时候都能发生,而是在一定条件下才会发生。a)21:当某进程发生转换2时,就必然引起另一进程的转换1。因为当发生转换2时,正在执行的进程从执行状态变为就绪状态,进程调度程序必然会从就绪队列中选取一个进程投入运行,即发生转换1。b)32:某个进程的转换3决不可能引起另一进程发生转换2。这是因为当前执行进程从执行状态变为阻塞状态,不可能又从执行状态变为就绪状态。c)41:当处理机空闲且就绪队列为空时,某一进程发生转换4,就意味着有一个进程从阻塞状态变为就绪状态,因而调度程序就会将就绪队列中的此进程投入运行。9、为什么要引入挂起状态?(P39)该状态具有哪些性质?10、在进行进程切换时,所要保存的处理机状态信息主要有那些?(P42)【解】保存的处理机状态信息主要由处理机中的各种寄存器内容组成。这些寄存器包括:通用寄存器,指令寄存器,程序状态字PSW用户栈指针。11、试说明引起进程创建的主要事件。(P44)【解】(1)用户登录在分时系统中,用户在终端键入登录命令后,若是合法用户,系统将为该终端用户建立一个进程,并插入到就绪队列中。(2)作业调度批处理程序中,作业调度程序按一定的算法调度到某个作业时,就将该作业装入内存,为它分配必要的资源,并立即为其创建进程,插入就绪队列中。(3)提供服务运行中用户程序提出某种请求,系统专门创建一个进程来提供用户所需服务。(4)应用请求应用进程自己创建一个进程,使自己和新进程以并发运行方式完成特定任务。12、试说明引起进程被撤消的主要事件。13、在创建一个进程时所要完成的主要工作是什么?(P44)【解】需完成的主要工作有:(1)申请空白PCB;(2)为新进程分配资源;(3)初始化PCB,其中包括:初始化标识符信息。将系统分配的标识符、父进程标识符填入新PCB中;初始化处理机状态信息。使程序计数器指向程序入口地址,使栈指针指向栈顶;初始化处理机控制信息。将进程状态设置为就绪或静止就绪,对于优先级通常设置为最低,除非用户提出高优先级要求。(4)将新进程插入就绪队列。14、在撤消一个进程时所要完成的主要工作是什么?15、试说明引起进程阻塞或被唤醒的主要事件是什么?(P46)16、进程在运行时,存在哪两种形式的制约?并举例说明之。17、为什么进程在进入临界区之前,应先执行“进入区”代码,在退出临界区后又执行“退出区”代码?(P50)【解】为了保证诸进程互斥进入自己的临界区,便可实现它们对临界资源的互斥访问。为此,每个进程在进入临界区之前应先对欲访问的临界资源进行检查,看它是否正被访问。如果此刻临界资源没被访问,则该进程便可进入临界区,对该资源进行访问,并设置它正被访问的标志;如果此刻该临界资源正被某进程访问,则本进程不能进入临界区。因此,必须在临界区前增加一段用于上述检查的代码,把这段代码称为进入区。相应地,在临界区后面也要加上一段称为退出区的代码,用于将临界区正被访问的标志恢复为未被访问标志。18、同步机构应遵循哪些基本准则?为什么?(P50)【解】同步机构应遵循的基本准则有:(1)空闲让进无进程处于临界区时,相应的临界资源处于空闲状态,因而可允许一个请求进入临界区的进程立即进入自己的临界区,以有效利用临界资源。(2)忙则等待当已有进程进入自己的临界区时,意味着相应的临界资源正被访问,因而所有其他试图进入临界区的进程必须等待,以保证诸进程互斥地访问临界资源。(3)有限等待对要求访问临界资源的进程,应保证该进程能在有限时间内进入自己的临界区,以免陷入“死等”状态。(4)让权等待当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”。19、试从物理概念上来说明记录型信号量wait和signal操作?(P51)【解】在记录型信号量机制中,S.value_的初值表示系统中某类资源的数目,因而又称资源信号量,每次的wait操作,意味着进程请求一个单位的资源,因此描述为S.value:=S.value-1;当S.valuevO时,表示资源已分配完毕,因而进程调用block原语,进行自我阻塞,放弃处理机,并插入到信号量链表S丄中。可见,该机制遵循了让权等待准则。.此时S.value_的绝对值表示在该信号量链表中已阻塞进程的数目。每次signal操作,表示执行进程释放一个单位资源,故S.value:=S.value+1操作表示资源数目加1。若加—1后仍是S.value<=0_则表示该信号量链表中,仍有等待该资源的进程被阻塞,故还要调用wakeup原语,将S.L链表中的第一个等待进程唤醒。如果S.value的初值为1,表示只允许一个进程访问临界资源,此时的信号量转化为互斥信号量。20、你认为整型信号量机制是否完全遵循了同步机构的四条准则?(P52)【解】在整型信号量机制中的wait操作,只要是信号量S<=0,就会不断地测试,因此,该机制并未遵循“让权等待”的准则,而是使该进程处于“忙等”的状态。21、如何利用信号量机制来实现多个进程对临界资源的互斥访问?并举例说明之。22、试写出相应的程序来描述图2-17所示的前趋图。[解]⑴Vara,b,c,d,e,f,g,h;semaphore:=0,0,0,0,0,0,0,0;beginparbeginbeginS1;signal(a);signal(b);end;beginwait(a);S2;signal(c);signal(d);end;beginwait(b);S3;signal(e);end;beginwait(c);S4;signal(f);end;beginwait(d);S5;signal(g);end;beginwait(e);S6;singal(h);end;beginwait(f);wait(g);wait(h);S7;end;parendend(2)Vara,b,c,d,e,f,g,h,i,j;semaphore:=0,0,0,0,0,0,0,0,0,0,0;beginparbeginbeginS1;signal(a);signal(b);end;beginwait(a);S2;signal(c);signal(d);end;beginwait(b);S3;signal(e);signal(f);end;beginwait(c);S4;signal(g);end;beginwait(d);S5;signal(h);end;beginwait(e);S6;singal(i);end;beginwait(f);S7;signal(j);end;beginwait(g);wait(h);wait(i);wait(j);S8;end;parendend23、在生产者—消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果会有什么影响?【解】在生产者—消费者问题中,如果缺少了signal(full),那么消费者会认为生产者没有生产而阻塞,而生产者会不断生产,直到empty为0后阻塞,然后两个进程陷入“死等”状态。如果缺少了signal(empty)开始两进程可同步运行。但当empty为0时生产者会因此而阻塞,然后消费者进程继续运行直到full也为0阻塞,然后两个进程陷入“死等”状态。24、在生产者—消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,结果会如何?【解】如果将wait(full)和wait(mutex)互换位置,则如果consumer先进入临界区,就会一直等待full,但由于没有signal(mutex),producer将无法进入临界区而等待,则两个进程相互等待,陷入死锁。如果signal(full)与signal(mutex)互换位置,则会使full的值不再是等待的consumer进程数目。varmutex,empty,full:semaphore:=1,n,0;buffer:array[0,…,n-1]ofitem;in,out:integer:=0,0;Beginparbeginproducer:beginrepeatproduceraniteminnextp;wait(mutex);//wait(empty);buffer(in):=nextp;in:=(in+1)modn;signal(full);//signal(mutex);untilfalse;endconsumer:beginrepeatwait(full);wait(mutex);nextc:=buffer(out);out:=(out+1)modn;signal(mutex);signal(empty);consumetheiteminnextc;untilfalse;endParendend由于V操作是释放资源,因此对调V操作的次序无关紧要。而对调P操作的次序则可能导致死锁。这时因为对调P操作后,有可能出现这样一种特殊情况:在某一时刻缓冲池中已装满了产品且缓冲池中无进程工作(这时信号量full的值为n,信号量empty的值为0,信号量mutex的值为1),若系统此时调度生产者进程运行,生产者进程又生产了一个产品,它执行P(mutex)并顺利进入临界区(这时mutex值为0),随后它执行p(empty)时因没有空闲缓冲区而受阻等待,等待消费者进程进入缓冲池取走产品以释放出缓冲区;消费者进程执行p(full)后再执行p(mutex)时,因缓冲池被生产者进程占据而无法进入。这样就形成了生产者进程在占有临界资源的情况下,等待消费者进程取走产品,而消费者进程又无法进入临界区取走产品的僵局,此时两进程陷入死锁。25、我们为某临界资源设置一把锁W当W=1时表示关锁;当W=0时表示锁已打开。试写出开锁和关锁原语,并利用它们去实现互斥。【解】我们采用一个变量W乍为“锁”,代表某个临界资源的状态,W=(false,锁已打开)表示该资源未用,W=1(true,关锁)表示该资源正被使用。同时,用一段程序作为开锁原语,用另一段程序作为关锁原语,要进入临界区的进程首先要执行关锁原语,当它退出临界区时,要执行开锁原语。从而实现对临界区的互斥控制。两个原语的作用是:加锁原语lock测试W是否为0若w=o让w=i若W=1继续测试开锁原语unlock使W=0可见加锁原语首先要判断临界区中有无进程若W=0表示无进程进入临界区它可以马上进入,并立即将W置为1,同时禁止其他进程进入。若W=1表示已经有进程进入,它只得等待。这种机构简单方便,但存在CPU勺时间浪费,因为等待进入临界区的进程将不断循环测试W等待W变为0。26、试修改下面生产者-消费者问题解法中的错误:producer:beginrepeatproduceaniteminnextp;wait(mutex);wait(full);buffer(in):=nextp;signal(mutex);untilfalse;endconsumer:beginrepeatwait(mutex);wait(empty);nextc:=buffer(out);out:=out+1;signal(mutex);consumeiteminnextc;untilfalse;end修改为:producer:beginrepeatproduceaniteminnextp;wait(empty);wait(mutex);buffer(in):=nextp;in:=(in+1)modn;signal(mutex);signal(full)untilfalse;endconsumer:beginrepeatwait(full);wait(mutex);nextc:=buffer(out);out:=(out+1)modn;out:=out+1;signal(mutex);signal(empty);consumeiteminnextc;untilfalseend27、试利用记录型信号量机制写出一个不会出现死锁的哲学家进餐问题的算法。28、在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两任务共享单缓冲区的同步算法。【解】算法如下:Varmutex,empty,full:semaphore:=1,1,0;buffer:item;beginparbeginReceive:beginrepeatWait(empty);Wait(mutex);buffer:=nextp;Signal(mutex);Signal(full);untilfalseendGet:beginrepeatWait(full);Wait(mutex);nextp:=buffer;Signal(mutex);Signal(empty);untilfalseendparendend29、画图说明管程由哪几部分组成?(P56)为什么要引入条件变量?(P57)【解】如图:30、如何利用管程来解决生产者—消费者问题?(P60)【解】首先为它们建立一个管程,描述如下:Typeproducer-consumer=monitorvarin,out,count:integer;buffer:array[0,,n-1]ofitem;notfull,notempty:condition;procedureentryput(item)beginifcount>=nthennotfull.wait;buffer(in):=nextp;in:=(in+1)modn;count:=count+1;ifnotempty.queuethennotempty.signal;endprocedureentryget(item)beginifcount<=0thennotempyt.wait;nextc:=buffer(out);out:=(out+1)modn;count:=count-1;ifnotfull.queuethennotfull.signal;endbeginin:=out:=0;count:=0;end生产者和消费者可描述为:producer:beginrepeatproduceaniteminnextp;PC.put(item);untilfalse;endconsumer:beginrepeatPC.get(item);consumetheiteminnextcuntilfalse;end31、什么是AND言号量?试利用AND言号量写出生产者一消费者问题的解法。【解】AND言号量是指:将进程在整个运行过程中所需的所有临界资源一次性地全部分配给进程,待该进程使用完后再一起释放。只要尚有一个资源未能分配给该进程,其他所有可能为之分配的资源,也不分配给他,即:对若干临界资源分配,采取原子操作方式,要么全部分配到进程,要么一个也不分配。叫AND言号量。解法如下:varmutex,empty,full:semaphore:=1,n,0;buffer:array[0,---,n-1]ofitem;in,out:integer:=O,O;beginparbeginproducer:beginrepeatproduceaniteminnextpSwait(empty,mutex);buffer(in):=nextp;in:=(in+1)modn;Ssignal(mutex,full);untilfalse;endconsumer:beginrepeatSwait(full,mutex);nextc:=buffer(out);out:=(out+1)modn;Ssignal(mutex,empty);consumetheiteminnextc;untilfalseend;32、什么是信号量集?试利用信号量集写出读者-写者问题的解法。33、试比较进程间的低级与高级通信工具。(P65)34、当前有哪几种高级通信机制?(P65)【解】共享存储器系统,消息传递系统,管道通信系统。35、消息队列通信机制有哪几方面功能?(P66)【解】发送进程利用send原语,将消息直接发送给接收进程;接收进程利用receive原语接收消息。36、为什么要在OS中引入线程?(P72)37、试说明线程具有哪些属性?(P73)38、试从调度性、并发性、拥有资源及系统开销几个方面,对进程和线程进行比较。【解】(1)调度性在传统的OS中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。而在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位,使传统进程的两个属性分开,线程便能轻装运行,从而显著提高系统并发程度。在同一进程中,线程的切换不会引起进程切换,在由一个进程中的线程切换到另一个进程中的线程时,将会引起进程切换。(2)并发性多线程的操作系统中,不仅进程可以并发执行,而且一个进程的多个线程也可并发执行。从而能更有效的使用系统资源和提高系统吞吐量。(3)拥有资源进程是拥有资源的独立单位。线程自己使不拥有系统资源,但可访问隶属进程的资源。(4)系统开销在创建和撤消进程时,系统要为之分配或回收资源,所以系统开销要显著大于在创建和撤消线程的开销。在进行进程切换时,涉及到整个当前进程CPU环境的保存以及新被调度运行的进程的CPU环境的设置。而线程切换只须保存和设置少量寄存器的内容,并不涉及存储器管理方面的操作。可见,进程切换的开销也远大于线程切换的开销。此外,由于同一进程中的多个线程具有相同的地址空间,致使它们之间的同步和通信的实现也变得比较容易。39、为了在多线程OS中实现进程之间的同步与通信,通常提供了哪几种同步机制?【解】互斥锁,条件变量,计数信号量,多读、单写锁。40、用于实现线程同步的私用信号量和公用信号量之间有何差异?(P76)41、何谓用户级线程和内核支持线程?(P77)【解】用户级线程仅存在于用户级中,它的创建、撤消和切换都不利用系统调用实现,与内核无关,相应的,内核也不知道有用户级线程存在。内核级线程依赖于内核,无论用户进程中的线程还是系统进程中的线程,其创建、撤消、切换都由内核实现。在内核中保留了一张线程控制块,内核根据控制块感知线程的存在并对其进行控制。比较:(1)线程的调度与切换速度内核支持线程的调度和切换与进程的调度和切换十分相似。例如,在线程调度时的调度方式,同样也是抢占方式和非抢占方式两种。在线程的调度算法上,也同样可采用时间片轮转、优先权算法等。当由线程调度选中一个线程后,再将处理机分配给它。当然,线程在调度和切换上所花费的开销要比进程的小得多。对于用户级线程的切换,通常是发生在一个应用程序的多线程之间,这时,不仅无须通过中断进入OS的内核,而且切换的规则也远比进程调度和切换的规则简单。例如,当一个线程阻塞后会自动切换到下一个具有相同功能的线程,因此,用户级线程的切换速度特别快。(2)系统调用当传统的用户进程调用一个系统调用时,要由用户态转入核心态,用户进程将被阻塞。当内核完成系统调用而返回时,才将该进程唤醒,继续执行。而在用户级线程调用一个系统调用时,由于内核并不知道有该用户级线程的存在,因而把系统调用看作是整个进程的行为,于是使该进程等待,而调度另一个进程执行,同样是在内核完成系统调用而返回时,进程才能继续执行。如果系统中设置的是内核支持线程,则调度是以线程为单位。当一个线程调用一个系统调用时,内核把系统调用只看作是该线程的行为,因而阻塞该线程,于是可以再调度该进程中的其他线程执行。(3)线程执行时间对于只设置了用户级线程的系统,调度是以进程为单位进行的。在采用轮转调度算法时,各个进程轮流执行一个时间片,这对诸进程而言,似是公平。但假如在进程A中包含了一个用户级线程,而进程B中含有100个线程,这样,进程A中线程的运行时间,将是进程B中各线程运行时间的100倍;相应地,速度就快100倍。假如系统中设置的是内核支持线程,其调度是以线程为单位进行的,这样,进程B可以获得的CPU寸间是进程A的100倍,进程B可使100个系统调用并发工作。42、试说明用户级线程的实现方法。(P77)43、试说明内核支持线程的实现方法。(P77)如何保证诸进程互斥地访问临界资源?答:为了互斥地访问临界资源,系统必须保证进程互斥地进入临界区。为此,必须在临界区前增加一段称为进入区的代码,以检查是否有其他进程已进入临界区使用临界资源。若有,则进程必须等待;否则,允许进程进入临界区,同时设置标志表示有进程正在临界区内。同样地,在临界区后必须增加一段称作退出区的代码,用于将已有进程进入临界区访问临界资源的标志改为无进程进入临界区使用临界资源。进入区、退出区具体可用多种同步机制实现,如锁、信号量机制等。何谓“忙等”?它有什么缺点?答:所谓“忙等”是指“不让权”的等待,即进程因某事件的发生而无法继续执行时,它仍占有CPU并通过不断地执行循环测试指令来等待该事件的完成。“忙等”的主要缺点是浪费CPU的时间,另外,它还可能引起预料不到的后果。例如,考虑某个采取高优先权优先调度原则的系统,目前有2个进程A和B共享某个临界资源,A的优先权较高,B的优先权较低,且B已处于临界区内,而A欲进入自己的临界区,贝UA、B都不可能继续向前推进,陷入“死等”状态。进程之间存在着哪几种制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系?(1)若干同学去图书馆借书;(2)两队举行篮球比赛;(3)流水线生产的各道工序;(4)商品生产和社会消费。答:进程之间存在着直接制约和间接制约两种制约关系,其中直接制约(同步)是由于进程间的相互合作而引起的,而间接制约(互斥)则是由于进程间共享临界资源而引起的。(1)若干同学去图书馆借书是间接制约,其中书是临界资源。(2)两队举行篮球比赛是间接制约,其中篮球是临界资源。(3)流水线生产的各道工序是直接制约,各道工序间需要相互合作,每道工序的开始都依赖于前一道工序的完成。(4)商品生产和社会消费是直接制约,两者也需要相互合作:商品生产出来后才可以被消费;商品被消费后才需要再生产。第二部分选择题•在进程管理中,当_c_时,进程从阻塞状态变为就绪状态。进程被进程调度程序选中B.等待某一事件C.等待的事件发生D.时间片用完•分配到必要的资源并获得处理机时的进程状态是_B_。就绪状态B.执行状态C.阻塞状态D.撤消状态P、V操作是A_。A.两条低级进程通信原语B.两组不同的机器指令C.两条系统调用命令D.两条高级进程通信原语设系统中有n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况,不可能发生的情况是_A_。没有运行进程,有2个就绪进程,n个进程处于等待状态。有1个运行进程,没有就绪进程,n-1个进程处于等待状态。有1个运行进程,有1个就绪进程,n-2个进程处理等待状态。有1个运行进程,n-1个就绪进程,没有进程处于等待状态。若P、V操作的信号量S初值为2,当前值为-1,则表示有_B_等待进程。A.0个B.1个C.2个D.3个进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件是D_。A.时间片用完B.等待某事件发生C.等待的某事件已发生D.被进程调度程序选中进程的三个基本状态在一定条件下可以相互转化,进程由运行状态变为阻塞状态的条件是B_。A.时间片用完B.等待某事件发生C.等待的某事件已发生D.被进程调度程序选中8.下列的进程状态变化中,_C_变化是不可能发生的。A.运行就绪B•运行就绪C•等待运行D.等待就绪一个运行的进程用完了分配给它的时间片后,它的状态变为_A_。A.就绪B.等待C.运行D.由用户自己确定用V操作唤醒一个等待进程时,被唤醒进程的状态变为_B_A.等待B.就绪C.运行D.完成操作系统通过_B_对进程进行管理。用P、V操作可以解决_A_互斥问题一个进程被唤醒意味着_D_A.该进程重新占有了CPUC.其PCB移至等待队列队首多道程序环境下,操作系统分配资源以_C_为基本单位。A.程序B.指令C.进程D.作业从静态的角度看,进程是由(A)、(B)、(C)三部分组成的,其中(C)是进程存在的唯标志。当几个进程共享(A)时,(A)应当是可重入代码。A:程序段;B:数据段;C:PCB卫程的三个基本状态是(A)、(B)、(C)。由(A)到(B)是由进程调度所引起的;由(B)到(C)是正在执行的进程发生了某事件,使之无法继续执行而引起的。A:就绪;_B:执行;C:阻塞;正在等待他人释放临界资源的进程处于(A)状态,已分配到除CPU外的所有资源的进程处于(B)状态,已获得CPU的进程处于(C)状态。A:阻塞;B:就绪;C:执行;下列进程状态转换中,绝对不可能发生的状态转换是(A);—般不会发生的状态转换是(B)oA:就绪—阻塞;B:阻塞—执行;在一个单处理机系统中,存在5个进程,最多可有(A)个进程处于就绪队列;如果这5个进程中有一个系统进程IDLE(也叫空转进程,因为它只是不断循环地执行空语句),则最多可有(B)个进程处于阻塞状态。A,B:(1)5;(2)4;(3)3;(4)2;(5)1;(6)0。正在执行的进程由于其时间片用完被暂停执行,此时进程应从执行状态变为(A)状态;处于静止阻塞状态的进程,在进程等待的事件出现后,应变为(B)状态;若进程正处于执行状态时,因终端的请求而暂停下来以便研究其运行情况,这时进程应转变为(C)状态,若进程已处于阻塞状态;则此时应转变为(D)状态。A:(1)静止阻塞;(2)活动阻塞;(3)静止就绪;(4)活动就绪;(5)执行。B:(1)静止阻塞;(2)活动阻塞;(3)静止就绪;(4)活动就绪;(5)执行。C:(1)静止阻塞;(2)活动阻塞;(3)静止就绪;(4)活动就绪;(5)执行。D:(1)静止阻塞;(2)活动阻塞;(3)静止就绪;(4)活动就绪;(5)执行。为使进程由活动就绪转变为静止就绪,应利用(A)原语;为使进程由执行状态转变为阻塞状态,应利用(B)原语;为使进程由静止就绪变为活动就绪,应利用(C)原语;从阻塞状态变为就绪状态应利用(D)原语。A:(1)create;(2)suspend;(3)active;(4)block;(5)wakeup。B:(1)create;(2)suspend;(3)active;(4)block;(5)wakeupC:(1)create;(2)suspend;(3)active_;(4)block;(5)wakeupD:(1)create;(2)suspend;(3)active;(4)block;(5)wakeup在分时系统中,导致进程创建的典型事件是(A);在批处理系统中,导致进程创建的典型事件是(B);由系统专门为运行中的应用进程创建新进程的事件是(C)。在创建进程时,(D)不是创建所必需的步骤。A:(1)用户注册;(2)用户登录;(3)用户记账;(4)用户通信。B:(1)作业录入;(2)作业调度;(3)进程调度;(4)中级调度。C:(1)分配资源;(2)进行通信;(3)共享资源;(4)提供服务。D:(1)为进程建立PCB(2)为进程分配内存等资源;(3)为进程分配CPU(4)将进程插入就绪队列。从下面对临界区的论述中,选出一条正确的论述。(1)临界区是指进程中用于实现进程互斥的那段代码。临界区是指进程中用于实现进程同步的那段代码。临界区是指进程中用于实现进程通信的那段代码。临界区是指进程中用于访问共享资源的那段代码。临界区是指进程中访问临界资源的那段代码。_进程A和B共享同一临界资源,并且进程A正处于对应的临界区内执行。请从下列描述中选择一条正确的描述。C进程A的执行不能被中断,即临界区的代码具有原子性。进程A的执行能被中断,但中断A后,不能将CPU调度给进程B。进程A的执行能被中断,而且只要B进程就绪,就可以将CPU调度给进程Bo进程A的执行能被中断,而且只要B进程就绪,就必定将CPU调度给进程Bo(A)是一种只能由wait和signal操作所改变的整型变量,(A)可用于实现进程的(B)和(C),(B)是排他性访问临界资源。A:(1)控制变量;(2)锁;(3)整型信号量;(4)记录型信号量。B:(1)同步;(2)通信;(3)调度;(4)互斥。C:(1)同步;(2)通信;(3)调度;(4)互斥。对于记录型信号量,在执行一次wait操作时,信号量的值应当(A),当其值为(B)时,进程阻塞。在执行signal操作时,信号量的值应当为(C),当其值为(D)时,应唤醒阻塞队列中的进程。A:(1)不变;(2)加1;(3)减1;(4)加指定数值;(5)减指定数值。B:(1)大于0;(2)小于0;(3)大于等于0;(4)小于等于0.C:(1)不变;(2)加1;(3)减1;(4)加指定数值;(5)减指定数值。D:(1)大于0;(2)小于0;(3)大于等于0;(4)小于等于_0.用信号量S实现对系统中4台打印机的互斥使用,S.value的初值应设置为(A),若S.value的初值为-1,则表示S丄队列中有(B)个等待进程。A:(1)1;(2)0;(3)-1;(4)4;(5)-4B:(1)1;(2)2;(3)3;(4)4;(5)5;(6)6;(7)0。设有10个进程共享一个互斥段,如果最多允许有1个进程进入互斥段,则所采用的互斥信号量初值应设置为(A),而该信号量的取值范围为(B);如果最多允许有3个进程同时进入互斥段,则所采用的互斥信号量初值应设置为(C)oA:(1)10;(2);3;(3)1;(4)0oB:(1)0~1;(2)-1~0;(3)1~-9;(4)0~-9。C:(1)10;(2);3;(3)1;(4)0o在生产者-消费者问题中,应设置互斥信号量mutex、资源信号量full和empty。它们的初值宜应分别为(A)、(B)、(C)oA:(1)0;(2)1;(3)-1;(4)-n;(5)+n。B:(1)0;(2)1;(3)-1;(4)-n;(5)+n。C:(1)0;(2)1;(3)-1;(4)-n;(5)+n。30.对生产者-消费者问题的算法扌描述如皿下,请选择正确的答案编号填入方框中Producer:beginRepeat;;Buffer(in):=m;In:=(in+1)modn;;;UntilfalseEndConsumer:beginRepeat;(B);M:=buffer(out);Out:=(out+1)modn;(C);;UntilfalseendA:(1)wait(mutex);(2)signal(mutex);(3)wait(empty);_(4)signal(full);wait(full);(6)signal(empty)。B:(1)wait(mutex);_(2)signal(mutex);(3)wait(empty);(4)signal(full);(5)wait(full);(6)signal(empty)。C:(l)wait(mutex);(2)signal(mutex);_(3)wait(empty);(4)signal(full);(5)wait(full);(6)signal(empty)。D:(l)wait(mutex);(2)signal(mutex);(3)wait(empty);(4)signal(full);(5)wait(full);(6)signal(empty)。E:(l)wait(mutex);(2)signal(mutex);(3)wait(empty);(4)signal(full);(5)wait(full);_(6)signal(empty)。F:(l)wait(mutex);(2)signal(mutex);(3)wait(empty);(4)signal(full);(5)wait(full);(6)signal(empty)_。31•试选择(A)~(D),以便能正确地描述图2.12所示的前趋关系Vara,b,c:semaphore:=0,0,0;BeginParbeginBeginS1;(A);end;BeginS2;(B);end;BeginWait(a);wait(b);S3;(C);EndBegin(D);S4endParendEndA:(1)signal(a);_(2)signal(b);(3)wait(c);⑷signal(c)。B:(1)signal(a);(2)signal(b);_(3)wait(c);⑷signal(c)。C:(1)signal(a);(2)signal(b);(3)wait(c);⑷signal(c)。D:(1)signal(a);(2)signal(b);(3)wait(c);⑷signal(c)。有两个程序:A程序按顺序使用CPU1C秒、设备甲5秒、CPU砂、设备乙10秒、CPU1(秒;B程序按顺序使用设备甲10秒、CPU1(秒、设备乙5秒、CPU5秒、设备乙10秒。在顺序环境下,执行上述程序,CPU的利用率约为(A)。若允许它们采用非抢占方式并发执行,并且不考虑切换等开销,则CPU的利用率约为(B)。A(1)30%(2)40%(3)50%(4)60%(5)70%(6)80%(7)90%B(1)30%(2)40%(3)50%(4)60%(5)70%(6)80%(7)90%从下面的叙述中选出一条正确的叙述:(1)操作系统的一个重要概念是进程,不同的进程所执行的代码也不同。(2)操作系统通过PCB来控制和管理进程,用户进程可从PCB中读出与本身运行状态相关的信息。(3)当进程由执行状态变为就绪状态时,_CPU现场信息必须被保存在_PCB中。(4)当进程申请CPU得不到满足时,它将处于阻塞状态。(5)进程是可与其他程序并发执行的程序在一个数据集合上的运行过程,所以程序段是进程存在的唯一标志。从下面的叙述中选出4条正确的叙述:(1)一个进程的状态发生变化总会引起其它一些进程的状态发生变化。(2)进程被挂起(suspend)后,状态变为阻塞状态。(3)信号量的初值不能为负数。_(4)线程是_CPU调度的基本单位,但不是资源分配的基本单位。—5)在进程对应的代码中使用wait、signal操作后,可以防止系统发生死锁(6)管程每次只允许一个进程进入。(7)wait、signal_操作可以解决一切互斥问题。(8)程序的顺序执行具有不可再现性。在引入线程的操作系统中,资源分配和调度的基本单位是(A),CPU调度和分配的基本单位是(B)A:(1)程序;(2)进程;(3)线程;(4)作业。B:(1)程序;(2)进程;(3)线程;(4)作业剥夺调度;(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理剥夺调度;(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理剥夺调度;(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理剥夺调度;(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理在三种基本类型的操作系统中,都设置了(A),在批处理系统中还应设置(B);在分时系统中除了置(D)A:(1)机调度’B:(1)机调度’C:(1)机调度’D:(1)机调度。在面向用户的调度准则中,(A)是选择实时调度算法的重要准则,(B)是选择分时系统中进程调度算法的重要准则,(C)是批处理系统中选择作业调度算法的重要准则,而(D)准则则是为了照顾紧急作业用户的要求而设置的A:(1)响应时间快;(2)高的作业能获得优先服务;B:(1)响应时间快;(2)高的作业能获得优先服务;C:(1)响应时间快;(2)高的作业能获得优先服务;D:(1)响应时间快;(2)高的作业能获得优先服务;38.支持多道程序设计的操作系统,在运行过程中不断地选择新进程运行来实现CPU的共享,但其中(A)不是引起操作系统选择新进程的直接原因A:(1)执行进程的时间片用完;(2)执行进程出错;(3)执行进程要等待某一事件发生;(4)有新进程进入就绪队列。般情况下,互斥信号量的初值为BB.139、A.0C.2D.4第三部分是非题•进程是动态的概念(对)•进程执行需要处理机(对)•进程是有生命期的(对)•进程是指令的集合(错)5.操作系统的一重要概念是进程,因此不同进程所执行的代码也一定不同(错)7•操作系统用PCB管理进程,用户进程可以从PCB中读出与本身运行状况有关的信息(错)8•进程同步是指某些进程之间在逻辑上的相互制约关系(对)在一个只有单个CPU勺计算机中,进程不能并行操作。错。一个进程在利用CPU运行,另一个进程可以同时进行I/O操作,它们是并行的。线程可以分为内核级(KernelThread)和用户级(UserThread)两种,操作系统不可以直接调度用户级的线程。对。第四部分填空题•信号量的物理意义是当信号量值大于零时表示.可用资源的数目一;当信号量值小于零时,其绝对值为因请求该资源而被阻塞的进程数目_。•临界资源的概念是一次仅允许一个进程访问的资源—,而临界区是指进程中访问临界资源的那段程序代码—o•进程在运行过程中有三种基本状态,它们是.运行、就绪、等待。4•进程主要由程序段、数据段、PCB三部分内容组成,其中PCB是进程存在的唯一标志。而程序段一部分也可以为其他进程共享。•系统中各进程之间逻辑上的相互制约关系称为.进程同步一。•若一个进程已进入临界区,其他欲进入临界区的进程必须_等待。•将进程的PCB链接在一起就形成了进程队列。8•用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用P操作,退出临界区时应调用V操作。9•在多道程序系统中,进程之间存在着的不同制约关系可以划分为两类:同步_与互斥。同步指进程间具有的一定逻辑关系;互斥是指进程间在使用共享资源方面的约束关系。10、程序顺序执行时有顺序性、封闭性_和可再现性的特点。11、有m个进程共享同一临界资源,—若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是1~(m-1)。12、在一个单处理机系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程最多有4_个,最少有_0_个。13、在单用户单任务环境下,用户独占全机,此时机内资源的状态,只能由运行程序的操作加以改变,此时的程序执行具有—封闭性_性和_可再现性—性特征。14、并发进程之间的相互制约,是由于它们的_共享资源_和_相互合作—而产生的,因而导致程序在并发执行时具有—间断性或异步性—特征。15、程序并发执行与顺序执行时相比产生了一些新特征,分别是、—和—o间断性、失去封闭性、不可再现性16、引入进程的目的是_,而引入线程的目的是o使程序能正确地并发执行,以提高资源利用率和系统吞吐量;减少并发执行的开销,提高程序执行的并发程度。17、进程由、和组成,其中是进程存在的唯一标志。PCB程序段、数据段、PCB18、进程最基本的特征是_和_,除此之外,它还有—、—和—特征。动态性、并发性、独立特征、异步性、结构19、由于进程的实质是程序的一次执行,故进程有—的基本特征,该特征还表现在进程由而产生,由而执行,由而消亡,即进程具有一定的生命期。动态性,创建,调度,撤销20、引入进程带来的好处是—和—。提高资源利用率,增加系统吞吐量21、当前正在执行的进程由于时间片用完而暂停执行时,该进程应转变为状态;若因发生某种事件而不能继续执行时,应转为—状态;若应终端用户的请求而暂停执行时,它应转为状态。就绪,阻塞,静止就绪22、用户为阻止进程继续运行,应利用原语,若进程正在执行,应转为—状态;以后,若用户要恢复其运行,应利用—原语,此时进程应转为—状态。挂起;静止就绪;激活;活动就绪23、系统中共有5个用户进程,且当前CPU在用户态下执行,则最多可有—个用户进程处于就绪状态,最多可有个用户进程处于阻塞状态;若当前在核心态下执行,则最多可有个用户进程处于就绪状态,最多可有个用户进程处于阻塞状态。4,4,5,524、同步机制应遵循的准则:、、—和。空闲让进、忙则等待、有限等待、让权等待25、在记录型信号量机制中,S.value>0时的值表示;每次wait操作意味着,因此应将S.value,当S.value时,进程应阻塞。可用的临界资源数量;申请一个临界资源;减1;小于026、在记录型信号量机制中,每次signal操作意味着,因此应将S.value,当S.value<=0时,表示,此时应。释放一个临界资源,加1,仍有请求该资源的进程被阻塞;唤醒相应阻塞队列中的首进程27、在利用信号量实现进程互斥时,应将_置于_和_之间。临界区,wait操作,signal操作28、在每个进程中访问_的那段代码称为临界区。为实现对它的共享,应保证进程_进入自己的临界区,为此,在每个进程的临界区前应设置_,临界区后应设置。临界资源,互斥,进入区,退出区29、进程通信的类型有三类,其中_利用共享文件进行通信。共享存储器、消息系统、管道通信、管道通信30、为实现消息缓冲队列通信,应在PCB中增加_、—、_三个数据项。消息队列首指针mq消息队列互斥信号量mutex;消息队列资源信号量sm31、在直接通信方式中,系统通常提供的两条通信原语如下,请选择适当的参数填入。Send((A),(B));Receive((C),(B));A:(1)sender;⑵receiver;(3)text;(4)message(5)mailboxB:(1)sender;⑵receiver;
本文档为【(完整版)现代操作系统课后习题答案(20210205084719)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_321635
暂无简介~
格式:doc
大小:221KB
软件:Word
页数:0
分类:
上传时间:2021-02-27
浏览量:274