《操作系统原理》课程设计

《操作系统原理》课程设计

ID:18557819

大小:85.50 KB

页数:13页

时间:2018-09-18

《操作系统原理》课程设计_第1页
《操作系统原理》课程设计_第2页
《操作系统原理》课程设计_第3页
《操作系统原理》课程设计_第4页
《操作系统原理》课程设计_第5页
资源描述:

《《操作系统原理》课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《操作系统原理》课程设计课题名称:进程调度算法姓名:班级:学号:课程设计起止时间:2005年1月2日——2005年1月7日指导教师:成绩:课程设计任务书《操作系统原理》课程设计任务书(同学填写)设计题目:进程调度算法任务下达时间:2005年1月2日任务完成时间:2005年1月7日指导教师:指导教师评语(教师填写)一、所得结果:二、存在问题:成绩评阅人进程调度算法一、设计说明该程序实现了进程的创建,且对该进程队列进行动态优先权抢占式和时间片轮转算法的调度。二、详细设计1.流程图开始select选择anum选择bnum选择1选

2、择1创建进程创建进程执行动态优先权算法选择2选择2执行时间片算法退出选择3选择3退出结束2.程序运行环境TurboC2.03.变量的名称、作用及含义说明链表结构process,整型变量name表示进程名称,整型变量prior表示优先数,整型变量needtime表示需要执行时间,整型变量CPUtime表示CPU执行时间,整型变量runtime表示进程执行时间,整型变量state表示运行状态(1:ready,2:execute,3:finish)。4.各主要模块的功能表述[子函数]①Createp()用来创建新进程,其中的整型

3、变量n表示需要创建的进程个数;②PrintP1(h)用来打印输出时间片轮转算法的创建进程和运行进程的各变量值;③Finish(h)用来判断某个进程是否执行完;④Find(h)用来查找该进程队列中优先数最大的进程;⑤PrintP2(h)用来打印输出动态优先权抢占式算法的创建进程和运行进程的各变量值;⑥ExecuteP_prio(h)执行动态优先权抢占式进程调度算法;⑦ExecuteP_time(h)执行时间片轮转进程调度算法;[主函数]main()中使用字符变量select表示a和b中的一个字母,整型变量num表示1至3中的

4、一个数,用双层switch语句实现各模块功能。5.程序源代码#include#include#include#include#defineNULL0#defineMax_Pri100structProcess{intname;intprio;intneedtime;intpiecetime;intCPUtime;intruntime;intstate;structProcess*next;};typedefstructProcessprocess;/**

5、************************************/process*CreateP(){process*h,*t,*p;inti,a;intct=0;for(i=0;i<5;i++){t=(process*)malloc(sizeof(process));printf("Enterthenameofprocess:");scanf("%d",&a);printf("EntertheCPUtimeofprocess:");scanf("%d",&ct);t->name=a;t->CPUtime=

6、ct;t->runtime=0;t->prio=100-t->CPUtime;t->needtime=t->CPUtime;t->piecetime=t->CPUtime/2+t->CPUtime%2;t->state=1;if(i==0){h=t;p=t;}else{p->next=t;p=p->next;}}p->next=NULL;returnh;}/**************************************/voidPrintP1(process*h){process*t;t=h;printf("

7、1:ready2:execute3:finish");printf("namepriorityneedtimeruntimestate");{while(t){printf("%4d%8d%10d%10d%10d",t->name,t->prio,t->needtime,t->runtime,t->state);t=t->next;}}putchar('');}/**************************************/voidPrintP2(process*h){process*t;t

8、=h;printf("1:ready2:execute3:finish");printf("namepiecetimeneedtimeruntimeCPUtimestate");while(t){printf("%4d%8d%10d%10d%10d%8d",t->name,t->piecet

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

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

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