欢迎来到天天文库
浏览记录
ID:38628735
大小:190.00 KB
页数:9页
时间:2019-06-16
《操作系统实验2进程调度实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、佛山科学技术学院实验报告课程名称操作系统原理实验项目实验二-进程调度实验讲义专业班级姓名学号指导教师成绩日期一、实验目的通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。(1)掌握时间片轮换的进程调度算法;(2)掌握带优先级的进程调度算法;(3)选用面向对象的编程方法。二、实验内容;(1)用C语言(或其它语言,如Java)实现对N个进程采用动态优先调度算法的调度。(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段:进程标识数ID。进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。进程已占用CPU时间CPUTI
2、ME。进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将进入阻塞状态。进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,将转换成就绪状态。进程状态STATE。队列指针NEXT,用来将PCB排成队列。(3)优先数改变的原则:可以采用以下方法的任一种:(a)进程在就绪队列中呆一个时间片,优先数增加1。进程每运行一个时间片,优先数减3。(b)进程在就绪队列中呆一个时间片,优先数增加3。进程每运行一个时间片,优先数除以2。(4)为了清楚地观察每个
3、进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。(5)用户可以干预进程的运行状态,程序应该设置可以让用户中断的入口,并可以通过以下命令查看,修改,终止进程。A)create 随机创建进程,进程的优先级与所需要的时间片随机决定;B)ps 查看当前进程状态C)sleep 命令将进程挂起D)kill 命令杀死进程E)quit命令退出(5)分析程序运行的结果,谈一下自己的认识。三、实验原理;无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程
4、调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。根据进程的五个特征:(1)动态性;(2)并发性;(3)异步性;(4)独立性;(5)结构性及三种基本状态的转换,了解各进程对资源的共享和竞争。进程并发执行时,由于资源共享,带来各进程之间的相互制约。为了反映这些制约关系和资源共享关系,在创建一个进程时,应首先创建其PCB,然后才能根据PCB中信息对进程实施有效的管理和控制。当一个进程完成其功能之后,系统则最后释放PCB,进程也随之消亡。最简单最直观的进程调度策略是基于优先级的调度,多数实时系统采用基于优先级的调度,每个进程根据它重要程度的不同被赋予不同的优先级,调度
5、器在每次调度时,总选择优先级最高的进程开始执行.四、实验步骤;1.随机生成几个处在就绪队列的进程;2.在就绪队列中选择优先权最高的进程;3.每运行一个时间片后更新运行进程、就绪队列和阻塞队列的状态,判断是否需要进行变换;4.可动态添加、删除进程;5.完成所有进程操作。五、程序源代码及注释六、实验结果分析1、运行结果如下:2、结果分析首先,每次从就绪队列中选择最高优先权的进程时,需要计算出最高优先权和次高优先权之间的STARTBLOCK。即最高优先权进程运行多少个时间片后就会进入阻塞队列。每调度一次,就需要更新所有进程的信息,并判断CPUTIME是否等于ALLTIME,如果相等,则进程完成操作,
6、需从就绪队列中删除。如果阻塞队列中进程的BLOCKTIME为0时,还需要将其转移到就绪队列中。七、实验心得体会通过了这次实验,我了解了进程调度的用法。实验的开始,我对于调度的还不懂,所以遇到了一点问题,幸好通过了老师的解说才得以解决。我相信,这次实验可以让自己在操作系统的进程调度有了更好的掌握。
此文档下载收益归作者所有