操作系统OperatingSystems操作系统课程组南京邮电大学WINDOWSUNIXLINUXOS2VxWorksMacOS教材:《操作系统教程》,人民邮电出版社,2009年出版第三章进程管理与调度3.1中央处理器3.2中断3.3进程及其实现3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度3.8低级调度3.9线程及其基本概念3.10Linux进程管理3.1中央处理器任何系统软件都是硬件功能的延伸操作系统直接依赖于硬件条件OS的硬件环境以较分散的形式同各种管理相结合实现操作系统时必须理解的计算机基本结构操作系统管理的重要资源3.1中央处理器3.1.1CPU的构成与基本工作方式3.1.2特权指令和非特权指令3.1.3处理器状态3.1.4程序状态字3.1.1CPU的构成与基本工作方式处理器由运算器、控制器、一系列的寄存器以及高速缓存构成运算器实现指令中的算术和逻辑运算,是计算机计算的核心控制器负责控制程序运行的流程,包括取指令、维护CPU状态、CPU与内存的交互等等寄存器是指令在CPU内部作处理的过程中暂存数据、地址以及指令信息的存储设备在计算机的存储系统中它具有最快的访问速度两类寄存器用户可见寄存器高级语言编译器通过算法分配并使用之,以减少程序访问主存次数控制寄存器用于控制处理器的操作,由OS的特权代码使用,以控制其它程序的执行3.1.1CPU的构成与基本工作方式处理器由运算器、控制器、一系列的寄存器以及高速缓存构成3.1.1CPU的构成与基本工作方式处理器由运算器、控制器、一系列的寄存器以及高速缓存构成用户可见寄存器高级语言编译器通过算法分配并使用之,以减少程序访问主存次数包括通用寄存器、数据寄存器、地址寄存器数据寄存器(dataregister)主要用于存放操作数地址寄存器(addressregister)用于存储数据及指令的物理地址、线性地址或者有效地址,用于某种特定方式的寻址。如indexregister、segmentpointer、stackpointerI/O地址寄存器I/O缓冲寄存器3.1.1CPU的构成与基本工作方式处理器由运算器、控制器、一系列的寄存器以及高速缓存构成控制寄存器用于控制处理器的操作,大部分对于用户是不可见的,一部分可以在某种特权模式(由OS使用)下访问常见的控制和状态寄存器:程序计数器(PC:ProgramCounter),记录将要取出的指令的地址指令寄存器(IR:InstructionRegister),包含最近取出的指令程序状态字(PSW:ProgramStatusWord),记录处理器的运行模式信息等等中断寄存器存储器和I/O模块控制的寄存器3.1.1CPU的构成与基本工作方式处理器由运算器、控制器、一系列的寄存器以及高速缓存构成高速缓存(内、外)处于CPU和物理内存之间一般由控制器中的内存管理单元(MMU:MemoryManagementUnit)管理访问速度快于内存,低于寄存器利用程序局部性原理使得高速指令处理和低速内存访问得以匹配,从而提高CPU的效率3.1中央处理器3.1.1CPU的构成与基本工作方式3.1.2特权指令和非特权指令3.1.3处理器状态3.1.4程序状态字3.1.2特权指令和非特权指令特权指令:只能由操作系统使用的指令使用多道程序设计技术的计算机指令系统必须要区分为特权指令和非特权指令具体特权指令如启动I/O设备、设置时钟、控制中断屏蔽位、清内存、建立存储键,加载PSW等。常引起处理器状态的切换•CPU如何知道当前运行的是操作系统还是一般应用软件?有赖于处理器状态的标识3.1中央处理器3.1.1CPU的构成与基本工作方式3.1.2特权指令和非特权指令3.1.3处理器状态3.1.4程序状态字3.1.3处理器状态根据运行程序对资源和机器指令的使用权限将处理器设置为不同状态多数系统将处理器工作状态划分为管态和目态管态:操作系统管理程序运行的状态,较高的特权级别,又称为特权态(特态)、系统态目态:用户程序运行时的状态,较低的特权级别,又称为普通态(普态)、用户态有些系统将处理器状态划分核心状态,管理状态和用户程序状态(目标状态)三种3.1.3处理器状态处理器处于管态时:全部指令(包括特权指令)可以执行可使用所有资源并具有改变处理器状态的能力处理器处于目态时:只有非特权指令能执行特权级别不同,可运行指令集合也不同特权级别越高,可以运行指令集合越大高特权级别对应的可运行指令集合包含低特权级的3.1.3处理器状态实例:x86系列处理器386、486、Pentium系列都支持4个处理器特权级别(特权环:R0、R1、R2和R3)从R0到R3特权能力依次降低R0相当于双状态系统的管态R3相当于目态R1和R2则介于两者之间,它们能够运行的指令集合具有包含关系3210RRRRIIII3.1.3处理器状态目态--管态其转换的唯一途径是通过中断管态--目态可用设置PSW(修改程序状态字)可实现3.1中央处理器3.1.1CPU的构成与基本工作方式3.1.2特权指令和非特权指令3.1.3处理器状态3.1.4程序状态字3.1.4程序状态字处理器状态是在PSW中专门设置一位,根据运行程序使用指令的权限而设置,PSW(ProgramStatusWord)。PSW用来控制指令执行顺序并保留和指示与程序有关的系统状态,主要作用是实现程序状态的保护和恢复。每个进程都有一个与其执行相关的PSW,每个处理器都设置一个PSW寄存器。进程占有处理器执行,它的PSW将占有PSW寄存器。3.1.4程序状态字PSW寄存器包括以下内容:程序基本状态:(1)程序计数器;(2)条件码;(3)处理器状态位。中断码。保存程序执行时当前发生的中断事件。中断屏蔽位。指明程序执行中发生中断事件时,是否响应出现的中断事件。第三章进程管理与调度3.1中央处理器3.2中断3.3进程及其实现3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度3.8低级调度3.9线程及其基本概念3.10Linux进程管理3.2中断3.2.1中断的概念3.2.2中断的分类3.2.1中断的概念什么是中断?指CPU对系统中或系统外发生异步事件的响应异步事件是指无一定时序关系的随机发生事件CPU暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序如外部设备完成数据传输,实时设备出现异常等“中断”名称源于:当异步事件发生后,打断了对当前程序的执行而转去处理该异步事件直到处理完了后,再转回原程序中断点继续执行3.2.1中断的概念3.2.2中断的分类——从中断的性质和激活的手段来分(IBM):强迫性中断正在运行的程序所不期望的,由于某种硬件故障或外部请求引起的自愿性中断用户在程序中有意识安排的中断,是由于用户在编制程序时因为要求操作系统提供服务,有意使用“访管”指令或系统调用,使中断发生3.2.2中断的分类——按事件来源和实现手段分类(MS/LINUX):硬中断软中断外中断(中断、异步中断)内中断(异常、同步中断)信号软件中断按事件来源和实现手段分类中断和异常要通过硬件设施来产生中断请求,是硬中断。软中断是利用硬中断的概念,用软件方法对中断机制进行模拟,实现宏观上的异步执行效果。3.2.2中断的分类——按事件来源和实现手段分类(MS/LINUX):“中断”(硬中断)用于外部设备对CPU的中断(中断的是正在运行的任何程序),转向中断处理程序上半部分执行;“异常”(硬中断)因指令执行不正常而中断CPU(中断的是正在执行这条指令的程序),转向异常处理程序;“软件中断”(软中断)用于硬中断服务程序对内核的中断,在上半部分中发出软件中断(即标记下半部分),使得中断下半部分在适当时刻获得处理;“信号”(软中断)用于内核或进程对某个进程的中断,通知进程某个特定事件发生或迫使进程执行信号处理程序。3.2.2中断的分类——按事件来源和实现手段分类(MS/LINUX):•外中断(中断或异步中断)--是指来自处理器之外的中断信号,包括时钟中断、键盘中断、它机中断和设备中断等;外中断又分可屏蔽中断和不可屏蔽中断,每个不同中断具有不同的中断优先级,表示事件的紧急程度,在处理高一级中断时,往往会屏蔽部分或全部低级中断。•内中断(异常或同步中断)--是指来自处理器内部,通常由于程序执行中,发现与当前指令关联的、不正常的、或是错误的事件。3.2.2中断的分类——按事件来源和实现手段分类(MS/LINUX):•中断是由与现行指令无关的中断信号触发的(异步的),且中断的发生与CPU处在用户模式或内核模式无关,在两条机器指令之间才可响应中断,一般来说,中断处理程序提供的服务不是为当前进程所需的;•异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序提供的服务是为当前进程所用的。异常包括很多方面,有出错(fault),也有陷入(trap)等。3.2.2中断的分类——按事件来源和实现手段分类(MS/LINUX):•Linux为例,异常按错误报告方式分四种:故障、陷阱、终止、编程异常。•故障发生时保存的返回指令地址指向触发异常的当前那条指令,故障处理后会重新执行。编程异常和陷阱是由于执行访管指令引起的同步操作,异常返回时,回到触发异常的下一条指令。第三章进程管理与调度3.1中央处理器3.2中断3.3进程及其实现3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度3.8低级调度3.9线程及其基本概念3.10Linux进程管理3.3进程及其实现3.3.1进程定义3.3.2进程的类型和特性3.3.3进程的状态和转换3.3.4进程控制块3.3.5进程要素3.3.1进程定义进程是为了描述程序在并发执行时对系统资源的共享,所需的一个描述程序执行时动态特征的概念定义:Process(“任务”(task)或“活动”(active))进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配、调度和保护的独立单位3.3.1进程定义操作系统为什么要引入进程概念?原因1-刻画系统的动态性,发挥系统的并发性,提高资源利用率。原因2-它能解决系统的“共享性”,正确描述程序的执行状态。“可再用”程序“可再入”程序3.3.1进程定义“可再入”程序编译程序P编译源程序甲,从A点开始工作,执行到B点时需将信息记到磁盘上,且程序P在B点等待磁盘传输。为提高系统效率,利用编译程序的“可再入”性,让编译程序P再为源程序乙进行编译,仍从A点开始工作。编译程序P(P的入口,处理源程序乙)(P把源程序甲的信息记盘等磁盘完成)AB源程序甲源程序乙3.3.1进程定义“可再入”程序把编译程序P,与服务对象联系起来,P为甲服务就说构成进程P甲,P为乙服务则构成进程P乙。两个进程虽共享程序P,但它们可同时执行且彼此按各自的速度独立执行。可见程序与计算(程序的执行)不再一一对应,进程是一个既能用来共享资源,又能描述程序并发执行过程的一个基本单位。编译程序P(P的入口,处理源程序乙)(P把源程序甲的信息记盘等磁盘完成)AB源程序甲源程序乙3.3进程及其实现3.3.1进程定义3.3.2进程的类型和特性3.3.3进程的状态和转换3.3.4进程控制块3.3.5进程要素3.3.2进程的类型和特性1、进程分类:系统进程用户进程(系统进程优先于用户进程)3.3.2进程的类型和特性2、进程的属性•结构性•共享性•动态性•独立性•制约性•并发性3.3.2进程的类型和特性3、程序与进程之间的区别进程更能真实地描述并发,而程序不能进程是由程序和数据和控制块三部分组成的程序是静态的,进程是动态的进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的一个程序可对