本实验旨在通过模拟进程调度算法,如先来先服务和最短剩余时间优先等,帮助学生理解并掌握基本的进程管理和调度原理。
实验1 进程调度(2学时)
一、实验目的
通过本次实验加深对进程调度算法的理解和掌握。
二、实验内容
编写程序实现基于优先级的时间片轮转调度算法。
三、实验要求
1. 假设系统有5个进程,每个进程用一个进程控制块PCB来代表。这些信息包括:
- 进程名:作为标识符,假设五个进程的名称分别为p1, p2, p3, p4和p5。
- 指针:所有进程按顺序排列成循环链表,并通过指针指向下一个进程控制块的位置;最后一个进程中包含一个向第一个PCB地址回环的指针。
- 要求运行时间:指定每个进程需要执行的时间单位数,该值在程序启动时随机生成。
- 已经运行时间:记录了进程已经完成的单位时间数量,默认初始为零。
- 状态:可以假设有两种状态——就绪和结束。所有进程开始时的状态均为就绪。
2. 在每次执行处理器调度前,需要给每个进程随机分配一个要求运行时间和优先级(数值越大表示优先级别越高)。
3. 进程的调度依据其当前的优先级进行;并且随着时间推移,每经过一个时间片后所有进程的优先级都会增加1点。
4. 本程序仅用于模拟处理器调度过程,并不会实际启动被选中的进程。而是通过将已运行时间加一来表示该进程已经执行了一个单位的时间周期。
5. 在设计的程序中应当包含显示语句,以便能够展示每次选定进行处理的是哪个进程以及在每一步操作后各个进程中队列的变化情况。