




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、标准文档文案大全华北科技学院计算机系综合性实验报告操作系统实验题目进程调度算法模拟一、实验目的通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度 过程、调度算法的理解。二、设备与环境(1)硬件设备:PC机一台(2)软件环境:安装 Windows操作系统或者Linux操作系统,并安装相关的程序开发环境,如 C C+Java 等编程语言环境。三、实验内容(1)用C、C+、Java语言编程实现对 5个进程采用动态优先权调度算法进行调度的过程。数据 如下:5个进程的到达时刻和服务时间见下表,忽略 I/O以及其它开销时间,使用动态优先权算法进行 调度,优先权初始值为100,
2、请输出各个进程的完成时刻、周转时间、带权周转时间。进程到达时刻服务时间A03B26C44D65E82(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段(用不到的字段可以不定义)。进程标识数ID。进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。进程已占用CPU时间CPUTIME进程还需占用的 CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。进程的阻塞时间 STARTBLOCK表示当进程再运行 STARTBLOCK时间片后,进程将进入阻塞 状态。进程被阻塞的时间 BLOCKTIME表示已阻塞的进程再等待BLOCKTIMEb时间片后,将转换成就绪
3、状态。进程犬态STATE队列指针NEXT用来将PCBB成队列。(3)优先数改变的原则:进程在就绪队列中呆一个时间片,优先数增加1。进程每运行一个时间片,优先数减3。(4)为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包 括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。(5)分析程序运行的结果,谈一下自己的认识。四、实验结果及分析(1)实验关键代码模才PCBa据结构定义:/ 枚举进程的状态:新建、就绪、执行、阻塞、终止enum STATE_PROCESS New,Ready,Run,Block,Finish;typedef enum STATE_PRO
4、CESS STATE;/ 建立PCB结构标进程标识数进程优先数进程到达时间进程已占用CPU时间 进程还需占用CPU时间 进程已阻塞时间进程状态前指针后指针struct PCB_NODEint id;/int priority;/int arriveTime; /int cpuTime;/int allTime;/int blockTime;/STATE state;/struct PCB_NODE *prev;/PCBstruct PCB_NODE *next;/PCB;typedef struct PCB_NODE PCB;D模拟进程队列操作函数定义:/进程入列void queuePush(
5、PCB *process, PCB *queueHead)/进程出列void queuePop(PCB *process, PCB *queueHead)/查看队列中进程信息void queueWalk(PCB *queueHead)模拟就绪队列操作函数定义:/ /进程插入到就绪队列void readyQueuePush(PCB *process)/优先数最大的进程出列PCB * readyQueuePop()/每个时间片更新就绪队列中的进程信息void readyQueueUpdate(int timeSlice,PCB *pcb)/返回就绪队列最大优先数的值int readyMaxPrio
6、rity()/查看就绪队列中的进程信息void readyQueueWalk()模拟阻塞队列操作函数定义:/进程插入到阻塞队列void blockQueuePush(PCB *process)/优先数最大的进程出列PCB * blockQueuePop()/每个时间片更新阻塞队列中进程的信息void blockQueueUpdate()/查看阻塞队列中的进程信息void blockQueueWalk()模拟动态优先权进程调度函数定义:/初始化进程PCB数据,返回PCB头指针PCB * initData()/ 模拟CPU执行1个时间片的操作void cpuWord(PCB *cpuProcess
7、)主函数关键代码:i nt timeSlice = 0;/模才C CPU时间片int cpuBusy = 0;/模才C cpu犬态PCB *cpuProcess = NULL;/当前CPU执行的进程PCB *pHead,*pro;/进程PCB头指针pHead = initData();/初始化进程PCB,返回进程头指针pro = pHead + 1;/pro指向PCB中第一个进程readyQueueUpdate(timeSlice,pro); /根据进程到达时间将新建进程加入绪队列/模拟动态优先权进程调度while(true)if(readyQueueNum = 0 && bl
8、ockQueueNum = 0 && cpuBusy = 0)printf("就绪队列、阻塞队列和CPU当前无进程运行,退出n");break;/end ifif(cpuBusy = 0) /CPU空闲,选择一个进程进入CPUif(readyQueueNum > 0)/选择就绪队列优先级最高的进程作为CPU1行进程else /cpuProcess = readyQueuePop();就绪队列中没有进程,改为选择阻塞队列优先级最高的进程cpuProcess = blockQueuePop();设置当前运行进程占用 CPU时间设置当前运行进程的状态设置CP
9、U当前状态为忙当前时间片加1模才C CPU丸彳f 1个时间片的操作若当前执行进程还需 CPU时间片为0设置当前进程状态为终止释放该进程的 PCB内存空间状态设置为空闲cpuProcess->cpuTime = 0;/cpuProcess->state = Run;/cpuBusy = 1;/end iftimeSlice +;/printf("n第 d 个时间片后:n",timeSlice);cpuWord(cpuProcess);/if(cpuProcess->allTime = 0)/cpuProcess->state = Finish;/fre
10、e(cpuProcess);/cpuBusy = 0;/CPU/end if/更新就绪队列和阻塞队列中的进程信息blockQueueUpdate();readyQueueUpdate(timeSlice,pro);/查看就绪队列和阻塞队列的进程信息readyQueueWalk();blockQueueWalk();if(cpuBusy = 1 && readyQueueNum > 0 &&需抢占CPU,当前执行的进程调入阻塞队列从就绪队列中选择优先级最高的进程运行cpuProcess->priority < readyMaxPriority()
11、blockQueuePush(cpuProcess); / cpuProcess = readyQueuePop(); /end ifprintf("n模拟进程动态优先权调度算法结束.n");return 0;(2)动态优先权调度算法流程图第14页开始.电而叵进HYR弘布叶曲,*川珞新建只手岫的暹程加入就缗队利匚rue当前时间片加1候用着出孤行一个时'HJ片的怪作匕前3 3程mWroce"胜方弊止蠢韩放其的FCB*在空闸,城廿CPV为空闱版态于口i用窿队列中的进程信息更粘就用队列中的进理值L打即lt±寒、就络乩列法程倍思(2)实验结果第1个时间片
12、后:绪队列湿衽粒如康队列省赛戳Q口i.空僻比率队列进程数火fj<V"upqPrrwF1后写 =就叫队列中优是就晨需朝谁相第塞队列中忙在就高聃进隹cpiFrocfisaFffiU®占用cp时间F四状套讹员为忙E】当川石仃出行优先俄乔帮孤现堤后讥无施进拧的也友:将当小石忏侪行用人用五宗制.从就弟EL科申选择岳高慎强金的避程作为'与不应行遇杵底压回缥Vhilc循环打印:摸机进程看态优先衽嵋及算法皓束知束打中;就罂队列且 咀客队列无进程且 CPU当前无进程运 行,站束/bile循环D第2个时间片后:D第3个时间片后:第4个时间片后:二C1 1 京I 2I 6D第5个时
13、间片后:第1不及 CPU正在,in优先;就绪从列阻塞欧冽无进程)第2个小 CPU正在口优先, e ?4 就绪队列】D优先:1101阻塞队列无进程第3刨 *u正在才ID悖L 98就绪队列工殂塞队列10 , 394官4个时 P0正在书D优先名 95 梯队列口D优先名 1B1且塞队加D优先名 94第5个ECPU正在ID优先 296就绪队列D优先095阻塞队列】口优先195"魏程信息为:吸到达时间已用时间还需时间阻塞时间折念 B12(5亍中的进程信息.中的避程信息.相膈程信息为:级 到达时间 已用时间 还需时间 阻塞时间 状态O21B执行中的进程信息:圾到达时间已用时间还需时间阻塞时间轶态2
14、068就曙中的进程信息:胖露程信息为及到达时间已用时间还需时间阻塞时间状态2150就结中的逸程信息:。的进程信息:我到达时间已用时间还需时间阻塞时间状态 0211阻塞滥输熊息为:5到达时间 已用时间 还需时间 阻塞时间 状态2240胡窗口的进程信息:5到达时间已用时间还需时间阻塞时间状态4040就缜口的进程信息:g到达时间已用时间还需时间阻塞时间状态m212阻塞羽糕融信息为:级票达时间a用时间手需时间性塞时间 耨中的余程信息30级 到达时间已用时间还需时间阻塞时间装商0213M诞中的逸程信息:级 到达时间已用时间还需时间阻塞时间状态2241阴塞第6个时间片后:第7个时间片后:第8个时间片后:第
15、9个时间片后:第10个时间片后:C1 H ?1 3 2 1 二1 4鼠6盘雌输O为,ID优先级到达时间已用时间还需时间防塞时间295422M就绪队列中的进程信息口1»优先级到达时间已用时间还需时间阻塞时间3101&95EIH9gR213阻塞队列中的进程信息口1D优先级到达时间已用时间还需时间阻塞时间1952242星僻鼐程信息为,ID优先期到达日寸间已用时间还需时间阻塞日寸间 三 9自6140就绪队列中的进程信息.ID优先级到达时间已用时间还需时间阻塞时间 口9自2243a970211阻塞队列中的进程信息.ID优先级到达时间已用时间还需时间阻塞时间P954221需程信息为,IJ
16、优先想到达时间 已用时间还需时间 阻塞时间 395623日就绪队列中的进程信息ID优先物到达时间 已用时间 还需时间阻塞时间-110180W312243qi6211m阻塞队列中的进程信息;ID优先皴到达时间已用时间还需时间隹塞时间 2791a225u鑫胭玲屣程信息为,ID优先截至U达时间己用时间还需时间阻塞时间 4H11M就赭队列中的进程信息:w优先萩到达时间已用时间还需时间阻塞时间2964223H9822430990213阻塞队列中的进程信息1皿优用及到达时间已用时间还需时间阻塞时间3956231即逮盘霹褊信息,为.D优先级 到达时间 已用时间 还需时间 阻塞时间 9f>A3R3尤绪队
17、列中的进程信息;D优先级到达时间已用时间还需时间阻塞时间 96&233¥722Z992243日塞队列中的进程信息:口优先缀到达时间已用时间还需时间阻塞时间 ?8B1L1态堵后状阻态塞然志用塞?第11个时间片后:烹生霖嗨矗信息为口1D优先级到达时间T心£口己用时间还需时间阻塞时间就绪队列申的进程信息,1J31B优先皴到达时间 3 97b2984阻塞队列中的进程信息,己用时间22还需时间32阻塞时间m3in优先级到达时间 496S己用时间1还需时间 1阻塞时间2态行态蕾态塞?第12个时间片后:和叁螺霹塞赳信息为11D优先级到达时间2954就绪队列中的进程信息,已用时间3
18、还需时间 1阻塞时间3岁态 就绪】D优先级到达时间 4998398&阻塞队列中的迸程信息已用时间12还需时间13阻塞时间33状态 就绪1B优先级到达时间 1962已用时间1还需时间3阻塞时间 1状态 阻塞?第13个时间片后:器噎£以朋露i息为:p优先皴到达时间TB就绪队列中的进留言露已用时间 2还需时间阻塞时间 3状态 就绪ID优先级到达时间 399G阻塞队列中的进程信息:已用时间 2还需时间 3阻塞时间 3辘 ID优先级 到达时间 29542己用时间31还需时间13阻塞时间12区态 阻塞 阻萋?第14个时间片后:和逮需届展信息为:e优先皴到达时间3 9G6就绪队列中的进程信
19、息,已用时间 1还需时间2阻塞时间3解E优先皴到达时间 1972阻塞队列中的进程信息,已用时间1还需时间 3阻塞时间 3蕊ID优先级到达时间2954已用时间3还需时间 1阻塞时间 2状态 阻塞?第15个时间片后:I需建功噩矗信息为F二D优先级到达时间 圣绪葭列中的起程信息,己用时间2还需时间 2阻塞时间13蠹11优先级到达时间1?64殂塞队列中的进程信息、:已用时间 3还需时间 1阻塞时间3就绪ID优先级到达时间 i 96t已用时间1还需时间 2阻塞时间 1港 阻塞?第16个时间片后:和逮聘昌晶信息为:ID优先级到达时间 2934就绪队列中的进程信息r已用时间 4还需时间 a要塞时间j无进程阻
20、塞队列中的进程信息ID优先级到达时间 19423966已用时间21还需时间22阻塞时间12P燧II?第17个时间片后:数建取融晶信息为1IB优先级到达时间 3936就绪队列中的进程信息/己用时间 1还需时间1我塞时间凝程)阻塞队列中的进程信息:优先皴到达时间1942已用时间 2还需时间 2阻塞时间状态2阻塞?第18个时间片后:窑陛霖需扇呈信息为E10优先级到达时间3906就绪队列口的进程信息:已用时间 2还需时间舁塞时间1»优先级到达时间1952阻塞队列中的进程信息一已用时间 2还需时间2里塞时间藕无进程)?第19个时间片后:和建噂氟信息知»优先级到达时间已用时间还需时间阻
21、塞时间秫春1922113执行就绪队列中的进程信息.(无进程3阻塞我列中的进程信岛无进程?第20个时间片后:和上舞嗨翳信息讯ID优先皴 到达时间 已用时间 还需时间 阻塞时间1 892203就绪队列中的进程信息:无进程)阻塞队列中的进程信息:无进程)穗队列、阻塞队列和CPU当前无进程运行,退出模拟进程动态优先权调度算法结束.(3)实验结果分析调度算法开始之前进程 PCB言息为:0 0 0 0 0 11111 DT0f LKLJft优先级到达时间已用时间还需时间阻塞时间结束时间0 0- -0 0- _0调度算法结束之后进程 PCB言息为:进程PCB信息为:ID优先级到达时间已用时间 0 9G 03还需时间阻塞时间结束时间031003200316021S0313态止止止止止&今级八终终调度算法分析:进程ID到达时间服务时间结束时间周转时间带权周转时间00310103.312620183.024416123.036518122.44821352.5(4)实验心得通过进程动态优先权调度算法的模拟,对进程的运行状态,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025双方协商解除租赁合同答辩状
- 护理绩效考核与管理
- 石场与农户合同范本
- 京东企业并购合同范本
- 网络改造合同范本
- 房子出兑合同范本
- 2025转让合同附义务范本
- 过期食品购销合同范本
- 护具用品订购合同范本
- 退休返聘合同范本2017
- 建筑公司分包合同管理办法
- 2025至2030苏打水行业发展趋势分析与未来投资战略咨询研究报告
- 2025年秋季学期德育工作计划:向下扎根向上开花
- 2025-2030中国家政服务行业信用体系建设与服务质量监管报告
- 2025年安徽省普通高中学业水平选择性考试(物理)科目高考真题+(答案解析版)
- 2025年成都东部集团有限公司及下属企业招聘考试笔试试卷【附答案】
- 各分项工程质量保证措施
- 国税编制管理办法
- 特种畜禽管理办法
- 消防员心理健康教育课件教学
- 医院学术委员会组织职责
评论
0/150
提交评论