您的位置:首页 > 其它

进程的调度算法

2018-04-02 14:43 281 查看
    调度算法:操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源有限,所以必须按照一定的原则选择进程来占用资源。这就是调度,目的是控制资源使用者的数量,选取资源使用者许可占用资源或者占用资源。
调度算法分类:
1.先来先服务(FCFS)
    先来先服务,也被称为先进先出(FIFO)或者严格排队方案。每个进程就绪后,会加入就绪队列。当前正运行的进程停止执行时,选择排队最久的那个进程运行。

    特点:比较有利于长作业,而不利于短作业。有利于CPU繁忙的作业,而不利于I/O繁忙的作业。
2.轮转法(RR)
    采用基于时钟的枪占策略,这种算法周期性地产生时钟中断,出现中断时,当前正运行的进程会放置到就绪队列中,然后基于FCFS策略选择下一个就绪进程运行。

    特点:选取时间片时,避免使用过短的时间片,时间片最好略大于一次典型交互的时间。进程数目越多,时间片越小。

3.最短进程优先(SPN,Shortest Process Next)/最短剩余时间(Shortest Remaining Time,SRT)
    SPN这是一个非抢占策略,其原则是下次选择预计处理时间最短的进程。因此,短进程将会越过长作业,跳到队列头。SRT是在SPN中增加了枪占机制的策略,在这种情况下,调度程序总是选择预期剩余时间最短的进程。只有就绪进程预期的时间比正在运行的进程所需时间短,就可以抢占当前正在运行的进程。

    特点:对长进程不利,可能长时间得不到执行。

4.最高响应比优先(Highest Response Ratio Next,HRRN)
    R = (W+S)/ S    R:为响应比    W:为等待处理器的时间  S:为预计的服务时间

    调度的规则:当前进程完全或者阻塞时,选择R值最大的就绪进程。

    特点:每次调度前都要计算响应比,系统开销增加。由于这样长时间的进程也会运行,从而比最短进程优先发的吞吐量小。

5.多级反馈(multilevel feedback)
    进程进入待调度的队列等待时,首先进入优先级最高的等待。

    首先调度优先级最高的队列的进程,如果高优先级队列中已经没有了进程,则调度次优先队列中的进程

    对于同一优先级的队列中,按照时间片轮转法调度

    在低优先级的队列中的进程在运行时,又有新的进程到达,那么运行完这个时间片后,CPU马上分配给新到达的作业。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: