11.有5个批处理作业A到E均已到达计算中心,其运行时间分别为10,6,2,4和8分钟;各自的优先级分别规定为3,5,2,1和4,这里5为最高级。
若不考虑系统切换开销,计算出平均作业周转时间。
(1)按FCFS(按A,B,C,D,E);
(2)优先级调度算法,(3)时间片轮转法。
答:
(1)FCFS调度算法
执行次序
执行时间
等待时间
周转时间
带权周转时间
A
B
C
D
E
10
6
2
4
8
0
10
16
18
22
10
16
18
22
30
1
2.66
9
5.5
3.75
3
5
2
1
4
作业平均周转时间
作业平均带权周转时间
T=(10+16+18+22+30)/5=19.2
W=(1+2.66+9+5.5+3.75)/5=4.38
(2)优先级调度算法
执行次序
执行时间
等待时间
周转时间
带权周转时间
A
B
C
D
E
6
8
10
2
4
0
6
14
24
26
6
14
24
26
30
1
1.75
2.4
13
7.5
作业平均周转时间
作业平均带权周转时间
T=(6+14+24+26+30)/5=20
W=(1+1.75+2.4+13+7.5)/5=5.13
(3)时间片轮转法
按次序ABCDEABDEABEAEA轮转执行.
作业
执行时间
等待时间
周转时间
带权周转时间
A
B
C
D
E
10
6
2
4
8
20
16
4
12
20
30
22
6
16
28
3
3.66
3
4
3.5
作业平均周转时间
作业平均带权周转时间
T=(30+22+6+16+28)/5=20.4
W=(3+3.66+3+4+3.5)/5=3.43
13.请你设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换,则CPU需要哪些信息?
请描述用硬件完成进程切换的工作过程。
答:
该计算机有一个专用硬件寄存器,它始终存放指向当前运行进程的PCB的指针.当系统中发生了一个事件,如I/O结束事件,CPU便可把运行进程的上下文保存到专用硬件寄存器指针指向的PCB中保护起来,然后,CPU转向中断向量表,找到设备中断处理程序入口,让专用硬件寄存器指针指向(设备)中断服务例程,于是,便可启动中断服务例程工作.
15.单道批处理系统中,下列三个作业采用先来先服务调试算法和最高响应比优先算法进行调试,哪一种算法性能较好,请完成下表:
作业
提交时间
运行时间
开始时间
完成时间
周转时间
带权周转时间
1
2
3
10:
00
10:
10
10:
25
2:
00
1:
00
0:
25
平均作业周转时间=
平均作业带权周转时间W=
答:
FIFO
作业
提交时间
运行时间
开始时间
完成时间
周转时间
带权周转时间
1
2
3
10:
00
10:
10
10:
25
2:
00
1:
00
0:
25
10:
00
12:
00
13:
00
12:
00
13:
00
13:
25
2
2:
50
3
120/120
145/60
180/25
平均作业周转时间=2.61
平均作业带权周转时间W=3.54
HRN
作业
提交时间
运行时间
开始时间
完成时间
周转时间
带权周转时间
1
2
3
10:
00
10:
10
10:
25
2:
00
1:
00
0:
25
10:
00
12:
25
12:
00
12:
00
13:
25
12:
25
2
3:
15
2
120/120
195/60
120/25
平均作业周转时间=2.41
平均作业带权周转时间W=3.02
可见HRRF比FIFO要好.
19.有一个具有两道作业的批处理系统,作业调度采用短作业优先的调试算法,进程调度采用优先数为基础的抢占式调度算法,在下表所示的作业序列,作业优先数即为进程优先数,优先数越小优先级越高。
作业名
到达时间
估计运行时间
优先数
A
B
C
D
10:
00
10:
20
10:
30
10:
50
40分
30分
50分
20分
5
3
4
6
答:
每个作业运行将经过两个阶段:
作业调度(SJF算法)和进程调度(优先数抢占式).另外,批处理最多容纳2道作业,更多的作业将在后备队列等待.
作业
进入内存时间差
运行结束时间
A
B
C
D
10:
00
10:
20
11:
10
10:
50
11:
10
10:
50
12:
00
12:
20
各作业周转时间为:
作业A70,作业B30,作业C90,作业D90.平均作业周转时间为70分钟
24.实时任务可调度应满足:
35/50+20/100+10/300+x/250<1
x<250(1-28/30)=250*0.067=16.75ms
习题三(并发进程)
二.应用题
1.有三个并发进程:
R负责从输入设备读入信息块,M负责对信息块加工处理;P负责打印输出信息块。
今提供:
1)一个缓冲区,可放置K个信息块;
2)二个缓冲区,每个可放置K个信息块;
试用信号量和P,V操作写出三个进程正确工作的流程。
答:
1)varB:
array[0,k-1]ofitem;
sread:
semaphore:
=k;
smanage:
semaphore:
=0;
swrite:
semaphore:
=0;
rptr:
integer:
=0;
mptr:
inerger:
=0;
wptr:
inerger:
=0;
x:
item
cobegin
processreader;
begin
L1:
readeramessageintox;
P(sread);
B[rptr]:
=x;
rptr=(rptr+1)modk;
V(smanage);
GotoL1;
End;
processmanager;
begin
L2:
P(smanage);
x=B[mptr];
mptr=(mptr+1)modk;
managerthemessageinx;
B[mptr]:
=x
V(swrite)
GotoL2;
End;
Processwriter;
Begin
L3:
P(swrite);
x=B[wptr];
wptr=(wptr+1)modk;
V(stread);
Printthemessageinx;
GotoL3;
End;
Coend
2)varA,B:
array[0,k-1]ofintm;
sput1:
semaphore:
=k;
sput2:
semaphore:
=k;
sget1:
semaphore:
=0;
sget2:
semaphore:
=0;
put1:
integer:
=0;
put2:
integer:
=0;
get1:
integer:
=0;
get2:
integer:
=0;
cobegin
processreader;
begin
L1:
readamessageintox;
P(sput1);
A[put1]=x;
Put1:
=(put1+1)modk;
V(sget1);
GotoL1;
End;
Processmanager;
Begin
L2:
P(sget1);
X:
=A[get1];
Get1:
=(get1+1)modk;
V(sput1)
Managethemessageintox;
P(sput2);
B[put2]:
=x
Put2:
=(put2+1)modk;
V(sget2);
GotoL2;
End;
Processwriter;
Begin
L3:
P(sget2);
X:
=B[get2];
Get2:
=(get2+1)modk;
V(sput2);
Printthemessageinx;
GotoL3;
End;
coend
3.有两个优先级相同的进程P1和P2,各自执行的操作如下,信号量S1和S2初值均为0。
试问P1,P2并发执行后, x,y,z的值各为多少?
P1:
P2:
beginbegin
y:
=1;1x:
=1;5
y:
=y+3;2x:
=x+5;6
V(S1);P(S1);
z:
=y+1;3x:
=x+y;7
P(S2);V(S2);
y:
=z+y;4z:
=z+x;8
end.end.
1,2,5和6是不相交语句,可以任何次序交错执行,而结果是唯一的。
接着无论系统如何调度进程并发执行,当执行到语句7时,可以得到x=10,y=4。
按Bernstein条件,语句3的执行结果不受语句7的影响,故语句3执行后得到z=25。
最后,语句4和8并发执行,最后结果为:
答语句4先执行:
x=10,y=9,z=15.
语句8先执行x=10,y=19,z=15
5.在一个盒子里,混装了数量相等的黑白围棋子。
现在用自动分拣系统把黑子,白子分开,设分拣系统有二个进程P1和P2,其中P1拣白子,P2拣黑子。
规定每个进程每次拣一子;当一个进程在拣时,不允许另一个进程去拣;当一个进程拣了一子时,必须让另一个进程去拣。
试写出两个进程P1和P2能并发正确执行的程序。
答:
实质上是两个进程的同步问题,设信号量S1和S2分别表示可拣白子和黑子,不失一般性,若令先拣白子.
VarS1,S2:
semaphore;
S1:
=1,S2:
=0;
Cogegin
{
processP1
begin
repeat
P(S1);
拣白子
V(S2);
Untilfalse;
End
Processp2
Begin
Repeat
P(S2);
拣黑子;
V(S1);
Untilfalse;
End
}
coend.
17.吸烟者问题
答:
用信号量和P,V操作
Vars,s1,s2,s3;semaphore;
S:
=1;s1=s2=s3=0;
Flag1,flag2,flag3:
Boolean;
Flag1=flag2=flag3=TRUE;
Cobegin
{
Process供应者
Begin
Repeat
P(S);
取两样香烟原料放桌上,由flagi标记;flag1/flag2/flag3分别代表烟草,纸、火
Ifflag2&flag3thenv(s1);、供应纸和火
Elseifflag1&flag3thenv(s2);、供应草和火
Elsev(s3);
Untilefalse;
end
Process吸烟者1
Begin
Repeat
P(s1)
取原料,做香烟;
v(S);
吸香烟;
Untilefalse;
Process吸烟者2
Begin
Repeat
P(s2)
取原料,做香烟;
v(S);
吸香烟;
Untilefalse;
Process吸烟者3
Begin
Repeat
P(s3)
取原料,做香烟;
v(S);
吸香烟;
Untilefalse;
}
Coend
27.
答:
(1) 系统处于安全状态,存在安全序列:
p0,p3,p4,p1,p2;
(2)不能分配,否则系统会处于不安全状态。
33.
(1)系统四个进程需要使用的资源数为R1各2台,R2各1台。
可见资源数不足。
同时各进程申请资源在先,有可能产生死锁发生的四个条件,故系统可能产生死锁。
(2)当三个进程执行完申请资源R1,开始申请资源R2时,第四个进程会因没有资源R1而被阻塞。
当三个进程执行完申请资源R2后,系统还剩1个R2资源。
而这三个进程因执行申请第二个资源R1而全部被阻塞,系统进入死锁。
习题四(存储管理)
二.应用题
3.一个页式存储管理系统使用FIFO,OPT和LRU页面算法,如果一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5。
当分配给该作业的物理块数分别为3和4时,试计算访问过程中发生的缺页中断次数和缺页中断率。
答:
作业的物理块数为3块时,使用FIFO为9次,9/12=75%
使用LRU为10次,10/12=83%
使用OPT为7次,7/12=58%
作业的物理块数为4块时,使用FIFO为10次,10/12=83%
使用LRU为8次,80/12=66%
使用OPT为6次,6/12=50%
其中,出现了Belady现象,增加分给作业的内存块数,反使缺页中断率上升.
4.在可变分区存储管理下,按地址排列的内存空闲区为:
10K,4K,20K,18K,7K,9K,12K,和15K。
对于下列的连续存储区的请求:
(1)12K,10K,9K。
(2)12K,10K,15K,18K试问:
使用首次造应算法,最佳造应算法,最差适应算法和下次适应算法,哪个空闲区被使用?
答:
空闲分区如图所示:
分区号
分区长
1
2
3
4
5
6
7
8
10KB
4KB
20KB
18KB
7KB
9KB
12KB
15KB
1)首次造应算法
12KB选中分区3,这时分区3还剩8KB.10KB选中分区1.恰好分配故应删去分区1.9KB
选中分区4,这时分区4还剩9KB.
2)最佳造应算法
12KB选中分区7,恰好分配故应删去分区7.10KB选中分区1.恰好分配故应删去分区1.9KB选中分区6.恰好分配故应删去分区6.
3)最差适应算法
12KB选中分区3,这时分区3还剩8KB.10KB选中分区4,这时分区4还剩8KB.9KB
选中分区8,这时分区8还剩6KB.
4)下次适应算法
12KB选中分区3,这时分区3还剩8KB.10KB选中分区4,这时分区4还剩8KB.
9KB选中分区6.恰好分配故应删去分区6.
(2)原理分区情况同上图
1)首次造应算法
12KB选中分区3,这时分区3还剩8KB.10KB选中分区1.恰好分配故应删去分区1.15KB选中分区4,这时分区4还剩3KB.最后无法满足18KB的申请,应该等待.
2)最佳造应算法
12KB选中分区7,恰好分配故应删去分区7.10KB选中分区1.恰好分配故应删去分区1.15KB选中分区8.恰好分配故应删去分区8.18KB选中分区4.恰好分配故应删去分区4.
3)最差适应算法
12KB选中分区3,这时分区3还剩8KB.10KB选中分区4,这时分区4还剩8KB.15KB选中分区8,恰好分配故应删去分区8.最后无法满足18KB的申请,应该等待.
4)下次适应算法
12KB选中分区3,这时分区3还剩8KB.10KB选中分区4,这时分区4还剩8KB.
15KB选中分区8,恰好分配故应删去分区8.最后无法满足18KB的申请,应该等待.
5,给定内存空闲分区,按地址从小到大为:
100K,500K,200K,300K和600K。
现有用户进程依次分别为212K,417K,112K和426K,
(1)分别用first-fit,best-fit和worst-fit算法将它们装入到内存的哪个分区?
(2)哪个算法能最有效利用内存?
答:
按题意地址从小到大进行分区如图所示:
分区号
分区长
1
2
3
4
5
100KB
500KB
200KB
300KB
600KB
(1)
1)first-fit212KB选中分区2,这时分区2还剩288KB.417KB选中分区5,这时分区5还剩183KB.112KB选中分区2,这时分区2还剩176KB.426KB无分区能满足,应该等待.
2)best-fit212KB选中分区4,这时分区4还剩88KB.417KB选中分区2,这时分区2还剩83KB.112KB选中分区3,这时分区3还剩88KB.426KB选中分区5,这时分区5还剩174KB.
3)worst-fit212KB选中分区5,这时分区5还剩388KB.417KB选中分区2,这时分区2还剩83KB.112KB选中分区5,这时分区5还剩176KB.426KB无分区能满足,应该等待.
(2)对于该作业序列,best-fit算法能最有效利用内存
7.内存有3个和4个空闲页框的情况下,页面替换次数为9次和10次,出现了Belady现象。
9.某计算机有cache,内存,辅存来实现虚拟存储器。
如果数据在cache中,访问它需要20ns;如果在内存但不在cache,需要60ns将其装入缓存,然后才能访问;如果不在内存而在辅存,需要不是12ms将其读入内存,然后,用60ns再读入cache,然后才能访问。
假设cache命中率为0.9,内存命中率为0.6,则数据平均访问时间是多少(ns)?
答:
20*0.9+(60+20)*(1-0.9)*0.6+(20+60+12000)*(1-0.9)*(1-0.6)=506ns
18.答:
t1时刻的工作集为:
{1,2,3,6,7,8,9}t2时刻的工作集为:
{3,4}
20.答:
虚地址0AC5H对应的物理地址为:
12C5H。
而执行虚地址1AC5H会发现页表中尚未有分配的页框而发生缺页中断,由系统另行分配页框。
21.答:
(1)FIFO淘汰page2
(2)LRU淘汰page1
(3)二次机会淘汰oage0
习题五
5.对磁盘存在下面五个请求:
请求
柱面号
磁头号
扇区号
1
7
2
8
2
7
2
5
3
7
1
2
4
30
5
3
5
3
6
6
假如当前磁头位于1号柱面.试分析对这五个请求如何调度,可使磁盘的旋转圈数为最少?
答:
使磁盘的旋转圈数为最少的调度次序为:
5,3,2,1和4
10.答:
采用FIFO次序为:
100,23,376,205,132,19,61,190,398,29,4,18,40,总柱面数是1596
采用SSTF次序为:
100,132,190,205,61,40,29,23,19,18,4,376,398
总柱面数是700
采用SCAN次序为:
100,132,190,205,376,398,61,40,29,23,19,18,4
总柱面数是692
15.非优化存放,读一块数据需要时间为:
13x6+100+25=203ms
因而传输100块的文件的时间为:
20300ms
优化存放,读一块数据需要时间为:
2x6+100+25=137ms