进程调度算法

来源:互联网 发布:深圳乐易网络怎么样 编辑:程序博客网 时间:2024/06/16 21:38
进程调度算法
1.先进先出进程调度算法
先进先出是按照进程进入就绪队列的先后次序进行调度的算法。先到达的进程先占用CPU,直到执行结束或被迫
等待才让出CPU。这种方法显然是不能适应我们的要求,当一个不紧迫却很大的进程长时间占用CPU时,其他紧急
的短进程排队等待的时间最长。


2.基于优先数的调度

(1)静态优先数:进程创建时就规定好它的优先数,这个数值在进程运行时不变。确定优先数值时可以考虑使
用外设的进程优先,或操作时间长的进程优先。
(2)动态优先数法:克服静态优先数不能改变的缺陷,动态优先数法使得进程的优先数在执行过程中可以根据

情况而改变。


3时间片轮转程序调度算法
基本思想:系统规定一个时间长度作为进程允许运行的时间,如果进程在这段时间没有执行完,它就必须让出
CPU,等待下一次分配时间片。时间就好像一个不停旋转的轮子,只有转到哪个进程前,该进程才可以占用CPU,
否则只有等待。如果在执行当中进程发生了阻塞或异常,尽管时间片没有用完,它也将主动让出CPU,有系统重
新分配进程。
在选择时间片大小时,应考虑:
(1)系统响应时间。
在交互式的分时系统中,用户系统对系统的响应时间非诚关心,如果时间片过大,会使用
户感觉到请求不能得到及时的响应。
(2)就绪进程的个数。在就绪队列中的进程个数是在随时变化的,如果时间pain过大,就绪队列中的进程数不
断增多,就使得时间片轮转一次的总时间最长。
(3)CPU的能力。随着计算机技术的飞速发展,CPU的处理能力也越来越高,时间片就可以越来越短。


4.多级队列算法

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

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

配的时间片后还没有运行完,它会被移入到下一级队列中,仅当较高优先级的队列为空时,在会调度较低优先级
的队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列,则抢先执行新进程,并把中断的进程投
入原队列的末尾。这样优先级高的进程能很快获得处理机,但运行时间较短,优先级低的进程较难获得处理机,
但一经获得将运行较长的时间不再切换



0 0