进程的三状态-进程的调度算法

一、进程的三状态

1、等待态(阻塞):等待某个事件的完成;

2、就绪态(就绪):等待系统分配处理器以便运行;

3、运行态(运行):占有处理器正在运行;

运行态——>等待态:往往是由于等待外设,等待资源分配或等待人工干预而引起的。

等待态——>就绪态:则是等待的条件已满足,只需要分配到处理器后就能运行。

就绪态——>运行态:系统按照某种策略选中就绪队列中的一个进程占用处理器,测试就变成了运行态。

就绪 —操作系统调度—> 运行 —遇到IO操作—> 阻塞 —阻塞状态结束—> 就绪

二、进程的调度算法

给所有的进程分配资源或者分配CPU使用权的一种方法

1、先来先服务:

先来先服务调度算法是一种最简单的调度算法,也称为先进先出或严格排队方案。当每个进程就绪后,它加入就绪队列。当前正运行的进程停止执行,选择在就绪队列中存在时间最长的进程运行。

2、时间片轮转:

时间片轮转调度算法主要适用于分时系统。在这种算法中,系统将所有就绪进程按到达时间的先后次序排成一个队列,按一定的时间间隔运行队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的运行。

3、短作业优先调度:

短作业优先调度算法是指对短作业优先调度的算法,从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行,短作业优先调度算法是一个非抢占策略,他的原则是下一次选择预计处理时间最短的进程,因此短进程将会越过长作业,跳至队列头。

4、最短剩余时间优先:

最短剩余时间是针对最短进程优先增加了抢占机制的版本。在这种情况下,进程调度总是选择预期剩余时间最短的进程。像最短进程优先一样,调度程序正在执行选择函数是必须有关于处理时间的估计,并且存在长进程饥饿的危险。

5、高响应比优先:

根据比率:R=(w+s)/s (R为响应比,w为等待处理的时间,s为预计的服务时间)

在每次进行作业调度时,先计算后备作业队列中每个作业的响应比,从中选出响应比最高的作业投入运行。

6、多级反馈:

多个任务队列,优先级从高到低

新来的任务总是优先级最高的

每一个新任务几乎会立即获得一个时间片时间

执行完一个时间片之后就会降到下一级队列中

总是优先级高的任务都执行完才执行优先级低的队列

并且优先级越高时间片越短

学习之旅
原文地址:https://www.cnblogs.com/XiaoYang-sir/p/14790758.html