操作系统-处理机调度
操作系统-处理机调度
调度的实质是资源的分配,而处理机的调度是对处理机资源的调度
调度的层次
-
高级调度
高级调度的调度对象是作业,只要用于多道批处理程序,在分时和实时系统中不设置高级调度
- 作业
作业是一个比程序更为广泛的概念,不仅包含了通常的程序和数据,还配有一份作业说明书,它和进程,线程一样有控制块,作业的叫做作业控制块JCB
-
任务
根据JCB中的信息检查系统中的资源能否满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中选取作业调入内存,并未它们创建进程,分配资源,然后将新进程排在队列中
-
调度算法
-
先来先服务调度算法
顾名思义就是先来到的先被调用,每次调度都是从队列中选择最先进入该队列的进程
-
短作业优秀调度算法
根据作业的长短进程调度,短的优秀被调用
-
优先级调度
选取一个标准作为优先级的比较
-
高响应比优秀调度算法
为了避免有的作业一直处于饥饿状态,设置一个动态优秀级,让它优秀级可以改变。
优先权=(等待时间+要求服务时间)/要求服务时间
-
-
低级调度
低级调度的调度对象是进程,是最基本的一种调度,在多道批处理,分时,实时系统中都会配置这个调度
-
任务
- 保存处理机的现场信息
- 按算法从队列中选取进程
- 分配处理机给进程
-
机制
-
排队器
-
为了提高进程的调度效率,系统都是事先将所有的就绪进程按照一定的策略排成一个或者多个队列,以后每有一个进程转变为就绪状态时,排队器就将它插入相应的就绪队列
-
分派器
分派器依据进程调度程序选定进程,将其从就绪队列中取出,然后进行从分派器到新选出的进程间的上下文切换,将处理机分给新进程
-
上下文切换器
进行切换时,OS会保存当前进程的上下文,而后把新进程的CPU装入到处理机各个相应的寄存器
-
-
方式
-
非抢占式
-
抢占式
抢占不是一种任意的行为,必须遵循一定的原则
- 优先权原则
- 短进程优秀原则
- 时间片原则
-
-
调度算法
- 轮转调度算法
系统设置一个时间片,每隔一个时间片产生一次中断,去激活进程调度程序进行调度,把CPU分配给对首进程,并令其执行一个时间片,运行完成后,把处理机分配给就绪队列中的队首进程。
-
优秀级调度算法
优先级分为静态优先级和动态优秀级,动态优秀级是为防止某些低优先级的进程长期处于饥饿状态
-
非抢占式优先级算法
一旦分配了处理机,那么知道进程运行完成或者因为某种事件而放弃处理机,然后才把处理机分配优秀级最高的进程
-
抢占式优先级算法
只要优秀级比当前运行的进程的优秀级高,那么就处理机就会分配给更高优秀级的进程
-
-
多队列调度算法
将进程的就绪队列分为若干,将不同类型或者性质的进程分配在不同的就绪对列中,不同的就绪队列采用不同的调度算法
- 多级反馈队列调度算法
这个结合了上面的优点,设置多个就绪队列,每个队列采用先来先服务FCFS算法,按队列优秀级调度
-
-
中级调度、
低级调度是内存调度,将暂时不能运行的进程,调至外存等待