欢迎来到天天文库
浏览记录
ID:45791860
大小:58.47 KB
页数:5页
时间:2019-11-17
《实验一进程调度指导》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一进程调度实验目的1)加深进程概念的理解;2)掌握进程状态转变;3)掌握进程调度策略。实验要求1)编写程序完成实验内容;2)在实验报告中画出程序流程图;3)撰写实验报告。实验内容1)设计可用于该实验的进程控制块,进程控制块至少包括进程号、状态和要求服务时间;2)动态或静态创建多个进程;3)模拟操作系统四种进程调度算法中的任意一种。4)调度所创建的进程并显示调度结果。实验原理1•进程概念:(1)进程是程序的一次执行。(2)进程是一个程序及其数据在处理机上顺序执行时所发住的活动。(3)进程是程序在一个数据集合上运行的过程
2、,它是系统进行资源分配和调度的-•个独立单位。2•进程状态:进程执行时的间断性决定了进程可能具存多种状态。事实上,运行屮的进程可能具有以下三种基本状态。1)就绪状态当进程已分配到除CPU以外的所冇必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。在一个系统屮处于就绪状态的进程可能何多个,通常将它们排成一个队列,称为就绪队列。2)执行状态进程已获得CPU,其程序正在执行。在单处理机系统屮,只有一个进程处于执行状态;在多处理机系统中,则冇多个进程处于执行状态。3)阻塞状态正在执行的进程由于发住某事件而何
3、时无法继续执行时,便放弃处理机而处于祈停状态,亦即进程的执行受到阻塞,把这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。致使进程阻塞的典型事件有:请求I/O,巾诘缓冲空间等。通常将这种处于阻塞状态的进程也排成一个队列。冇的系统则根据阻塞原因的不同而把处于阻塞状态的进程排成多个队列。1•进程调度算法进程调度的策略通常有先来先服务算法、时间片伦转算法、最高优先权优先调度算法、最短进程优先调度算法等。3.1先来先服务算法3.1.1算法思想该算法思想是按照进入就绪队列的先后次序来分配处理机。FCFS采用非剥夺调度方式,即
4、一旦某个进程占有处理机,就一直运行下去,直到该进程完成其工作或因等待某一事件而不能继续执行时才释放处理机。3.1.2算法实现原理图该算法实现原理图如图1所示。说明:Ready表示就绪队列,R表示新进入队列的进程,Finish表示进程运行完毕退叽3.1.3算法分析与评价①该算法原理简单,易于实现。②各进程平等竟争。③由于各进程执行的时间不一样,从而导致相对不公平现象的产生。④该算法有利于长进程,不利于短进程。⑤该算法很少用来作为主调度策略,常常用作辅助调度算法使用3.2最高优先权优先调度算法3.2.1算法思想该算法的基本思
5、想是进程优先权高者优先调度,是-•种最常用的进程调度算法。该算法的关键是如何确定优先数。通常确定优先数的方法有两种,即静态法和动态法。静态优先权是在创建进程吋确定的,其运行特征是优先数确定之后在整个进行运行期间不再改变。确定静态优先权的依据有进程的类型、进程所使用的资源、进程的估计运行时间等因素。进程所中请的资源越多,估计的运行时间越长,进程的优先权越低。进程类型不同,优先权也不同,如系统进程的优先权高于用八进程的优先权。动态优先权是指在创建进程时,其运行特征是根据系统资源的使用情况和进程的当前特点确定一个优先权,在进程
6、运行过程中再根据情况的变化调整优先权。动态优先权一般根据进程占有CPU时间的长矩、进程等待CPU时间的长矩等因素确定。占有处理机的时间越长,则优先权越低;等待时间越长,则优先权越高。3.3.2算法分析与评价①静态优先级调度算法实现较为简单,但不能反映系统以及进程在运行过程小发空的各种变化。而动态优先级法可以满足这个方而的需要。②动态优先级调度算法的性能一般介于时间片伦转算法和先来先服务算法Z间。3.3时间片轮转调度算法3.3.1算法思想该算法思想是使每个进程在就绪队列中的等待吋间与享受服务的吋间成比例。即将CPU的处理时
7、间分成固定大小的时间片,如果在执行的一个进程把它分给它的时间片用完了,但任务述没有完成,则它也只能停止下来,释放它所占的CPU资源,然后排在相应的就绪队列的后面去。3.3.2算法实现原理图该算法实现原理图如图2所示NotFinish说明:Ready表示就绪队列,R表示新进入队列的进程,Finish表示进程运行完毕退出。NotFinish表示分配给某进程的时间片已用完但任务还没有完成,从而插入到Ready队列尾部。3.3.3算法分析与评价①时间片的长度选择比较困难时间片的长度选择比较闲难是因为时间片长度的选择直接关系到系统
8、开销和进程的响应时间。如果时间片长度过短一>导致调度程序剥夺处理辭的次数增加一>进程的上下文切换的次数增加-系统的开销也加重;如果时间片长度过长,长到能使就绪队列中所需耍执行时间最长的进程执行完毕-轮转法就变成了FCFS算法-FCFS短处不足就显示出来了。又因为CPU的整个执行时间=各进程执行时间之和+系统开销(各进
此文档下载收益归作者所有