"3119OS实验报告1:动态优先数调度程序改写与优化"

需积分: 0 1 下载量 116 浏览量 更新于2024-01-13 收藏 6.48MB DOCX 举报
3119OS实验报告1 本次实验的主要目的是编写和调试一个模拟的进程调度程序,以加深对进程的概念及进程调度算法的理解。实验内容包括调试运行“时间片轮转”调度算法并给出运行结果,以及采用“时间片轮转”调度算法对进程进行调度,并显示进程的运行过程、进程的带权周转时间和系统的平均带权周转时间。 在实现这个调度程序的过程中,我们使用了动态优先数调度程序的框架,并进行了修改和改写。具体的实现思路如下: 1. 首先我们添加了一些全局变量,包括时间片长度timeslot和当前时间realativeTime,用于控制进程的调度和运行。 2. 接下来,我们创建了一个额外的数组来存放输入的进程控制块(PCB),并根据进程的到达时间进行排序。这样可以保证在调度时,按照进程到达时间的先后顺序进行处理。 3. 然后,我们采用时间片轮转的调度算法对进程进行调度。每个进程都拥有一个PCB表示,并具有进程名、到达时间、需要运行时间、已用CPU时间和进程状态等信息。 4. 进程的状态可以是就绪(W)、运行(R)或完成(F)三种状态之一。在进行调度时,根据当前时间和进程状态进行判断,选择合适的进程进行运行。 5. 在调度过程中,我们通过更新进程的已用CPU时间和进程状态来模拟进程的运行过程。当进程完成运行时,将其状态设置为完成,并计算其带权周转时间。 6. 最后,我们根据所有进程的带权周转时间,计算系统的平均带权周转时间。这可以作为评估调度算法性能的重要指标。 在实验过程中,我们根据以上的实现思路编写了调度程序,并进行了运行和测试。下图是实验系统的运行截图: [插入实验系统运行截图] 总结起来,本次实验是在已有的简陋例程的基础上进行修改的,因此程序的逻辑较为混乱。但通过实验,我们深入理解了进程调度的概念和相关算法,并通过调试和测试,验证了“时间片轮转”调度算法在实际应用中的效果。实验还加强了我们对操作系统的理解和实践能力,对于进一步学习和研究操作系统领域具有重要意义。 最后,通过本次实验,我们不仅增加了对进程调度算法的理解,还掌握了编写和调试模拟进程调度程序的技巧。希望在今后的学习和实践中能够继续深入进程调度算法,并应用到实际的操作系统开发中。