文章目录
一、选择题
-
当作业进入完成状态时,操作系统:
A. 将删除该作业并收回其所占资源,同时输出结果
B. 将该作业的控制块从当前作业队列中删除,收回其所占资源,并输出结果
C. 将收回该作业所占资源并输出结果
D. 将输出结果并删除内存中的作业
正确答案:B
-
某系统正在执行三个进程P1、P2和P3,各进程的计算(占用CPU)时间和I/O时间比例如下
进程 | 计算时间(%) | I/O时间(%) |
---|---|---|
P1 | 90 | 10 |
P2 | 50 | 50 |
P3 | 15 | 85 |
A. P1>P2>P3
B. P3>P2>P1
C. P2>P1=P3
D. P1>P2=P3
正确答案:B
-
下列进程调度算法中,综合考虑进程等待时间和执行时间的是:
A. 最高响应比优先调度算法
B. 先来先服务调度算法
C. 短进程优先调度算法
D. 时间片轮转调度算法
正确答案:A
-
在批处理系统中,周转时间是:
A. 作业运行时间
B. 作业等待时间和运行时间之和
C. 作业的等待时间
D. 作业被调度进入内存到开始运行的时间
正确答案:B
-
在操作系统中,作业处于状态时,已处于进程管理之下。
A. 提交
B. 后备
C. 运行
D. 完成
正确答案:B
-
下列选项中,降低进程优先级的合理时机是:
A. 进程的时间片用完
B. 进程刚完成I/O,进入就绪队列
C. 进程长期处于就绪队列中
D. 进程从就绪状态转为运行状态
正确答案:C
-
一个作业被成功调度后,系统为其创建相应的进程,该进程的初始状态是:
A. 执行态
B. 阻塞态
C. 就绪态
D. 等待访问设备态
正确答案:C
-
下列选项中,满足短作业优先而且不会发生饥饿现象的调度算法是:
A. 先来先服务
B. 最高响应比优先
C. 时间片轮转
D. 非抢占式短任务优先
正确答案:B
-
若某单处理器多进程系统中有多个就绪态进程,则下列关于处理机调度的叙述中,错误的是:
A. 在进程结束时能进行处理机调度
B. 创建新进程后能进行处理机调度
C. 在进程处于临界区时不能进行处理机调度
D. 在系统调用完成并返回用户态时能进行处理机调度
正确答案:C
二、填空题
(1)作业调度是从处于 后备 状态的队列中选取适当的作业投入运行。从作业提交给系统到作业完成的时间间隔叫做 周转时间 。 等待时间 指的是作业从进入后备队列到被调到程序中的时间间隔。假定把下列四个作业同时提交系统并进入 后备 队列,当使用短作业优先调度算法时,单道环境下,四个作业的平均等待时间是 4.25小时 ,平均周转时间是 8.75小时 ;当使用高优先数优先的调度算法时,作业的平均等待时间是 5.75小时 ,平均周转时间是 10.25小时 。
作业 | 所需运行时间(小时) | 优先数 |
---|---|---|
1 | 2 | 4 |
2 | 5 | 9 |
3 | 8 | 1 |
4 | 3 | 7 |
(2)在一个具有分时兼批处理的系统中,总是优先调度 分时作业。
三、简答题
(1)什么是分层次调度?在分时系统中有作业调度的概念吗?如果没有,为什么?
(2)作业调度和进程调度的主要功能分别是什么?
(3)作业调度的性能评价标准有哪些?这些性能评价标准在任何情况下都能反映调度策略的优劣吗?
(4)为什么说多级反馈队列调度算法能较好地满足各类用户的需要?
(5)假设就绪队列中有10个进程,系统将时间片设为200ms,CPU进行进程切换要花费10ms,试问系统开销所占的比率约为多少?
(6)在批处理系统、分时系统和实时系统中一般常采用哪种调度算法?
(7)若在后备作业队列中等待运行的同时有三个作业1、2、3,已知它们各自的运行时间为a、b、c,且满足关系a<b<c,试证明采用短作业优先调度算法能获得最小的平均周转时间。
答:
(1)分层次调度是指将调度分为多个层次,每个层次对应不同的调度策略和调度时机。在分时系统中,作业调度的概念通常不存在,因为分时系统强调的是进程的快速响应和资源共享,而不是作业的完整生命周期管理。
(2)作业调度的主要功能是从后备队列中选择作业,控制作业从提交到完成的整个过程。进程调度的主要功能是决定哪个进程应该获得CPU时间,以及何时进行进程上下文切换。
(3)作业调度的性能评价标准包括周转时间、等待时间和响应时间等。这些标准在大多数情况下可以反映调度策略的优劣,但在特定情况下,如实时系统中,可能需要考虑其他因素,如截止时间的遵守率。
(4)多级反馈队列调度算法能较好地满足各类用户的需要,因为它结合了时间片轮转和优先级调度的特点,能够动态调整进程的优先级,同时减少长作业对短作业的"饥饿"现象。
(5)系统开销所占的比率可以通过计算进程切换次数和每次切换所需时间来估算。如果有10个进程,每个进程至少切换一次,那么至少有9次切换。每次切换需要10ms,总切换时间为90ms。如果每个进程运行200ms,那么总运行时间为2000ms。因此,系统开销比率约为90ms / (2000ms + 90ms)。
(6)批处理系统常采用短作业优先或优先级调度算法,分时系统常采用轮转或优先级调度算法,实时系统则根据实时性要求采用优先级调度或最早截止时间优先调度算法。
(7)短作业优先调度算法(SJF)通过优先执行运行时间短的作业,可以减少作业在系统中的等待时间,从而减少周转时间。由于a<b<c,SJF会先执行a,然后是b,最后是c,这样可以保证每个作业的等待时间最短,从而获得最小的平均周转时间。
四、应用题
(1)考虑5个进程P1、P2、P3、P4、P5,它们的创建时间、运行时间及优先数如下表所示。规定进程的优先数越小,优先级越高。试描述在采用下述几种调度算法时各个进程运行过程,并计算采用每种算法时的进程平均周转时间。假设忽略进程的调度时间。
表 5个进程的创建时间、运行时间、和优先数 :
进程 | 创建时间 | 运行时间(ms) | 优先数 |
---|---|---|---|
P1 | 0 | 3 | 3 |
P2 | 2 | 6 | 5 |
P3 | 4 | 4 | 1 |
P4 | 6 | 5 | 2 |
P5 | 8 | 2 | 4 |
① 先来先服务调度算法。
② 短进程优先调度算法。
③时间片轮转调度算法(时间片为1ms)。
④非剥夺式优先级调度算法。
⑤剥夺式优先级调度算法。
⑥最高响应比优先调度算法。
1)先来先服务调度算法(FCFS)
作业号 | 进入时间 | 运行时间(ms) | 开始执行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|---|
P1 | 0 | 3 | 0 | 3 | 3 |
P2 | 2 | 6 | 3 | 9 | 7 |
P3 | 4 | 4 | 9 | 13 | 9 |
P4 | 6 | 5 | 13 | 18 | 12 |
P5 | 8 | 2 | 18 | 20 | 12 |
平均周转时间T=(3+7+9+12+12)/ 5=8.6ms
平均带权周转时间W=(3/3+7/6+9/4+12/5+12/2) / 5=2.56
2)短进程优先(SJF)调度算法
进程 | 创建时间 | 运行时间(ms) | 优先数 | 完成时间 | 周转时间 |
---|---|---|---|---|---|
P1 | 0 | 3 | 3 | 3 | 3 |
P5 | 8 | 2 | 4 | 10 | 10 |
P4 | 6 | 5 | 2 | 15 | 9 |
P2 | 2 | 6 | 5 | 21 | 19 |
P3 | 4 | 4 | 1 | 25 | 21 |
平均周转时间T=(3+10+9+19+21)/5=12.6 ms
3)时间片轮转调度算法(RR)
时刻 | 运行进程 | 排队进程 |
---|---|---|
0~1 | P1 | |
1~2 | P1 | P2 |
2~3 | P2 | P1 |
3~4 | P1 | P2 |
4~5 | P2 | P3 |
5~6 | P3 | P2 |
6~7 | P2 | P4 P3 |
7~8 | P4 | P3 P2 |
8~9 | P3 | P2 P5 P4 |
9~10 | P2 | P5 P4 P3 |
10~11 | P5 | P4 P3 P2 |
11~12 | P4 | P3 P2 P5 |
12~13 | P3 | P2 P5 P4 |
13~14 | P2 | P5 P4 P3 |
14~15 | P5 | P4 P3 P2 |
15~16 | P4 | P3 P2 |
16~17 | P3 | P2 P4 |
17~18 | P2 | P4 |
18~19 | P4 | |
19~20 | P4 |
作业号 | 进入时间 | 运行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|
P1 | 0 | 3 | 4 | 4 |
P2 | 2 | 6 | 18 | 16 |
P3 | 4 | 4 | 17 | 13 |
P4 | 6 | 5 | 20 | 14 |
P5 | 8 | 2 | 15 | 7 |
平均周转时间T=(4+16+13+14+7)/ 5=10.8ms
平均带权周转时间W=(4/3+16/6+13/4+14/5+7/2) / 5=2.15
4)非剥夺式优先级调度算法
作业号 | 进入时间 | 运行时间 | 优先数 | 完成时间 | 周转时间 |
---|---|---|---|---|---|
P1 | 0 | 3 | 3 | 3 | 3 |
P2 | 2 | 6 | 5 | 9 | 7 |
P3 | 4 | 4 | 1 | 13 | 9 |
P4 | 6 | 5 | 2 | 18 | 12 |
P5 | 8 | 2 | 4 | 20 | 12 |
平均周转时间T=(3+7+9+12+12)/ 5=8.6ms
平均带权周转时间W=(3/3+7/6+9/4+12/5+12/2) / 5=2.56
5)剥夺式优先级调度算法
作业号 | 进入时间 | 运行时间 | 优先数 | 完成时间 | 周转时间 |
---|---|---|---|---|---|
P1 | 0 | 3 | 3 | 3 | 3 |
P3 | 4 | 4 | 1 | 8 | 4 |
P4 | 6 | 5 | 2 | 13 | 7 |
P5 | 8 | 2 | 4 | 15 | 7 |
P2 | 2 | 6 | 5 | 20 | 18 |
平均周转时间T=(3+18+4+7+7)/ 5=7.8ms
平均带权周转时间W=(3/3+18/6+4/4+7/5+7/2) / 5=1.98
- P1 是第一个进入系统的进程,运行时间为3ms,因此它首先被执行,并在3ms时完成。
- P3 在4ms时进入系统,运行时间为4ms,是接下来最短的进程,因此它在P1完成后立即执行,并在8ms时完成。
- P4 在6ms时进入系统,运行时间为5ms,是接下来最短的进程,因此它在P3完成后立即执行,并在13ms时完成。
- P5 在8ms时进入系统,运行时间为2ms,是接下来最短的进程,因此它在P4完成后立即执行,并在15ms时完成。
- P2 在2ms时进入系统,运行时间为6ms,是最后完成的进程,因此它在P5完成后立即执行,并在20ms时完成。
(2)有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的剥夺式调度算法。下表所示为作业序列,作业优先数即为进程优先数,优先数越小优先级越高。
进程 | 到达时间 | 估计运行时间 | 优先数 |
---|---|---|---|
A | 10:00 | 40分钟 | 5 |
B | 10:20 | 30分钟 | 3 |
C | 10:30 | 50分钟 | 4 |
D | 10:50 | 20分钟 | 6 |
(1)作业进入内存时间及结束时间
由于作业调度采用短作业优先,进程调度采用优先数为基础的剥夺式调度,我们按照这些规则来确定作业的进入内存时间和结束时间。
- 作业A(优先数5)在10:00到达,但由于没有更早的作业,它将首先开始执行。
- 作业B(优先数3)在10:20到达,优先数比A高,因此将剥夺A的CPU并开始执行。
- 作业C(优先数4)在10:30到达,优先数低于B,因此B继续执行。
- 作业D(优先数6)在10:50到达,优先数低于B,因此B继续执行。
按照这个顺序,我们可以计算出每个作业的开始和结束时间:
进程 | 到达时间 | 开始时间 | 结束时间 | 周转时间 |
---|---|---|---|---|
A | 10:00 | 10:50 | 11:30 | 40分钟 |
B | 10:20 | 10:20 | 10:50 | 30分钟 |
C | 10:30 | 11:30 | 12:20 | 50分钟 |
D | 10:50 | 10:50 | 11:10 | 20分钟 |
- 作业A 在10:00到达,开始执行于10:50(B完成后),结束于11:30。
- 作业B 在10:20到达,开始并结束于10:50。
- 作业C 在10:30到达,开始执行于11:30(A完成后),结束于12:20。
- 作业D 在10:50到达,由于B已完成,D在10:50开始执行,并在11:10结束。
(2)计算平均周转时间
周转时间是作业从提交到完成的时间。根据上表,我们可以计算平均周转时间:
平均周转时间:(30+40+50+20)/4=140/4=35(分钟)