ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:184.28KB ,
资源ID:7432120      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7432120.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统作业调度实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统作业调度实验报告.docx

1、操作系统作业调度实验报告昆明理工大学信息工程与自动化学院学生实验报告( 2011 2012学年 第 二 学期 )课程名称:操作系统 开课实验室:信自楼 2012年4月 10日年级、专业、班计科103学号201010405318姓名李波成绩实验项目名称作业调度指导教师舒国锋教师评语 教师签名: 年 月 日一、实验目的通过编写进程管理的算法,要求学生掌握整个进程管理的各个环节,进程的数据结构描述,进程的各种状态之间的转换,以及进程的调度算法。以加深对进程的概念及进程调度算法的理解,并且提高链表的应用能力,达到提高编程能力的目的。二、所用仪器、材料(设备名称、型号、规格等)。计算机一台,VC+ 6.

2、0。三、源程序:#include#include#includeassert.husing namespace std;class Jobpublic: int m_runtime;/作业运行时间 int m_level;/优先级 int m_arrivenum;/作业到达次序 int m_start;/作业开始时间 int m_end;/作业结束时间 Job* m_next;/指向下一个结点public: Job() m_next=NULL; m_runtime=0; m_level=0; m_arrivenum=0; m_start=0; m_end=0; Job() ;class Job

3、Listpublic: JobList() Head=new Job; assert(Head); length=0; int num,runtime,level,arrivenum; Job* pt,*st; st=Head; coutnum; while(lengthnum) pt=new Job; assert(pt); cout请输入第length+1个作业的运行时间,优先级,到达次序runtimelevelarrivenum; pt-m_runtime=runtime; pt-m_level=level; pt-m_arrivenum=arrivenum; st-m_next=pt;

4、 st=pt; length+; JobList()/由于Job类调用自己的析构函数,故而此处不需要操作 Job* GetHead() return Head; int GetLength() return length; private: Job* Head; int length;void FCFS( JobList joblist) int timetag=0,i=0; Job* pt; while(im_next;/头结点不用 while(pt-m_arrivenum!=i) pt=pt-m_next; pt-m_start=timetag; timetag+=pt-m_runtime

5、; pt-m_end=timetag; i+;/下一作业 int overtime=0; pt=joblist.GetHead()-m_next; while(pt!=NULL) overtime+=(pt-m_end-pt-m_arrivenum); pt=pt-m_next; coutFCFS的平均作业周转时间为:(double)overtime/joblist.GetLength()m_next; /pt-m_start=timetag; timetag+=pt-m_runtime; pt-m_end=timetag; pt-m_runtime=100; while(im_next; t

6、ag=100; while(st)/找到最小 if(st-m_runtimem_runtime; st=st-m_next; st=pt-m_next; while(st-m_runtime!=tag) st=st-m_next; st-m_start=timetag; timetag+=st-m_runtime; st-m_end=timetag; st-m_runtime=100;/重新标记 i+;/下一作业 int overtime=0; while(pt) overtime+=(pt-m_end);/-pt-m_arrivenum); pt=pt-m_next; coutSJF的平均周

7、转时间为:(double)overtime/joblist.GetLength()m_next; while(pt) remaintime+=pt-m_runtime; pt=pt-m_next; while(tag) pt=joblist.GetHead()-m_next; while(pt) if(pt-m_runtime=0) pt=pt-m_next; else timetag+=2; pt-m_runtime-=2; remaintime-=2; if(pt-m_runtimem_runtime=0; timetag-; if(pt-m_runtime=0) pt-m_end=tim

8、etag; pt=pt-m_next; if(remaintime=0) tag=false; pt=joblist.GetHead()-m_next; int overtime=0; while(pt) overtime+=pt-m_end; pt=pt-m_next; coutRR的平均周转时间为:(double)overtime/joblist.GetLength()endl;void HLF( JobList joblist)/优先级算法 int timetag=0,i=0,leveltag; Job* pt; while(im_next; while(pt)/找到最高优先级别的 if

9、(pt-m_levelleveltag) leveltag=pt-m_level; pt=pt-m_next; pt=joblist.GetHead()-m_next; while(pt-m_level!=leveltag) pt=pt-m_next; pt-m_start=timetag; timetag+=pt-m_runtime; pt-m_end=timetag; pt-m_level=0; i+; pt=joblist.GetHead()-m_next; int overtime=0; while(pt) overtime+=pt-m_end; pt=pt-m_next; coutH

10、LF的平均作业周转时间为:(double)overtime/joblist.GetLength()endl;void main() int choice; cout请选择调度算法endl0_退出程序endl1_先来先服务 endl2_优先数算法 endl3_短作业优先算法endl4_时间片轮转算法choice; while(choice!=0) switch(choice) case 1: cout建立作业endl; JobList myjoblist; FCFS(myjoblist); break; case 2: cout建立作业endl; JobList myjoblist; HLF(m

11、yjoblist); break; case 3: cout建立作业endl; JobList myjoblist; SJF(myjoblist); break; case 4: cout建立作业endl; JobList myjoblist; RR(myjoblist); break; cout请选择调度算法endl0_退出程序endl1_先来先服务 endl2_优先数算法 endl3_短作业优先算法endl4_时间片轮转算法choice; /FCFS(joblist); /HLF(joblist); /SJF(joblist); /RR(joblist);四、程序截图:五、实验结果、分析和

12、结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸)操作系统是计算机系统中必不可少的系统软件,它是计算机系统中各种资源的管理者和各种活动的组织者、指挥者。操作系统采用时间片法调度进程,使系统资源得到充分利用,用户可以花更少的时间完成过多的工作。通过本次上机进程管理,对操作系统中的进程管理,整体上有了一定的了解,也对上学期所学的数据结构的知识进行了复习,巩固了基础知识, 通过编写进程管理的算法,掌握了整个进程管理的各个环节,进程的数据结构描述,进程的各种状态之间的转换,以及进程的调度算法。对进程中的PCB的数据结构模拟进程的控制,加深了对课本上的进程概念的理解,虽然有的时候还是错误还是很多,不过经过问老师、同学已经解决,自己编程能力还是很欠缺呢,我会继续好好的编写一些程序,看书,来提高自己的编程水平。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1