单处理器系统的进程调度_第1页
单处理器系统的进程调度_第2页
单处理器系统的进程调度_第3页
单处理器系统的进程调度_第4页
单处理器系统的进程调度_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验三进程调度模拟程序.目的和要求实验目的用高级语言完成一个进程调度程序,以加深对进程的概念及进程调度算法的理解。实验要求例题:设计一个有N个进程并发执行的进程调度模拟程序。进程调度算法:采用最高优先级优先的调度算法(即把处理机分配给优先级最高的进程) 和先来先服务(若优先级相同)算法。.每个进程有一个进程控制块(PCB)表示。进程控制块包含如下信息:进程名、优 先级、到达时间、需要运行时间、已用CPU时间、进程状态等等。.进程的优先级及需要的运行时间可以事先人为地指定,进程的运行时间以时间片为 单位进行计算。.每个进程的状态可以是就绪r(ready)、运行R(Running)、或完成F (F

2、inished)三种状态之一。.就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。.如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消 该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是 进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队 列等待调度。.每进行一次调度程序都打印一次运行进程、就绪队列中各个进程的PCB,以便进行 检查。.重复以上过程,直到所要进程都完成为止。思考:作业调度与进程调度的不同?实验题A:编写并调试一个模拟的进程调度程序,采用最高优先数优先调度算法 对N(N不小于5

3、)个进程进行调度。最高优先级优先调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。.静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。.动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定规 则修改优先数。例如:在进程获得一次CPU后就将其优先数减少1,并且进程等待的时间 超过某一时限(2个时间片时间)时增加其优先数等。. (*)进程的优先数及需要的运行时间可以事先人为地指定,(也可以由随机数产 生)。(4). (*)在进行模拟调度过程可以创建(增加)进程,其到达时间为进程输入的时 间。实验题B:编写并调试一个模拟的进程调度程序,采用基

4、于时间片轮转法调度算 法对N (N不小于5)个进程进行调度。轮转法有简单轮转法、多级反馈队列调度算 法。.简单轮转法的基本思想是:所有就绪进程按FCFS排成一个队列,总是把处理机分 配给队首的进程,各进程占用CPU的时间片长度相同。如果运行进程用完它的时间片后还 未完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进 程运行完毕。(此调度算法是否有优先级?).多级反馈队列调度算法的基本思想是:将就绪队列分为N级(N = 35),每个就绪队列优先数不同并且分配给不同的时间片: 队列级别越高,优先数越低,时间片越长;级别越小,优先数越高,时间片越短。系统从第一级调度,当第一

5、级为空时,系统转向第二级队列,.当处于运行态的进程用 完一个时间片,若未完成则放弃CPU,进入下一级队列。当进程第一次就绪时,进入第一级队列。. (*)考虑进程的阻塞状态B (Blocked)增加阻塞队列。进程的是否阻塞和阻塞的 时间由产生的随机数确定(阻塞的频率和时间长度要较为合理)。注意进程只有处于运 行状态才可能转换成阻塞状态,进程只有处于就绪状态才可以转换成运行状态。实验内容根据指定的实验课题:A (1), A (2), B (1)和B (2)完成设计、编码和调试工作,完成实验报告。注:带*号的条目表示选做内容。实验环境可以选用Turbo C作为开发环境。也可以选用Windows下的V

6、B, CB等可视化环境, 利用各种控件较为方便。自主选择实验环境。实验原理及核心算法参考程序段动态优先数(优先数只减不加):运行旺建已占用CPU时间已达班斯 萧苗后后时1闻#include#include#include运行旺建已占用CPU时间已达班斯 萧苗后后时1闻#include#include#include#define N 3typedef struct jcbchar name10;/进程名int reqtime;/要求服务时间int prio;/优先级int runtime;运行时间char status;PCB;int intarr=0,intfin=0;/到达进程个数,完成进

7、程个数 PCB pcbarr24,pcbfin24;void Mune()printf(nn);初始化PCB.输入速程值皂避程完感做瑞区道程未到达已到达时间片田,运齐进槿巴占用杷运行拄理插入就绪队列番进程摭优先就从鬲型任排列printf(ttlln);printf(tt|进程调度模拟程序|n);printf(tt|n);printf(tt|0:退出|n);printf(tt|1:运行(最高优先级优先算法)|n);printf(tt|2:插入|n);printf(tt|3删除|n);printf(ttlln);printf(请选择:);)void Input()/手动输入 (int i;int

8、n=0;printf(请输入进程个数:);scanf(%d,&n);for(i=0;in;i+,intarr+)(printf(n第个进程:n请输入进程名:,i+1);scanf(%s,);printf(请输入要求服务时间:);scanf(%d”,&pcbarrintarr.reqtime);pcbarrintarr.prio二N;/优先级为 3if(i=0)pcbarrintarr.status=r; elsepcbarrintarr.status=w;) )void Output()/输出排序后队列(int i=0;printf(nn运行队列的是n);pr

9、intf(tnametreqtimetruntimetpriotstatusn);if(intarr!=0)printf(N%dt%st%dt%dt%dt%cn,i,,pcbarri.reqtime,pcbarri.run time,pcbarri.prio,pcbarri.status);)printf(n就绪队列的是n);printf(tnametreqtimetruntimetpriotstatusn);for(i= 1 ;iintarr;i+)printf(N%dt%st%dt%dt%dt%cn,i,,pcbarri.reqtime,pc

10、barri.run time,pcbarri.prio,pcbarri.status);)printf(n已完成队列的是n);printf(tnametreqtimetruntimetpriotstatusn);for(i=0;iintfin;i+) printf(N%dt%st%dt%dt%dt%cn,i,,pcbfini.reqtime,pcbfini.run time,pcbfini.prio,pcbfini.status);)/ X I t I 1 Tf T -I-( 力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力

11、、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、力、(、(、k /按优先级排序void Sort() int i,j;PCB temp;for(i=0;iintarr-1 ;i+) for(j=i+1 ;jintarr;j+)if(pcbarri.priopcbarrj.prio) temp二pcbarri;pcbarri=pcbarrj; pcbarrj=temp;)pcbarr0.status=r;for(i=1;iintarr;i+) pcbarri.status=w;)void running()int slice,i,k;slice=1;for(i= 1 ;

12、i(N+1)-pcbarr0.prio);i+) slice二slice*2;for(i=1;i=slice;i+)(pcbarr0.runtime+;if (pcbarr0.runtime=pcbarr0.reqtime) break;)if(pcbarr0.runtime=pcbarr0.reqtime)(printf(n 进程%s已完成.n,);pcbfinintfin=pcbarr0;for(k=0;k1) pcbarr0.prio-;)void Delete()(char b20;int i,j,key=0;printf(请输入要删除的进程名:);scanf(%s,b);for(i=0;iintarr;i+)(if(strcmp(b,)=0)(key=1;for(j=i;j=intarr;j+)(pcbarrj=pcbarrj+1;) intarr-;)for(i=0;iintfin;i+)(if(strcmp(b,)=0)(key=1;for(j=i;j=intfin;j+) (pcbfinj=pcbfinj+1;) intfin-;)if(key=0)(printf(查找不到该进程!)main()(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论