
- 题目描述
-
实现对N个进程采用某种进程调度算法(如动态优先权调度)的调度
-
每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段
- 进程标识数ID
- 进程优先数 PRIORITY,并规定优先数越大的进程,其优先权越高
- 进程已占用CPU时间 CPUTIME
- 进程还需占用的CPU时间 ALLTIME,当进程运行完毕时, ALLTIME变为0
- 进程的阻塞时间 STARTBLOCK,表示当进程再运行 STARTBLOCK个时间片后,进程将进入阻塞状态
- 进程被阻塞的时间 BLOCKTIME,表示已阻塞的进程再等待 BLOCKTIME个时间片后,将转换成就绪状态
- 进程状态 STATE
- 队列指针NEXT,用来将PCB排成队列
-
优先数改变的原则
- 进程在就绪队列中呆一个时间片,优先数增加1
- 进程每运行一个时间片,优先数减3
-
假设在调度前,系统中有5个进程,合理设计它们的初始状态
-
初始状态参考示例如下
为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。
参照的具体格式如下:
- 源代码(暂不提供完整代码)
iint main() {
printf("输入需要初始化进程的个数:n");
scanf("%d", &process_num);
// 初始化进程信息
init_process();
// 运行进程
run_process();
return 0;
}
- 实验截图
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)