Process reader; Var number:integer;
Begin L1: read a number ; p(sr); b1:= number; v(se1); goto L1 end; Process executor; Var number2:integer;
Begin L2: p(se1); take a number from b1; v(sr); process the number to number2; p(se2); b2:= number2; v(sp); goto L2 end; Process printer;
Begin L3: p(sp); take a number from b2; v(se2); print the number; goto L3 end; Coend; end;
4.设生产者消费者进程要设立的公用信箱B,假设现在信箱中放一封初始信件,表示物品已取走。用进程通信管理生产者消费者问题的程序如下: begin ….. PROCESS Producer; ……
L1: Produce a product; L2: receive(B,H);
If {x中没有表示物品已取走} then go to L2
else begin {组织回信M,M中含产品完成存放地点,产品说明,规格,价格等} send(B,M); end; goto L1 end; PROCESS consumer; ……
L 3:receive(B,Y);
If {Y中表示产品已完成} then begin {按信件中地址取出比物品, 组织回信M;回信中表示物品已取走,并反映对产品的评价和处理情况} send(B,m); goto L3; end; ……. End; end;
第三章-1 练习题参考答案 (一)单项选择题
1.C 2.B 3.C 4. D 5.A 6.B 7.C 8.C 9.C 10.D 11.B 12.D 13.B 14.B 15.C 16.D 17.A 18.B 19.C 20.D 21.A 22.D 23.C 24 C 25 B 26.A 27.A 28.B 29.B 30.A (二)填空题
1.并行执行,多道程序设计 2.存储保护 3.主存,程序浮动 4.资源 5.资源分配与管理 6.利用率,吞吐量 7.延长 8.系统配置的资源 9进程 l0.静止的,动态的 11.系统进程,用户进程 12.动态性(或进程的动态特性),并发性(或进程可以并发执行) 13.可再入 14.就绪态 15等待态,就绪态 16.轮流 17.说明信息,现场信息 18.创建 19.进程控制块 20.就绪队列,等待队列 21.进程控制块 22.前向,后向 23.入队和出队 24 自身或外界 25.程序性中断,输入输出中断 26.访管指令 27.保护断点等信息,启动操作系统的中断处理程序 28.中断寄存器 29.中断码,中断屏蔽位 30.旧PSw 31.旧PSw 32.被中断进程的现场信息 33.相应的处理事件,就绪 34.重要性和紧迫程度,固定的 35.自愿中断,外部中断 36.程序状态字,封锁 37.低,自愿中断 38.进程调度 39.优先数,时间片轮转 40.非抢占式,可抢占式 41.时间片 42.吞吐量,响应时间 43.运行态,进程切换 (三)简答题
1.让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种技术称为多道程序设计,这种计算机系统称为多道程序设计系统。
2.多道程序设计系统必须做好存储保护、程序浮动、资源分配及管理工作。
3.多道程序设计从三个方面提高系统的效率:①减少cPU的空闲时间,提高处理器的利用率。②合理搭配程序,充分利用外围设备资源。③发挥处理器与外围设备,以及外围设备之间的并行工作能力。
4.进程是一个程序在一个数据集上的一次执行。引入进程的目的在于从变化的角度动态地研究程序的执行。
5.进程的三种基本状态为等待态、就绪态、运行态。运行态会变成等待态或就绪态,前者是由于等待外设等资源引起,后者是由时间片用完等原因引起;等待态变成就绪态,是由于等待的条件已得到满足;就绪态变成运行态,是按调度策略从就绪队列中选出一个进程占用处理器时,该进程就从就绪态变成运行态。
6.程序是静止的,进程是动态的。进程包括程序和程序处理的对象(数据集),进程能得到程序处理的结果。 7.进程由程序、数据集和进程控制块三部分组成。
8.操作系统根据进程控制块控制和管理进程。因为进程控制块是进程存在的标志,它记录了进程执行时的变化情况。
12.Psw为程序状态字的简写。当中断装置发现中断事件后,把出现的中断事件放在当前Psw的中断码位置。供处理时分析用;把“当前Psw”保存到“旧PSw”中去;再把操作系统中断处理程序的“新Psw”送到程序状态寄存器中成为“当前Psw”,这一过程就是“交换PSw”。
13.优先数随进程执行而动态变化可考虑以下因素:提高经常使用外围设备进程的优先数,有利于利用处理器与外围设备的并行能力;提高在较长时间内未使用处理器的就绪进程的优先数,以缩短等待处理器的平均时间。
l5.进程调度就是按选定的进程调度算法,从就绪队列中选择一个进程,让它占用处理器。常用的进程调度算法有先来先服务、优先数、时间片轮转和分级调度算法。 (四)计算题
1.在多道系统下 PA和Pb共用cPu时间(18+27)÷50%=90(分钟),系统效率的提高:[(60+90)-(90+15)] ÷(60+90)=45÷l50=30%
2.(1)进程执行次序为:先来先服务法:Pa,Pb,Pc,Pd;非抢占式的优先数法: PC,P b,Pd,Pa
(2)先来先服务法: 每个进程在就绪队列的等待时间分别为PA:0秒;Pb:0+20=20(秒);Pc:20+15=35(秒) Pd:35+10=45(秒);平均等待时间为(0+20+35+45)/4=25(秒);非抢占式的优先数法:每个进程在就绪队列中的等待时间为:Pa:25+12=37(秒); Pb:0+10=l0(秒); PC: 0秒; Pd:10+15=25(秒);平均等待时间为(37+l0+0+25)/4=18(秒) 第三章-2 作业管理 练习题参考答案 (一)单项选择题
1.C 2.D 3.A 4.B 5.C 6.D 7.B 8.D 9.C 10.D 11.B 12.A 13.C 14.D 15.B l 6.B 17.D 18.B 19.B 20.A 21.C 22.B 23.B 24.D 25.C 26.B 27.C (二)填空题
1.作业 2.作业步 3.相应程序,输入信息 4.用户 5.作业控制语言,操作控制命令 6.批处理方式,交互方式 7.批处理方式 8.自动控制方式,脱机控制方式 9.交互方式 10.联机控制方式 11.作业控制说明书 12.作业控制语言 13.输入井,收容状态 14.作业调度 15均衡使用资源,极大的流通量 l 6.尚未分配 17.输入井 18.平均周转时间 19.计算时间短的作业优先算法,优先数调度算法 20.提高系统效率,及时 21.短,长 22.长,久 23.平均周转时间 24.等待时间,计算时间 25.用户,操作系统 26.进程调度 27.程序 28.进程 29.就绪 30.作业调度,进程调度 31.操作控制命令,会话语句 32人机对话 33.操作控制命令,窗口技术 34.命令名 35.集合,命令语言 36.注册,注销 37.菜单技术 38.直观,操作速度 39.人机对话,图形用户接口 40.题标栏 41.Motif窗口,OPEN LOOK窗口 42.移动窗口,关闭窗口 43.处理模块,用户进程 44.目录操作类命令,文件类命令 45.用户注册,用户退出 46.交换线,电话拨号 47.作业调度 48.退出系统,资源 49.时间片轮转 50.优先 (三)简答题
1.作业是用户要求计算机系统处理的一个计算问题。每个作业的执行往往要经过若干个加工步骤,作业步就是指作业的每个加工步骤。
2.用户可用操作系统的两种手段来说明作业步,一种是作业控制语言,另一种是作业控制命令。
3.作业控制方式有两种,一种是批处理方式,一种是交互方式。批处理方式是指在成批处理时,操作系统按各个作业的作业控制说明书中的要求分别控制相应的作业,按指定的步骤去执行。交互方式是指在作业执行过程中,操作系统和用户之间不断地交流信息,用户使用操作控制命令表达作业执行的控制意图。 4.用户必须准备好源程序、初始数据,以及用作业控制语言编写的作业控制说明书。
5.操作系统根据允许并行工作的道数和一定的算法,从输入井中选取若干作业把它们装入主存储器,使它们有机会去获得处理器运行。这项工作就称为作业调度。
6.设计作业调度程序时需考虑:(1)公平性,对每个用户公平对待且使用户满意;(2)均衡使用资源,提高资源的利用率;(3)极大的流量,缩短作业的周转时间,提高系统的吞吐能力.
7.作业调度程序从输入井选取作业的必要条件是:系统现有的尚未分配的资源可以满足被选作业的资源要求。 8.常用的作业调度算法有先来先服务算法、计算时间短的作业优先算法、响应比最高者优先算法、优先数调度算法和均衡调度算法。
9.作业Pi的周期时间定义为Ti=Ei-Si,其中Si为作业Pi进入输入井的时间,Ei为作业运行结束的时间。几个作业的
平均周转时间定义为:T=(∑Ti)*(1/n), 用户总希望周转时间尽可能地小;而从系统的角度出发,希望进入输入井的平均周转时间尽可能地小。
10.作业调度负责从输入并中选中一个作业且把它装入主存储器,并为该作业创建一个进程,排入就绪队列。进程调度从就绪队列中选择当前可占用处理器的进程,并控制该进程的执行直到作业完成。有时进程运行中由于某种原因使状态发生变化,进程调度再选另一个作业进程去运行。
11.交互式作业的特点是采用人机对话方式工作,用户从终端设备上输入程序和数据,键入命令或会话语句,表达对作业的控制意图;系统把作业执行情况通知用户。
12.通常操作系统为用户提供的操作使用接口有操作控制命令、菜单技术和窗口技术等。
13.提供交互控制方式的操作系统都有一个命令解释程序,由它接收来自用户的命令,并对命令进行分析。有的命令可以由操作系统相应的处理模块解释执行,有的命令要创建用户进程去解释执行。
14.终端作业的执行一般要有四个阶段:终端的连接,用户注册,控制作业执行和作业退出。
15.在分时操作系统控制下,对终端用户均采用时间片轮转法使每个终端作业都能在一个时间片的时间内去占用处理器。 16.兼有分时和批处理的计算机系统中,总是优先接纳终端作业,仅当终端作业数小于系统可以允许同时工作的作业数时,可以调度批处理作业,允许终端作业与批处理作业混合同时执行。 (四)应用题
1.(1)对先来先服务算法:作业A和作业B首先被选中装入主存储器中。作业c到达输入井时,主存和磁带机都不能满足需求,只能等待。作业D到达输入井时,虽主存能满足要求,但磁带机不够,只能等到作业A完成后才能装入主存;作业B和作业D执行时共占140KB主存,由于不能移动主存空间,所以两个30KB的主存空间无法合并供作业E使用。作业B完成后,作业C的资源要求得到满足,能装入主存。此时,剩余的50KB和30KB无法合并,所以对作业E内存仍无法满足要求,直到作业D结束,主存和磁带机都能满足作业E的要求。下表列出了各作业进输入井时间、装入主存的时间、作业开始执行时间、执行结束时间和周转时间。
作业名 进输入井时间 装入主存时间 开始执行时间 执行结束时间 周转时间 A 8:30 8:30 8:30 9:10 40分钟 B 8:50 8:50 9:10 9:35 45分钟 D 9:05 9:10 9:35 9:55 50分钟 C 9:00 9:35 9:55 10:30 90分钟 E 9:10 9:55 10:30 10:40 90分钟
由上表中看出,选中作业的次序为A,B,D,c,E,平均周转时间为:T=(40+45+50+90+90)×1/5=63(分钟)
(2)对计算时间短者优先算法:作业A和作业B进入输入井后都能依次被选中装入主存储器,而作业c进入时资源不够只能等待,作业A完成并释放3台磁带机后,作业C、D和E都已进入输入并,由于主存不能移动,虽作业E执行时间最短,但由于内存不够,只能等待,唯有作业D资源能满足装入主存。作业B完成后,作业c和E资源都得到满足,先选中执行时间短的作业E装入主存,作业c则要等到作业D完成才能装入主存。下表列出了作业顺序和各种时间. 作业名 进输入井时间 装入主存时间 开始执行时间 执行结束时间 周转时间 A 8:30 8:30 8:30 9:10 40分钟 B 8:50 8:50 9:10 9:35 45分钟 D 9:05 9:10 9:35 9:55 50分钟 E 9:10 9:35 9:55 10:05 55分钟 C 9:00 9:55 10:05 10:40 100分钟
由上表中看出,选中作业的次序为A,B,D,E,C,平均周转时间为:T=(40+45+50+55+100)×1/5=58(分钟)
2.(1)对先来先服务算法:作业A、作业B、作业C和作业D进入输入井后,处理情况与上题中(1)完全一样。作业B和作业D执行时共占140KB主存,由于允许移动己占主存的作业空间,所以剩余的两个30KB主存可合并成60KB供作业E使用,作业c则要等到作业D完成后才能满足其资源要求,并装入内存执行之。有关作业选中的顺序和各类事件列表与1(2)相同。所以,选中作业的次序为A,B,D,E,C, 平均周转时间为T=58分钟
(2)对计算时间短者优先算法:作业A、B和作业C进入输入井后,处理情况与上题(2)完全一样。当作业A完成后,就有4台磁带机空闲,由于允许移动已占主存的作业的空间,移动作业B使作业A释放的30KB与尚余的50KB合并成80KB,此时作业C、D、E都已进入输入井,作业c的主存要求仍不够,但能同时满足作业D和作业E的资源请求,考虑到执行时间短者优先,所以作业E将优先执行。当作业B结束时,主存能满足作业c的要求,但磁带机只有l台,所以要等作业E完成后,作业c才能满足资源要求装入内存。下表列出了作业顺序和各种时间. 作业名 进输入井时间 装入主存时间 开始执行时间 执行结束时间 周转时间
A 8:30 8:30 8:30 9:10 40分钟 B 8:50 8:50 9:10 9:35 45分钟 E 9:10 9:10 9:35 9:45 35分钟 D 9:05 9:10 9:45 10:05 60分钟 C 9:00 9:45 10:05 10:40 100分钟
由上表中看出,选中作业的次序为A,B,E,D,C,平均周转时间为:T=(40+45+35+60+100)×1/5=56(分钟)
第三章-3 死锁 练习题参考答案 (一)单项选择题
1.D 2.C 3.B 4.D 5.A 6 C 7 D (二)填空题
1.死锁 2.资源管理不得当,并发执行时 3.占有并等待资源,循环等待资源 4.等价的 5.没有死锁 6.一个条件不成立 7.静态分配资源,释放已占资源 8.预分配资源.开始执行前 9.没有占用资源 10.抢夺 11.主存空间,处理器 12.按序分配 13安全状态 14.避免死锁 15.银行家算法 16.死锁的避免 17.n(x- 1)+l<=m 18.死锁检测方法 19判断系统,解除死锁 20.占用表,等待表 21.尚需量,剩余量 22终止,抢夺资源 23.校验点 24.防止,检测 (三)简答题
1.若系统中存在一组进程、它们中的每—个进程都占用了某种资源而又都在等待其中另一个进程所占的资源,这种等待永远不能结束,则说明系统出现了死锁。产生死锁的原因有两个:一是操作系统对资源的管理不当,二是没有顾及进程并发执行时可能出现的情况。
2.采用某些资源分配策略使死锁的四个必要条件之一不成立,就能防止死锁。除第一个条件互斥使用资源没有对应策略外,对占有并等待资源、不可抢夺资源和循环等待资源这三个条件可采用静态分配资源,释放已占资源,抢夺式分配资源和按序分配资源等资源分配策略。
3.如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于安全状态。常用银行家算法动态地检测系统中的资源分配情况和进程对资源的需求情况进行资源分配,确保系统处于安全状态。
4解决死锁问题有以下三种方法:(1)死锁的防止。系统按预定的策略为进程分配资源,这些分配策略能使死锁的四个必要条件之一不成立,从而使系统不产生死锁。(2)死锁的避免。系统动态地测试资源分配情况,仅当能确保系统安全时才给进程分配资源。(3)死锁的检测。对资源的申请和分配不加限制,只要有剩余的资源就可把资源分配给申请者,操作系统要定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。
5.用抢夺资源的方式解除死锁时要注意三点:(1)抢夺进程资源时希望付出的代价最小。(2)为被抢夺者的恢复准备好条件,如返回某个安全状态,并记录有关信息。(3)防止被抢夺资源的进程“饿死”,一般总是从执行时间短的进程中抢夺资源。 (四)应用题
1.(1)根据表,P1,P2和P3三个进程尚需资源数分别是4,5和l,系统的资源剩余量为2,若把剩余的资源量全部分配给P2,系统产已无资源可分配,使三个进程都等待资源而无法完成,形成死锁。所以不能先满足进程P2的要求。 (2)可先为进程P3分配1个资源,当它归还3个资源后,这样共有4个可分配资源,可满足P1申请1个资源的要求,再分配3个资源给进程P1,待P1归还7个资源后,先满足P2申请2个资源的请求,分配给进程P2,再分配3个资源给P2,使它完成。
2.(1)系统目前尚余有的资源数为(2,6,2,1),五个进程尚需的资源数分别是 A:(2,0,0,0) ; B:(0,0,0,0); C:(4,6,2,0) ; D:(5,7,0,0); E:(0,0,2,1);由于进程B己满足了全部资源需求,它在有限时间内会归还这些资源,因此可分配资源达到(3,6,4,1),这样就可分配给进程A;等A归还资源后,可分配资源达到(6,12,6,1),再分配给进程c;之后可分配资源会达到(7,12,10,1),分配给进程D并等待一段时间后,可分配资源将达到(7,12,10,2),最后,可分配给进程E,满足其全部请求。所以说目前系统处于安全状态。
(2)若此时给进程D分配(2,5,0,0)个资源,进程D尚需(3,2,0,0),则系统剩余的资源量为(0,1,2,1);若待进程B归还资源后,可分配资源能达到(1,1,4,1),根据各进程尚需资源量,只有先满足E的资源需求,待它归还资源后,可配资源只有(1,1,6,1),显然无法满足进程A,c,D中任何一个进程的资源要求,这样系统就会产生死锁。所
以此时系统不能为进程D分配(2,5,0,0)个资源。
3.证明:设N个进程请求的最大资源量分别为xi,i=1,2,…n。根据条件 ∑xi<m+n, 从而 ∑(xi-1)<m, ∴∑(xi-1)+1<=m.资源申请最坏的情况是每个进程已得到了(xi-1)个资源,现均要中请最后一个资源,由上式可知系统至少还有一个剩余资源可分配给某个进程,待它归还资源后就可供其他进程使用,因此该系统不会发生死锁。 4.(1)用列表法分析这个问题,下表中每一行表示这一次资源分配后的情况。
实际分配资源次序 申请资源次序 进程 已占资源量 尚需资源量 剩余资源量 12 1 1 B 4 6 8 2 2 C 3 4 5 3 3 A 3 2 2 等待 4 C 等待 5 B 4 6 A 5 0 0 归还 A 5 5 4 C 5 2 3 6 8 C 7 0 1 归还 C 8 7 5 B 6 4 6 8 7 B 10 0 2
在进程第l,2,3次申请时,剩余资源量都能分别满足进程B,c,A的最大需求量10,7,5,所以都能分配,第4次申请时进程c尚需4个资源,大于剩余量(2个),虽然本次仅申请2个,根据银行家算法不能分配,只能等待。同理,第5次申请时进程B也只能等待,当第6次申请时,进程A的要求能得到满足,这实际上是第4次分配资源,待进程A归还资源后,可分配资源达到5个,此时它己超过进程c的尚需资源量(4),而小于B的尚需资源量(6),所以可完成第4次申请,即第5次实际分配。由上表可以看出,完成第5次分配后,进程A己分配到全部资源(5个),且已归还给系统(或许该进程已完成)、进程B已占有资源4个,进程C巳占资源5个。
(2)用(1)中同样的方法完成全部进程的资源分配,具体分配过程列在上表的最后四行. 5.根据资源的占用表和等待表构造的“等待占用”关系矩阵如下表所示。 P1 P2 P3 P1 0 0 1 P2 1 0 0 P3 0 1 0
对k=l运行死锁检测程序,上表中的矩阵就变成下表,其中b23巳变成1,但无死锁发生。 P1 P2 P3 P1 0 0 1 P2 1 0 1 P3 0 1 0
对k=2运行死锁检测程序,上表中的矩阵就变成下表。此时b31和b33变成1,由b33=1,知系统中有死锁发生。 P1 P2 P3 P1 0 0 1 P2 1 0 1 P3 1 1 1
对k=3运行死锁检测程序,上表中的矩阵就变成下表。此时外b11,b12,b22都变成l,由b11=1,b22=1与上一次的b33=l可知,P1,P2,P3都己卷入了死锁中。
P1 P2 P3 P1 1 1 1 P2 1 1 1 P3 1 1 1