作业执行时间等待时间周转时间带权周转时间 A 10 20 30 3 B 6 16 22 3.66 C 2 4 6 3 D 4 12 16 4 E 8 20 28 3.5 作业平均周转时间 T=(30+22+6+16+28)/5=20.4 作业平均带权周转时间 W=(3+3.66+3+4+3.5)/5=3.43 16、 答:
FCFS SJF HRRF 作业开始完成周转开始完成周转开始完成周转 时间时间时间时间时间时间时间时间时间 1 8.00 10:00 2.00 8:00 10.00 120 8:00 10.00 120 2 10.00 10:50 2.00 10:30 11.20 150 10:10 11.00 130 3 10.50 11:00 2.00 10:00 10:10 70 10:00 10:10 70 4 11.00 11:20 1.5 10:10 10:30 40 11:00 11.20 90 平均周 T=112.5分 T=95分 T=102.5分 转时间= 带权平均 W=4.975 W=3.25 W=3.775 周转时间=
20、答:
执行次序提交时间执行时间开始时间完成时间周转时间
J1 8:00 60 8:009:00 60 J5 8:35 5 9:009:05 30 J6 8:40 10 9:059:15 35 J3 8:25 20 9:159:35 70 J4 8:30 25 9:3510:00 90 J2 8:20 35 10:0010:35 135 作业平均周转时间T=(60+30+35+70+90+135)/6=70 6
注意,J1被调度运行后,直到它执行结束,才会引出作业调度程序工作。所以,J2至J6虽在J1执行期间进入,但未被调度,均在等待。当J1撤离后,作业调度程序工作,按SJF算法,显然有执行次序:J5、J6、J3、J4、和J2。 21 作业名 JOB1 JOB2 JOB3 JOB4 JOB5 JOB6 答:如下表所示 作业名 JOB1 JOB2 JOB3 JOB4 JOB5 JOB6 进入内存时刻 开始运行时刻 结束运行时刻 周转时间 10:00 10:20 10:30 10:50 12:00 11:50 10:00 10:20 10:50 12:40 12:00 11:50 12:40 10:50 11:50 13:00 12:20 12:00 160 30 80 130 80 50 带权周转时间 4 1 4/3 13/2 4 5 到达时刻 10:00 10:20 10:30 10:50 11:00 11:10 估计运行时间/min 40 30 60 20 20 10 优先数 5 3 4 6 4 4 平均周转时间=(160+30+80+130+80+50)/6=88.88 平均带权周转时间=(4+1+4/3+13/2+4+5)/6=3.64
25、答:
每个作业运行将经过两个阶段:作业调度(SJF算法)和进程调度(优先数抢占式)。另外,批处理最多容纳2道作业,更多的作业将在后备队列等待。
时间(分钟) 10:00 10:20 10:3010:5011:1012:0012:20 A B A C D CPU A D D 进程就绪队列 C 作业后备队列 7
(1) 10:00,作业A到达并投入运行。
(2) 10:20,作业B到达且优先权高于作业A,故作业B投入运行而作业A在就绪队
列等待。 (3) 10:30,作业C到达,因内存中已有两道作业,故作业C进入作业后备队列等待。 (4) 10:50,作业B运行结束,作业D到达,按SJF短作业优先算法,作业D被装入
内存进入就绪队列。而由于作业A的优先级高于作业D,故作业A投入运行。 (5) 11:10,作业A运行结束,作业C被调入内存,且作业C的优先级高于作业D,
故作业C投入运行。
(6) 12:00,作业C运行结束,作业D投入运行。 (7) 12:20,作业D运行结束。
作业进入内存时间运行结束时间
A 10:0011:10
B 10:20 10;50
C 11:1012:00
D 10:5012:20
各作业周转时间为:作业A 70,作业B 30,作业C 90,作业D 90。平均作业周转时间为70分钟。
28、答:
(1) FIFO算法选中作业执行的次序为:A、B、D、C和E。作业平均周转时间为63分钟。 (2) SJF算法选中作业执行的次序为:A、B、D、E和C。作业平均周转时间为58分钟。
第三章:
一、9、13、15、25
9.什么是临界区和临界资源?临界区管理的基本原则是什么?
并发进程中与共享变量有关的程序段称为临界区。共享变量所代表的资源叫做临界资源,即一次仅供一个进程使用的资源。
(1) 一次至多有一个进程进入临界区内执行;
(2) 如果已有进程在临界区内,试图进入此临界区的其它进程应等待;
(3) 进入临界区的进程应在有限时间内退出,以便让进程等待队列中的一个进程进入。
13.什么是信号量?如何对其进行分类?
信号量是物理资源的实体,它是一个与队列有关的整型变量。
按用途分
8
(1) 公用信号量; (2) 私有信号量。 按取值分
(1) 二值信号量; (2) 一般信号量。
15.何谓管程?它有哪些属性?
管程是由局部于自己的若干公共变量及其声明和所有访问这些公共变量的过程所组成的软件模块,它提供一种互斥机制,进程可以互斥地调用管程的过程。
(1) 共享性; (2) 安全性; (3) 互斥性。
25.试述产生死锁的必要条件、死锁产生的原因及预防死锁的方法。 (1) (2) (3) (4)
互斥条件;
占有和等待条件; 不剥夺条件; 循环等待条件。
进程推进顺序不当、PV操作使用不妥、同类资源分配不均或对某些资源的使用未加限制等,不仅与系统拥有的资源数量有关,而且与资源分配策略、进程对资源的使用要求以及并发进程的推进顺序有关。
(1) 破坏条件1(互斥条件);
(2) 破坏条件2(占有和等待条件); (3) 破坏条件3(不剥夺条件); (4) 破坏条件4(循环等待条件)。
二、 2、
答:不同
(1):初值为1,范围为[-n+1,1];(2):初值为m,范围为[-n+m,m]。 5、答:1)使用信号量和P、V操作:
var name: array[1..100] of A;
A=record number:integer; name:string; end
for i:=1 to 100 do {A[i].number:=i; A[i].name:=null;}
9
mutex,seatcount:semaphore; i:integer;mutex:=1;seatcount:=100; cobegin {
process readeri(varreadername:string)(i=1,2,?) {
P(seatcount); P(mutex);
for i:=1 to 100 do i++
if A[i].name=null then A[i].name:=readername;
reader get the seat number =i; /*A[i].number V(mutex)
进入阅览室,座位号i,座下读书;
P(mutex);
A[i] name:=null; V(mutex); V(seatcount); 离开阅览室; } } coend.
2) 使用管程操作:
TYPE readbook=monitor VAR R:condition; Interface Module IM; i,seatcount:integer;
name:array[1..100] of string; DEFINE readercome,readerleave; USE check,wait,signal,release;
procedure readercome(readername) begin
check(IM);
if seatcount≥100 wait(R,IM) seatcount:=seatcount+1; for i=1 to 100 do i++
if name[i]==null then name[i]:=readername; get the seat number=i; release(IM); end
procedure readerleave(readername) begin
10