OS综合试验-进程调度

OS综合试验-进程调度

ID:37866197

大小:186.00 KB

页数:13页

时间:2019-06-01

OS综合试验-进程调度_第1页
OS综合试验-进程调度_第2页
OS综合试验-进程调度_第3页
OS综合试验-进程调度_第4页
OS综合试验-进程调度_第5页
资源描述:

《OS综合试验-进程调度》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机操作系统综合实践进程调度1.目的和要求进程调度是处理机管理的核心内容。本实验要求用C语言编写和调试一个简单的进程调度程序。通过本实验可以加深理解有关进程控制块、进程队列的概念,并体会和了解优先数和时间片轮转调度算法的具体实施办法。2.实验内容①设计进程控制块PCB表结构(PCB结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的CPU时间,进程的状态,当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删),分别适用于优先数调度算法和循环轮转调度算法。②建立进程就绪队列。对两种不同算法编制入链子程序。③编制两种进程调度算法:1)优先

2、数调度;2)循环轮转调度3.实验环境①PC兼容机②Windows、DOS系统③C语言4.实验提示①本程序用两种算法对五个进程进行调度,每个进程可有三个状态,并假设初始状态为就绪状态。②为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的优先数或轮转时间数以及进程需运行的时间片数的初始值均由用户给定。③在优先数算法中,优先数可以先取值为98,进程每执行一次,优先数减3,CPU时间片数加1,进程还需要的时间片数减1。在轮转算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了2个单位),这时,CPU时间片数加2,进程还需要的时间片数减2

3、,并排列到就绪队列的尾上。④对于遇到优先数一致的情况,采用FIFO策略解决。5.实验源代码如下:#include#include#include#include#include#include#defineP_NUM5#defineP_TIME50enumstate{ready,execute,block,finish};structpcb{charname[4];intpriority;intcputime;intneedtime;intcount

4、;intround;stateprocess;pcb*next;};pcb*get_process();pcb*get_process(){pcb*q;pcb*t;pcb*p;inti=0;cout<<"inputnameandtime"<>q->name;cin>>q->needtime;q->cputime=0;q->priority=P_TIME-q->needtime;q->process=ready;q->next=NULL;if(i==

5、0){p=q;t=q;}else{t->next=q;t=q;}i++;}//whilereturnp;}voiddisplay(pcb*p){cout<<"name"<<""<<"cputime"<<""<<"needtime"<<""<<"priority"<<""<<"state"<name;cout<<"";cout<cputime;cout<<"";cout<needtime;cout<<"";cout<priority;cout<<"";switch(p->process){cas

6、eready:cout<<"ready"<next;}}intprocess_finish(pcb*q){intbl=1;while(bl&&q){bl=bl&&q->needtime==0;q=q->next;}returnbl;}voidcpuexe(pcb*q){pcb*t=q;inttp=0;wh

7、ile(q){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-=3;t->needtime--;t->process=execute;t->cputime++;}}voidpriority_cal(){pcb*p;system("CLS");p=get_pr

8、ocess

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

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

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