本实验报告详细探讨了操作系统中的进程与作业调度机制,通过理论分析结合实际编程操作,深入理解不同调度算法的特点及其在实践中的应用效果。
操作系统实验报告
一、 实验目的:通过使用高级语言编写并调试一个进程调度程序来加深对进程概念及进程调度算法的理解。
二、 实验内容与要求:
- 编写并调试模拟的进程调度程序,采用“简单时间片轮转法”进行五个进程的调度。
- 每个进程中包含一个表示其信息的进程控制块(PCB),包括但不限于:名称、到达时刻、所需运行时间、已运行时间和状态等属性。
- 进程的状态可以是就绪W或者正在执行R,每个就绪态的进程在获得CPU后仅能执行一个时间片。
- 在每次调度中打印当前运行中的进程信息及所有进程PCB的内容以供检查。
三、 实验所需设备:
硬件:IBM-PC或兼容机
软件:C语言编程环境
四、实验原理和设计方案:
1. 进程调度算法选择多级反馈队列策略,其核心思想是当新进程进入内存时首先被放置于最优先的队列末尾,并按照先来先服务的原则排队等待CPU时间。如果在分配的第一个时间片内完成任务,则该进程结束;若未完成则将它移动到下一个较低优先级的队列中重新加入就绪列表,以此类推。
2. 实验步骤:
(1)使用FCFS算法建立初始的就绪进程队列。
(2)检查所有等待执行的任务是否已经全部处理完毕。如果所有的任务都已经结束,则实验完成;否则继续进行下一步操作。
(3)查看当前正在运行中的任务,判断其是否已完成所需的工作量。若已达到要求则可以将该任务标记为终止状态并清理资源,反之将其重新放置到下一个队列中准备下一次调度执行。
(4)检查是否有新的进程需要加入系统,并根据优先级安排它们进入适当的就绪等待列表的尾部排队等候。
(5)重复上述步骤直到所有进程都已处理完毕为止。