进程调度 简介

  • Post author:
  • Post category:其他


源于百科,做简单梳理记录

概念:
无论是在批处理系统还是分时系统中,

用户进程数一般都多于处理器数

、这将导致它们互相

争夺

处理器。另外,系统进程也同样需要使用处理器。这就要求进程调度程序按一定的策略,

动态地把处理器分配给处于就绪队列中的某一个进程,以使之执行


调度
作业从提交开始直到完成,往往要经历下述三级调度:
高级调度:(High-Level Scheduling)又称为

作业调度

,它决定把后备作业调入内存运行;
低级调度:(Low-Level Scheduling)又称为

进程调度

,它决定把就绪队列的某进程获得CPU;
中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,

在内、外存对换区进行进程对换

进程调度虽然是在系统内部的低级调度,但进程调度的优劣直接影响作业调度的性能。

作业调度优劣:

作业调度 周转时间



平均周转时间

在某种程度上反映了进程调度的性能,例如,其执行时间部分中实际上包含有

进程等待

(包括就绪状态时的等待)

时间

,而进程等待时间的多少是要

依靠进程调度策略



等待事件何时发生

等来决定的。因此,进程调度性能的商量是操作系统设计的一个重要指标。
进程调度的优劣:
进程调度性能的衡量方法可分为定性和定量两种。
在定性衡量方面,首先是

调度的可靠性。

包括一次进程调度是否可能引起数据结构的破坏等。

简洁性

也是衡量进程调度的一个重要指标,涉及到的上下文切换,调来的运行开销等。
进程调度的

定量

评价包括CPU的利用率评价、进程在就绪队列中的等待时间与执行时间之比等。

基本状态:
1.

等待态

:等待某个事件的完成;
2.

就绪态

:等待系统分配处理器以便运行;
3.

运行态

:占有处理器正在运行。

运行态→等待态

往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。

等待态→就绪态

则是等待的条件已满足,只需分配到处理器后就能运行。

运行态→就绪态

不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。

就绪态→运行态

系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态

上下切换

进程上下文

由正文段、数据段、硬件寄存器的内容以及有关数据结构等

组成

硬件寄存器主要包括存放CPU将要执行的下条指令虚拟地址的程序计数器PC,指出机器与进程相关联的硬件状态的处理机状态寄存器PS,存放过程调用(或系统调用)时所传递参数的通用寄存器R以及堆栈指针寄存器S等。数据结构则包括PCB等在内的所有与执行该进程有关的管理和控制用表格、数组、链等。在发生进程调度时系统要做进程上下文切换。


进程(上下文)中切换



步骤
保存处理器的上下文,包括程序计数器和其它寄存器
用新状态和其它相关信息更新正在运行进程的PCB
把原来的进程移至合适的队列-就绪、阻塞
选择另一个要执行的进程
更新被选中进程的PCB
从被选中进程中重装入
CPU 上下文
实时操作系统:
实时系统与其他操作系统不同在于计算机要能及时响应外部事件的请求,

在规定的严格时间内完成对该事件的处理

,并控制所有实时设备和实时任务协调一致地工作。
对于对时间要求严格性的不同,实时系统又分为

硬实时

系统和

软实时

系统,其中硬实时系统是指这种时限的要求是绝对的,任何一个实时任务都能够在时限之前完成;而软实时系统的要求就没有这么严格,允许偶尔有实时任务不满足时限的要求.实时系统一般用于嵌入式的系统中。
进程调度算法尤为重要,一般选用

基于优先级的调度

,每个进程根据它重要程度的不同被赋予不同的优先级,调度器在每次调度时,总选择优先级最高的进程开始执行.



版权声明:本文为youxin2012原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。