欢迎来到天天文库
浏览记录
ID:30925202
大小:221.94 KB
页数:11页
时间:2019-01-04
《计算机操作系统进程调度算法的实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、题目2进程调度算法的实现2.1题目的主要研究内容及预期达到的目标(1)设计进程控制块;(2)设计多个进程队列;(3)设计多个进程(M20);(4)动态生成时间片、执行时间和优先级,将这些信息输出至文件屮;(5)设计基于时间片的多优先级调度算法;(6)动态调度,并把所冇调度信息输出至文件中。(7)理解进程调度相关理论;(8)掌握时间片调度原理;(9)掌握高优先级调度原理。2.2题目研究的工作基础或实验条件(1)硕件环境:装有Linux操作系统(虚拟机)的计算机一台。(2)软件环境:vim编辑器、VisualC卄。2.3设计思想(
2、1)优先级优先级体现了进程的重要程度或紧迫程度,在大多数现代操作系统屮,都采用了优先级调度策略。优先级从小到大(如0-127),0优先级最高,127最低。在本实验中,要求优先级为0-8。(2)基于吋间片调度将所有的就绪进程按照先来先服务的原则,排成一个队列,每次调度时,将CPU分配给队首进程,并令其执行一个时间片。当时间片用完时,由一个计时器发出时钟中断请求,调度程序把此进程终止,把该进程放到队尾。(3)高优先级调度优先级高的进程优先得到cpu,等该进程执行完毕后,另外的进程才能执行。(4)基于时间片的高优先级调度时间片和优先
3、级调度的结合,在系统中,每个优先级对应一个就绪队列,在每个就绪队列内,采用时间片调度。当高优先级进程队列调度完成后,才能转入更低优先级的就绪队列调度。(5)算法设计将所有的就绪进程按照先来先服务的原则,排成一•个队列,每次调度吋,将CPU分配给队首进程,并令其执行一个时间片。当时间片用完时,由一个计时器发出时钟屮断请求,调度程序把此进程终止,把该进程放到队尾。优先级高的进程优先得到cpu,等该进程执行完毕后,另外的进程才能执行。时间片和优先级调度的结合,在系统中,每个优先级对应一个就绪队列,在每个就绪队列内,采用吋间片调度。当
4、高优先级进程队列调度完成后,才能转入更低优先级的就绪队列调度。2.4流程图2.5主要程序代码#include#include//#includcusingnamespacestd;//#defineNULL0typcdcfstructPCB//定义进程结构体{charname;//进程名structPCB*next;doublearrive_time;//到达时间doublenccd_timc;//需求运行时间doubleworked_time;//已工作时间intP
5、number;//优先数charcondition;//队列标识}PCB,*linkList;voidcreatPCB(linkList*a,intn){cout«,r请输入进程名/到达时间/要求运行时间/优先数n«endl;for(inti=0;ivn;i++){cin»a[i]->name»a[i]->arrive_time»a[i]->need_time»a[i]->Pnumber;//^A,-^^iW体匹配a[i]->condition='d';〃表示还未加入就绪队列的标志a[i]->worked_time=Oy/wo
6、rked_time的初始值为0intjudge(linkList*a,intn)〃判断所有进程是否都结束{intflag_l=l;for(inti=0;icondition!='f){1=0;break;returnflag_l;}voidcreat_Process(linkList*a,intn)〃计算并输出调度结果{doubletime=0;//已运行的总时间linkListl,p,r;//定义对象l=(linkList)malloc(sizeof(PCB));//强制转换l->next=
7、NULL;//1的卜一•个节点为nullintflag_l=();//标识while(flag_l!=1){for(inti=0;i=a[i]->arrivc_time&&(a[i]->condition=='d'lla[i]->condition=='x'))//判断进程是否到达,是否是刚执行过或未加入的,两者都是执行{〃目的是排出等待序列p=(linkList)malloc(sizeof(PCB));P=a[i];p->next=NULL;if(l->ncxt==NULL
8、){ext=p;p->condition='w,;}else{r=l;while(r->next){if((r->next->Pnumber)>p->Pnumber)〃判断优先级{〃交换p->next=r->next;ext=p;flag二I;a[il->condition=
此文档下载收益归作者所有