动态优先权进程调度算法的模拟说课讲解.pdf
《动态优先权进程调度算法的模拟说课讲解.pdf》由会员分享,可在线阅读,更多相关《动态优先权进程调度算法的模拟说课讲解.pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 动态优先权进程调度算法的模拟 精品文档 收集于网络,如有侵权请联系管理员删除 计算机学院设计性实验报告 专业:朱文焌 年级/班级:20 xx 级网络工程 20152016 学年第一学期 课程名称 操作系统 指导教师 张倩倩 本组成员 学号姓名 朱文焌 实验地点 计算机与信息工程学院 216 实验时间 2015.11.20 项目名称 使用动态优先权的进程调度算法的模拟 实验类型 设计性 一、实验目的 通过动态优先权调度算法和时间片轮转调度算法的模拟加深进程概念和进程调度过程的理解。二、实验仪器或设备 一台笔记本电脑或者是一台台式机 三、总体设计(设计原理、设计方案及流程等)本实验的目的就是用在
2、 Linux 下用 C 语言编程模拟 N个进程采用高优先权优先(要求采用动态优先权)进程调度算法。已知时间片轮转算法,可以根据时间片轮转的思路加以修改就行了。时间轮转调度算法与动态优先权的区别就是时间片轮转是在 FIFO进程调度的基础上,队列中的进程按照进入的顺序,每个进程每次都执行一个时间片;如果运行完就把该进程释放掉,如果在一个时间片内未结束就插到队列尾部。而动态优先权进程调度算法就是按照优先权的大小运行进程,如果一个时间片内未运行完,则将优先权数减 3后再插入到队列中(不是队尾而是队列中的适当位置,该位置前面的节点的优先级数大于该节点的优先级数,后面的节点的 count值小于该节点的 c
3、ount 值)。四、实验要求:精品文档 收集于网络,如有侵权请联系管理员删除 (1)在 Linux 下用 C 语言编程模拟 N个进程采用高优先权优先(要求采用动态优先权)进程调度算法。为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程情况显示出来;(2)进程控制块是进程存在的唯一标志,因此,在模拟算法中每一个进程用一个进程控制块 PCB来代表,PCB用一结构体表示。包括以下字段:进程标识数 id,或者进程的名称 name;进程优先数 priority,并规定优先数越大的进程,其优先权越高;进程需要运行的 CPU 时间 ntime;进程的运行时间 rtime;进程状态 state;队列
4、指针 next,用来将 PCB排成队列。(3)进程在运行过程中其状态将在就绪、执行、阻塞(可选)、完成几种状态之间转换,同时进程可能处于不同的队列中,如就绪队列、阻塞队列(可选)。在两种调度算法中,考虑分别可以选择什么样的队列及如何实现进程的入队、出队操作;(4)为了便于处理,优先权调度每次也仅让进程执行一个时间片,若在一个时间片内未运行结束,调整进程优先级将其插入就绪队列,进行新一轮调度;(5)优先数改变原则:进程每运行若一个时间单位,优先数减 3;进程在就绪队列中呆一个时间片,优先数增加 1。(仅供参考,合理即可)(6)优先权调度中,对于遇到优先权一致的情况,可采用FCFS 策略解决;(7
5、)由于是模拟进程调度,所以,对被选中的进程并不实际启动运行,而是修改进程控制块的相关信息来模拟进程的一次运行;(8)为了清楚地观察诸进程的调度过程,程序应将每个时间片内的进程的情况显示出来,参照格式如下:id cputime needtime priority(count)state 精品文档 收集于网络,如有侵权请联系管理员删除 0 0 2 48 ready(9)sort 函数执行流程 五、实验步骤(包括主要步骤、代码分析等)#include stdio.h#include#define getpch(type)(type*)malloc(sizeof(type)struct pcb /定义
6、进程控制块 char name10;/进程的名字 char state;/进程的状态 int count;/进程优先级 int ntime;/进程运行需要的 CPU 时间 int rtime;/进程已运行的时间 struct pcb*link;/连接 pcb 的指针*ready=NULL,*tail=NULL,*p;/就绪队列指针,队尾指针 typedef struct pcb PCB;int slice=1;精品文档 收集于网络,如有侵权请联系管理员删除 PCB*readyMaxProcess;int readyQueNum=0;/就绪队列的进程数量 sort()/将进程插入到就绪指针 PC
7、B*q;if(ready=NULL)/队列为空,将 p 插入到队列中 ready=p;tail=p;else /若就绪队列不为空,将 p 插入到队列 if(p-countready-count)/p 指针所指节点的 count 值头的大于队列节点的 count 值,将 p 指针所指节点插入到对头 p-link=ready;ready=p;else bool m=false;q=ready;/q2=q1-link;while(m=false)if(tail-count=p-count)/若 p 的 count 值小于队尾指针所指节点的的 count 值的话,将 p 插到队尾 tail-link=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 优先权 进程 调度 算法 模拟 讲解
限制150内