天津理工大学操作系统实验报告实验一_第1页
天津理工大学操作系统实验报告实验一_第2页
天津理工大学操作系统实验报告实验一_第3页
天津理工大学操作系统实验报告实验一_第4页
天津理工大学操作系统实验报告实验一_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、人建跖大殍实验报告学院(系)名称: 计算机与通信工程学院姓名nasta学号nasta专业计算机科学与技术班级2010级2班实验项目实验一:处理机调度算法的实现课程名称操作系统课程代码0668036实验时间2012年12月3日第3、4节实验地点软件实验室7-216批改意见成绩教师签字:实验内容:1 .设定系统中有五个进程,每一个进程用一个进程控制块表示。2 .输入每个进程的“优先数”和“要求运行时间”。3 .为了调度方便,将五个进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程,用 指针指出队列的连接情况。4 .处理机调度总是选队首进程运行。采用动态优先数算法,进程每运次优先数就减“

2、1”,同时将运行时间减“1”。5 .若某进程运行时间为零,则将其状态置为“结束”,且退出队列。6 .运行所设计程序,显示或打印逐次被选中进程的进程名,以及进程控制块的动态变化过程。实验要求:1.详细描述实验设计思想、程序结构及各模块设计思路;2 .详细描述程序所用数据结构及算法;3 .明确给出测试用例和实验结果;4 .为增加程序可读性,在程序中进行适当注释说明;5 .认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;6 .实验报告撰写要求结构清晰、描述准确逻辑性强;7 .实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。【实验过程记录(源程序、测试用例、测试结果及心得体会等)

3、】设计思想:1 .模拟单CPU系统时间片切换、进程切换。2 .使用优先队列,让优先级高的进程位于队列顶端。在每次时钟周期时,从优先队列队首取出优先级最高的进程,并使其运行一个时钟周期,然后 将其优先级减1,已运行时间加1。然后判断程序是否完成,如果未完成,则重新加入优先队列, 参与时钟周期。数据结构:使用优先队列,以获得优先级最高程序。源代码:#include <cstdio> #include <queue>using namespacestd;/进程控制块PCBstruct PCBunsignedintpid;/进程 idunsignedintpriority;/进

4、程优先级unsigned int claimTime;/ 需要运行时间unsignedintrunTime;/已经运行时间构造函数PCBQnsigned int id , unsigned int p, unsigned int ct) pid= id ;priority= p;claimTime= ct;runTime=0;/运行当前进程一个时钟周期,并使进程优先级减1,已运行时间加1void run() runTime+;if (priority>0)priority-;/判断进程是否完成bool isFinished() if (claimTime=runTime)return t

5、rue ;else return false/重载<1算符,以使用STL中的priority_queuebool operator <( const PCB& p) const |if (priority!=return priority</ 比较优先级else/优先级相同的话快完成的任务先执行return claimTime-runTime<int main( int argc , char * argv) int clock=0;priority_queue <PCB> q; / 优先队列for (int i=0; i<5; i+) int

6、 p, t;printf("请输入pid=%u的进程的优先级(非负数):n" , i);scanf( "%u", &p);printf("请输入pid=%u的进程的要求运行时间(非负数):n" , i);scanf( "%u", &t);printf( "pid = %u, 优先级=%u,要求运行时间=%unn" , i, p, t);(PCBi, p, t);while (!() / 模拟单 CPUprintf("当前时钟 2dt", clock+);PCB

7、t =();();printf( "pid = %u进程运行,优先级=%u,已运行时间=%un",();printf("执行过后:tpid = %u, 优先级=%u,已运行时间=%un"if (!()(t);elseprintf( "pid=%d进程结束 n",;printf("程序结束 n");return 0;测试用例:进程pid优先级需要运行时间043114254336422执行结果:C:Wi ndowssystem 52cmd.exe一一、 、 丁二1 npnp -丁-丁 B 已已-3. - 3、 、 、

8、寸寸B B-丁-丁 圜 已已可可 、 、二; 0 0 -丁-丁 富 已已0 0一丁亍_T0_fa运运已已一 OQ、一 a:?- > - 5 0 0 一丁亍 富 已已町町 、 、H 0 0 -丁-丁 已已417 0 0 -丁-丁 圜 已已0nMM-丁-丁fi已已、- 、 寸寸 Q0 -丁-丁0 0-IT§已已I0T0fm. -3、 17 0 B 亍亍 8 已已0 0亍一丁圜已已、一 、 . t、二、. 0H -丁-丁 S 已已fsTa已已级级级级*did Pidp p4 33 2iidp pidV p级级先先=ididp级级idp.12 144 =d .1 d »-di

9、 idp p级级id p级级00 = P idp p级级先先北级级J /级级44 = =d300优先级-0在先级=033=0=0 P idp p.1idV pidV ppid = pidpid pidpid = pid口 王 « £ 工lzr 1 L 。王 一驾如驾曾胃铀罂针胃热胃包胃黄胃包驾瞥罂苗 坝过时顶过时顶过时顶过时顶过时顶过时顶过时顶过时顶过21时顶过棚时顶过时顶过时顶过41- -Hz 程薛 逮,:需列丘凝丘刖列丘刖列丘刖列丘蜀L1I刖列任刖列行d=前列行d=前列后窗任刖列行d=.1斯程:i13端逸程,15进程,当的时钟立 队电?心进科 矗摘葩7 号叫”理: id T理箱结束当前时钟18 年列顶竭进程: 员行过直 id=1迸短结束pid = pidpid = pidpid = id及及先洗及及先先皴级7 7日日-T-TS已已 T 二 1 日B -T-T 9 已已417 0 B 一 丁一丁 昌 已已H.EB 日实验问题:1 .在进程优先级相同时,调度结果不确定。原因:在优先级相同时,未进行相关处理。解决:添加优先级相同时判断逻

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论