欢迎来到天天文库
浏览记录
ID:30821946
大小:198.00 KB
页数:8页
时间:2019-01-03
《操作系统实验1处理机调度》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、学院(系)名称:计算机与通信工程学院姓名学号•丄..丄•专业信息与计算科学班级2012级1班实验项目实验一:处理机调度算法的实现课程名称操作系统课程代码0668036实验时间2014-11-285・6节2014-12-31・2节2014-12-55-6节实验地点主校区7-219批改意见成绩教师签字:实验内容:1.设定系统中有五个进程,每一个进程用一个进程控制块表示。2.输入每个进程的“优先数”和“耍求运行时间”。3.为了调度方便,将五个进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程,用指针指出队列的连
2、接情况。4.处理机调度总是选队首进程运行。采用动态优先数算法,进程每运行一次优先数就减“1”,同时将运行时间减“1”。5.若某进程运行时间为零,则将其状态置为“结束”,H退岀队列。6.运行所设计程序,显示或打卬逐次被选中进程的进程名,以及进程控制块的动态变化过程。实验要求:1.详细描述实验设计思想、程序结构及各模块设计思路;2.详细描述程序所用数据结构及算法;3.明确给出测试用例和实验结果;4.为增加程序可读性,在程序中进行适当注释说明;5.认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;6.实验报告撰写
3、耍求结构清晰、描述准确逻辑性强;7.实验过程中,同学Z间可以进行讨论互相提鬲,彳口绝对禁止抄袭。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】源程序:类一:package实验一;publicclassPCB{Stringname;intpriority;inttime;Stringstate="就绪”;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this・name=name;}publicintgetPriority(){
4、returnpriority;}publicvoidsetPriority(intpriority){this.priority=priority;}publicintgetTime(){returntime;}publicvoidsetTime(inttime){this.time=time;}}类二package实验一;importjava.awtevent.MouseEvent;importjava.awt.event.MouseListener;importjava.util.Vector;classAdmi
5、n{〃输岀publicvoidprint(Vectorpcbs){for(inti=O;ivpcbs.size();i++){System.out.println(pcbs.get(i).name+ntn+pcbs.get(i).priority+ntn+pcbs.get(i).time+MtM+pcbs.get(i).state);〃按进程的优先级排序publicvoidsort(Vectorpcbs){for(inti=O;i6、pcbs.size();j++){if(pcbs.gct(i).priority>pcbs.gct(j).priority){inttmp=pcbs.get(i).priority;pcbs.get(i).priority=pcbs.get(j).priority;pcbs.get(j).priority=tmp;Stringname=pcbs.gct(i).namc;pcbs.get(i).name=pcbs.get(j).name;pcbs.get(j).name二name;intt=pcbs.get(i).ti7、me;pcbs.gct(i).timc=pcbs.gct(j).timc;pcbs.get(j).time=t;}}}}〃运行publicvoidrun(Vectorpcbs){inti=1;while(true){System.out.println("第”+i+"次运行情况:”);pcbs.get(O).state=°正在运行”;print(pcbs);pcbs.get(O).priority—;pcbs.gct(O)・timc—;if(pcbs.get(O).time==O){System.out.p8、rintln(,-===========================H);pcbs.get(O).state="已被移出”;System.out.println(pcbs.get(0).name+Ht,,+pcbs.get(0).priority+Mtn+pcbs.remove(O);}sort(pcbs);if(pcbs.size()
6、pcbs.size();j++){if(pcbs.gct(i).priority>pcbs.gct(j).priority){inttmp=pcbs.get(i).priority;pcbs.get(i).priority=pcbs.get(j).priority;pcbs.get(j).priority=tmp;Stringname=pcbs.gct(i).namc;pcbs.get(i).name=pcbs.get(j).name;pcbs.get(j).name二name;intt=pcbs.get(i).ti
7、me;pcbs.gct(i).timc=pcbs.gct(j).timc;pcbs.get(j).time=t;}}}}〃运行publicvoidrun(Vectorpcbs){inti=1;while(true){System.out.println("第”+i+"次运行情况:”);pcbs.get(O).state=°正在运行”;print(pcbs);pcbs.get(O).priority—;pcbs.gct(O)・timc—;if(pcbs.get(O).time==O){System.out.p
8、rintln(,-===========================H);pcbs.get(O).state="已被移出”;System.out.println(pcbs.get(0).name+Ht,,+pcbs.get(0).priority+Mtn+pcbs.remove(O);}sort(pcbs);if(pcbs.size()
此文档下载收益归作者所有