本实验旨在通过实现基于时间片轮转法的处理器调度算法,加深对进程管理和操作系统的理解。学生将编写代码来模拟和测试该算法在不同场景下的性能,增强实际编程能力与问题解决技巧。
系统中有五个进程,每个进程用一个进程控制块(PCB)来表示。PCB的格式如下: 进程名 指针 要求运行时间 已经运行的时间 状态
其中:
- 进程名:作为区分不同进程的标识符,分别为Q1, Q2, Q3, Q4和Q5。
- 指针:用于将五个进程按顺序排成循环队列,并用指针指向下一个PCB的位置。最后一个进程中的指针会指向第一个进程的PCB位置。
- 要求运行时间:表示每个进程需要运行的时间单位,具体数值可以随机设定。
- 已经运行的时间:初始值为0,每次程序执行时增加1以模拟实际运行过程。
- 状态:“就绪”状态(R)和“结束”状态(E),所有进程的初始状态均为“就绪”。
为了开始处理器调度程序,在每个PCB中设定一个随机数值作为要求运行时间,并将五个进程按顺序排列成循环队列,同时设立一个标志单元来指示当前可被选中的进程。
每次执行时:
- 选择标志单元所指向的进程进行模拟运行。
- 更新该进程已经运行的时间并检查是否满足其要求运行时间。如果未达到,则继续等待下一次调度;若已达成,则将状态改为“结束”,并且从循环队列中移除,同时调整前一个PCB中的指针以保持环形结构的完整性。
重复上述过程直到所有进程都进入“结束”状态,并在每次执行时显示或打印当前被选中运行的进程名称及其对应的PCB信息。