操作系统实验一进程调度模拟算法

操作系统实验一进程调度模拟算法

ID:35497530

大小:152.58 KB

页数:10页

时间:2019-03-25

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

《操作系统实验一进程调度模拟算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、课程名称操作系统计算机科了与技术分院信1001—2班组学号_实验者姓名实验FI期2013年_月_FI评分教师签名实验一进程调度模拟算法一、实验目的通过进程调度实验,了解了优先数算法和时间片轮转算法的具体实丿施办法,体会了优先数算法和时间片轮转算法进程调度的过程,掌握了冇关进程控制快、进程队列等概念,捉高了编程技巧和对算法的理解和掌握。二、实验要求进程调度是处理机管理的核心内容,本实验要求用高级语言编写模拟进程调度程序,以便加深理解有关进程控制快、进程队列等概念。三、实验过程1.准备分别用两种调度算法对伍个进程进行调度。每个进程可有三种状态;执行状态(RUN)、就绪状态(READ

2、Y,包括等待状态)和完成状态(FINISH),并假定初始状态为就绪状态。进程控制块结构如下:NAME进程标示符PR10/R0UND一进程优先数/进程每次轮转的时间片数(设为常数2)CPUTLME——进程累计占用CPU的时间片数NEEDTIME——进程到完成还盂要的时间丿f数STATE——进程状态NEXT——链指针进程的就绪态和等待态均为链表结构,共有四个指针如F:RUN—当前运行进程指针READY——就需队列头指针TAIL——就需队列尾指针FTNTSH——完成队列头指针运行和显示程序开始运行后,首先提示:请用户选择算法,输入进程名和相应的NEEDTIME值。每次显示结果均为如下

3、5个字段:namecputinicneedtimeprioritystate注:1.在state字段中,〃旷代表执行态,代表就绪(等待)态,〃F〃代表完成态。2.应先显示〃R〃态的,再显示〃旷态的,再显示〃F〃态的。3.在〃『态中,以优先数高低或轮转顺序排队;在〃F〃态中,以完成先后顺序排队。2.主要流程和源代码实验一源代码★includettinclude#inelude#include〈windows.h>typedefstructnode{charname[10];intprio;intround;intcputi

4、me;intneedtime;intcount;charstate;structnode*next;}PCB;PCB*finish,*ready,*run;intN;voidfirstin(void);voidprintl(chara);voidprint2(charchose,PCB*p);voidprint(charchose);voidinsert_prio(PCB*q);voidprior_init(charchose);voidpriority(charchose);voidinsertrr(PCB*q);voidroundrun^init(charchose);vo

5、idroundrun(charchose);voidmainO//主函数{charchose二'';while((chose!=,q')&&(chose!二'Q')){fflush(stdin);printfC选择进程优先级算法请输入P,选择循环轮转算法请输入R,退出请输入Q〃);printfC请输入你的选择:");scanf&chose);if((chose!二'q')&&(chose!='Q')){system(〃cls〃);if((chose二二'P,)

6、

7、(chose二二'p'))priorinit(chose);priority(chose);system("cI

8、s〃);}elseif((chose二二'r')

9、

10、(chose二二'R')){roundrun_init(chose);roundrun(chose);system("cls");}}}printfC谢谢使用!〃);}voidfirstin(void){if(ready!=NULL){run=ready;ready=ready->next;run->state=,R,;run->ncxt二NULL;}mn二NULL;voidprintl(chara){if(toupper(a)==,P'){printf("nameeputimeneedtimeprioritystate

11、n“);}else{printf(z,nameeputimeneedtimecountroundstate");voidprint2(charchose,PCB*p)if(toupper(chose)二」P‘)printf(//%st%dt%dt%dt%c/,,p->name,p->cputime,p->needtime,p->prio,p->state);}else{printfC/%st%dt%dt%dt%dt%c,z,p->name,p->cputime,

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

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

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