进程调度
来源:互联网 发布:网络运维方案 编辑:程序博客网 时间:2024/05/29 16:25
一、进程调度的基本状态:
调度算法是指:根据系统的资源分配策略所规定的资源分配算法。
算法按照系统差异主要分为三大类:
1.批处理系统中的调度算法
代表调度算法有:先来先服务、短作业优先、最短剩余时间优先。
(1) 先来先服务(FCFS):
算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。
(2) 短作业优先(SJF):
该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。
2.交互式系统中的调度算法
代表调度算法有:轮转调度、优先级调度、多级队列、最短进程优先、保证调度、彩票调度、公平分享调度。
(1).轮转调度(RR):
a.时间片轮转法:
时间片轮转法一般用于进程调度,每次调度,把CPU分配队首进程,并令其执行一个时间片。 当执行的时间片用完时,由一个记时器发出一个时钟中断请求,该进程被停止,并被送往就绪队列末尾;依次循环。
b.多级反馈队列调度算法:
多级反馈队列调度算法,不必事先知道各种进程所需要执行的时间,它是目前被公认的一种较好的进程调度算法。 其实施过程如下:
1) 设置多个就绪队列,并为各个队列赋予不同的优先级。在优先权越高的队列中, 为每个进程所规定的执行时间片就越小。
2) 当一个新进程进入内存后,首先放入第一队列的末尾,按FCFS原则排队等候调度。 如果他能在一个时间片中完成,便可撤离;如果未完成,就转入第二队列的末尾,在同样等待调度…… 如此下去,当一个长作业(进程)从第一队列依次将到第n队列(最后队列)后,便按第n队列时间片轮转运行。
3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1到第(i-1)队列空时, 才会调度第i队列中的进程运行,并执行相应的时间片轮转。
4) 如果处理机正在处理第i队列中某进程,又有新进程进入优先权较高的队列, 则此新队列抢占正在运行的处理机,并把正在运行的进程放在第i队列的队尾。
(2).优先级调度:
a.非抢占式优先级调度算法:
一旦把处理及分配给就绪队列中优先级最高的进程后,该进程便一直执行下去直至完成。或者因该进程发生某事件而放弃处理机时,系统方可将处理机重新分配给另一个优先级最高的进程。
b. 抢占式优先级调度算法:
把处理及分配给优先级最高的进程,使之执行。但在其执行期间,只要出现了另一个其优先级跟高的进程,调度程序就将处理机分配给新的优先级更高的进程。因此,在采用这种调度算法时,每当系统中出现了一个新的就绪进程i时,就将其优先级pi与正在执行的进程j的优先级pj进行比较,如果pi<=pj,原进程pj便继续执行,但如果pi>pj,则立即停止pj的执行,进行进程切换,使i进程投入执行。
3.实时系统中的调度算法
代表调度算法有:单调速率调度、最早最终时限优先调度。
- 进程调度 ---CFS调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 大话分布式数据库HBASE
- LInux常用压缩与解压缩命令
- Swift模拟从服务区端加载指定的控制器类型
- JS获取URL传递过来的参数值
- liunx设置自启动之chkconfig命令详解
- 进程调度
- 大型网站的技术架构演进过程
- scrollTop、offsetHeight和offsetTop等属性用法详解
- NetUtils网络连接工具类
- android4.4 SystemUI的分析及滑动navigation的显示和隐藏
- 位运算符——左移(<<)、右移(>>)、与(&)、非(~)、或(|)、异或(^)
- plsql安装--无需安装oracle客户端
- popuwindow弹出时,背景半透明
- HTML学习