发布时间:2024-04-28 17:01
需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。进程调度是从就绪进程队列中选择一个进程,并把CPU分配给它。进程调度是这三级调度中是必不可少的。
这三级调度中,要重点理解作业调度和进程调度形成的两级调度模型,如下图所示。
通过理解这个图,理解作业的4种状态:提交、后备、执行和完成,作业调度的功能,进程调度的功能,进程调度的时机,以及这两级调度如何协调工作完成了处理机调度。
(2)常用调度算法
针对不同的系统目标,会采取不同的调度策略。确定调度策略是件复杂的工作,往往要兼顾多种因素的影响。CPU利用率、吞吐量、周转时间、就绪等待时间和响应时间等是通常评价系统性能时都要考虑的几个指标。
教材中主要介绍了3种调度算法,分别是先来先服务法、时间片轮转法和优先级法。
先来先服务法(FCFS)是最简单的调度算法,它的实现思想就是“排队买票”的办法。按作业(或进程)到来的先后次序进行调度,即先来的先得到执行。
时间片轮转法(RR)的设计实现思想是系统把所有就绪进程按先入先出的原则排成一个队列。每当执行进程调度时,进程调度程序总是选出就绪队列的队首进程,让它在CPU 上运行一个时间片的时间。当进程用完分给它的时间片后,调度程序便停止该进程的运行,并把它放入就绪队列的末尾;然后,把CPU分给就绪队列的队首进程。轮转法适用于分时系统。其主要问题是时间片如何选择:时间片太长了,就成为FCFS调度;时间片太短了,频繁调度,开销太大。
优先级调度算法的实现思想:是从就绪队列中选出优先级最高的进程,把CPU分给它使用。又分为非抢占式优先级法和抢占式优先级法。前者是:当前占用CPU的进程一直运行下去,直到完成任务或者因等待某事件而主动让出CPU时,系统才让另一个优先级高的进程占用CPU。后者是:当前进程在运行过程中,一旦有另一个优先级更高的进程出现在就绪队列中,进程调度程序就停止当前进程的运行,强行将CPU分给那个进程。
其它常用的调度算法还有:短作业优先法、最短剩余时间优先法、多级队列法、多级反馈队列法。
(3)中断处理
并发是现代计算机系统的重要特性,它允许多个进程同时在系统中活动。而实施并发的基础是由硬件和软件结合而成的中断机制。中断是现代计算机系统中的重要概念之一,它是指CPU对系统发生的某个事件做出的处理过程。按功能划分,中断一般分为I/O中断、机器故障中断、外部中断、程序性中断、访管中断。
在中断响应和处理过程中,硬件对中断请求做出响应:中止当前程序的执行,保存断点信息,转到相应的处理程序。软件对中断进行相应的处理:保存现场,分析原因,处理中断,中断返回。各中断处理程序是操作系统的重要组成部分。对中断的处理是在核心态下进行的。
Linux系统提供给用户的最重要的系统程序是shell命令语言解释程序。其基本功能是解释并执行用户输入的各种命令,实现用户与Linux核心的接口。shell解释程序的工作过程基本上是读入命令行、分析命令行和构成命令树,创建子进程来执行命令树等步骤。
(4)Linux系统的进程调度