
计算机操作系统模拟进程调度算法。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
通过模拟进程调度算法,旨在更深入地掌握进程的根本概念,并提升对进程运行状态、调度流程以及各类调度算法的理解。具体而言,首先使用C、C++或Java语言编程,模拟对五个进程采用动态优先权调度算法进行调度的过程。数据包括每个进程的到达时间和服务时间,具体信息如下表所示,且忽略了I/O和其他额外的开销时间。 采用动态优先权算法,初始优先权设定为100,要求输出每个进程的完成时刻、周转时间以及带权周转时间。
进程 | 到达时刻 | 服务时间
------- | -------- | --------
A | 0 | 3
B | 2 | 6
C | 4 | 4
D | 6 | 5
E | 8 | 2
其次,利用可用的进程控制块(PCB)结构来描述每个进程的标识信息,该结构应包含以下字段(某些可能未使用的字段可以省略): 进程标识符(ID)。 进程优先级(PRIORITY),其中优先级数值越大,表示优先级越高。 已占用CPU的时间(CPUTIME)。 还需占用的CPU时间(ALLTIME),当进程执行完毕后ALLTIME值应为0。 阻塞开始时间(STARTBLOCK),用于指示当一个进程在运行STARTBLOCK个时间片后进入阻塞状态。 被阻塞的时间(BLOCKTIME),表示已经阻塞的进程在等待BLOCKTIME个时间片后转换成就绪状态。 当前状态(STATE)。 排列指针(NEXT),用于将PCB排列成队列的形式。
此外,需要明确优先数调整的原则: 在就绪队列中停留的时间片内,每个进程的优先级增加1。 每个运行时间片内,每个进程的优先级减3。最后为了便于观察每个进程的具体调度情况,程序应清晰地展示每个时间片内的状态信息,包括正在运行的进程、处于就绪队列中的进程以及处于阻塞队列中的进程。最后需要对程序运行结果进行分析并分享个人的见解和体会。
全部评论 (0)


