2022年2022年进程调度算法模拟程序设计 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年2022年进程调度算法模拟程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年进程调度算法模拟程序设计 .pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华北科技学院计算机学院综合性实验实 验 报 告课程名称操作系统 B 实验学期 2011 至 2012 学年 第二学期学生所在系部计算机学院年级 09 专业班级网络工程 B093 学生姓名李金栋学号 200907024324 任课教师杜杏菁实验成绩计算机学院制名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 华北科技学院计算机系综合性实验报告第 1 页操作系统B课程综合性实验报告开课实验室:基础实验室七2012 年 5 月 10
2、日实验题目进程调度算法模拟程序设计一、实验目的通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。二、设备与环境1. 硬件设备: PC机一台。2. 软件环境:安装Windows操作系统或Linux 操作系统,并安装相关的程序开发环境,如C/C+/Java 等编程语言环境。三、实验内容(1)用 C 语言(或其它语言,如Java)编程实现对N个进程采用某种进程调度算法(如动态优先权调度算法、先来先服务算法、短进程优先算法、时间片轮转调度算法)调度执行的模拟。(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段:进程标识数ID。进程优
3、先数PRIORITY,并规定优先数越大的进程,其优先权越高。进程已占用CPU时间 CPUTIME 。进程还需占用的CPU时间 ALLTIME 。当进程运行完毕时,ALLTIME变为 0。进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK 个时间片后,进程将进入阻塞状态。进程被阻塞的时间BLOCKTIME ,表示已阻塞的进程再等待BLOCKTIME 个时间片后,将转换成就绪状态。进程状态STATE 。队列指针NEXT ,用来将PCB排成队列。(3)优先数改变的原则:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
4、- 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 华北科技学院计算机系综合性实验报告第 2 页进程在就绪队列中呆一个时间片,优先数增加1。进程每运行一个时间片,优先数减3。(4)为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。(5)分析程序运行的结果,谈一下自己的认识。四、实验结果及分析1.主程序流程图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
5、- - - 第 3 页,共 12 页 - - - - - - - - - 华北科技学院计算机系综合性实验报告第 3 页2.关键算法:(1)PCB 结构:设置进程ID 、剩余服务时间、剩余阻塞时间、NEXT 指针四项记录。typedef struct PCBType int id; int allTime; /*剩余服务时间*/ int blockTime; /* 剩余阻塞时间*/ struct PCBType* next; Process; (2)创建新进程:使用函数creatProcess() 创建一个进程的PCB,并挂接在队列一的末尾。void creatNew() char choose
6、8; do printf(n 请输入新进程信息:n); printf(-n); firstRear-next=creatProcess(); firstRear=firstRear-next; printf(-n); printf( 是否继续创建新进程? :); scanf(%s,choose); while(strcmp(choose,y)&strcmp(choose,Y)&strcmp(choose,n)&strcmp(choose,N) printf( 输入有误,请重新输入!n); printf( 是否继续创建新进程? :); scanf(%s,choose); while(!strcm
7、p(choose,y)|!strcmp(choose,Y); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 华北科技学院计算机系综合性实验报告第 4 页 (3)改变进程所在队列:对头指针只需改变其NEXT 指针指向,对尾指针则需使用指针的指针。void changeQueue(Process *oldHead,Process *oldRear,Process *newRear) (*newRear)-next=oldHead
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年进程调度算法模拟程序设计 2022 进程 调度 算法 模拟 程序设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内