实验一进程调度算法模拟

实验一进程调度算法模拟

ID:30890744

大小:305.62 KB

页数:11页

时间:2019-01-04

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

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

1、操作系统实验报告(_)班级:计1001姓名:车琛学号:201007010113实验一进程调度算法模拟1.内容:设计-个简单的进程调度算法,模拟OS小的进程调度过程;2.要求:①进程数不少于5个;②进程调度算法任选;可以用动态优先数加时间片伦转法实现进程调度,每运行一个时间片优先数减3;③用C语言编程;④程序运行吋显示进程调度过程。3.步骤:①设计PCB及其数据结构:进程标识数:ID进程优先数:PRIORITY(优先数越大,优先级越高)进程已占用时间片:CPUTIME,每得到一次调度,值加1;进程还需占用时间片:ALLTIME,每得到—•次调度,该值减1,一旦运行完毕,ALLTIME为0)进程队

2、列指针:NEXT,用来将PCB排成队列进程状态:STATE(一般为就绪,可以不用)②设计进程就绪队列及数据结构:③设计进程调度算法,并画出程序流程图;④设计输入数据和输出格式;结构格式:当前正运行的进程:()当前就绪队列:2,1,3,4⑤编程上机,验证结果。4.提示:假设调度前,系统屮有5个进程,其初始状态如下:ID01234PRIORITY9383()290可否考虑用CPUTIME00000数组或链农ALLTIME32634去实现STATEreadyreadyreadyreadyready①以时间片为单位调度运行;②每次调度ALLTIME不为0,且PRIORITY最大的进程运行一个时间片;③

3、上述进程运行后其优先数减3,再修改其CPUTIME和ALLTIME,重复②,③④直到所有进程的ALLTIME均变为0o5.书写实验报告①实验题目;②程序屮所用数据结构及说明;③清单程序及描述:④执行结果。代码清单#include#include#include#include#includc#defineMINSIZE5typedefenumSTATE{ready,running,stop,}STATE;typedefstructPCB{intpid;intpriority;//进程优先级i

4、nteputime;intalltime;STATEstate;stmetPCB*prev;structPCB*next;}PCB;typedefPCBNode;voidinit_process(Node*&head){hcad=(PCB*)malloc(sizcof(PCB));head->next=head;head->prev=head;}voidpush(Nodc*head,Node*pnodc){if(head==NULLIlpnode==NULL)return;Node*p=head->next;while(p!=head&&pnode->prioritypriority)

5、p=p->next;pnodc->ncxt=p->prcv->ncxt;pnode->prev=p->prev;p->prev->next=pnode;p->prev=pnode;voidshow_proccss(Nodc*head){if(head=NULL)return;Node*p=head->next;coutvv"当前的就绪队列有:”vvcndl;▲flC

6、n*于于平于个于于怦个*7*个怦个于平于于于平于个于于怦个于«endl;11*7*rp*7**7*rprj**7*rj%*7*rprj%.卜rpwhile(p!=head)cout«cndl;coutvv“进程号为“vvp->pi

7、dvv“”;coutvv"优先级为^^«p->priority«^^”;coutvv"剩余ALLTIME为”vvp・>alltimevv””;coutvv”运行时间eputime为H«p->cputimc«HH;cout«cndl;cout«endl;p=p->next;}bo0(X>f、t

8、*rj%*

9、*^Prjwrj%rj%^prj%rjwr

10、*rjw*prj*rjwrprjw*prj*rjwr

11、^r

12、^ejwrjw*pndl;Node*pop_front(Node*head){if(head==NULLIIhead->next==head)returnNULL;Node*p=head->

13、next;p->prev->next=p->next;p->next->prev=p->prev;returnp;}PCB*create_process(intid,intpriority,inteputime,intalltime,STATEstate){PCB*p=(PCB*)malloc(sizcof(PCB));p->pid=id;p->cputime=eputime;p->alltimc

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

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

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