操作系统—进程调度算法

目录

进程调度算法包括以下几类等:

1.先来先服务(FCFS)

2.短作业优先(SJF)

3.优先级调度(PSA)

高响应比优先调度(HRRN)

4.时间片轮转(RR)

5.多级反馈队列(MFQ)


进程调度也称低级调度或短程调度,在多批道处理、分时和实时三种OS中都必须配置。

作业调度也称高级调度或长程调度,多用于多批道处理系统中。

在处理机调度时,我们运用不同的算法来实现更短时间或更优解的资源分配。(统称用进程调度来实现)

进程调度算法包括以下几类等:

1.先来先服务(FCFS)

2.短作业优先(SJF)

3.优先级调度(PSA)

4.时间片轮转(RR)

5.多级反馈队列(MFQ)

1.先来先服务(FCFS)

在进程调度中采用时,选择先进入就绪队列的进程,为之分配处理机并运行。该进程一直运行结束或发生阻塞后,在将处理机分配给下一个进程。在作业调度时也是这么运行,FCFS算法更利于长作业/进程和CPU繁忙的作业/进程。

现在FCFS算法很少作为主调度算法,但经常和其他调度算法结合使用。

2.短作业优先(SJF)

可以降低作业平均等待时间,吞吐量高。

作业越短,优先级越高。运用SJF算法时i,从外存作业中的后备队列中选择若干个估计运算时间最短的作业,优选调到内存中运行。

缺点:1必须预知作业的运行时间 2对长作业不利 3人机无法实现交互 4未考虑作业的紧迫程度

3.优先级调度(PSA)

基于作业的紧迫程度,从外部赋予作业/进程的优先级,按照优先级进行调度。可以保证紧迫性的作业优先运行。处理机分配给优先级最高的进程,此时PSA算法又分为两种:

1非抢占式优先级调度算法

直到该进程结束或发生什么事放弃处理机,系统重新分配另一个最高优先级进程

2抢占式优先级调度算法

在进程执行阶段,只要出现另一个比该运行中的进程优先级更高的进程,调度程序就将处理机分配给新的优先级最高的进程。通常用于对实时性要求较高的系统中。

高响应比优先调度(HRRN)

既考虑等待时间又考虑运行时间。

优先权=(等待时间+要求服务时间)/要求服务时间=1+等待时间/要求服务时间

由于等待时间与服务时间之和就是系统对该作业的响应时间,所以该优先级相当于响应比\large R_{p}

\large R_{p}=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间 

4.时间片轮转(RR)

系统根据FCFS策略,将所有就绪进程排成一个就绪队列,设置每隔一定时间间隔产生中断,激活系统中的进程调度程序,完成一次调度,将CPU分配给队首进程令其执行。一个时间片通常在1~100 ms之间。当正在运行的进程用完了时间片后,即使此进程还要运行,操作系统也不让它继续运行,而是从就绪队列依次选择下一个处于就绪态的进程执行,而被剥夺CPU使用的进程返回到就绪队列的末尾,等待再次被调度。当时间片耗尽或运行完毕系统再次将CPU分配给新的队首进程。保证就绪队列中所有进程在一个确切时间段内都能获得一次CPU执行。

时间片的大小可调整,如果时间片大到让一个进程足以完成其全部工作,这种算法就退化为FCFS调度算法;若时间片设置得很小,那么处理机在进程之间的进程上下文切换工作过于频繁,使得真正用于运行用户程序的时间减少。

5.多级反馈队列(MFQ)

设置多个就绪队列,每个队列的优先级逐渐降低,同时每个队列的执行时间也各不相同,优先级越高的队列,执行时间越短,优先级越低的队列,执行时间越长。
当一个进程进入内存后,首先进入第一个队列的末尾,按照FCFS算法进行调度,如果在第一个队列的执行时间内未执行完成,此时把此进程放入第二个队列的末尾,按照之前的方法进行执行,直到在某一个队列的队首执行完成。
当第一个队列全部执行完成,此时系统才会执行第二个队列,但是如果此时又有新的进程进入,此时执行完毕这个时间段,立刻把此进程分配给新的作业。

可以较好的满足各种类型用户的需求:终端型(交互性作业),短批处理作业,长批处理作业。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值