开始键盘输入进程数n,和调度方法的选择优先权法?轮转法产生n个进程,对每个进程产生一个PCB,并用随机数产生进程的优先权及进程所需的CPU时间按优先权大小,把n个进程拉成一个就绪队列初始化其他数据结构区链首进程投入运行时间片到,进程所需的CPU时间减1,优先权减3,输出个进程的运行情况所需的CPU时间=0?撤销进程就绪队列为空?结束将进程插入就绪队列NYNYYBN实验三进程调度一、实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二、实验要求1.设计进程调度算法,进程数不定2.包含几种调度算法,并加以实现3.输出进程的调度过程——进程的状态、链表等。三、参考例1.题目——优先权法、轮转法简化假设1)进程为计算型的(无I/O)2)进程状态:ready、running、finish3)进程需要的CPU时间以时间片为单位确定2.算法描述1)优先权法——动态优先权当前运行进程用完时间片后,其优先权减去一个常数。2)轮转法四、实验流程图产生n个进程,对每个进程用随机数产生进程的轮转时间片数及进程所需的时间片数,已占用CPU的时间片数置为0按进程产生的先后次序拉成就绪队列链链首进程投入运行时间片到,进程所需时间片数减1,已占用CPU时间片数加1输出各进程的运行情况进程所需时间片数=0?撤销该进程就绪队列为空吗?占用CPU的时间片数=轮转时间片数?占用CPU的时间片数置为0把该进程插入就绪队列尾BNYNYY结束N注意:1.产生的各种随机数的取值范围加以限制,如所需的CPU时间限制在1~20之间。2.进程数n不要太大通常取4~8个3.使用动态数据结构4.独立编程5.至少三种调度算法6.若有可能请在图形方式下,将PCB的调度用图形成动画显示。五.实验过程:(1)输入:进程流文件(1.txt),其中存储的是一系列要执行的进程,每个作业包括四个数据项:进程名进程状态(1就绪2等待3运行)所需时间优先数(0级最高)进程01502进程12104进程21150进程33285进程42191进程5387输出:进程执行流等待时间,平均等待时间本程序包括:FIFO算法,优先数调度算法,时间片轮转调度算法(2)程序代码#include#include#includeconstintblock_time=10;//定义时间片的长度为10秒constintMAXPCB=100;//定义最大进程数//定义进程结构体typedefstructnode{charname[20];intstatus;inttime;intprivilege;intfinished;intwait_time;}pcb;pcbpcbs[MAXPCB];intquantity;//初始化函数voidinitial(){inti;for(i=0;i>fname;if((fp=fopen(fname,"r"))==NULL){cout<<"错误,文件打不开,请检查文件名"<