版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、人和以吟实验报告学院(系)名称: 计算机与通信工程学院姓名n asta学号n asta专业计算机科学与技术班级2010级2班实验项目实验一:处理机调度算法的实现课程名称操作系统课程代码0668036实验时间2012年12月3日 第3、4节实验地点软件实验室7-216批改意见成绩教师签字:实验内容:设定系统中有五个进程,每一个进程用一个进程控制块表示。输入每个进程的“优先数”和“要求运行时间”。为了调度方便,将五个进程按给定的优先数从大到小连成就绪队列。用一单元指岀队列首进程,用指针指岀队 列的连接情况。处理机调度总是选队首进程运行。采用动态优先数算法,进程每运行一次优先数就减“1”,同时将运行
2、时间减“ 1”。若某进程运行时间为零,则将其状态置为“结束”,且退岀队列。运行所设计程序,显示或打印逐次被选中进程的进程名,以及进程控制块的动态变化过程。实验要求:详细描述实验设计思想、程序结构及各模块设计思路;详细描述程序所用数据结构及算法; 明确给岀测试用例和实验结果;为增加程序可读性,在程序中进行适当注释说明;认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;实验报告撰写要求结构清晰、描述准确逻辑性强;实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】设计思想:模拟单CPU系统时间片切换、进程切换。使用优先队列,
3、让优先级高的进程位于队列顶端。然后将在每次时钟周期时,从优先队列队首取岀优先级最高的进程,并使其运行一个时钟周期,其优先级减1,已运行时间加1。然后判断程序是否完成,如果未完成,则重新加入优先队列, 参与时钟周期。数据结构:使用优先队列,以获得优先级最高程序。源代码:#inelude <cstdio>#inelude <queue>using n amespace std;/ 进程控制块PCBstruct PCBunsigned int pid;/ 进程 idunsigned int priority;/ 进程优先级unsigned int claimTime;/ 需要
4、运行时间un sig ned int run Time;/已经运行时间/构造函数PCBunsigned int id, unsigned int p, unsigned int ct) pid=id;priority=p;claimTime=ct;run Time=0;/运行当前进程一个时钟周期,并使进程优先级减1,已运行时间加1void run() run Time+;if(priority>0)priority-;/判断进程是否完成bool isF ini shed() if(claimTime=ru nTime)return true; elsereturn false;/重载 &
5、lt;运算符,以使用STL中的priority_queuebool operator <(c on stPCB& p)const if(priority!=return priority< / 比较优先级else/优先级相同的话快完成的任务先执行return claimTime-runTimev;int main (i nt argc, char * argv) int clock=0;priority_queue <PCB> q;/ 优先队列for(i nt i=0; i<5; i+) int p, t;printf("请输入pid=%u的进程
6、的优先级(非负数):n" , i);sca nf(%u", & p);printf("请输入pid=%u的进程的要求运行时间(非负数):n", i);sca nf('%u", & t);printf( "pid = %u,优先级=%u,要求运行时间=%unn", i, p, t);(PCE(i, p, t);while(!() / 模拟单 CPUprintf("当前时钟 %2dt", clock+);PCEt =();();printf( "pid = %u进程运行,优先
7、级=%u,已运行时间 =%un",;();printf("执行过后:tpid = %u,优先级=%u,已运行时间 =%un",; if(!()(t);elseprintf( "pid=%d 进程结束 n",;printf("程序结束 n");return 0;测试用例:进程pid优先级需要运行时间043114254336422执行结果:C:Window5system32cmd.exeu -nuu0 0 -T-T 运运 已已nH nHM一丁亍§l0 0 一 丁-丁 运运 已已-、二、 nn nn -丁一丁nHM日 -
8、I丁一丁 运运 已已nn 0一丁亍0 0 一 丁一丁 运运 已已0 0 一丁亍 运运 已已0 0一丁亍0 0一丁亍日0亍亍44J 日日 一丁一丁 运运 已已-B -B0日 -丁-丁is及及及及及及级级先先级级先先及及级级先先及及S及及8XT及及8及及8级级先先及及程:PidPsid22程;Pidp=id00程;Pid=2pid=2程;Pid=3pid=3程:Pid0Pid=0=Id idpp=d1 d p .1 p=di idp p-idpidp3 3s =Id idp p=Id Idpp44 = =d-1 d p .1 p程2进 3进 4进 5进 6进 ?进 8井一曲翼赴蹇蝕爲餘餐就曙社 时
9、顶过时顶过时顶过时顶过时顶过时顶过时顶过时顶过时顶过期时顶过M时顶过时顶过时顶过窃 前列&刖列w刖列&刖列刖列&刖列&刖列&刖列行d=前列行d=前列&刖列&刖列行d= 当验当監当当当躲当監当当当躲叭当躲Ipi当躲当当IP1程束 结呈1程i#f.11进 X12进, intiXU时顶过时顶过时顶过 前列隹刖列fisi?:行-=d.1 d p 1 p3 =3=0 0日nMH -T-T一一=3 4 ! I mid 迅pp1 =1幺先先及及M =0 0a一、二二 0 0 亍一丁-0 - CD、 % -=1 2?:L5进1 =Id idp p3 =31=0 0a0 0 一丁亍一CD=_4 5pld = 1pid = 1nH nD-T- T运运已已队列顶站进程: 聲髄结束 当前时钿饰 队列顶舞进程: 鼬亍过审 pid=lil 结束B m.-T- T运运已已-rrTl rr?|Pid二1 优先级= pid = 1优主级=H日-T- T运运已已-m"rr?实验问题:在进程优先级相同时,调度结果不确定。原因:在优先级相同时,未进行相关处理。解决:添加优先级相同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版房地产抵押贷款合同3篇
- 二零二五版智慧城市物联网技术应用合同实施指南3篇
- 二零二五年度文化产业短期工劳务合作合同2篇
- 二零二五年金融投资风险兜底保障合同示范3篇
- 二零二五年度知识产权股权转让定金合同3篇
- 二零二五版智能交通系统-城区隔离护栏采购合同3篇
- 二零二五版个人户外探险活动贷款合同担保与安全协议3篇
- 二零二五版环保产业合理化建议书合同2篇
- 二零二五年度新型农业耕地承包与流转管理合同3篇
- 二零二五版GRc构件生产、安装与智能化管理合同3篇
- 二零二五年度无人驾驶车辆测试合同免责协议书
- 2023中华护理学会团体标准-注射相关感染预防与控制
- PPVT幼儿语言能力测试题附答案
- JB∕T 14089-2020 袋式除尘器 滤袋运行维护技术规范
- 陕西省宝鸡市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 中华人民共和国职业分类大典电子版
- 毕业设计小型液压机主机结构设计与计算
- 19XR开机运行维护说明书
- 全国非煤矿山分布
- 临床研究技术路线图模板
- GB∕T 2099.1-2021 家用和类似用途插头插座 第1部分:通用要求
评论
0/150
提交评论