操作系统实验1-进程调度模拟实验

操作系统实验1-进程调度模拟实验

ID:20467540

大小:183.90 KB

页数:10页

时间:2018-10-12

操作系统实验1-进程调度模拟实验_第1页
操作系统实验1-进程调度模拟实验_第2页
操作系统实验1-进程调度模拟实验_第3页
操作系统实验1-进程调度模拟实验_第4页
操作系统实验1-进程调度模拟实验_第5页
资源描述:

《操作系统实验1-进程调度模拟实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验一进程调度模拟实验一:实验目的通过对进程调度算法的模拟加深对进程概念和进程调度过程的理解。二:实验内容用C语言实现对N(N=5)个进程的调度模拟,可以采用如简单轮转法RoundRobin、优先权高者优先算法HighestPriorityArst等,分别进行模拟调度。每个用来标识进程的进程控制块PCB用结构(记录)來描述,根据需要,它包括以下字段:进程标识数ID。进程优先数Priority,并规定优先数越大的进程,其优先权越高。采用简单轮转法时该字段无用。进程已经占用的CPU时间RUNTIME。进程还需占用的CPU时间NEEDTIM

2、E。当进程运行完毕时,NEEDTIME变为0。进程状态STATE:WAIT,RUNNIN优先数改变的原则(采用简单轮转法吋该字段无用):进程在就绪队列屮等待一个时间片,优先数垌加1;进程每运行一个时间片,优先数减3。三:实验类别进程调度U!实验类型模拟实验五:主要仪器计算机六:结果和小结编程中要特别注意括号的匹配,否则会出现各种问题!!!!湎八进桂扔调皮力S:

3、S]需要时

4、§]120140150160062计数器cpu时间需要时间1201401501600

5、71计数器CPU时间霖要时

6、'0]120140150160180continue翁入进程的调度方法:<P/R〉南入进程名字和进程所需时间.3I41563238383433优先级3838333032优先级3838343029优先级380442U0330F0330F0440F0441R轮数计数器cpu时间需要时间进程状态0330F0330F0440F0550F0442R轮数计数器cpu时间需要时间进程状态0330F0330F0440F0550F0551R轮数计数器cpu时间需要时间进程状态0330F0330F0440F0550F0660F

7、七:程序/♦include^include//include//include〈iostream.h>typedefstructnode{charID[10];//进程标识数intPriority;//进程优先数intROUND;//分配CPU的时间片intCOUNT;//进程执行的次数intRUNTIME;//进程已占用cpu吋间intNEEDTIME;//进程还需占用cpu时间charSTATE;//进程状态structnode*next;}PCB;PCB*WAIT=NUL

8、L,*RUNNING=NULL,*FINISH=NULL;//定义三个队列,就绪队列,执行队列,完成队列voidGetFirst();//从就绪队列取得第一个节点voidOutput();//输出个队列信息voidlnsertPrio(PCB*in);//创建优先级队列,规定优先数越大优先级越高voidlnsertTime(PCB*in);//时间片队列voidlnsertFinish(PCB*in);//时间片队列voidPrioCreate();//优先级输入函数voidTimeCreate();//时间片输入函数voidHigh

9、est_Priority_First();//按照优先级调度voidRound_Robin();//时间片轮转调度intmain(intargc,char*argv[]){charchose;printf("输入进程的调度方法:(P/R)H);scanf(H%c",&chose);switch(chose){case-p*://p为优先级调度PrioCreate();Highest—Priority_First();break;case'R*://R为时间片轮换调度TimeCreate();Round_Robin();break;

10、default:break;}Output();return0;}voidGetFirst()//取得第一个就绪队列节点{RUNNING=WAIT;if(WAIT!=NULL){一WAIT->STATE='R1;//运行状态WAIT=WAIT->next;RUNNING->next=NULL;}}voidOutput()//输出队列信息{PCB*p;p=WAIT;//进程为等待状态printf("进程名t优先级t轮数t计数器tcpu时间t需要时间4进程状态n);while(p!=NULL){printf("%st%d

11、t%dt%dt%dt%dtt%c",p-〉ID,p->Priority,p-〉ROUND,p->COUNT,p->RUNTIME,p->NEEDTIMEzp->STATE);p=p->next;//输出一个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。