调度的基本概念
在多道程序系统中,进程的数量往往是多于处理机的,这样不可能并行地处理各个进程。处理及调度,就是从就绪序列按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程的并发执行
调度的三个层次
高级调度(作业调度)由于内存有限,有时无法将用户提交的作业都放进内存,就会通过高级调度,按照一定的规则从外存上处于后备队列中的作业挑一个给他分配内存等必要自愿,并创建相应的PCB,使他获得竞争处理机的权利。
因此,高级调度是外存和内存之间的调度,每个作业只能被调入,调出依次,作业调入时会创建PCB,调出时才销毁PCB,高级调度主要是指调入问题,因为只有调入的时机才由操作系统决定,但调出必须是作业运行结束才调出。
中级调度(内存调度)存入内存的有些进程可能暂时不能运行,但是他却占着内存位置,因此引入虚拟存储技术,来提高内存利用率和系统吞吐率,具体实现就是将暂时运行不了的进程调到外存等待,等进程具备运行条件且内存稍有空间时,重新调入内存。暂时调出内存的进程状态为挂起状态,但PCB不会被调出,因为操作系统还要根据PCB记录的进程数据存放在外存的地址,进程状态等信息对进程监控,管理,被挂起的进程PCB会被放到挂起队列中。
中级调度,就是要决定哪个处于挂起状态的进程需要重新被调入内存中,一个进程可能被调入调出很多次,因此中级调度比高级调度发生频率要高的多
进程的挂起状态和七状态模型暂时调到外存等待的进程状态叫挂起状态,挂起状态可以细分成就绪挂起状态和阻塞挂起状态。因此就有了下面的七状态模型
激活和挂起两部分不必多说,有时运行态或者创建态要转化成就绪态有可能因为内存不够或某种原印,将进程调到外存,成为就绪挂起状态,同样的,当处于阻塞他的进程等待的事件发生了,想转化成就绪态,同样也可能因为某些原因被调到外存,成为就绪挂起状态
低级调度(进程调度)低级调度的任务就是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给他,低级调度(进程调度)是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度,进程调度的频率很高,一般几十毫秒一次。
总结