使用动态优先权的进程调度算法 C语言模拟实现 含详细源代码和实验结果

使用动态优先权的进程调度算法 C语言模拟实现 含详细源代码和实验结果,第1张

使用动态优先权的进程调度算法 C语言模拟实现 含详细源代码和实验结果 使用动态优先权的进程调度算法 C语言模拟实现 含详细源代码和实验结果
  • 题目描述
  1. 实现对N个进程采用某种进程调度算法(如动态优先权调度)的调度

  2. 每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段

    • 进程标识数ID
    • 进程优先数 PRIORITY,并规定优先数越大的进程,其优先权越高
    • 进程已占用CPU时间 CPUTIME
    • 进程还需占用的CPU时间 ALLTIME,当进程运行完毕时, ALLTIME变为0
    • 进程的阻塞时间 STARTBLOCK,表示当进程再运行 STARTBLOCK个时间片后,进程将进入阻塞状态
    • 进程被阻塞的时间 BLOCKTIME,表示已阻塞的进程再等待 BLOCKTIME个时间片后,将转换成就绪状态
    • 进程状态 STATE
    • 队列指针NEXT,用来将PCB排成队列
  3. 优先数改变的原则

    • 进程在就绪队列中呆一个时间片,优先数增加1
    • 进程每运行一个时间片,优先数减3
  4. 假设在调度前,系统中有5个进程,合理设计它们的初始状态

  5. 初始状态参考示例如下

为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。
参照的具体格式如下:

  • 源代码(暂不提供完整代码)
iint main() {
	printf("输入需要初始化进程的个数:n");
	scanf("%d", &process_num);
	// 初始化进程信息
	init_process();
	// 运行进程
	run_process();
	return 0;
}
  • 实验截图

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4751655.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-08
下一篇2022-11-08

发表评论

登录后才能评论

评论列表(0条)

    保存