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

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

ID:35753622

大小:22.00 KB

页数:18页

时间:2019-04-16

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

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

1、操作系统进程调度算法操作系统实验一进程调度模拟算法课程名称操作系统计算机科学与技术分院信1001—2班组学号实验者姓名实验日期2013年4月11日评分教师签名实验一进程调度模拟算法操作系统进程调度算法操作系统实验一进程调度模拟算法课程名称操作系统计算机科学与技术分院信1001—2班组学号实验者姓名实验日期2013年4月11日评分教师签名实验一进程调度模拟算法操作系统进程调度算法操作系统实验一进程调度模拟算法课程名称操作系统计算机科学与技术分院信1001—2班组学号实验者姓名实验日期2013年4月11日评分教师签名实验一

2、进程调度模拟算法一、实验目的通过进程调度实验,了解了优先数算法和时间片轮转算法的具体实施办法,体会了优先数算法和时间片轮转算法进程调度的过程,掌握了有关进程控制快、进程队列等概念,提高了编程技巧和对算法的理解和掌握。二、实验要求进程调度是处理机管理的核心内容,本实验要求用高级语言编写模拟进程调度程序,以便加深理解有关进程控制快、进程队列等概念。三、实验过程1.准备分别用两种调度算法对伍个进程进行调度。每个进程可有三种状态;执行状态(RUN)、就绪状态(READY,包括等待状态)和完成状态(FINISH),并假定初始状态

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

4、为如下5个字段:namecputimeneedtimeprioritystate注:1.在state字段中,”R”代表执行态,”W”代表就绪(等待)态,”F”代表完成态。2.应先显示”R”态的,再显示”W”态的,再显示”F”态的。3.在”W”态中,以优先数高低或轮转顺序排队;在”F”态中,以完成先后顺序排队。2.主要流程和源代码实验一源代码#include#include#include#includetypedefstructnode{charname[10];intprio;intround;intcputime;

5、intneedtime;intcount;charstate;structnode*next;}PCB;PCB*finish,*ready,*tail,*run;intN;voidfirstin(void);voidprint1(chara);voidprint2(charchose,PCB*p);voidprint(charchose);voidinsert_prio(PCB*q);voidprior_init(charchose);voidpriority(charchose);voidinsert_rr(PCB*

6、q);voidroundrun_init(charchose);voidroundrun(charchose);voidmain()//主函数{charchose=‘‘;while((chose!=‘q’)&&(chose!=‘Q’)){fflush(stdin);printf(“选择进程优先级算法请输入P,选择循环轮转算法请输入R,退出请输入Q”);printf(“请输入你的选择:”);scanf(“%c”,&chose);if((chose!=‘q’)&&(chose!=‘Q’)){system(“cls”);

7、if((chose==‘P’)

8、

9、(chose==‘p’)){prior_init(chose);priority(chose);system(“cls”);}elseif((chose==‘r’)

10、

11、(chose==‘R’)){roundrun_init(chose);roundrun(chose);system(“cls”);}}}printf(“谢谢使用!”);}voidfirstin(void){if(ready!=NULL){run=ready;ready=ready->next;run->state=‘

12、R’;run->next=NULL;}else{run=NULL;}}voidprint1(chara){if(toupper(a)==‘P’){printf(“namecputimeneedtimeprioritystate”);}else{printf(“namecputimeneedtimecountroundstate

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

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

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