1、计算机科学与应用系操作系统原理课程设计报告题目: 进程调度算法 班级: 0510074姓名: lee hye 专业: 计算机科学与技术 指导老师: hhh 操作系统课程设计2进程调度算法一、实验目的通过优先权法与轮转调度算法的模拟加深对进程概念和进程调度过程的理解,掌握进程状态之间的切换,同时掌握进程调度算法的实现方法和技巧。二、实验内容1、用 C 语言或 C+语言来实现对 N 个进程采用优先算法以及轮转算法的进程调度。2、每个用来标示进程的进程控制块 PCB 用结果来描述,包括以下字段(1)进程标识 ID,其中 0 为闲逛进程,用户进程的标识数为1、2、3、 、 、 、 、 、 、 。(2)
2、进程优先级 Priority,闲逛进程(idle)的优先级为 0,用户有进程的优先级大于 0,且随机产生,标识数越大,优先级越高。(3)进程占用的 CPU 时间 CPUtime,进程每运一次,累积等于 4.(4)进程总共需要运行时间 Alltime,利用随机函数产生。(5)进程状态,0就绪态,1运行态,2阻塞态。(6)队列指针 next,用来将多个进程控制块 PCB 链接为队列。3、优先数改变的原则(1)进程在就绪队列中每呆一个时间片,优先数增加 1.(2)进程每运行一个时间片,优先数增加 1.4、在调度前,系统中拥有的进程数 PCB_number 有键盘输入,进初始化后,所有的进程控制块 P
3、CB 连接成就绪队列。5、为了清楚的观察诸进程的调度过程,程序应将每个时间片内的进程的情况显示出来。三、实验步骤1、进程管理程序调式好后,运行进程管理程序操作系统课程设计3YNNYYNNYYNNYready-queue 是否为空将 Running 从 ready_queue 中删除,再将 running 加入block_queueb将其从 blick_queuek 队列是中删除,再将其加入 ready_queuek 输入开始进程数 n随机 对 block_queue 中的进程 PCB 询问是否要唤醒?创建新进程并加入到 ready_queue 中Runningi;while(i)操作系统课程设计10if(i=1)couti;return 0;/输出所有 PCB 的初始值void print_init(PCB *pcb)PCB* temp=pcb-next ;coutIDpriorityCPUtimeALLtime;if(temp-State=0)coutState =1)coutnext;/输出进程属性信息void print(PCB *pcb)