操作系统进程同步实验.doc

操作系统进程同步实验.doc

ID:55706330

大小:129.50 KB

页数:15页

时间:2020-05-25

操作系统进程同步实验.doc_第1页
操作系统进程同步实验.doc_第2页
操作系统进程同步实验.doc_第3页
操作系统进程同步实验.doc_第4页
操作系统进程同步实验.doc_第5页
资源描述:

《操作系统进程同步实验.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、石家庄铁道大学实验报告课程名称操作系统(B)专业数字媒体技术学生姓名王赛赛班级信1406学号任课教师沙金完成日期2015年112月1日信息科学与技术学院1实验二进程同步一、实验目的处理机调度是处理机管理的核心内容。本实验要求用高级语言编写模拟进程调度程序,以便加深理解有关进程控制快、进程队列等概念,并体会和了解进程调度算法的具体实施办法。二、实验内容(1)编写一个进程调度模拟程序,实现以下调度算法:先来先服务调度,时间片轮转调度算法,短作业优先调度算法,最高响应比优先调度算法,多级反馈队列调度算法。(2)计算平均周转时间和平均带权

2、的周转时间。(3)先来先服务调度,短作业优先调度算法测试用例。(4)时间片为4的轮转调度算法的测试用例。(5)最高响应比优先调度算法的测试用例。(6)多级反馈队列调度算法的测试用例。三、实验要求1.设计进程控制块PCB的结构,通常应包括如下信息:进程名、进程优先数(或轮转时间片数)、进程已占用的CPU时间、进程到完成还需要的时间、进程的状态、当前队列指针等。2.能演示进程调度过程。3.界面友好。4.实验报告书写请参考附录四、设计原理1.每个进程可有三种状态;执行状态(RUN)、就绪状态(READY,包括等待状态)和完成状态(FIN

3、ISH),并假定初始状态为就绪状态。2.主程序定义PCB结构和其他有关变量,每个调度算法用一个子程序实现。3.进程控制块结构参考:NAME——进程标示符PRIO/ROUND——进程优先数/进程每次轮转的时间片数(设为常数2)CPUTIME——进程累计占用CPU的时间片数NEEDTIME——进程到完成还需要的时间片数STATE——进程状态3NEXT——链指针注:(1)为了便于处理,程序中进程的的运行时间以时间片为单位进行计算;(2)各进程的优先数或轮转时间片数,以及进程运行时间片数的初值,均由用户在程序运行时给定。4.进程的就绪态和

4、等待态均为链表结构。5.在优先数算法中,进程优先数的初值设为:50-NEEDTIME每执行一次,优先数减1,CPU时间片数加1,进程还需要的时间片数减1。6.在轮转法中,采用固定时间片单位(两个时间片为一个单位),进程每轮转一次,CPU时间片数加2,进程还需要的时间片数减2,并退出CPU,排到就绪队列尾,等待下一次调度。六:程序清单#include#include#include#includeusingnamespacestd;//hyugtyftydr

5、tdtrdrrtrdrtstructNode{stringname;//进程(作业)名称intarriveTime;//到达时间intServerTime;//服务时间intleftTime;//thelefttimeNode*link;//指向下一个节点的指针};classCProcess{public:CProcess();//构造函数~CProcess();//析构函数constCProcess&operator=(constCProcess&p);//重载赋值操作符voidinsertNode(string&na,int&

6、at,int&st);//插入新元素(at由小到大)到链表合适的位置voidsort();//按照服务时间由大到小排序boolisEmpty();//判断是否为空voiddestroy();//销毁intlength();//求出链表长度voidprint();//打印出元素voidFCFS();//先到先服务voidSJF();//短进程(作业)优先voidRR(int&q);//时间片轮转voidpriority();//优先权调度protected:Node*first;Node*last;};constCProcess&C

7、Process::operator=(constCProcess&p){Node*newNode;Node*Current;if(this!=&p)//避免自己给自己赋值{if(first!=NULL)//如果链表不为空destroy();if(p.first==NULL){//如果要拷贝的对象为空this->first=NULL;this->last=NULL;}else{Current=p.first;first=newNode;first->name=Current->name;//first->arriveTime=Cur

8、rent->arriveTime;first->ServerTime=Current->ServerTime;first->link=NULL;last=first;Current=Current->link;while(Current!=NULL

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

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

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