文章目录
- 一、调度简介
- 死锁
一、调度简介
计算机系统中,处理器和内存资源会出现供不应求的情况,特别是多个I/O设备与主机交互,作业不断进入系统,或者是多个批处理作业在磁盘的后备队列中等待进入内存的情况。操作系统在管理有限的资源的同时,需要考虑如何选取进入内存的作业,如何分配有限的处理器资源给多个进程等重要问题。处理器的调度正是处理器和内存资源调度和分配相关的工作。
高级调度
高级调度又称为作业调度、长调度。调度对象是作业。作业是一个比程序更为广泛的概念,不仅包含通常的程序和数据,还配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。从输入系统的一批作业中按照预定调度策略选择进入主存的作业,为其分配资源,创建进程,以上就是高级调度。作为启动阶段的调度,为进程的运行做好准备工作,等待进程调度选择进程进行运行。
低级调度
低级调度又称为进程调度、短调度。调度对象是进程。根据主存资源,决定就绪队列中的有多少个并且哪些进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。包括对处理机现场信息的保存,如程序计数器、多个通用寄存器中的内容等,将它们送入该进程的**进程控制块(PCB)**中的相应单元。然后按某种算法选取进程,把就绪队列中被选中的进程的状态改为运行状态,并准备把处理机分配给它。
中级调度
中级调度介于高级调度和低级调度之间。该调度根据进程状态决定辅存和主存之间的进程对换。主存资源紧缺时,将暂时不能运行的进程换出,进程转为挂起状态;主存资源空闲,并且进程满足运行条件时,再将进程调回主存。对主存的利用和系统吞吐率都有很大的提升。
在上述三种调度中,进程调度是操作系统最核心的部分,运行频率最高,因此把它称为短程调度。为避免进程调度占用太多的CPU时间,进程调度算法不宜太复杂。作业调度往往是发生在一个(批)作业运行完毕,退出系统,而需要重新调入一个(批)作业进入内存时,故作业调度的周期较长,大约几分钟一次,因此把它称为长程调度。在纯粹的分时或实时操作系统中通常不需要作业调度。中级调度的运行频率基本上介于上述两种调度之间。一些功能完善的操作系统为了提高主存利用率和作业吞吐率,会引入中级调度。
- 如图4.2所示,被高级调度选中的作业,从后备队列中,通过多个作业步:编译、链接、装入、运行,称为目标进程,进入主存的就绪队列等候。就绪队列中的进程以此被分配相同的时间片获得处理器。如果进程在给定的时间片内顺利完成,便在释放处理机进入完成状态;
- 如果进程在本次分配的时间片内尚未完成,该进程会到就绪队列的末尾等待下一个时间片;
- 如果在执行期间进程因为某事件而被阻