进程调度模拟实验指导

进程调度模拟实验指导

ID:45615469

大小:180.74 KB

页数:9页

时间:2019-11-15

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

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

1、《操作系统》实验二开课实验室:A207+A208实验项目(一)进程调度模拟实验实验类型设计实验学时4一、实验目的通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。二、设备与环境1.硬件设备:PC机一台2.软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发环境,如CC++Uava等编程语言环境。三、实验要求用C语言(或其它语言,如Java)编写程序实现对4到5个进程的调度模拟,要求至少采用两种不同的调度算法分别进行模拟调度,并对算法性能做简要比较。四、实验设计参考用例1•问题描述:假设有四个进程Pl

2、、P2、P3、P4,已知它们进入系统的时间、估计运行时间。分别采用先來先服务(FCFS),最短进程优先(SPF)调度算法,计算出进程的平均周转时间和带权的平均周转时间。进程p的周转时间:p->ttime=p->ftime-p->atime进程的平均周转时间:total二全部进程的周转时间/进程个数进程p的带权周转时间:p->wtime=p->ttime/p->ntime进程的平均带权周转时间:W二全部进程的带权周转时间/进程个数(1)进程调度算法:分别采用先来服务(FCFS)调度算法和SPF算法。(2)每个进程由一个进程控制块PCB表示,PCB可以包含如下信息:进程名、提交时间、

3、所需的运行时间、所需啲资源、进程状态、链指针等等。进程的状态可以第1页共10页是就绪等待W(Wait).运行R(Run)和完成F(Finish)三利】状态乙一。每个进程的最初状态总是就绪等待W。(3)对每种调度算法都要求打卬每个进程开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组进程的平均周转时间及带权平均周转时间,并比较各种算法的优缺点。2.算法描述:(1)先来先服务调度算法(FCFS):每次调度都是从后备进程队列中,选择一个或多个最先进入该队列的进程,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,这每次调度是从就绪队列中,

4、选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件阳•赛后,才放弃处理机。(2)最短进程优先(SPF):每次从后备队列中选择一个或若干个估计运行时间蝕短的进程,将它们调入内存运行。注:对每种调度算法都要求打卬每个进程开始运行吋刻、完成时刻、周转吋间、带权周转时间,以及这组进程的平均周转时间及带权平均周转时间,并比较各种算法的优缺点。1.流程步骤参考:(见下页)结束1.源程序参考:#include"stdio.h"#includc#include#definegetpch(type)(type*)mal

5、loc(sizeof(type))structPCB{charname[10];charstate;intatime;//进程到达时间intbtime;M程开始运行时间intftimc;//进程完成时间intntime;//iS程估讣运行时间intrtime;//ifi程执行时间intttime;//周转时间floatw(ime;〃带权周转吋间(周转时间/估计运行吋间)structPCB*link;}*ready=NULL,*p;//ready指向队头,p指向正被调度的进程typedefstructPCBPCB;intT=();//初始化时间量floattotal;//记录所有进

6、程的总时间doubleweight;//记录所有进程的带权周转时间voidsort()/*建立对进程进行到达时间排列函数*/{PCB*first,*second;intinscrt=0;if((ready==NULL)ll((p->atime)<(ready->atime)))/*进程到达时间最早(值最小)的,插入队首*/{p->link=ready;ready=;T=p->atime;〃更改时间最}else/*进程比鮫到达时间,插入适当的位置中*/{first=ready;second=first->link;while(second!=NULL){if((p->atime)<

7、(second->atime))/*若插入进程比当前队尾进程到达时间短,*/{/*插入到当前队尾进程前面旬p->link=sccond;first->link=p;second=NULL;insert=_一;)else/*插入进程到达时间最长贝J插入到队尾*/first=;second=second->link;}}if(insert==O)first->link=p;}}voidshortjob()//获取队列中的最短进程{PCB*pr,*min,*qr;min=ready;/

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

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

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