版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1处理机调度1.1实验内容及要求实验内容:按优先数调度算法实现处理器调度。实验要求:能接受键盘输入的进程数、进程标识、进程优先数及要求运行时间,能显示每次进程调度的情况:运行进程、就绪进程和就绪进程的排列情况。1.2实验目的本实验模拟在单处理器环境下的处理器调度,加深了解处理器调度工作。1.3实验环境本实验的设计基于Windows7操作系统DevC+5.11环境,用C语言实现编程。1.4实验思路每个进程用一个PCB来代表。PCB的结构为:进程名作为进程标识。优先数赋予进程的优先数,调度时总是选取优先数大的进程先执行。要求运行时间假设进程需要运行的单位时间数。状态假设两种状态:就绪和结束,用R表
2、示就绪,用E表示结束。初始状态都为就绪状态。指针按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。开始运行之前,为每个进程确定它的“优先数”和“要求运行时间”。通过键盘输入这些参数。处理器总是选择队首进程运行。采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。进程运行一次后,若要求运行时间不等于0,则将它加入就绪队列,否则,将状态改为“结束”,退出就绪队列。若就绪队列为空,结束,否则转到(3)重复。1.5数据结构与全局变量typedefstructpcbintpname;/进程名intpriority;/优先级intrunTime;/所需时间intst
3、ate;/状态struetpcb*next;/下一个进程控制块PCB;/进程控制块intnum;/存储进程数PCBreadyHead;/头结点,不存储进程PCB*readyEnd;/指向尾结点的指针1.6函数说明主函数main()输入进程数并调createProcess()初始化进程;若有进程,则依次调用sortProcess()、runProcess()、printProcessLink()和printProcesslnfo()。进程创建函数createProcess()输入进程标识、优先级和运行时间进行初始化。进程排序函数sortProcess()用冒泡排序算法根据进程的优先级进行降序排序
4、,每次排序之后优先级最高的进程放在就绪队列首。进程运行函数runProcess()将数组首的进程优先级和所需时间减1;若剩余所需时间为0则PCB状态标记为E(结束)。输出函数printProcessLink()和printProcessInfo()printProcessLink()输出进程链,printProcessInfo()输出进程控制块详细信息。1.7运行结果表1.1进程数5序号优先级运行时间134252341415523对表1.1数据的运行结果:il2222NO.1InputInputHO.3InputInputprocessinfornationbeforerunning:NAME
5、processinfornationbeforerunning:NAMEprocessinfornationbeforerunning:NAME444readyreadyreadyreadyreadyreadyreadyreadyreadyreadyreadyreadyreadyready4processlink:2-3-1-5-44processlink:2-1-5-4processname:1ppiority:3FunTime:4processname:2priority:5FunTime:2processname:3priority:4punTime:1processname:4prio
6、riti/:lrunTime:5processname:5priority:2runTime:3Houmanyprocessdoyouuanttorun:5InputPRIORITVRUNTIMESTATUSNEXTPRIORITYRUNTIMESTATUSNEXTPRIORITVRUNTIMESTATUSNEXT4processlink:13-2-1-5-4(Processrun:33isterminatedprocesspun:22isterminatedxhjcxhxjocxjocxhjcxhjc王111扌守尢7tr?i周底畀_辛主iC*聊!?卜干里i周hjcxhjoocxjocxjoc
7、xhjcxhxk2processinfornationbeforerunning:NAMEPRIORITYRUNTIMESTATUSNEXT241ready1134ready5523ready4415readyprocesslink:2-1-5-4processrun:2isterminatedprocessinformationbeforerunning:NAMEPRIORITYRUNTIMESTATUSNEXT134ready5523ready4415readyprocesslink:l-5-4processpun:1NAMEPRIORITYRUNTIMESTATUS523ready123
8、ready415readyprocesslink:5-1-4processpun:infornationbeforerunning:processNEXT14processNAMEinfornationbeforerunning:PRIORITYRUNTIMESTATUSNEXTreadyreadyreadyprocessl-4-5link:process1run:processinformationbeforerunning:NAMEPRIORITYRUNTIMESTATUSNEXT1processlink:4-5-1readyreadyreadyprocesspun:44Processex
9、itedaftei*25.2?secondswithyetuynvalue0niUlOAWBIBB-n|xprocessinformationbeforerunning:NAMEPRIORITYRUNTIMESTATUSNEXTprocessl-4-5link:process1run:processinformationreadyreadyready45beforerunning:processinformationbeforerunning:NAMEPRIORITVRUNTIME8THTU8NEXT404ready5501ready1101ready5-1processrun:4proces
10、sinformationbeforerunningNAMEPRIORITYRUNTIMESTATUSNEXT501ready1101ready44-13ready1-4processrun:55isterminatedNAMEPRIORITYRUNTIMESTATUSNEXT14processlink:l-4processrun:11isterminated0-1readyready4processinformationbeforerunning:NAMEPRIORITYRUNTIMESTATUSNEXT4processlink:4processrun:ready1.8实验心得指针操作是真的烦
11、。1.9实验代码#include#include#include#include#defineN32voidcreateProcess();voidsortProcess();voidprintProcessLink();voidprintProcessInfo();voidrunProcess();typedefstructpcbcharpnameN;进程名intpriority;/进程优先级intrunTime;/进程还需运行的时间片charstate;/R代表ready,E代表endstructpcb*next;PCB;intnum;/进程数PCBreadyHead;/头结点,不存储进程
12、PCB*readyEnd;/尾结点指针intmain()j/*X1111A-g-*-I-J#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*1-,|printf(*实习1-1按优先级调度算法实现处理器调度*n);.jX1111A-g-*-I-J#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J
13、*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*1-pname);printf(%sisrunning.n,readyHead.next-pname);printf(%sendsafter%dslice(s).,readyHead.next-pname,readyHead.next-runTime);elsewhile(readyHead.next!=NULL)sortProce
14、ss();printProcessInfo();printProcessLink();runProcess();return0;voidcreateProcess()PCB*p,*prior;printf(Howmanyprocessdoyouwanttorun:);scanf(%d,&num);while(numnext=p;for(inti=0;ipname);printf(priority:);scanf(%d,&(p-priority);printf(runTime:);scanf(%d,&(p-runTime);p-state=R;p-next=(PCB*)malloc(sizeof
15、(PCB);prior=p;p=p-next;free(p);p=NULL;prior-next=NULL;readyEnd=prior;printf(n);voidsortProcess()charnameN;inti,j,priorityNum,timeNum;PCB*p,*rear;for(p=readyHead.next;p!=NULL;p=p-next)for(rear=p-next;rear!=NULL;rear=rear-next)if(p-prioritypriority)strcpy(name,p-pname);priorityNum=p-priority;timeNum=p
16、-runTime;strcpy(p-pname,rear-pname);p-priority=rear-priority;p-runTime=rear-runTime;strcpy(rear-pname,name);rear-priority=priorityNum;rear-runTime=timeNum;voidprintProcessLink()PCB*p=readyHead.next;printf(processlink:n);while(p!=NULL)printf(%s,p-pname);p=p-next;if(p!=NULL)printf(-);printf(n);voidprintProcessInfo()PCB*p=readyHead.next;printf(processinformationbeforerunning:n);printf(=n);printf(NAMEPRIORITYRUNTIMESTATUSNEXTn);printf(=n);while(p!=NULL)printf(%-16s%-8d%-8d%-8s%sn,p-pname,p-priority,p-runTime,(p-state=R)?ready:end,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 3864-2008工业氮》
- 深度解析(2026)《GBT 3048.9-2007电线电缆电性能试验方法 第9部分:绝缘线芯火花试验》
- 2026年人教版初中八年级语文上册古诗文情感主旨卷含答案
- 【 物理 】宇宙探秘课件-2025-2026学年物理苏科版八年级下册
- 《JBT 10640-2006多功能装盒机》专题研究报告
- 《JBT 10442.2-2017电气用菱格涂胶绝缘纸 第2部分:试验方法》专题研究报告
- 中国中车2026校园招聘面试重点技术岗位能力预测
- 2026年银行校园招聘无领导小组面试案例库
- 2026年浦发银行南宁西乡塘区校招面试服务意识考察练习题
- 2026年医保行风建设考核题
- 化工环保与安全课件
- 弱电框架协议合同
- 2026年安阳职业技术学院单招职业技能测试必刷测试卷及答案解析(夺冠系列)
- 灯饰代加工合同范本
- 110kV电力变压器结构与电磁计算
- 血管性痴呆教学课件
- 我国档案服务行业监理问题及解决方案
- IPC7525B2011(CN)Stencildesignguidelines模板设计指南(中文版)
- 2025江苏连云港海州区国有企业第二次招聘工作人员24人笔试历年典型考点题库附带答案详解试卷3套
- 2025年小学生人工智能知识竞赛试卷及参考答案
- 2025海南三亚市纪委监委(市委巡察办)招聘下属事业单位工作人员3人(第1号)笔试考试参考试题及答案解析
评论
0/150
提交评论