进程的三状态-进程的调度算法
1、等待态(阻塞):等待某个事件的完成;
2、就绪态(就绪):等待系统分配处理器以便运行;
3、运行态(运行):占有处理器正在运行;
等待态——>就绪态:则是等待的条件已满足,只需要分配到处理器后就能运行。
就绪态——>运行态:系统按照某种策略选中就绪队列中的一个进程占用处理器,测试就变成了运行态。
就绪 —操作系统调度—> 运行 —遇到IO操作—> 阻塞 —阻塞状态结束—> 就绪
二、进程的调度算法
给所有的进程分配资源或者分配CPU使用权的一种方法
1、先来先服务:
先来先服务调度算法是一种最简单的调度算法,也称为先进先出或严格排队方案。当每个进程就绪后,它加入就绪队列。当前正运行的进程停止执行,选择在就绪队列中存在时间最长的进程运行。
2、时间片轮转:
时间片轮转调度算法主要适用于分时系统。在这种算法中,系统将所有就绪进程按到达时间的先后次序排成一个队列,按一定的时间间隔运行队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的运行。
3、短作业优先调度:
短作业优先调度算法是指对短作业优先调度的算法,从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行,短作业优先调度算法是一个非抢占策略,他的原则是下一次选择预计处理时间最短的进程,因此短进程将会越过长作业,跳至队列头。
4、最短剩余时间优先:
最短剩余时间是针对最短进程优先增加了抢占机制的版本。在这种情况下,进程调度总是选择预期剩余时间最短的进程。像最短进程优先一样,调度程序正在执行选择函数是必须有关于处理时间的估计,并且存在长进程饥饿的危险。
5、高响应比优先:
根据比率:R=(w+s)/s (R为响应比,w为等待处理的时间,s为预计的服务时间)
在每次进行作业调度时,先计算后备作业队列中每个作业的响应比,从中选出响应比最高的作业投入运行。
6、多级反馈:
多个任务队列,优先级从高到低
新来的任务总是优先级最高的
每一个新任务几乎会立即获得一个时间片时间
执行完一个时间片之后就会降到下一级队列中
总是优先级高的任务都执行完才执行优先级低的队列
本文来自博客园,作者:Mr-Yang`,转载请注明原文链接:https://www.cnblogs.com/XiaoYang-sir/p/14790758.html