您的位置:首页 > 其它

进程调度算法

2016-07-24 16:13 190 查看
进程调度算法
1.先进先出进程调度算法

先进先出是按照进程进入就绪队列的先后次序进行调度的算法。先到达的进程先占用CPU,直到执行结束或被迫

等待才让出CPU。这种方法显然是不能适应我们的要求,当一个不紧迫却很大的进程长时间占用CPU时,其他紧急

的短进程排队等待的时间最长。

2.基于优先数的调度

(1)静态优先数:进程创建时就规定好它的优先数,这个数值在进程运行时不变。确定优先数值时可以考虑使

用外设的进程优先,或操作时间长的进程优先。

(2)动态优先数法:克服静态优先数不能改变的缺陷,动态优先数法使得进程的优先数在执行过程中可以根据
情况而改变。

3时间片轮转程序调度算法

基本思想:系统规定一个时间长度作为进程允许运行的时间,如果进程在这段时间没有执行完,它就必须让出

CPU,等待下一次分配时间片。时间就好像一个不停旋转的轮子,只有转到哪个进程前,该进程才可以占用CPU,

否则只有等待。如果在执行当中进程发生了阻塞或异常,尽管时间片没有用完,它也将主动让出CPU,有系统重

新分配进程。
在选择时间片大小时,应考虑:

(1)系统响应时间。
在交互式的分时系统中,用户系统对系统的响应时间非诚关心,如果时间片过大,会使用

户感觉到请求不能得到及时的响应。
(2)就绪进程的个数。在就绪队列中的进程个数是在随时变化的,如果时间pain过大,就绪队列中的进程数不

断增多,就使得时间片轮转一次的总时间最长。
(3)CPU的能力。随着计算机技术的飞速发展,CPU的处理能力也越来越高,时间片就可以越来越短。

4.多级队列算法

首先根据进程的性质或类型的不同,将就绪队列在分为若干个子队列。属于最高优先队列的进程运行一个时间片,

属于次高优先级队列的进程分配两个时间片,再低一级的进程分配4个时间片,以此类推。当一个进程用完分

配的时间片后还没有运行完,它会被移入到下一级队列中,仅当较高优先级的队列为空时,在会调度较低优先级

的队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列,则抢先执行新进程,并把中断的进程投

入原队列的末尾。这样优先级高的进程能很快获得处理机,但运行时间较短,优先级低的进程较难获得处理机,

但一经获得将运行较长的时间不再切换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: