2022年高优先权优先的进程调度算法模拟 .pdf
《2022年高优先权优先的进程调度算法模拟 .pdf》由会员分享,可在线阅读,更多相关《2022年高优先权优先的进程调度算法模拟 .pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、河南工业大学实验报告课程计算机操作系统实验名称高( 动态 ) 优先权优先的进程调度算法模拟系别信息科学与工程学院计算机科学系专业班级实验日期 2012-10-26 姓名学号教 师 审 批 签 字1. 实验目的通过动态优先权算法的模拟加深对进程概念和进程调度过程的理解。2. 实验环境装有操作系统Windows XP 和开发工具VC+6.0,内存在 256M以上的微机;或者:装有Linux(Fedora 7)操作系统和gcc 编译器,内存在256M以上的微机。3. 实验内容(1)用 C语言来实现对N 个进程采用动态优先权优先算法的进程调度。(2)每个用来标识进程的进程控制块PCB用结构来描述,包括
2、以下字段:进程标识数ID;进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高;进程已占用的CPU时间 CPUTIME ;进程还需占用的CPU时间 NEEDTIME 。当进程运行完毕时,NEEDTIME 变为 0;进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK 个时间片后,进程将进入阻塞状态;进程被阻塞的时间BLOCKTIME ,表示已阻塞的进程再等待BLOCKTIME 个时间片后,进程将转换成就绪状态;进程状态STATE ;(READY, RUNNING, BLOCK, FINISH) 队列指针NEXT ,用来将PCB排成队列。(3)优先数改变的原则:进
3、程在就绪队列中呆一个时间片,优先数增加1;进程每运行一个时间片,优先数减3。(4)假设在调度前,系统中有5 个进程,它们的初始状态如下:ID 0 1 2 3 4 PRIORITY 9 38 30 29 0 CPUTIME 0 0 0 0 0 NEEDTIME 3 3 6 3 4 STARTBLOCK 2 -1 -1 -1 -1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - BLOCKTIME 3 0 0 0 0 STATE
4、READY READY READY READY READY (5)为了清楚地观察进程的调度过程,程序应将每个时间片内的进程的情况显示出来,参照的具体格式如下:RUNNING PROCESS: $id0 READY QUEUE: $id1-$id2 BLOCK QUEUE: $id3-$id4 FINISH QUEUE: $id0-$id1-$id2-$id3-$id4 = ID PRIORITY CPUTIME NEEDTIME STATE STARTBLOCK BLOCKTIME 0 XX XX XX XX XX XX 1 XX XX XX XX XX XX 2 XX XX XX XX XX
5、 XX 3 XX XX XX XX XX XX 4 XX XX XX XX XX XX = 4. 实验要求(1) 将源程序 (priority.c)和程序运行结果写入实验报告。(2) 将该算法执行过程与高响应比优先调度算法的执行过程进行比较。5. 实验过程及结果(1) . 代码:#include #include #include char *State = READY, RUNNING, BLOCK, FINISH; typedef struct PCB int id; int priority; int cputime; int needtime; int startblock; int
6、blocktime; char *state; struct PCB *next; struct PCB *nt; PCB; PCB *Ready, *Block, *Finish, *Runing, *ALL; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - PCB *findHighest(); void insert(PCB *node, PCB *insert, int i); void ModifyPriority(
7、); void ModifyBlock(); void BlockToReady(); void Print(); void FreeAllPCB(); void init() PCB *pro = (PCB *)malloc(sizeof(PCB); Ready-next = ALL = pro; pro-id = 0; pro-priority = 9; pro-cputime = 0; pro-needtime = 3; pro-startblock = 2; pro-blocktime = 3; pro = pro-next = pro-nt = (PCB *)malloc(sizeo
8、f(PCB); pro-id = 1; pro-priority = 38; pro-cputime = 0; pro-needtime = 3; pro-startblock = -1; pro-blocktime = 0; pro = pro-next = pro-nt = (PCB *)malloc(sizeof(PCB); pro-id = 2; pro-priority = 30; pro-cputime = 0; pro-needtime = 6; pro-startblock = -1; pro-blocktime = 0; pro = pro-next = pro-nt = (
9、PCB *)malloc(sizeof(PCB); pro-id = 3; pro-priority = 29; pro-cputime = 0; pro-needtime = 3; pro-startblock = -1; pro-blocktime = 0; pro = pro-next = pro-nt = (PCB *)malloc(sizeof(PCB); pro-id = 4; pro-priority = 0; pro-cputime = 0; pro-needtime = 4; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
10、 - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - pro-startblock = -1; pro-blocktime = 0; pro-next = pro-nt = NULL; PCB *findHighest() PCB *pro, *highest; PCB *propre = Ready; PCB *highpre = Ready; highest = pro = Ready-next; while(pro != NULL) if(pro-priority highest-priority) highest = pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年高优先权优先的进程调度算法模拟 2022 年高 优先权 优先 进程 调度 算法 模拟
限制150内