操作系统处理机调度实验报告(2)
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:
或QQ:
处理(尽可能给您提供完整文档),感谢您的支持与谅解。

p = p->next; } } void display_round(pcb *p){ printf(\count state\\n\ while(p){ printf(\ printf(\ \ printf(\ printf(\ \ printf(\ printf(\ \ printf(\ printf(\ \ switch(p->process){ case ready:printf(\ case execute:printf(\ case block:printf(\ case finish:printf(\ } p = p->next; } } void round_cal(){ pcb *p; pcb *r; p = get_process_round(); int cpu = 0; r=p; while(!process_finish(p)){ //就绪队列中还有进程 if(r->needtime==1) cpu+=1; else cpu+=2; //时间片长度是2 cpu_round(r); r = get_next(r,p); //获得下一个需要执行的进程 printf(\ display_round(p); //每调度一次就显示次 set_state(p); sleep(2); } free_process(p); //释放所有进程 } main(){ display_menu(); int k; scanf(\ switch(k){ case 1:priority_cal();break; case 2:round_cal();break; case 3: break; default:printf(\ } } 优先级调度: 时间片轮转调度: 先来先服务调度算法及结果: #include #include int SUM=0,K=0; typedef struct link { int time; int averageTime; int priority; struct link *next; }linknode; linknode *creat() { int n,m; linknode *head,*r,*s; head=r=(linknode *)malloc(sizeof(linknode)); printf(\输入各进程的处理时间和优先级并以两个0为结束标志:\\n\ while(scanf(\ { s=(linknode *)malloc(sizeof(linknode)); K++; s->time=n; s->priority=m; s->averageTime=0; r->next=s; r=s; } r->next=NULL; return head; } linknode *seekAverageTime(linknode *head) { int sum=0; linknode *p; p=head->next; while(p) { sum=sum+p->time; p->averageTime=sum; p=p->next; SUM+=sum; } } void print(linknode *head) { linknode *p; p=head->next; printf(\各进程处理时间为:\ while(p) { printf(\ p=p->next; } printf(\ } main() { } linknode *head; head=creat(); seekAverageTime(head); print(head); printf(\平均处理时间为:%d\\n\ 分析与体会: 通过做本实验,让我对进程或作业先来先服务、高优先权、按时间片轮转调度算法以及进程调度的概念和算法,有了更深入的认识!初步理解了操作系统对于作业处理的基本思想!对于时间片轮转法的处理要比优先级调度算法的理解要深。在实验的过程中遇到了很多困难,感谢同学们的帮助。
教师签名: 年 月 日
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库操作系统处理机调度实验报告(2)在线全文阅读。
操作系统处理机调度实验报告(2).doc
将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
下载失败或者文档不完整,请联系客服人员解决!