第4章 进程同步与死锁习题答案
4.2 进程同步习题
【例】现有4个进程R1,R2,W1,W2。它们共享 可以存放一个数据的缓冲器B。进程R1每次把磁 盘上读出的一个数据存到缓冲器B中,供进程W1 打印输出;进程R2每次从键盘上读一个数据存放 到缓冲器B,供W2打印输出。当一个进程把数据 存放到缓冲器后,在该数据还没有打印输出之前 不准任何进程再想缓冲器中存数据。当一个进程 已把缓冲器中的数据打印输出后,在缓冲器中还 没有存如新数据之前不准任何进程再从缓冲器中 取数打印。问怎样用PV操作使这4个进程并发执 行时能相互协作地工作?
• Semaphore Customers = 0; • Semaphore Barber = 0; • Mutex accessSeats = 1; • int NumberOfFreeSeats = N; //total number of seats
Customer() { while(true) Barbers() { { P(accessSeats); //lock while(true) if(NumberOfFreeSeats >0) { { P(customers); NumberOfFreeSeats--; //等待顾客,睡眠 V(customers);//通知理发师 P(accessSeats); //lock V(accessSeats);//unlock NumberOfFreeSeats++; P(barbers);//等待理发师 V(accessSeats); //unlock 顾客理发 理发中… } V(barbers) ; else }//while V(accessSeats); } }//while }
3 两个进程可以改为 semaphore S1=1 semaphore S2=0 Process X L1:P(S1) 使用资源r V(S2) goto L1
死锁习题及答案
死鎖習題及答案一、填空題1.進程の“同步”和“互斥”反映了進程間①和②の關系。
【答案】①直接制約、②間接制約【解析】進程の同步是指在異步環境下の並發進程因直接制約而互相發送消息,進行相互合作、相互等待,使得各進程按一定の速度執行の過程;而進程の互斥是由並發進程同時共享公有資源而造成の對並發進程執行速度の間接制約。
2.死鎖產生の原因是①和②。
【答案】①系統資源不足、②進程推進路徑非法【解析】死鎖產生の根本原因是系統の資源不足而引發了並發進程之間の資源競爭。
由於資源總是有限の,我們不可能為所有要求資源の進程無限地提供資源。
而另一個原因是操作系統應用の動態分配系統各種資源の策略不當,造成並發進程聯合推進の路徑進入進程相互封鎖の危險區。
所以,采用適當の資源分配算法,來達到消除死鎖の目の是操作系統主要研究の課題之一。
3.產生死鎖の四個必要條件是①、②、③、④。
【答案】①互斥條件、②非搶占條件、③占有且等待資源條件、④循環等待條件【解析】互斥條件:進程對它所需の資源進行排它性控制,即在一段時間內,某資源為一進程所獨占。
非搶占條件:進程所獲得の資源在未使用完畢之前,不能被其它進程強行奪走,即只能由獲得資源の進程自己釋放。
占有且等待資源條件:進程每次申請它所需の一部分資源,在等待新資源の同時,繼續占有已分配到の資源,循環等待條件:存在一進程循環鏈,鏈中每一個進程已獲得の資源同時被下一個進程所請求。
4.在操作系統中,信號量是表示①の物理實體,它是一個與②有關の整型變量,其值僅能由③原語來改變。
【答案】①資源,②隊列,③P-V【解析】信號量の概念和P-V原語是荷蘭科學家E.W.Dijkstra提出來の。
信號量是一個特殊の整型量,它與一個初始狀態為空の隊列相聯系。
信號量代表了資源の實體,操作系統利用它の狀態對並發進程共享資源進行管理。
信號量の值只能由P-V原語來改變。
5.每執行一次P原語,信號量の數值S減1。
如果S>=0,該進程①;若S<0,則②該進程,並把它插入該③對應の④隊列中。
操作系统课后题答案
精品文档3、何谓死锁?产生死锁的原因和必要条件是什么?死锁:两个或两个以上的进程都无限止地等待永远不会发生的事件而出现的一种状态。
产生死锁的原因:(1)竞争资源。
为多个进程所共享的资源不足,引起它们对资源的竞争而产生死锁;(2)进程推进顺序不当。
进程运行过程中,请求和释放资源的顺序不当,而导致死锁。
产生死锁必要条件:(1)互斥条件;一个资源每次仅能被一个进程使用,进程一旦申请到了资源后占为己有,则排出其它进程享受该资源。
(2)请求和保持条件;已分配到了一些资源的进程又可以申请新的资源,进程因未分配到新的资源也不释放自己占有的资源。
(3)非剥夺条件;已分配给一进程的资源不可剥夺,进程获得的资源尚未使用完毕之前,只能被占者自己释放,其它进程不能强行占用。
(4)循环等待条件;存在由两个或两个以上进程组成的循环等待链,链中的每一个进程都在等待相邻进程占用的资源。
4、引入缓冲的主要原因是什么,缓冲分为哪几种类型?在操作系统中,引入缓冲的主要原因,可归结为以下几点:(1)改善CPU与I/O设备间速度不匹配的矛盾(2)可以减少对CPU的中断频率,放宽对中断响应时间的限制(3)提高CPU和I/O设备之间的并行性缓冲有硬件缓冲和软件缓冲之分。
硬件缓冲是指以专用的寄存器作为缓冲器。
软件缓冲是指在操作系统的管理下,在内存中划出若干个单元作为缓冲区。
软件缓冲的好处是易于改变缓冲区的大小和数量,但占用了一部分内存空间。
软件缓冲根据缓冲区设置个数的多少,可分为单缓冲、双缓冲和多缓冲。
根据缓冲区的从属关系,可以分为专用缓冲区和缓冲池。
5、有几种I/O控制方式?有四种I/O控制方式,即程序I/O控制方式、中断驱动I/O控制方式、直接存储器访问DMA控制方式及I/O通道控制方式。
程序I/O方式(适用于结构简单,只需少量硬件的电路) 中断驱动I/O控制方式(适用于高效的场合,例如办公室) 直接存储器访问DMA I/O控制方式(适用于无须CPU介入的控制器来控制内存与外设之间的数据交流的场合) I/O通道控制方式(适用于以字节为单位的干预,同时实现CPU,通道和I/O设备三者并行操作的场合).。
第3章死锁习题及答案
第三章死锁习题一、填空题1.进程的“同步”和“互斥”反映了进程间①和②的关系。
【答案】①直接制约、②间接制约【解析】进程的同步是指在异步环境下的并发进程因直接制约而互相发送消息,进行相互合作、相互等待,使得各进程按一定的速度执行的过程;而进程的互斥是由并发进程同时共享公有资源而造成的对并发进程执行速度的间接制约。
2.死锁产生的原因是①和②。
【答案】①系统资源不足、②进程推进路径非法【解析】死锁产生的根本原因是系统的资源不足而引发了并发进程之间的资源竞争。
由于资源总是有限的,我们不可能为所有要求资源的进程无限地提供资源。
而另一个原因是操作系统应用的动态分配系统各种资源的策略不当,造成并发进程联合推进的路径进入进程相互封锁的危险区。
所以,采用适当的资源分配算法,来达到消除死锁的目的是操作系统主要研究的课题之一。
3.产生死锁的四个必要条件是①、②、③、④。
【答案】①互斥条件、②非抢占条件、③占有且等待资源条件、④循环等待条件【解析】互斥条件:进程对它所需的资源进行排它性控制,即在一段时间内,某资源为一进程所独占。
非抢占条件:进程所获得的资源在未使用完毕之前,不能被其它进程强行夺走,即只能由获得资源的进程自己释放。
占有且等待资源条件:进程每次申请它所需的一部分资源,在等待新资源的同时,继续占有已分配到的资源,循环等待条件:存在一进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。
4.在操作系统中,信号量是表示①的物理实体,它是一个与②有关的整型变量,其值仅能由③原语来改变。
【答案】①资源,②队列,③P-V【解析】信号量的概念和P-V原语是荷兰科学家E.W.Dijkstra提出来的。
信号量是一个特殊的整型量,它与一个初始状态为空的队列相联系。
信号量代表了资源的实体,操作系统利用它的状态对并发进程共享资源进行管理。
信号量的值只能由P-V原语来改变。
5.每执行一次P原语,信号量的数值S减1。
如果S>=0,该进程①;若S<0,则②该进程,并把它插入该③对应的④队列中。
计算机操作系统-陆丽娜-课后答案第四章
14. 设 N 为整型数,初始值为 3,两个并发进程 A 和 B 的程序如下:
process A
process B
do{ N=N+5; }
do{ print(N);
N=0;
} 若 process A 先执行了三个循环后,process A 和 process B 又并发执
行了一个循环,写出可能出现的打印值。请用 P、V 操作实现同步, 使两并发进程能正确执行。
量 S1 和 S2 初值均为 0。试问 P1、P2 并发执行后,x、y 的值各为多 少?
P1:
P2:
begin
begin
y:=1;
x:=1;
y:=y+3;
x:=x+5;
V(S1);
P(S1);
z:=y+1;
x:=x+y;
P(S2);
V(S2);
y:=z+y
end
z:=z+x;
end 答:x=10 y=9 z=15
9. 列举死锁的各种预防策略。 答: 静态分配资源策略:要求每一个进程在开始执行前就要申请它所需要 的全部资源,仅当系统能满足进程的资源申请要求时才把资源分配给 进程,该进程才能开始执行(注意,所有并发执行的进程要求的资源 总和不能超过系统拥有的资源数)。(破坏第二个条件)
按序分配资源策略:把系统中所有资源排一个顺序,对每一个资源给 一个确定的编号,规定任何一个进程申请两个以上资源时总是先申请 编号小的资源,后申请编号大的资源(或者先申请编号大的,后申请 编号小的资源)。系统按进程对资源的申请顺序来分配资源。按序分 配策略将阻止死锁 的第四个条件(循环等待条件)的出现。
end
Ⅱ 单项选择题
操作系统期末考试题和答案
操作系统期末考试题和答案一、选择题(每题2分,共20分)1. 在操作系统中,进程和程序的主要区别是()。
A. 程序是静态的,进程是动态的B. 程序是动态的,进程是静态的C. 程序是操作系统的一部分,进程是用户的一部分D. 程序是用户的一部分,进程是操作系统的一部分答案:A2. 下列关于死锁的描述中,错误的是()。
A. 死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种僵局B. 死锁产生的原因是系统资源不足C. 死锁的四个必要条件是互斥、占有和等待、不可剥夺和循环等待D. 死锁可以预防,但无法避免答案:D3. 在分页存储管理中,页表的作用是()。
A. 将逻辑地址转换为物理地址B. 将物理地址转换为逻辑地址C. 存储进程的执行状态D. 存储进程的资源分配情况答案:A4. 虚拟内存技术的主要目的是()。
A. 提高CPU的利用率B. 提高内存的利用率C. 提高I/O设备的利用率D. 提高磁盘的利用率答案:B5. 在操作系统中,文件的逻辑结构通常采用()。
A. 顺序结构B. 链接结构C. 索引结构D. 树形结构答案:A6. 操作系统中,文件的物理结构通常采用()。
A. 顺序结构B. 链接结构C. 索引结构D. 树形结构答案:B7. 在操作系统中,文件的共享是指()。
A. 多个进程可以同时访问同一个文件B. 多个进程可以同时修改同一个文件C. 多个进程可以同时创建同一个文件D. 多个进程可以同时删除同一个文件答案:A8. 在操作系统中,文件的保护是指()。
A. 防止文件被非法访问B. 防止文件被非法修改C. 防止文件被非法删除D. 以上都是答案:D9. 在操作系统中,文件的组织方式通常采用()。
A. 顺序文件B. 随机文件C. 索引文件D. 以上都是答案:D10. 在操作系统中,文件的存取方式通常采用()。
A. 顺序存取B. 随机存取C. 直接存取D. 以上都是答案:D二、填空题(每题2分,共20分)1. 操作系统的主要功能包括______、______、文件管理、设备管理和______。
操作系统第四章进程调度和死锁习题及答案
第四章一、单项选择题1.为了根据进程的紧迫性做进程调度,应采用(B )。
A.先来先服务调度算法 B. 优先数调度算法 C.时间片轮转调度法 D.分级调度算法2.采用时间片轮转法调度是为了( A)。
A.多个终端都能得到系统的及时响应 B.先来先服务C. 优先数高的进程先使用处理器 D.紧急事件优先处理3.采用优先数调度算法时,对那些具有相同优先数的进程再按( A )的次序分配处理器。
A 先来先服务 B. 时间片轮转 C. 运行时间长短 D.使用外围设备多少4. 当一进程运行时,系统强行将其撤下,让另一个更高优先数的进程占用处理器,这种调度方式是( B )。
A. 非抢占方式B.抢占方式 C. 中断方式 D.查询方式5.( B)必定会引起进程切换。
A.一个进程被创建后进入就绪态B.一个进程从运行态变成阻塞态C.一个进程从阻塞态变成就绪态6.( B)只考虑用户估计的计算机时间,可能使计算时间长的作业等待太久。
A.先来先服务算法B.计算时间短的作业优先算法C.响应比最高者优先算法 D.优先数算法7.先来先服务算法以( A )去选作业,可能会使计算时间短的作业等待时间过长。
A.进入的先后次序 B.计算时间的长短 C.响应比的高低 D.优先数的大小8.可以证明,采用( C )能使平均等待时间最小。
A.优先数调度算法 B.均衡调度算法C.计算时间短的作业优先算法 D.响应比最高者优先算法9.在进行作业调度时.要想兼顾作业等待时间和计算时间,应选取(D )。
A均衡调度算法 B.优先数调度算法C.先来先服务算法D.响应比最高者优先算法10.作业调度算法提到的响应比是指( B )。
A.作业计算时间与等待时间之比B.作业等待时间与计算时间之比C.系统调度时间与作业等待时间之比 D.作业等待时间与系统调度时间之比11.作业调度选择一个作业装入主存后,该作业能否占用处理器必须由( D )来决定。
A.设备管理 B.作业控制 C.驱动调度D.进程调度12.系统出现死锁的根本原因是( D )。
第四章进程调度与死锁习题及答案
第四章一.选择题1.预防死锁不可以去掉以下__A__条件。
A.互斥 B.请求与保持 C.不可剥夺 D.环路2.资源分配图是否可以完全简化是判断死锁的_C__。
A.充分条件 B.必要条件 C.充分必要条件 D.什么也不是3.设有4个作业同时到达,每个作业的执行时间是2min,它们在一台处理机上按单道方式运行,则平均周转时间为_B__。
A.1min B.5min C.2.5min D.8min4.若系统中有8台绘图仪,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许_C__各进程参与竞争,而不会发生死锁。
A.5 B .6 C .7 D .85.响应比高者优先作业调度算法除了考虑进程在CPU上的运行时间,还考虑以下__D_因素。
A.输入时间B.完成时间C.周转时间D.等待时间6.产生系统死锁的原因可能是_B__。
A.一个进程进入死循环B.多个进程竞争资源出现了循环等待C.进程释放资源D.多个进程竞争共享型设备7.以下_B__方法可以解除死锁。
A.挂起进程B.剥夺资源C.提高进程优先级D.降低进程优先级8.采用有序分配资源的策略可以破坏产生死锁的__D_。
A.互斥条件B.请求与保持条件C.不可剥夺条件D.环路条件9.连个进程争夺同一个资源_B__。
A.一定死锁B.不一定死锁C.不死锁D.以上说法都不对10.以下解决死锁的方法中,属于预防策略的是_C__。
A.化简资源分配图B.银行家算法C.资源的有序分配D.死锁检测法11.下面__D_说法是对可剥夺系统的正确描述。
A.时间片轮转法是一种可剥夺式调度B.进程因等待某一事件而引起系统调度是一种可剥夺式调度C.实时系统采用可剥夺式调度D.优先级低的进程放弃CPU,让优先级高的进程运行12.以下关于调度的说法__A__正确。
A.进程通过调度得到CPUB.优先级是进程调度的主要依据,一旦确定就不能改变C.在单CPU的系统中,任何时刻都有一个进程处于运行状态D.进程申请CPU得不到时,其状态为阻塞13.既考虑进程的等待时间,又考虑进程的执行时间的调度算法是__A__。
计算机操作系统习题及答案(4)
第4章进程同步与通信1)选择题(1)在操作系统中,P、V操作是一种_D__。
A. 机器指令B. 系统调用命令C. 作业控制命令D. 低级进程通信原语(2)若信号量S的初值为2,当前值为-1,则表示有_B__等待进程。
A. 0个B. l个C. 2个D. 3个(3)在直接通信方式中,系统提供两条通信原语进行发送和接收,其中Send原语中参数应是_C_。
A. sender,messageB. sender,mailboxC. receiver,messageD. receiver,mailbox(4)下述那个选项不是管程的组成部分_A__。
A. 管程外过程调用管程内数据结构的说明B. 管程内对数据结构进行操作的一组过程C. 局部于管程的共享数据说明D. 对局部于管程的数据结构设置初值的语句(5)某通信方式通过共享存储区来实现,其属于_D__。
A. 消息通信B. 低级通信C. 管道通信D. 高级通信(6)用P、V操作管理临界区时,信号量的初值应定义为__C__。
A. -1B. 0C. 1D. 任意值(7)临界区是_B__。
A. 一个缓冲区B. 一段程序C. 一段共享数据区D. 一个互斥资源(8)信箱通信是一种_D__通信方式。
A. 直接通信B. 信号量C. 低级通信D. 间接通信(9)对于两个并发进程,设互斥信号量为mutex,若mutex=0则__A_。
A. 表示有一个进程进入临界区B. 表示没有进程进入临界区C. 表示有一个进程进入临界区,另一个进程等待进入D. 表示有两个进程进入临界区(10)对信号量S执行V操作后,下述选项正确的是_C__。
A. 当S小于等于0时唤醒一个阻塞进程B. 当S小于0时唤醒一个阻塞进程C. 当S小于等于0时唤醒一个就绪进程D. 当S小于0时唤醒一个就绪进程(11)在消息缓冲通信中,消息队列属于_A__资源。
A. 临界B. 共享C. 永久D. 可剥夺(12)在消息缓冲通信机制中,使用的临界资源是_D__。
操作系统习题第四章
操作系统习题第四章第四章互斥、同步与通讯一、单项选择题1.一个正在访问临界资源的进程由于申请等待I/O操作而被中断时,__________.A. 可以允许其他进程进入与该进程相关的临界区B. 不允许其他进程进入任何临界区C. 可以允许其他就绪进程抢占处理器,继续运行D.不允许任何进程抢占处理器 2.两个并发进程之间 ______A 一定存在互斥关系B 一定存在同步关系C 一定彼此独立无关D 可能存在同步或互斥关系3.为了使两个进程能同步运行,最少需要_______个信号量。
A 一B 二C 三D 四 4.共享变量是指__________访问的变量。
A. 只能被系统进程B. 只能被多个进程互斥C. 只能被用户进程D. 可被多个进程 5.临界区是指并发进程中访问共享变量的__________.A.管理信息 B.数据 C.信息存储 D.程序段6.设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时信号量S的可能取值是___________A.1,0,-1,-2B.2,0,-1,-2C.1,0,-1D.3,2,1,0 7.进程的并发执行是指若干个进程__________.A. 同时执行B. 在执行的时间上是重叠的C. 在执行的时间上是不可重叠的D. 共享系统资源8.在进程通信中,__________常用信件交换信息。
A.低级通信 B.高级通信 C.消息通信 D.管道通信9.实现进程同步时,每一个消息与一个信号量对应,进程_________可把不同的消息发送出去。
A.在同一信号量上调用P操作B.在不同信号量上调用P操作C.在同一信号量上调用V操作D.在不同信号量上调用V操作10._________是只能有P和V操作所改变的整形变量。
A.共享变量B.锁C.整型信号量D.记录型信号量11.在执行V操作时,当信号量的值_________时,应释放一个等待该信号量的进程。
A.大于0B.小于0C.大于等于0D.小于等于0 12.进程和程序的主要区别是__________.A.占用处理器和不占用处理器B.占用主存和不占用主存C.动态和静态D.连续执行和非连续执行13.有三个进程P1,P2,P3共享同一个程序段,而每次最多允许两个进程进入该程序段,则信号量S的初值为___________. A. 0 B. 1 C. 2 D. 314.若P、V操作的信号量S初值为2,当前值为-1,则表示有_________等待进程。
习题解答第4章概要
习题解答第四章并发进程的同步与互斥1、进程间同步和互斥的含义是什么?答:同步:并发进程之间存在的相互制约和相互依赖的关系。
互斥:若干进程共享一资源时,任何时刻只允许一个进程使用。
2、用文字描述银行家算法的基本思想?答:银行家算法的基本思想是:将系统中的所有资源比做银行家的资金,每进行一次资源的分配,银行家都要从当前的资源分配情况出发,计算这种分配方案的安全性,如果是安全的,则进行分配,否则选择其它可能的分配方案。
这样,每次分配都计算安全性,从而可以避免死锁的发生。
3、简述死锁的防止与死锁的避免的区别。
答:死锁的防止是系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配,从而防止死锁的发生。
而死锁的避免是当进程提出资源申请时系统测试资源分配,仅当能确保系统安全时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。
4、试说明资源的静态分配策略能防止死锁的原因。
答:资源静态分配策略要求每个进程在开始执行前申请所需的全部资源,仅在系统为之分配了所需的全部资源后,该进程才开始执行。
这样,进程在执行过程中不再申请资源,从而破坏了死锁的四个必要条件之一“占有并等待条件”,从而防止死锁的发生。
5、有三个进程P1,P2和P3并发工作。
进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3。
回答:(1)若对资源分配不加限制,会发生什么情况?为什么?(2)为保证进程正确工作,应采用怎样的资源分配策略?为什么?答:.(1)可能会发生死锁例如:进程P1,P2和P3分别获得资源S3,S1和S2后再继续申请资源时都要等待(2分),这是循环等待。
(或进程在等待新源时均不释放已占资源)(2)可有几种答案:A.采用静态分配由于执行前已获得所需的全部资源,故不会出现占有资源又等待别的资源的现象(或不会出现循环等待资源现象)。
或B.采用按序分配不会出现循环等待资源现象。
或C.采用银行家算法因为在分配时,保证了系统处于安全状态。
操作系统第4章习题带答案
操作系统第4章习题带答案第四章⼀、问答题1、同步机制应遵循的准则是什么?2、死锁产⽣的4个必要条件是什么?它们是彼此独⽴的吗?3、简述死锁的定义和死锁产⽣的原因。
4、简述死锁定理和解除死锁的⽅法。
5、什么是安全状态?怎么判断系统是否处于安全状态?6、同步机制应遵循的准则是什么?7、死锁产⽣的4个必要条件是什么?它们是彼此独⽴的吗?⼆、计算题(共20分)1、当前系统中出现下述资源分配情况:利⽤银⾏家算法,试问如果进程P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?答:Request(1,2,2,2)<=(2,3,5,6)申请合法Request(1,2,2,2)<=Available,开始试探性分配,Available=(0,4,0,0) 测试系统是否安全:work= Available,finish=1没有进程的need满⾜<=work系统处于不安全状态,系统拒绝此次资源分配。
2、当前某系统有同类资源7个,进程P,Q所需资源总数分别为5,4。
它们向系统申请资源的次序和数量如表所⽰。
回答:问:采⽤死锁避免的⽅法进⾏资源分配,请你写出系统完成第3次分配后各进程占有资源量,在以后各次的申请中,哪次的申请要求可先得到满⾜?答:第1次申请,Q申请资源2,系统安全,分配第2次申请,P申请资源1,系统安全,分配第3次申请,Q申请资源1,系统安全,分配资源剩余3个,P占有1个资源,Q占有3个资源,第4次分配不安全,拒绝,第5分配系统安全,满⾜。
3、⼀个计算机系统有6个磁带驱动器和4个进程。
每个进程最多需要n个磁带驱动器。
问当n为什么值时,系统不会发⽣死锁?并说明理由答:n=2理由同第4题(进程资源最⼤需求-1)×进程数量+1≤系统资源数量4、若系统有某类资源m×n+1个,允许进程执⾏过程中动态申请该类资源,但在该系统上运⾏的每⼀个进程对该资源的占有量任何时刻都不会超过m+1个。
思考与练习题参考答案
第1章操作系统概述思考与练习题参考答案1. 选择题(1) C (2) D (3) C (4) C (5) B (6) C (7) B (8) C (9) B (10)B(11) A2. 填空题(1) 硬件软件(2) 存储管理设备管理(3) 软硬件资源(4) 批处理操作系统分时操作系统实时操作系统(5) 20ms 时间片轮转调度算法3. 判断题(1) × (2) × (3) √ (4)× (5) × (6). √ (7) √ (8)√4. 问答题(1) 简述操作系统的概念答:操作系统是一组能控制和管理计算机系统的硬件和软件资源,合理地组织计算机工作流程并为用户使用计算机提供方便的程序和数据的集合。
(2) 什么是批处理系统为什么要引入批处理系统答:批处理系统指用户的作业成批的处理,作业建立、过渡、完成都自动由系统成批完成。
因为1958~1964年,晶体管时代,计算机速度、容量、外设品种和数量等方面和第一代计算机相比都有了很大发展,计算机速度有几十倍、上百倍的提高,故使手工操作的慢速度和计算机运算的高速度之间形成一对矛盾。
只有设法去掉人工干预,实现作业自动过渡,这样就出现了成批处理。
(3) 什么叫多道程序试述多道程序涉及技术的基本思想及特征,为什么对作业进行多道批处理可以提高系统效率答:多道程序设计技术是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制下,相互穿插交替运行。
当某道程序因某种原因不能继续运行下去时,管理程序就将另一道程序投入运行,这样使几道程序在系统内并行工作,可使中央处理机及外设尽量处于忙碌状态,从而大大提高计算机使用效率。
在批处理系统中采用多道程序设计技术形成多道批处理系统,多个作业成批送入计算机,由作业调度程序自动选择作业运行,这样提高了系统效率。
(4) 何为分时系统简述其特点。
答:分时系统采用时间片轮转法,使一台计算机同时为多个终端服务。
(第4章进程及进程管理)习题四答案介绍
沈华
湖北工业大学计算机学院
P 对公共变量 Q 的访问 V
end coend 信号量 mutex 的取值范围为:mutex.value ∈[1, - (n-1)]。 ①值为 1 时,表示没有进程访问公共变量 Q; ②值为 0 时,表示有一个进程正在访问公共变量 Q; ③值<0 时,表示有一个进程正在访问公共变量 Q,同时又| mutex.value |个进程 等待访问公共变量 Q。
沈华
湖北工业大学计算机学院
19. 20. 21. }
} }//while
4-6 进程有哪几个基本状态?在一个系统中为什么必须区分出这几种状态。 答:进程有三个基本状态:运行状态、就绪状态和等待状态(又称阻塞、挂起、 睡眠) 。 因为多道程序设计技术的引入,使得多个进程可以并发执行。并发执行的进程 之间由于合作具有直接制约关系或由于共享资源具有间接制约关系,使得它们 的执行过程具有“执行——暂停——执行——暂停——执行——…”的动态特 征,因此需要对进程在其生命周期内所处于的不同状态进行区分,以便对进程 进行分析、管理和控制。
4-4 图 4-2 标明程序段执行的先后次序。其中 I 表示输入操作、C 表示计算操作、 P 表示打印操作,下角标说明是对哪个作业进行上述操作。请指明: (1)哪些操作必须有先后次序,其原因是什么? (2)哪些操作可以并发执行,其原因又是什么? 答: (1)Ii 必须先于 Ci 执行,Ci 必须先于 Pi 执行,这是因为同一个作业的这三 个操作之间具有逻辑上的严格的先后执行次序;Ii 必须先于 Ii+1 执行,Ci 必须先 于 Ci+1 执行,Pi 必须先于 Pi+1 执行,这是因为 Ii 和 Ii+1 共享输入设备、Ci 和 Ci+1 共享 CPU、Pi 和 Pi+1 共享输出设备。 (2)Ii+1 和 Ci、Pi-1 可以并发执行,因为这三个进程分属于不同的作业,且它们 占据的是不同的资源。
操作系统第四单元答案
第四单元3.系统中有5个资源被4个进程所共享,如果每个进程最多需要2个这种资源,试问系统是否会产生死锁。
答:不会,因为资源数大于进程个数,5个资源4个进程共享,至少有1个进程能得到2个资源得以运行,运行完后退出并释放所占有的资源,剩下的进程便能得到所需要的资源得以运行。
4.计算机系统有8台磁带机,有N个进程竞争使用,每个进程最多需要3台,问:当为多少时,系统没有死锁的危险?答:当N=1或2或3时,系统没有死锁的危险,因为当N<4时,总是能保证有进程能得到3个资源得以运行。
当N大于等于4时,不能保证至少有一个进程能得到需要的资源个数。
5.假设系统有5个进程,他们到达的时间和服务时间如表:4-8所示。
新进程(没有运行过)与老进程(运行过的进程)的条件相同是,假定系统选新进程运行。
若按FCFS、时间片轮转法(时间片q=1)、短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第1个队列的时间片为1,第i(i>1))个队列的时间片q=2(i-1)算法进行CPU调度,请给出各个进程的完成时间、周转时间、带权周转时间,及所有进程的平均周转时间和平均带权周转时间。
表4-8 进程情况进程名到达时间服务时间A 0 3B 2 6C 4 4D 6 5E 8 2(1)按FCFS调度算法:进程名完成时间周转时间带权周转时间A 3 3 1B 9 7 1.17C 13 9 2.25D 18 12 2.4E 20 12 6平均周转时间:T=(3+7+9+12+12)/5=8.6带权周转时间:W=(1+1.17+2.25+2.4+6)/5=2.56(2)按时间片轮转法(时间片q=1)算法:进程名完成时间周转时间带权周转时间A 4 4 1B 18 16 2.67C 17 13 3.25D 20 14 2.8E 15 7 3.5平均周转时间:T=(4+16+13+14+7)/5=10.8带权周转时间:W=(1+2.67+3.25+2.8+3.5)=2.644(3)短进程优先运算法则:进程名完成时间周转时间带权周转时间A 3 3 1B 9 7 1.17C 15 11 2.75D 20 14 2.8E 11 3 1.5平均周转时间:T=(3+7+11+14+3)/5=7.6带权周转时间:W=(1+1.17+2.75+2.8+1.5)=1.84(4)最短剩余时间优先算法:进程名完成时间周转时间带权周转时间A 3 3 1B 20 18 3C 8 4 1D 15 9 1.8E 10 2 1平均周转时间:T=(3+18+4+9+2)/5=7.2带权周转时间:W=(1+3+1+1.8+1)/5=1.56(5)最短响应比优先算法:进程名完成时间周转时间带权周转时间A 3 3 1B 9 7 1.17C 13 9 2.25D 20 14 2.8E 15 7 3.5平均周转时间:T=(3+7+9+14+7)/5=8带权周转时间:W=(1+1.17+2.25+2.8+3.5)/5=2.146.设系统中有5个进程P1P2P3P4和P5,有三种类型的资源ABC,其中A的数量是7,B的数量是5,C的数量是20,T0时刻系统状态如表4-9所示:(1)计算每个进程还可能需要的资源,并填入表的“任然需要资源数”栏目中。
2021―12操作系统复习题答案(基本全部答案)
2021―12操作系统复习题答案(基本全部答案)(一)进程同步?进程同步1进程P1和进程P2并发执行时满足一定的时序关系,P1的代码段S1执行完后,才能执行P2的代码段S2.为描述这种同步关系,?:试设计相应的信号量,?:给出信号量的初始值,?:给出进程P1和P2的结构解答: ?信号量变量申明为 Typedef struct {int value; //信号量中的值,表示资源的数量 struct PCB *L;//等待该信号量的队列 }semaphore;设信号量semaphore synch; ?初始值为:synch.value=0 ?进程P1和P2的结构为P1: { P2:{ ? ? S1 wait(synch); signal(synch);S2 ? ? }} ?进程同步2问题描述:(理发店问题)一个理发店有一间配有n个椅子的等待室和一个有理发椅的理发室。
如果没有顾客,理发师就睡觉;如果顾客来了二所有的椅子都有人,顾客就离去;如果理发师在忙而有空的椅子,顾客就会坐在其中一个椅子;如果理发师在睡觉,顾客会摇醒他。
① 给出同步关系② 设计描述同步关系的信号量;③ 给出满足同步关系的进程结构(请完成满足同步关系的进程结构)。
解答:?顾客customer应满足的同步关系为: a:顾客来时要等空的椅子,否则不进理发室b:座椅上的顾客要等理发椅空才有可能与别的顾客竞争理发椅,如果顾客坐上理发椅,就要腾空其座椅给新来顾客,同时叫理发师给其理发。
c:一旦顾客理发完,就要让别的等待顾客有机会理发。
理发师应满足的同步关系为:一旦顾客唤醒,就给顾客理发,之后进入睡觉。
?信号量定义如下:Typedef struct {int value; //信号量中的值,表示资源的数量 structPCB *L; //等待该信号量的队列 }semaphore; 互斥信号量定义如下: Typedef struct { bool flag; struct PCB *L;}binary_semaphore;理发店问题的解决需要信号量和互斥信号量为:semaphore chair; binary_semaphore barber_chair, hair_cut; 它们的初始值为:chair.value=n; barber_chair.flag=1; hair_cut.flag=0;?顾客和理发师进程分别为:customer { barber{ wait(chair); do {waiting in the chair; wait(hair_cut);wait(barber_chair); cutting hair;signal(hair_cut); signal(barber_chair); sitting in barber chair for haircut; }while(1)signal(chair); } }?进程同步2设公共汽车上,司机和售票员的活动分别为:司机的活动为启动车辆,正常行车,到站停车;售票员的活动为关车门,售票,开车门。
操作系统(进程与线程)习题与答案.docx
1、下面哪种死锁处理策略代价最小?()A.死锁忽略B.死锁检测+恢复C.死锁避免D.死锁预防正确答案:A2、下面哪种死锁处理策略引入的不合理因素最严重?()A.死锁检测+恢复B.死锁忽略C.死锁预防D.死锁避免正确答案:C3、为什么进程切换的代价要比线程切换要大?()A.因为进程切换要切换控制块数据结构B.因为进程切换要切换PC指针C.因为进程切换要切换段表D.因为进程切换要切换栈正确答案:C4、初值为N的信号量,当前值为-1表示的含义是什么?()A.有1个资源B.有N-1个进程在等待C.有1个进程在等待D.有N-1个资源5、为什么PC机通常死锁忽略策略?()A.因为死锁检测算法在PC机器上不能执行B.因为PC机上的发生死锁造成的破坏小C.因为PC机上的死锁可以用重启来解决D.因为PC机上的发生死锁的可能性小正确答案:C6、下面哪种参数可以用来表征操作系统可以对用户输入快速处理?()代响应时间B.等待时间C.吞吐量D.周转时间正确答案:A7、下面哪种调度算法可以保证用户的输入在一定的时间以后可以得到响应?()A.短作业优先B.时间片轮转调度C.剩余短作业优先D.先来先服务算法正确答案:B8、下面哪个系统调用不是用来操控进程的?()A.open()B.fork()C.wait()D.exec()正确答案:A9、下面哪种状态下的进程不存放在内存中?()正确答案:AB.阻塞态C.挂起态D.就绪态正确答案:C10、关于进程和线程的主要区别,下面哪种论述是正确的?()A.线程之所以切换快是因为TCB比PCB尺寸小B.线程切换时可能会引起进程切换C.进程不能成为调度的单位D.线程可以没有栈正确答案:B11、在实际系统中实现进程调度算法需要考虑诸多因素,相比而言下面哪个因素最不需要考虑?()A.机器物理内存的大小B.机器的使用坏境C.用户任务的特点D.算法的复杂性正确答案:A12、进程和程序的区别主要体现在哪里?()A.进程在内存中,程序在磁盘上。
操作系统第四章课后题答案
第四章1.为什么说多级反馈队列调度算法能较好地满足各类用户的需要(来自百度):答案一:多级反馈队列调度算法能较好地满足各种类型用户的需要。
对终端型作业用户而言,由于他们所提交的大多属于交互型作业,作业通常比较短小,系统只要能使这些作业在第1级队列所规定的时间片内完成,便可使终端型作业用户感到满意;对于短批处理作业用户而言,他们的作业开始时像终端型作业一样,如果仅在第1级队列中执行一个时间片即可完成,便可以获得与终端型作业一样的响应时间,对于稍长的作业,通常也只需要在第2级队列和第3级队列中各执行一个时间片即可完成,其周转时间仍然较短;对于长批处理作业用户而言,它们的长作业将依次在第1,2,…,直到第n级队列中运行,然后再按时间片轮转方式运行,用户不必担心其作业长期得不到处理。
答案二:(惠州学院操作系统课后题)与答案一基本相似,可看做精简版。
答:(1)终端型作业用户提交的作业大多属于较小的交互型作业,系统只要使这些作业在第一队列规定的时间片内完成,终端作业用户就会感到满足。
(2)短批处理作业用户,开始时像终端型作业一样,如果在第一队列中执行一个时间片段即可完成,便可获得与终端作业一样的响应时间。
对于稍长作业,通常只需在第二和第三队列各执行一时间片即可完成,其周转时间仍然较短。
(3)长批处理作业,它将依次在第1 ,2 ,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。
所以,多级反馈队列调度算法能满足多用户需求。
2.分别对以上两个进程集合,计算使用先来先服务(FCFS)、时间片轮转法(时间片q=1)、短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第1个队列的时间片为1,第i(i<1)个队列的时间片q=2(i-1))算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间,及所有进程的平均周转时间和平均带权周转时间。
操作系统课后习题第四
操作系统课后习题第四操作系统课后习题第四一、进程管理1、进程与线程1.1 进程的定义和特点1.2 线程的定义和特点1.3 进程和线程的区别与联系2、进程控制块(PCB)2.1 PCB的作用和内容2.2 PCB的创建和销毁过程2.3 PCB的状态转换3、进程调度算法3.1 先来先服务调度(FCFS)3.2 短作业优先调度(SJF)3.3 时间片轮转调度(RR)3.4 优先级调度(Priority)3.5 多级反馈队列调度(MFQ)4、进程同步4.1 进程间的竞争关系4.2 临界区问题4.3 同步与互斥4.4 进程同步的方法4.4.1 互斥量4.4.2 信号量4.4.3 事件4.4.4 屏障二、内存管理1、内存分配方式1.1 静态分配1.2 动态分配1.2.1 分区分配1.2.2 页式存储管理1.2.3 段式存储管理1.2.4 段页式存储管理2、内存替换算法2.1 最优页面置换算法(OPT)2.2 先进先出页面置换算法(FIFO)2.3 最近最久未使用页面置换算法(LRU)2.4 时钟页面置换算法(Clock)3、虚拟内存管理3.1 页面置换算法的选择3.2 页面调度3.3 页面置换的策略3.4 页面置换算法的性能评估三、文件系统管理1、文件的组织和操作1.1 文件的逻辑结构1.2 文件的物理结构1.3 文件的操作1.3.1 创建文件1.3.2 打开与关闭文件1.3.3 读写文件2、文件目录2.1 目录的作用和组织方式 2.2 目录的操作2.2.1 创建目录2.2.2 查找目录项2.2.3 删除目录项2.2.4 更改目录项3、文件系统的实现3.1 单级目录结构3.2 两级目录结构3.3 树目录结构3.4 图目录结构附件:无法律名词及注释:1、PCB(Process Control Block):进程控制块,操作系统内部维护的用于管理进程的数据结构,记录了进程的基本信息和状态。
2、FCFS(First-Come, First-Served):先来先服务调度算法,根据进程到达时间的先后顺序进行调度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由③式和④式可以得到∑Need[i] +∑Allocation[i]>=0+m+n=m+n⑤
4.让权等待。当进程不能进入临界区时,应立即放弃占用CPU,以使其它进程有机会得到CPU的使用权,以免陷入“饥饿”状态。
(4)整型信号量是否能完全遵循同步机构的四条基本准则?为什么?
解:
不能。在整型信号量机制中,未遵循“让权等待”的准则。
(5)在生产者-消费者问题中,若缺少了V(full)或V(empty),对进程的执行有什么影响?
{
while(true)
{
item=ProducerConsumer.remove;
consume(item)
}
}
(9)进程的高级通信机制有哪些?请简要说明。
解:
进程的高级通信机制分为三大类:共享存储系统、消息传递系统和管道通信系统。
1.共享存储器系统:在共享存储器系统中,相互通信的进程通过共享某些数据结构或共享存储区实现进程之间的通信。该系统又可进一步细分为两种方式:基于共享数据结构的通信方式和基于共享存储区的通信方式。
(2)进程执行时为什么要设置进入区和退出区?
解:
为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码成为“进入区”代码;在退出临界区后,必须执行“退出区”代码,用于恢复未被访问标志。
解:
如果缺少了V(full),那么表明从第一个生产者进程开始就没有对信号量full值改变,即使缓冲池存放的产品已满了,但full的值还是0,这样消费者进程在执行P(full)时会认为缓冲池是空的而取不到产品,那么消费者进程则会一直处于等待状态。
如果缺少了V(empty),例如在生产者进程向n个缓冲区放满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品时empty并没有被改变,直到缓冲池中的产品都取走了,empty的值也一直是0,即使目前缓冲池有n个空缓冲区,生产者进程要想再往缓冲池中投放产品会因申请不到空缓冲区而被阻塞。
(3)同步机构需要遵循的基本准则是什么?请简要说明。
解:
同步机制都应遵循下面的4条准则:
1.空闲让进。当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。
2.忙则等待。当有一个进程在临界区时,其它欲进入临界区的进程必须等待,以保证进程互斥地访问临界资源。
3.有限等待。对要求访问临界资源的进程,应保证进程能在有限时间内进入临界区,以免陷入“饥饿”状态。
(15)考虑由n个进程共享的具有m个同类资源的系统,如果对于i=1,2,3,…,n,有Need[i]>0并且所有进程的最大需求量之和小于m+n,试证明系统不会产生死锁。
解:
本题中只有一种资源,不妨设Max[i]为第i个进程的资源总共需要量,Need[i]为第i个进程还需要的资源数量,Allocation[i]表示第i个进程已经分配到的资源数量,Available为系统剩余的资源数,其中i=1,2,3,…,n。
begin
parbegin
producer: begin
repeat
.
.
.
produce an item innextp;
.
.
.
Swait(empty,mutex);
buffer(in):=nextp;
in:=(in+1) mod n;
Ssignal(mutex, full);
until false;
所以先试着把P2所申请的资源分配给它,Available变为(2,3,3,0)得到系统状态如下表所示:
Allocation
Need
Available
A
B
C
D
A
B
C
D
A
B
C
D
P0
0
0
2
2
0
0
4
3
2
3
3
0
P1
1
1
0
0
2
6
3
0
P2
3
2
1
4
2
1
0
4
P3
2
0
0
0
4
0
2
0
P4
0
2
2
2
0
5
5
4
然后进行安全性检测:
解:
系统中不会发生死锁的最小资源数量是13,这样可以保证当每一个进程都占有4个资源的时候,有一个进程可以获得最后一个资源后被运行,运行完毕后释放资源,于是其余进程也能顺利运行完,所以不会死锁。
(14)在解决死锁问题的几个方法中,哪种方法最易于实现,哪种方法使资源的利用率最高?
解:
预防死锁这个方法实现简单,效果突出;避免死锁这种方法系统吞吐量和资源利用率较高。
假设此系统可以发生死锁。
系统剩余的资源数量为Available(Available>=0),由假设,因为系统处于死锁状态,所以Available个资源无法分配出去,所以每个进程的Need[i]都大于Available,
即Need[i]>=Available+1
所以∑Need[i]>=n*(Available+1)=n*Available+n,①
解:
所谓死锁是指在一个进程集合中的所有进程都在等待只能由该集合中的其它一个进程才能引发的事件而无限期地僵持下去的局面。
产生死锁的原因可以归结为两点:1)竞争资源,2)各进程之间的推进顺序不当。
产生死锁的必要条件有四个:1)互斥条件,2)不剥夺条件,3)请求和保持条件,4)环路条件。
(11)死锁的预防策略有哪些?请简要说明。
2.摒弃不剥夺条件:要摒弃“不剥夺条件”,可以使用如下策略:进程在需要资源时才提出请求,并且进程是逐个地申请所需资源,如果一个进程已经拥有了部分资源,然后又申请另一个资源而不可得时,其现有资源必须全部释放。在这种方法中,进程只能在获得其原有资源和所申请的新资源时才能继续执行。
3.摒弃环路等待条件:为确保环路等待条件不成立,可以在系统中实行资源有序分配策略,即系统中的所有资源按类型被赋予一个唯一的编号,每个进程只能按编号的升序申请资源。
void insert(intitem)
{
if (count==N) wait(full);
insert(item);
count=count+1;
if (count==1) signal(empty);
}
intremover()
{
if (count==0) wait(empty);
remove=remove_item;
P3
4 0 2 0
2 000
P4
0 554
0 222
解:
现在对该时刻的状态进行安全分析:
由于Available向量为(3,4,4,1),所以Work向量初始化为(3,4,4,1)
此时的Work小于任意的Need[i]向量,所以系统处于不安全状态
由于Request2(1,1,1,1)<Available(3,4,4,1)且Request2(1,1,1,1)<Need2(1,1,1,2)
解:
死锁的预防策略有三,说明如下:
1.摒弃请求和保持条件:为摒弃请求和保持条件,系统中需要使用静态资源分配法,该方法规定每一个进程在开始运行前都必须一次性地申请其在整个运行过程中所需的全部资源。此时,若系统有足够的资源,就把进程需要的全部资源一次性地分配给它;若不能全部满足进程的资源请求,则一个资源也不分给它,即使有部分资源处于空闲状态也不分配给该进程。这样,当一个进程申请某个资源时,它不能占有其它任何资源,在进程运行过程中也不会再提出资源请求。这种方法破坏了请求和保持条件,从而避免死锁的发生。
count=count-1;
if (count==N-1) signal(full);
}
count=0;
end monitor
void producer()
{
while (true)
{
item=produce_item;
ProducerConsumer.insert(item);
}
}
void consumer()
第
(1)什么是进程同步?什么是进程互斥?
解:
同步是进程间的直接制约关系,这种制约主要源于进程间的合作。进程同步的主要任务就是使并发执行的各进程之间能有效地共享资源和相互合作,从而在执行时间、次序上相互制约,按照一定的协议协调执行,使程序的执行具有可再现性。
进程互斥是进程间的间接制约关系,当多个进程需要使用相同的资源,而此类资源在任一时刻却只能供一个进程使用,获得资源的进程可以继续执行,没有获得资源的进程必须等待,进程的运行具有时间次序的特征,谁先从系统获得共享资源,谁就先运行,这种对共享资源的排它性使用所造成的进程间的间接制约关系称为进程互斥。互斥是一种特殊的同步方式。
end
consumer: begin
repeatBiblioteka Swait(full,mutex);
nextc:=buffer(out);
out:=(out+1) mod n;
Ssignal(mutex, empty);
consume the item innextc;
until false;