本课程探讨了操作系统中关键概念的应用,包括进程调度的时间片轮转机制、确保系统安全性的银行家算法以及优化资源分配的作业调度策略。
设计一个采用时间片轮转法实现进程调度的程序。
1. 假设系统中有五个进程,每个进程用一个进程控制块(PCB)来表示。PCB包含以下信息:进程名、指针、要求运行时间、已运行时间及状态。
- 进程名:作为标识符,分别为P1, P2, P3, P4和P5。
- 指针:用于将各个进程按顺序排成循环队列,并用指针指向下一个PCB的首地址。最后一个进程的指针则指向第一个进程的PCB首地址。
- 要求运行时间:每个进程中设定其需要执行的时间量,单位为时间片。
- 已运行时间:初始值设为0,表示该进程已使用过的时长。
- 状态:“就绪”(R)或“结束”(E),所有进程的初始状态均为“就绪”。
2. 在每次程序开始前随机确定每个进程的需求运行时间。
3. 将五个进程按顺序排列成循环队列,同时设置一个标志单元以指明当前正在执行哪个任务。例如,若P2正被调度,则标志单元中应显示K2,并且整个PCB列表如下:
```
K1 P1 K2
K2 P2 K3
K3 P3 K4
K4 P4 K5
K5 P5 K1
0 1 0
R R R
```
4. 程序每次选择标志单元指示的进程进行模拟执行,增加其已运行时间值。
5. 每次执行后检查该进程是否已完成(即要求运行时间和实际运行时间相等)。如果未完成,则更新指针以指向下一个应被执行的任务;若已完成,则将其状态改为“结束”并从队列中移除。同时将被删除的PCB的位置由前一个任务接手。
6. 重复步骤4和5,直到所有进程都变为“结束”。
7. 程序需具备显示或打印功能,以便每次选择执行的任务及其变化情况可见于输出结果之中。
8. 给定一组随机运行时间值后,通过程序模拟调度过程,并展示各阶段的PCB动态更新状况。