版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、OS实验二(软件)2010.11.4时间片轮转调度算法的实现OS实验二(软件 0967020050)OS实验二(软件)2010.11.4OS实验二(软件 0967020050)OS实验二(软件)2010.11.4数据结构: typedef struct pcb /* char pn ameN;int run time;int arrivetime; char state;struct pcb *n ext;/*PCB;实验要求:进程控制块定义*/*进程名*/*服务时间*/*到达时间*/*进程状态*/联接指针*/OS实验二(软件 0967020050)OS实验二(软件)2010.11.4OS实验
2、二(软件 0967020050)OS实验二(软件)2010.11.4给出程序中使用的数据结构及符号说明给出程序流程图和源程序,源程序中要附有详细的注释输入:时间片,五个进程的进程名、到达时间、服务时间输出:打印程序运行时的初值和运行结果,要求如下:(1) 选中运行进程的名、运行后各进程控制块状态;(2) 计算平均周转时间和带权平均周转时间。总结收获体会及对该题解的改进意见和见解输入时间片 1作业号ABCDE到达时间12345开始时间123 45服务时间43524输出9 10 11 12 13 14 15 16 17 18D E A _B C E A C E CC R R C R R C R C
3、 C运行时刻:1 2 3 4 5 6 7 8运行进程名:A B C D E A B C 运行后状态:R R R R R R R R数据结构的建立可参考实验一与数据结构书(二)写主要算法时间片轮转调度算法的实现:void RR(queue *head,int q)/*进程队列不为空才可调度*/*第一种情况:当前运行的时间小于最后一个进程到达的时间做以下操作*/ 1.运行时间小于0,删除队首/ 2.运行时间大于0,向后找位置插入(分三种情况)/*时刻变化*/*第二种情况:当前运行的时间大于最后一个进程到达的时间做以下操作*/ 1.运行时间小于0,删除队首/ 2.运行时间大于0,直接插在队尾/*时刻
4、变化,队列为空时不做时刻变化*/详情见源代码注释(三)调试运行(多种情况都要运行)OS实验二(软件 0967020050)OS实验二(软件)2010.11.4OS实验二(软件 0967020050)OS实验二(软件)2010.11.4小 *F: 0S实矍报告PebugRR_proces3_ exe*舸八共,几个进程=以及进程名:估计运行时间、以及进程名:估计运行时间以及进程名:估计运行时间“以及进程名:以及进程名=估计运行时间、state= H state = R stte= R state- H s t at e = RRRRRRBRBRCCCRRRRCC为为为为为为为为为为为为为为为为为为
5、态态态态态态态态态态态态态态态态态态 炭犬出天犬出天天出天疣於天卅成犬出 F丿 力/ *丿 齐“%|丿 : 力丿 啪丿 : 丿 %丿 力/ */ 令/ 力/ 为-%后后后后后后后后后后后后后后后后后后 迂辽辽辽U辽匹辽211辽辽E仃 运运运运运运运运运运运运运-迺运运运运a me = R ame= B ame= C a me = D ame= E分别输入第1个进程的到达时间.4 A分别输入第2个进程的到达吋间、 分别输入第个进程的到达时间分别输入第4个进程的到达时间*爲q输入第5个进程的到达时邱4 E输入的时间片轮转进程队列为= runtime=4 run 七 zLhie =3 runtime
6、=5 runtime=2 runtime=4ariivet ine -0 arrivet inc =1 arrivetine=2 alr-ivc t ime =3 arrivet ime =4输入时间片轮转调度的时间片为:abacbdaecbdaecececTz- Tz Tz- 818sfifififi81 e- 迪*曲迪曲曲曲曲曲*曲曲曲曲注曲曲曲讽 V r- Lp tr -A- y LB- LF -A-、ft LB- “、-L- %. 1 11-J-tr _ta、|tV- -1A- 川Jc i仃on 运运运运运运运运运运运运运运运运运运CO t 012345678 123456789111
7、111111 y 勺划切勺切勺期勺勺划切划划甘期划浙期e&r&fBrr、&r&r、B&t&fB7t-、&rBrr&f、&r、an 红illiltutuwGwil算esCA F: 0S实聖报吉exe请 输養分别输入第1个逬程的到达时间、估计运行吋间、以及进程名: 騒的吋间片轮转进程队列为=pnameA aprivetime=0 runtime =4 state= ft请输入时间片轮转调度的时间片为:R R Rc 态太茉态 nlhllil丿 I S*, 后后后后 宜仃 运运运运A AH A A为为为为 S8 进进进进 的& ta TaOS实验二(软件 0967020050)OS实验二(软件)201
8、0.11.4OS实验二(软件 0967020050)OS实验二(软件)2010.11.4-tB-r输入共有几个进程:以及进程名估计运行时间、以及进程名估计运行时间、以及进程名估计运行时间、以及进程名以及进程名估计运行时间、RRR RRstate state state state state青分别输入第1个进程的到达时间、估计运行时间、 4 A请分别输入第2个进程的到达时问-3 B:主分别输入第3个进程的到达时间、 请穿翁输入第4个进程的到达时间、I 2 D请分别输入第E个进程的到达时问- 您為I的时间庁轮琴进程队列护nane = A ai*riuetime =0 runt ime =4nan
9、e = B arrivetime=l runtine-3 name = C arr iv et ime-2 runt ine =5 nane = D awiuetime -3 runt ime =2 nane = E arrivetime=4 runtine=4 洼输入时间片轮转调度的时间片为:入共有几个进程,估计运行时间、以及进程名估计运行时间、臥及进程名估计运行时间.以及进程名state state st a七已分别输入第1个进程的到达时间、4 A分别输入第2个进程的到达时间、J 5 B分别输入第3个进程的到达时间、 您嘉I的时间片轮转进程队列为二 narne- A arriuet ire
10、 =0 runt ineM nane = B arrluetine-2 runtime-5 nAme C arriuet ime =4 1untime =4输入时间片轮转调度的时间片为u丄 G:DebugRE process.eze*faJJ- LJJ- -ftp LJJ-jBBF程程 -7 -7- fl*进进a进后后后后后后 运运运运运运ad-04時呼* 時MzlII* U 们/ !% r_|-运一1-运一1-运运s&o Jp p&o販SIBS5SBLMV Tz Tz Tz Tz rx Tz为为为为为为为为为为为为后后后后后后后后后后后后 辽辽辽辽辽辽辽辽辽辽辽 运运运运运运运运运运运运一T
11、ATALfrTATAV-TALfr_TATA_TA-_TATAY_TALfrA为为为为为为为为为为为为 态态态态态态态态态态态态大OS实验二(软件 0967020050)OS实验二(软件)2010.11.4OS实验二(软件 0967020050)OS实验二(软件)2010.11.4(四)体会及不足1. 加深了自己对链表中字符的处理,以及时间片轮转第一种情况 (当前运行时间小于最后一个进程的到达时间)的理解,花了不少时间分清类并修改。逻辑思考方面,这是我需要 改进的。2. 特别是调试运行阶段,一开始,有些情况能运行正确,有些不行,这就更需要我重新对时间 片轮转的时间分类处理好,查看有没少情况.3
12、. 不足是:对于第一种和第二种情况的第1种情况都类似(运行时间小于0,删除队首),觉得最好可写一个函数,就不用重写代码。最难做到的是使代码表达简明,清晰。这也是我 需要改进的。源代码:/*操作系统实验二:模拟时间片轮转调度算法(头文件RR.h)*/*定义进程控制块*/OS实验二(软件 0967020050)OS实验二(软件)2010.11.4typedef struct pcbchar pn ame5;/ 进程名int arrivetime; / 到达时间 int run time;/ 运行时间char state;运行后的状态struct pcb *n ext;PCB;*封装头结点,指针分别
13、指向队头和队尾*/OS实验二(软件 0967020050)OS实验二(软件)2010.11.4OS实验二(软件 0967020050)OS实验二(软件)2010.11.4typedef structPCB *fron t,*rear;queue;*进程队列置*queue *in it()queue *head; head=(queue*)malloc(sizeof(queue); head-fro nt=NULL;head-rear=NULL; retur n head;OS实验二(软件 0967020050)OS实验二(软件)2010.11.4OS实验二(软件 0967020050)OS实验
14、二(软件)2010.11.4/*检验进程队列是否为空*/OS实验二(软件 0967020050)OS实验二(软件)2010.11.4int empty(queue *head)return(head-fro nt ? 0:1);OS实验二(软件 0967020050)OS实验二(软件)2010.11.4OS实验二(软件 0967020050)OS实验二(软件)2010.11.4*进程队列入队,往后插入 */OS实验二(软件 0967020050)OS实验二(软件)2010.11.4queue *appe nd(queue *head,char c5,i nt a,i nt r,char s)
15、PCB *p;p=(PCB*)malloc(sizeof(PCB);strcpy(p-p name,c);p-arrivetime=a;p-r un time=r;p-state=s;p- next=NULL;if(empty(head)head-fr on t=head-rear=p;elsehead-rear- n ext=p; head-rear=p;retur n head;/*仓H建进程队歹y */queue *creat(queue *head)char c5;char s=R;int a,r,i, n;printf(请输入共有几个进程:n); scan f(%d,&n);for(
16、i=1;ifro nt;if(!p)printf(时间片轮转调度队列为空!n);while(p)prin tf(p name=%sarrivetime=%dstate= %c,p-p name,p-arrivetime,p-r un time,p-state);prin tf(n ”);p=p-n ext;run time=%d/*时void RR(queue *head,i nt q) */int t=head-fro nt-arrivetime,lt=head-rear-arrivetime;if(head-fro nt-ru ntimefr on t-r un time;elset=t+
17、q;/*进程队列不为空才可调度*while(!empty(head)PCB *p1,*p2;/*第一种情况:当前运行的时间小于最后一个进程到达的时间做以下操作*/while(tfro nt;printf(”运行的时刻为dt运行的进程为st,t,p1-pname); p1-r un time=p1-r un time-q;/ 1.运行时间小于0,删除队首/if(p1-r un timestate=C:printf(运行后的状态为 %cn,p1-state);head-fr on t=p1- n ext;free(p1);/ 2.运行时间大于0,向后找位置插入/elseprintf(运行后的状态为
18、 cn,p1-state);p2=p1- n ext;while(p2-n ext&p2-arrivetime!=t)p2=p2- next;,队首不此时无新进入队列的进程时,有两种情况:1.不用找位置往后插入 变,不做操作2找位置往后插入/if(p2-arrivetime!=t)PCB *p3=p1,*p4;while(p3-n ext&p3-arrivetime next;if(p3-arrivetimet)if(p4!=p1)/p1 插在 p4 后,头为 p1-next head-fr on t=p1- n ext; p1- n ext=p4-n ext;p4-n ext=p1;else
19、/不做操作/p4=p3=p2=NULL;elsep4=p3=p2=NULL;p1- n ext/此时有新进入队列的进程时:p1插在新进入队列的进程p2后,队首为elsehead-fr on t=p1- n ext;p1- n ext=p2-n ext;p2-n ext=p1;/*时刻变化*/if(head-fro nt-ru ntimefro nt-r un time; elset=t+q;j第.种丿情况纟结束 */*第二种情况:当前运行的时间大于最后一个进程到达的时间做以下操作*/ while(t=lt)p1=head-fro nt;printf(”运行的时刻为%dt运行的进程为st,t,p1-pname);p1-run time=p1-r un time-q;/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 打击传销责任制度
- 执法部门工作责任制度
- 承包锅炉责任制度
- 投资部岗位责任制度范本
- 护理责任制度
- 拣货验货工作责任制度
- 接料口岗位责任制度
- 搏击馆岗位责任制度
- 收费站两个责任制度
- 政府食堂法律责任制度
- 2026年Q1新媒体运营全案:公众号+小红书+抖音矩阵打法
- 非遗民间故事外译的叙事重构与文化传播研究答辩汇报
- 7 月亮是从哪里来的 教学课件
- 白里香薰品牌手册
- 2026年怀化职业技术学院单招综合素质考试题库附答案解析
- 2026年南京机电职业技术学院单招职业技能考试题库及答案解析(名师系列)
- 小学四年级科学核心素养国测模拟测试题(含参考答案)
- 糖尿病视网膜病变筛查与干预方案
- 2025年计算机等级-三级网络技术核心考点速记速练300题(附答案)
- 2025年超星尔雅学习通《海洋生物学概论》考试备考题库及答案解析
- 考事业单位编制课件
评论
0/150
提交评论