若它们在单处理机系统中按单道运行,采用短作业优先算法,则平均周转时间为()。
A.T1+T2+T3B.(T1+T2+T3)/3C.T1+T2/3+2T3/3D.T3/3+2T2/3+T1
20.要求进程一次性申请所需的全部资源,是破坏了死锁必要条件中的()。
A.互斥使用资源B.请求与保持C.不可剥夺D.循环等待
二、判断题(正确的划“√”,错误的划“×”,每小题1分,共10分)
1.分时系统的用户具有独占性,因此一个用户可用独占计算机系统的资源。
()
2.系统中至少有两个以上的进程存在才可能发生死锁。
()
3.操作系统的所有程序是常驻内存的。
()
4.参与死锁的所有进程都占有资源。
()
5.多个线程可以对应同一段程序。
()
6.进程A、B共享变量x,需要互斥执行,进程B、C共享变量y,B、C也需要互斥执行,因此进程A、C必须互斥执行。
()
7.CPU对通道的请求形式是通道命令,而通道对CPU的请求形式是中断。
()
8.并发的程序道数越多,系统的效率就会越高。
所以应尽量增加系统的并发度。
()
9.在多CPU的计算机里,才可能实现多道程序并发,单CPU的计算机做不到。
()
10.P、V操作(或wait、signal)在执行时都不能被中断。
()
三、填空题(每空1分,共20分)
1.系统感知作业存在的唯一标识为
(1);系统感知进程存在的唯一标识为
(2);系统感知线程存在的唯一标识为(3)。
2.(4)是指由若干条指令组成的一段程序,它是一种特殊的系统调用,在执行的过程中不能被中断。
3.没有引入线程的操作系统中,(5)既是资源分配的单位,也是处理机指派的基本单位;在引入了线程的操作系统中,资源分配的基本单位是(6),处理机指派(调度)的基本单位变为(7)。
4.从结构上讲,所有进程均由程序段、(8)和(9)3部分组成。
5.一次仅允许一个进程使用的资源叫(10),一个进程访问这种资源的那段代码叫(11)。
6.信号量大于0表示(12);小于0,其绝对值为(13)。
7.计算机系统一般分为两种运行状态,即(14)和(15)。
8.有三种基本的操作系统类型,它们是批处理操作系统、分时操作系统和实时操作系统。
其中(16)的实时性和可靠性要求最高,(17)的交互性最强,(18)的交互性最弱。
9.操作系统的四大基本特征是共享性、并发性、(19)和(20)。
四、简答题(20)
1.试比较进程调度与作业调度的不同点。
(5分)
2.试说明资源的静态分配策略能防止死锁的原因。
(4分)
3.什么是线程?
线程和进程有哪些区别和联系?
(5分)
4.在进程的整个生命周期中,可能要经历哪几种状态,其中进程的三种基本状态是什么?
这三种基本状态在什么情况下会发生什么样的变迁?
请画出三状态模型图。
(6分)
五、综合题(30分)
1.设有一个最多可有两道作业同时装入内存执行的批处理系统,作业调度采用高响应比优先调度算法,进程调度采用时间片轮转调度算法(假设时间片为100ms),今有如下纯计算型作业序列:
(10分)
作业名
到达时间
估计运行时间
J1
10:
10
20分钟
J2
10:
20
30分钟
J3
10:
30
25分钟
J4
10:
50
20分钟
(1)列出所有作业进入内存时间及各作业的结束时间。
作业名
调入时间
结束时间
周转时间
带权周转时间
J1
J2
J3
J4
(2)计算平均周转时间和平均带权周转时间。
2.桌上有一个空盘,只允许存放一个水果,爸爸只向盘中放苹果,妈妈只向盘中放橘子,儿子专吃盘中的橘子,女儿专吃盘中的苹果,规定当盘子空时一次只能放一个水果供吃者取用,请问哪几个进程之间存在同步关系,并用P、V原语实现,各个进程之间的关系。
(10分)
3.
4.现有四个进程P0,P1,P2,P3,三类资源A,B,C,各有7、5、5个。
资源分配矩阵如下:
A
B
C
P0
0
1
0
P1
2
0
0
XX文库-让每个人平等地提升自我P2
3
0
3
P3
2
2
2
资源请求矩阵如下:
A
B
C
P0
0
O
0
P1
2
0
2
P2
0
0
0
P3
1
0
0
可用资源向量为:
A
B
C
0
2
0
1.请问:
目前是否存在死锁?
如果不存在死锁,请给出一个能够让所有进程执行完的安全序列(4')
2.假设此时又来一个进程P4,申请资源(2,2,0),请问如果把2个资源B的实例分配给P4,假设除已经获得和正在请求的资源外,所有进程不再请求其它资源,是否处于安全状态(为什么)?
(6')
答题卷
一、单项选择题(每小题1分,共20分)
1~5
2~10
11~15
16~20
二、判断题(正确的划“√”,错误的划“×”,每小题1分,共10分)
1~5
2~10
三、填空题(每空1分,共20分)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
四、简答题(20)
参考答案
一、单项选择题(每小题1分,共20分)
1~5
BACAD
2~10
CBDDC
11~15
BBDCA
16~20
DCBDB
二、判断题(正确的划“√”,错误的划“×”,每小题1分,共10分)
1~5
×√××√
2~10
×√××√
三、填空题(每空1分,共20分)
1
JCB
2
PCB
3
TCB
4
原语
5
进程
6
进程
7
线程
8
数据段
9
PCB
10
临界资源
11
临界区代码
12
可用资源数
13
阻塞队列中的进程数
14
用户态
15
核心态
16
实时操作系统
17
分时操作系统
18
批处理操作系统
19
虚拟性
20
异步性
四、简答题(20)
5.试比较进程调度与作业调度的不同点。
(5分)
答:
作业调度与进程调度之间的差别主要是:
作业调度是宏观调度,它所选择的作业只是具有获得处理机的资格,但尚未占有处理机,不能立即在其上实际运行。
而进程调度是微观调度,动态地把处理机实际地分配给所选择的进程,使之真正活动起来。
另外,进程调度相当频繁,而作业调度执行的次数一般很少。
6.试说明资源的静态分配策略能防止死锁的原因。
(4分)
答:
资源静态分配策略要求每个进程在开始执行前申请所需的全部资源,仅在系统为之分配了所需的全部资源后,该进程才开始执行。
这样,进程在执行过程中不再申请资源,从而破坏了死锁的四个必要条件之一“请求和保持条件”,从而防止死锁的发生。
7.什么是线程?
线程和进程有哪些区别和联系?
(5分)
答:
线程是进程内的一个相对独立的、可调度的执行单元。
从下面四个方面比较线程和进程的区别和联系:
a.调度性。
在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;
b.并发性。
在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性;
c.拥有资源。
无论是传统的操作系统,还是引入了线程的操作系统,进程始终是拥有资源的一个基本单位,而线程除了拥有一点在运行时必不可少的资源外,本身基本不拥有系统资源,但它可以访问其隶属进程的资源;
d.开销。
由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间等,进程切换时所要保存和设置的现场信息也要明显地多于线程,因此,操作系统在创建、撤消和切换进程时所付出的开销将显著地大于线程。
8.在进程的整个生命周期中,可能要经历哪几种状态,其中进程的三种基本状态是什么?
这三种基本状态在什么情况下会发生什么样的变迁?
请画出三状态模型图。
(6分)
答:
在进程的整个生命周期中,可能要经历:
创建状态、终止状态、就绪状态、运行状态、阻塞状态、挂起状态、激活状态。
进程的三种基本状态是:
就绪状态(Ready),存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行,这些进程所处的状态为就绪状态(有多个进程处于此状态)。
运行状态(Running),当进程由调度/分派程序分派后,得到CPU控制权,它的程序正在运行,该进程所处的状态为运行状态(在系统中,总只有一个进程处于此状态)。
阻塞状态(blocked),若一个进程正在等待某个事件的发生(如等待I/O的完成),而暂停执行,这时,即使给它CPU时间,它也无法执行,则称该进程处于阻塞状态。
进程3状态转换的主要原因有:
就绪→运行:
处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态变为执行状态。
运行→阻塞:
当前进程因发生某事件而无法执行,如访问已被占用的临界资源,就会使进程由执行状态转变为阻塞状态。
阻塞→就绪:
等待的事件已经发生(如I/O完成,消息已到达)
运行→就绪:
在可剥夺调度方式中,更高优先级的进程到达;在时间片轮转调度方式中,进程运行的时间片到。
五、综合题(30分)
1.设有一个最多可有两道作业同时装入内存执行的批处理系统,作业调度采用高响应比优先调度算法,进程调度采用时间片轮转调度算法(假设时间片为100ms),今有如下纯计算型作业序列:
(10分)
作业名
到达时间
估计运行时间
J1
10:
10
20分钟
J2
10:
20
30分钟
J3
10:
30
25分钟
J4
10:
50
20分钟
(1)列出所有作业进入内存时间及各作业的结束时间。
(2)计算平均周转时间和平均带权周转时间。
解:
(1)各作业进入内存时间及结束时间如下表所示。
作业名
调入时间
结束时间
周转时间
带权周转时间
J1
10:
10
10:
40
30分钟
1.5
J2
10:
20
11:
20
60分钟
2
J3
10:
40
11:
30
60分钟
2.4
J4
11:
20
11:
45
55分钟
2.75
(2)平均周转时间=(30+60+60+55)/4=51.25(分钟)
平均带权周转时间=(1.5+2+2.4+2.75)/4=2.1625
2.桌上有一个空盘,只允许存放一个水果,爸爸只向盘中放苹果,妈妈只向盘中放橘子,儿子专吃盘中的橘子,女儿专等着吃盘中的苹果,规定当盘中空时一次只能放一个水果供吃者取用,请问哪几个进程之间存在同步关系,并用P、V原语实现,各进程之间的关系。
(10分)
解:
在本题中,应设置3个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为1;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。
同步描述如下:
intS=1,So=0,Sa=0;
main()
{
cobegin
father();
mother();
son();
daughter();
coend
}
father(){
while
(1){
p(S);
将苹果放入盘中;
v(Sa);
}
}
mother(){
while
(1){
p(S);
将桔子放入盘中;
v(So);
}
}
son(){
while
(1){
p(So);
从盘中取出桔子;
v(S);
吃桔子;
}
}
daughter(){
while
(1){
p(Sa);
从盘中取出苹果;
v(S);
吃苹果;
}
}
3.现有四个进程P0,P1,P2,P3,三类资源A,B,C,各有7、5、5个。
资源分配矩阵如下:
A
B
C
P0
0
1
0
P1
2
0
0
P2
3
0
3
P3
2
2
2
资源请求矩阵如下:
A
B
C
P0
0
O
0
P1
2
0
2
P2
0
0
0
P3
1
0
0
可用资源向量为:
A
B
C
0
2
0
1.请问:
目前是否存在死锁?
如果不存在死锁,请给出一个能够让所有进程执行完的安全序列(4')
答:
不存在死锁
P0,030
P2,333
P1,533
P3,755
2.假设此时又来一个进程P4,申请资源(2,2,0),请问如果把2个资源B的实例分配给P4,假设除已经获得和正在请求的资源外,所有进程不再请求其它资源,是否处于安全状态(为什么)?
(6')
答:
安全
此时可用资源向量为:
000
P2,303
P1,503
P4,523
P0,533
P3,755
仍然都能执行完