42、解释抢占式调度和非抢占式调度的区别。
当调度仅在进程从运行状态切换到等待状态、进程终止这两种情况下发生时,调度方案为 非抢占式 或 协作式 ;否则为 抢占式 。
- 非抢占式调度 :
-
一旦CPU分配给某个进程,该进程会一直占用CPU,直到它通过终止或切换到等待状态来释放CPU。
-
抢占式调度 :
- 当有新进程满足一定条件(如优先级更高)时,当前运行的进程可能会被抢占CPU。
现代操作系统 (如Windows、macOS、Linux和UNIX)大多使用抢占式调度算法。
43、考虑以下一组进程,CPU 突发时间长度以毫秒为单位给出:进程 突发时间 优先级 P1 2 2 P2 1 1 P3 8 4 P4 4 2 P5 5 3 假设这些进程按 P1、P2、P3、P4、P5 的顺序在时间 0 到达。a. 绘制四个甘特图,展示使用以下调度算法执行这些进程的情况:先来先服务(FCFS)、最短作业优先(SJF)、非抢占式优先级调度(优先级数字越大表示优先级越高)和时间片轮转(RR,时间片 = 2)。b. 对于 a 部分中的每个调度算法,每个进程的周转时间是多少?c. 对于这些调度算法,每个进程的等待时间是多少?d. 哪种算法导致所有进程的平均等待时间最短?
a. 甘特图绘制说明
- FCFS :按进程到达顺序执行,即 P1 → P2 → P3 → P4 → P5。
- SJF :按短作业优先顺序执行,即 P2 → P1 → P4 → P5 → P3。
- 非抢占式优先级调度 :按优先级从低到高执行(数值越小优先级越高),执行顺序为 P2 → P1 → P4 → P5 → P3。
- RR(时间片 = 2) :各进程按时间片轮转执行,依次调度未完成的进程。
b. 周转时间计算
| 调度算法 | P1 | P2 | P3 | P4 | P5 |
|---|---|---|---|---|---|
| FCFS | 2 | 3 | 11 | 15 | 20 |
| SJF | 3 | 1 | 20 | 7 | 12 |
| 非抢占式优先级 | 3 | 1 | 20 | 7 | 12 |
| RR | 需根据轮转情况计算 | 需根据轮转情况计算 | 需根据轮转情况计算 | 需根据轮转情况计算 | 需根据轮转情况计算 |
注:周转时间 = 完成时间 - 到达时间
c. 等待时间计算
| 调度算法 | P1 | P2 | P3 | P4 | P5 |
|---|---|---|---|---|---|
| FCFS | 0 | 2 | 3 | 11 | 15 |
| SJF | 1 | 0 | 12 | 3 | 7 |
| 非抢占式优先级 | 1 | 0 | 12 | 3 | 7 |
| RR | 需根据轮转情况计算 | 需根据轮转情况计算 | 需根据轮转情况计算 | 需根据轮转情况计算 | 需根据轮转情况计算 |
注:等待时间 = 周转时间 - 执行时间
d. 平均等待时间比较与结论
- FCFS 平均等待时间 :(0 + 2 + 3 + 11 + 15) / 5 = 6.2
- SJF 平均等待时间 :(1 + 0 + 12 + 3 + 7) / 5 = 4.6
- 非抢占式优先级平均等待时间 :(1 + 0 + 12 + 3 + 7) / 5 = 4.6
- RR 平均等待时间 :需计算后得出

最低0.47元/天 解锁文章
858

被折叠的 条评论
为什么被折叠?



