进程调度算法
来源:互联网 发布:厦门同步网络 编辑:程序博客网 时间:2024/05/10 03:09
一、进程调度概念
进程调度,用户进程数进程调度一般都多于处理机数、这将导致它们互相争夺处理机。无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。
二、两种占用CPU的方式
a.可剥夺式 (可抢占式):就绪队列中一旦有优先级高于当前执行进程优先级的进程存在时,便立即发生进程调度,转让处理机。
b.不可剥夺式 (不可抢占式):即使在就绪队列存在有优先级高于当前执行进程时,当前进程仍将占用处理机直到该进程自己因调用原语操作或等待I/O而进入阻塞、睡眠状态,或时间片用完时才重新发生调度让出处理机。
三、进程调度三个状态
1.等待态:等待某个事件的完成;
2.就绪态:等待系统分配处理器以便运行;
3.运行态:占有处理器正在运行。
三个基本状态之间的关系如图所示。
四、进程调度算法
调度算法是指根据系统的资源分配策略所规定的资源分配算法。
先进先出算法
算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。该算法比较有利于长作业(进程),而不利于短作业(进程)。
FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。
短进程优先
最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First)
该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。
该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。该算法既可用于作业调度, 也可用于进程调度。但其对长作业不利
轮转法
前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。
简单轮转法:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。
多级反馈队列
多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权。不必事先知道各种进程所需要执行的时间,它是目前被公认的一种较好的进程调度算法。
- 进程调度算法
- 进程调度算法
- 进程优先级调度算法
- 进程调度算法
- 进程调度模拟算法
- 进程调度算法程序
- 进程调度算法
- 进程调度算法
- 进程调度算法
- 操作系统进程调度算法
- 进程调度算法
- 进程调度算法
- 进程调度算法例题
- 进程调度算法
- 进程调度算法
- 进程调度算法
- 【操作系统】进程调度算法
- 进程调度算法
- javascript(1)——js概述
- cs231n-(9)迁移学习和Fine-tune网络
- hdu 2093排序
- linux 性能监控分析以及调优(netstat, ps , strace , lsof )
- 用Eclipse配置NS3开发环境
- 进程调度算法
- 方差分析
- AM335X 串口驱动学习(2)-基于linux3.8内核
- C--最短路
- 倒计时
- hdu 1157排序
- 汇编语言(王爽)——第四次上机
- LeetCode:
- 《python机器学习及实践》书籍代码练习