操作系统--时间片轮转法进行cpu调度[1]

操作系统--时间片轮转法进行cpu调度[1]

ID:25973780

大小:269.50 KB

页数:15页

时间:2018-11-24

操作系统--时间片轮转法进行cpu调度[1]_第1页
操作系统--时间片轮转法进行cpu调度[1]_第2页
操作系统--时间片轮转法进行cpu调度[1]_第3页
操作系统--时间片轮转法进行cpu调度[1]_第4页
操作系统--时间片轮转法进行cpu调度[1]_第5页
资源描述:

《操作系统--时间片轮转法进行cpu调度[1]》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、目录一、设计目的1二、设计内容2三、设计原理3四、算法实现4五、流程图5六、源程序6七、运行示例及结果分析11八、心得体会13九、参考资料14时间片轮转法进行CPU调度一、设计目的进程调度是处理机管理的核心内容。本设计要求用高级语言编写和调试一个简单的进程调度程序。通过本实验可以加深理解有关进程控制块、进程队列的概念,并体会和了解优先权调度算法和时间片轮转调度算法的具体实施办法。并通过课程设计,让我们更好的掌握操作系统的原理以及实现方法,加深对操作系统基础理论和重要算法的理解,加强我们自身的动手能力。-14-二、设计内容在多道程序或多

2、任务系统中,系统同时处于就绪状态的进程有若干个,为了使系统中的各进程能有条不紊的进行,选择某种调度策略,以选择一进程占用处理机因此使用时间片轮转算法模拟单处理机调度。-14-三、设计原理系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。时间片的大小从几MS到几百MS。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后再把处理机分配给就绪队列中的新的队首进程,同时也让他执行一个时间片。这样就可以保证就绪队列中

3、的所有进程在一给定的时间内均能获得一时间片的处理机执行时间。换言之,系统能在给定时间内相应所有用户的请求。-14-四、算法实现每个程序用一个进程控制块PCB来代表。PCB代表:进程名、链接指针、到达时间、估计运行时间和进程状态。其中进程名既进程标识。链接指针之处下一个到达进程的进程控制块地址,按照进程到达的顺序排队,统设置一个队头和队尾指针分别指向第一个和最后一个进程,新生成的进程放队尾。设计者任意指定一个运行时间,进程创建时用户指定到达时间,调度时,总是选择到达时间最早的进程。进程有就绪和完成状态,进程一创建就处于就绪状态,用R表示

4、,一个程序运行结束时,就将其设置为完成状态,用C表示。用户为每个程序设定一个要求运行时间和到达时间。按照进程到达的先后顺序排成一个循环队列,再设一个队首指针指向第一个到达进程的首址。进程运行一次后,以后的调度则将当前指针依次下移一个位置,指向下一个进程,即调整当前运行指针指向该进程的链接指针所指进程,以指示运行进程。同时判断该进程剩余运行时间是否为零,不为零则等待下一轮的运行;若该进程的剩余运行时间为零,则该进程完成,状态为C,并退出循环队列。若就绪队列不为空,则重复以上步骤直到所有进程都运行完为止。-14-五、流程图YNYNYY退出

5、输入进程数输入进程进程是否输入完输入时间片分配给执行队列队首时间片时间片-1时间片+1时间片是否用完是否所有进程都完成将为完成的插入队尾开始NY结束将新到进程插入队尾是否完成服务时间-1N是否有新进程到达N-14-六、源程序#include#include#includecharX;intstart;typedefstruct{charname[20];intarrtime;intruntime;}DataType;typedefstructnode{DataTypepcb

6、;structnode*next;}ListNode;typedefListNode*LinkList;LinkListhead;voidcreate_insert_LinkList(intf1){ListNode*p,*p1,*p2;p=(ListNode*)malloc(sizeof(ListNode));head=p;p->next=NULL;while(f1>0){p=(ListNode*)malloc(sizeof(ListNode));cout<<"请输入以下数据:";cout<<"进程名到达时间运行时间:";cin>

7、>p->pcb.name>>p->pcb.arrtime>>p->pcb.runtime;cout<next=NULL;p1=head;p2=p1->next;while(p2!=NULL&&p2->pcb.arrtimepcb.arrtime){p1=p2;p2=p2->next;}p1->next=p;p->next=p2;f1=f1-1;-14-}}voidpcb_LinkList(intf2){LinkListH;ListNode*rear,*p,*q;intT,t,time,m,n;p=(ListN

8、ode*)malloc(sizeof(ListNode));p=NULL;H=p;cout<<"请输入时间片大小:";cin>>T;t=T;H=head->next;head->next=head->next->next

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

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

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