处理机调度操作系统实验报告

处理机调度操作系统实验报告

ID:46808969

大小:344.51 KB

页数:13页

时间:2019-11-28

处理机调度操作系统实验报告_第1页
处理机调度操作系统实验报告_第2页
处理机调度操作系统实验报告_第3页
处理机调度操作系统实验报告_第4页
处理机调度操作系统实验报告_第5页
资源描述:

《处理机调度操作系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学年第学期操作系统课程实验报告学院:    专业:班级:         姓名:             学号:            任课教师:                实验题目处理机调度实验地点实验目的1.通过编写程序实现进程或作业先来先服务、高优先权、按时间片轮转调度算法,进一步掌握进程调度的概念和算法,加深对处理机分配的理解。2.了解Linux中进程(线程)的调度机制。3.学习使用Linux中进程(线程)调度算法,掌握相应的与调度有关的函数。实验内容1、程序说明: (1)先来先服务算法:如果早就绪的进程排在就绪队列的前面,迟就绪的进程排在就绪队列的后面,那么先来先服务(

2、FCFS:firstcomefirstservice)总是把当前处于就绪队列之首的那个进程调度到运行状态。(2)轮转法就是按一定时间片(记为q)轮番运行各个进程。如果q是一个定值,则轮转法是一种对各进程机会均等的调度方法。(3)优先级调度的基本思想是,把当前处于就绪队列中优先级最高的进程投入运行,而不管各进程的下一个CPU周期的长短和其他因素。2、具体步骤:(1)分析问题,提出解决问题的算法(2)编制程序(3)程序调试(4)记录实验结果,以及思考是否能够改善算法(1)编辑程序jcdd.c,编译并执行。#include#include#define

3、P_NUM5#defineP_TIME50enumstate{ready,execute,block,finish};structpcbb{charname[4];intpriority;//数越大优先级越高intcputime;//已占用CPU的时间intneedtime;//执行时间intcount;enumstateprocess;structpcbb*next;};typedefstructpcbbpcb;voiddisplay_menu(){-13-printf("CHOOSETHEALGORITHM:");printf("1PRIORITY");printf("2

4、ROUNDROBIN");printf("3EXIT");}pcb*get_process(){pcb*q;pcb*p;//头指针pcb*t;//尾指针inti=0;printf("inputnameandtime");while(iname);scanf("%d",&q->needtime);q->cputime=0;q->priority=P_TIME-q->needtime;q->process=ready;q->next=NULL;if(i==0){p=q;t=q;

5、}else{t->next=q;t=q;}i++;}returnp;}voidfree_process(pcb*p){pcb*q;while(p!=NULL){q=p;p=p->next;free(q);}}voiddisplay(pcb*p){printf("namecputimeneedtimeprioritystate");while(p){printf("%s",p->name);printf("");printf("%d",p->cputime);-13-printf("");printf("%d",p->needtime);printf("");printf("%d"

6、,p->priority);printf("");switch(p->process){caseready:printf("ready");break;caseexecute:printf("execute");break;caseblock:printf("block");break;casefinish:printf("finish");break;}p=p->next;}}intprocess_finish(pcb*q){intb1=1;while(b1&&q){b1=b1&&q->needtime==0;q=q->next;}returnb1;}voidcpu

7、exe(pcb*q){pcb*t=q;inttp=0;while(q){//让t指向优先级最高的进程if(q->process!=finish){q->process=ready;if(q->needtime==0){q->process=finish;}}if(tppriority&&q->process!=finish){tp=q->priority;t=q;}q=q->next;}if(t->needtime!=0){t->priority-

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

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

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