操作系统教程第三版课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《操作系统教程第三版课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 教程 第三 课件
- 资源描述:
-
1、操作系统教程(第3版)第二章第二章 处理器管理处理器管理面向面向2121世纪课程教材世纪课程教材高等教育出版社出版2003年年8月月第二章第二章 处理器管理处理器管理2.1 中央处理器 2.2 中断技术2.3 进程及其实现2.4 线程及其实现2.5 处理器调度2.6 批处理作业的管理与调度2.7 低级调度2.1中央处理器2.1.1单处理器系统和多处理器系统2.1.2寄存器2.1.3特权指令与非特权指令2.1.4处理器状态2.1.5程序状态字寄存器2.1.1单处理器和多处理器系统 计算机系统的核心是中央处理器 单处理器系统:单处理器系统:一个计算机系统只包括一个运算处理器。多处理器系统:多处理器
2、系统:一个计算机系统有多个运算处理器。计算机系统结构分类 单指令流单数据流单指令流单数据流(SISD)(SISD):一个处理器在一个存储器中:一个处理器在一个存储器中的数据上执行单条指令流的数据上执行单条指令流 单指令流多数据流单指令流多数据流(SIMD)(SIMD):单条指令流控制多个处理:单条指令流控制多个处理单元同时执行,每个处理单元包括处理器和相关的数据单元同时执行,每个处理单元包括处理器和相关的数据存储,一条指令控制了不同的处理器对不同的数据进行存储,一条指令控制了不同的处理器对不同的数据进行操作。向量机和阵列机是这类计算机系统的代表操作。向量机和阵列机是这类计算机系统的代表 多指令
3、流单数据流多指令流单数据流(MISD)(MISD):一个数据流被传送给一组:一个数据流被传送给一组处理器,通过处理器上不同指令操作最终得到处理结果处理器,通过处理器上不同指令操作最终得到处理结果 多指令流多数据流多指令流多数据流(MIMD)(MIMD):多个处理器对各自不同的:多个处理器对各自不同的数据集同时执行不同的指令流。可以把数据集同时执行不同的指令流。可以把MIMDMIMD系统划分系统划分为共享内存紧密耦合系统和内存分布松散耦合系统两类为共享内存紧密耦合系统和内存分布松散耦合系统两类2.1.2寄存器(1)计算机系统的处理器包括一组寄存器,其个数根据机型的不同而不同,它们构成了一级存储,
4、比主存容量小,但访问速度快。这组寄存器所存储的信息与程序的执行有很大关系,构成了处理器现场。寄存器(2)通用寄存器:数据寄存器:基地址寄存器:I/O地址寄存器:I/O缓冲寄存器:控制寄存器:其他寄存器2.1.3 特权指令与非特权指令(1)机器指令的集合称指令系统(1)数据处理类指令;(2)转移类指令;(3)数据传送类指令;(4)移位与字符串指令;(5)I/O类指令。特权指令与非特权指令(2)从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分作两部分:特权指令和非特权指令特权指令和非特权指令。特权指令是指只能提供给操作系统的核心程序使用的指令,如启动I/O设备、设置时钟、控制中断屏蔽位
5、、清内存、建立存储键,加载PSW等。2.1.4 处理器状态 中央处理器怎么知道当前是操作系统还是一般用户程序在运行呢?处理器状态标志和设置处理器成不同状态:管理状态(特权状态、系统模式、特态或管态)和用户状态(目标状态、用户模式、常态或目态)处理器处于管理状态时,程序可以执行全部指令,使用所有资源,具有改变处理器状态的能力;处理器处于用户状态时,程序只能执行非特权指令 Intel Pentium的处理器状态有四种,支持4个保护级别,0级权限最高,3级权限最低 2.1.5 程序状态字寄存器(1)计算机如何知道当前处于何种工作状态?这时能否执行特权指令?通常操作系统都引入程序状态字PSW(Prog
6、ram Status Word)来区别不同的处理器工作状态 PSW用来控制指令执行顺序并保留和指示与程序有关的系统状态,主要作用是实现程序状态的保护和恢复 每个程序都有一个与其执行相关的PSW,每个处理器都设置一个PSW寄存器。程序占有处理器执行,它的PSW将占有PSW寄存器 程序状态字寄存器(2)PSW寄存器包括以下内容:程序基本状态:(1)程序计数器;(2)条件码;(3)处理器状态位。中断码。保存程序执行时当前发生的中断事件。中断屏蔽位。指明程序执行中发生中断事件时,是否响应出现的中断事件。IBM360/370系列计算机程序状态字的基本格式 XX X X XXXX X X XXXXXX8位
7、系统屏蔽4位CMWP字段4位程序屏蔽4位保护键16位中断码字段指令长和条件码24位指令地址Intel Pentium程序状态字 Intel Pentium中,PSW由标志寄存器EFLAGS和指令指针寄存器EIP组成,均为32位。EFLAGS的低16位称FLAGS,标志可划分为三组:状态标志、控制标志、系统标志。2.2中断技术2.2.1中断的概念2.2.2中断源分类2.2.3中断装置2.2.4中断处理程序2.2.5中断事件的具体处理方法2.2.6中断的优先级和多重中断2.2.7实例研究:Windows2000/XP中断处理2.2.8实例研究:Solaris中断处理2.2.9实例研究:Linux中
8、断处理2.2.1中断的概念 请求系统服务,实现并行工作,处理突发事件,满足实时要求,都需要打断处理器正常的工作,为此,提出了中断概念。中断的定义 中断中断是指程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,引出处理该事件的程序执行的过程。2.2.2中断源分类(1)从中断事件的性质和激活的手段来说,可以分成两类:强迫性中断事件强迫性中断事件强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,分为:机器故障中断事件。程序性中断事件。外部中断事件。输入输出中断事件。自愿性中断事件自愿性中断事件自愿性中断事件是正在运行的程序所期待的事件。中断源分类(2)两类
9、中断事件 运行程序中断处理程序中断装置中断处理程序中断装置机器故障中断事件程序性中断事件外部中断事件输入输出中断事件运行程序访管指令中断源分类(3)按照中断信号的来源,可把中断分为如下两类:外中断(又称中断)指来自处理器和主存之外的中断。内中断(又称异常)指来自处理器和主存内部的中断。中断源分类(4)外中断包括:电源故障中断、时钟中断、控制台中断、它机中断和I/O中断等。不同的中断具有不同的中断优先级,处理高一级中断时,往往会屏蔽部分或全部低级中断。内中断包括:通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断。异常是不能被屏蔽的,一旦出现
10、应立即响应并加以处理。中断和异常的区别 中断中断是由与现行指令无关的中断信号触发的(异步的),且中断的发生与CPU处在用户模式或内核模式无关,在两条机器指令之间才可响应中断,一般来说,中断处理程序提供的服务不是为当前进程所需的;异常异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序提供的服务是为当前进程所用的。异常包括很多方面,有出错(fault),也有陷入(trap)。出错和陷入的区别 它们发生时保存的返回指令地址不同,出错保存指向触发异常的那条指令,而陷入保存指向触发异常的那条指令的下一条指令。从异常返回时,出错会重新执行那条指令,而陷入就不会重新执行那条指
11、令。如缺页异常是一种出错,而陷入主要应用在调试中。硬中断与软中断 中断和异常要通过硬件设施来产生中断请求,可看作硬中断硬中断。不必由硬件发信号而能引发的中断称软中断,软中断软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。2.2.3 中断装置 发现中断源并产生中断的硬件称中断装置 所有计算机系统都采用硬件和软件结合的方法实现中断处理 中断装置主要做以下三件事:发现中断源 保护现场 启动处理中断事件的程序2.2.4 中断处理程序 处理中断事件的程序称为中断处理程序。它的主要任务是处理中断事件和恢复正常操作 不同中断源对应不同中断处理程序,故快速找到中断处理程序的入口地址是
12、一个关键问题 中断处理程序主要做四项工作:保护未被硬件保护的一些必需的处理状态 识别各个中断源,分析产生中断的原因 处理发生的中断事件 恢复正常操作 IBM中大型机中断响应过程 外中断旧PSW访管中断旧PSW程序中断旧PSW机器故障中断旧PSWI/O中断旧PSW外中断新PSW访管中断新PSW程序中断新PSW机器故障中断新PSWI/O中断新PSW18202830385860687078现行PSW中断时保存现行PSW中断时装入现行PSW 中断后恢复PSW主存专用双字单元 (16进制)装配中断码 IBM PC机中断的响应过程 IPCSPSW现行PSW 寄存器新IP新CS老IP老CS老PSW新栈顶主存
13、新PSW2.2.5 中断事件具体处理方法1、机器故障中断事件的处理 事件是由硬件故障产生的,排除故障须进行人工干预。中断处理能做的工作是:保护现场,防止故障蔓延,报告给操作员并提供故障信息以便维修和校正,及对程序中所造成的破坏进行估价和恢复。2、程序性中断事件的处理 终止程序执行 警告用户 交给用户处理3、外部中断事件的处理 时钟是操作系统进行调度工作的重要工具,如让分时进程作时间片轮转、让实时进程定时发出或接收控制信号、系统定时唤醒或阻塞一个进程、对用户进程进行记账 时钟可分成绝对时钟和间隔时钟两种 控制台中断事件的处理4、I/O中断的处理(1)I/O中断种类较多,处理方法各异1)I/O操作
14、正常结束后的处理2)I/O操作发生故障后的处理3)I/O操作发生异常后的处理4)设备报到或设备结束的处理 5、自愿中断事件的处理(1)系统程序或用户程序执行访管指令而引起的中断,它表示运行程序对操作系统功能的调用,所以,也称系统调用,可以看作是机器指令的一种扩充。自愿中断事件的处理(2)系统调用机制通过特殊硬指令和中断系统来实现。共性处理流程:用户程序执行n号系统调用 通过中断系统进入访管中断处理,保护现场 通过系统调用入口表,按功能号跳转找到相应功能入口地址 执行相应例行程序,结束后正常情况返回系统调用的下一条指令执行2.2.6 中断优先级和多重中断1、中断的优先级2、中断的屏蔽3、多重中断
15、事件的处理 1 中断优先级 计算机执行的每一瞬间,可能有几个中断事件同时发生,中断装置如何来响应同时发生的中断呢?它按照预定顺序来响应,这个预定顺序称中断的优先级中断的优先级,首先响应优先级高的中断事件。2 中断的屏蔽 主机可允许或禁止某类中断的响应,如允许或禁止所有的I/O中断、外部中断、及某些程序性中断。有些中断是不能被禁止的,例如,计算机中的自愿性访管中断就不能被禁止。3多重中断事件的处理 中断正在进行处理期间,这时 CPU又响应了新的中断事件,于 是暂时停止正在运行的中断处理 程序,转去执行新的中断处理程 序,这就叫多重中断(又称中断多重中断(又称中断 嵌套)嵌套)。2.2.7实例研究
16、:Windows 2000/XP中断处理 Windows 2000/XP中断类型 中断中断有有I/O设备、处理器时钟或定时器等,可以启用或禁用。中断是异步事件,可能随时发生,与处理器正在执行的内容无关。异常异常是同步事件,它是某一个特定指令执行的结果。异常的例子是内存访问错误、调试指令及被零除。内核也将系统服务调用视作异常。硬件和软件都可以产生中断和异常,如总线出错异常由硬件造成,而被零除异常是由软件引起的;同样,I/O设备可产生中断,而内核自身也可以发出中断。Windows2000/XP陷阱调度 中断服务例程中断服务例程中断服务例程异常调度器虚存管理的页面管理器中断调度器系统服务调度器异常调
17、度器陷阱处理程序异常帧虚拟地址异常硬件异常软件异常系统服务调用中断 Windows2000/XP中断请求级 系统关闭高31掉电30处理器内的中断29时钟28配置文件设备n设备1Dispatch/DPC2APC1低0硬件中断软件中断正常的线程执行Windows 2000/XP中断中断屏蔽 高掉电处理器内的中断时钟配置文件设备n设备1在处理器A上被屏蔽的中断Dispatch/DPCAPC低IRQL=时钟处理器A在处理器B上被屏蔽的中断IRQL=Dispatch/DPC处理器BWindows 2000/XP硬件中断处理 高掉电处理器间的中断时钟设备n设备1中断调度程序接收 到中断源的IRQL,用作查
18、询IDT的索引Dispatch/DPCAPC低有中断产生线程调度程序/DPC处理程序(无)系统关闭例程系统调电例程处理器间中断处理程序时钟处理程序设备n ISR设备1 ISRAPC处理程序中断调度程序跟随该指针,调用相应的处理程序Windows 2000/XP软件中断处理 多数中断由硬件产生,但内核也为多种任务产生软件中断,包括:启动线程调度、处理计时器到时、在特定线程的描述表中异步执行一个过程及支持异步I/O等。延迟过程调用DPC软件中断延迟过程调用延迟过程调用-提交DPC 高掉电如果IRQL降到比Dispatch/DPC级低,则DPC中断发生。Dispatch/DPCAPC低定时器到时,内
19、核排好DPC队列,准备释放等候在定时器上的所有 线程,然后内核请求软件中断。调度程序DPC中断之后,控制传送给(线程)调度程序DPCDPCDPC调度程序执行DPC中的每一个DPC例程,然后使队列变空。如果需要,调度程序还重新安排处理器异步过程调用 异步过程调用APC为用户程序和系统代码提供了一种在特殊用户线程的描述表(特殊的地址空间)中执行代码的方法。异常调度 异常是由运行程序的执行产生的情况。异常处理工具,允许应用程序在异常发生时可以得到控制。应用程序可以固定这个状态并返回到异常发生的地方展开堆栈,也可以向系统声明不能识别异常,并继续搜寻能处理异常的异常处理程序。除陷阱处理程序解决的异常外,
20、所有异常均由异常调度程序提供服务,它的任务是找到能处理该异常的异常处理程序。如果异常产生于核心态,异常调度程序将调用一个例程来定位处理该异常的异常处理程序。没有被处理的核心态异常是一种致命的系统错误。用户态核心态系统服务调用陷阱处理程序系统服务调度程序系统服务调度表0123n系统服务扩展系统服务2系统服务调度(1)系统服务调度(2)调用WriteFile()Win32应用程序调用NtWriteFile返回调用者KERNEL32.DLL中的WriteFileINT 2E返回调用者NTDLL.DLL中的NtWriteFile调用NtWriteFile开中断NTOSKRNL.EXE中的KiSyste
21、mService执行操作返回调用者NTOSKRNL.EXE 中的NtWriteFile调用USER及GDI服务应用程序INT 2E返回调用者GDI32.DLL或USER32.DLL调用WIN32例程开中断NTOSKRNL.EXE中的KiSystemService执行操作返回调用者WIN32K.SYS 中的服务入口点用户态核心态WIN32专用WIN32专用所有子系统使用软件中断软件中断WIN32内核APIWIN32 USER及GDI API2.2.9实例研究:Linux中断处理 1 Linux中断处理过程 2 快中断与慢中断 3 底半处理 4 任务队列 5 底半处理数据结构 6 底半处理的执行过
22、程7 Linux软中断机制 快中断与慢中断Linux中,可以区分快中断和慢中断两类中断事件。处理慢中断前需保存所有寄存器的内容,而快中断处理仅要保存被常规C函数修改的寄存器;慢中断处理时,不屏蔽其他中断信号,而快中断处理时会屏蔽所有其他中断;慢中断处理完毕后,通常不立即返回被中断的进程,而是进入调度程序重新调度,调度结果未必是被中断的进程运行(是抢先式调度)。而快中断处理完毕后,通常恢复现场返回被中断的进程继续执行(是非抢先式调度)。底半处理 为了尽快缩短快中断处理时间,以便及时响应处理期间到达的其他中断信号,引入了底半处理的概念。(1)什么是底半处理?(2)为什么需要有底半处理?bottom
23、 half handling是一种任务延迟处理机制 “硬中断”是外部设备对CPU的中断,top half是硬中断;同时,“软中断”通常是硬中断服务程序对内核的中断,bottom half是软中断;而“信号”也是一种软中断,“信号”是由内核或进程对其他进程的中断。任务队列 Linux内核中设立任务队列,这是核心对任务进行延迟处理的方法,提供对任务队列中任务排队及处理的通用机制。任务队列和底半处理过程bottom half的关系?核心建立和维护三个一般性任务队列:(1)定时器队列(TQ-TIMER)(2)即时队列(TQ-IMMEDIATE)(3)进程调度队列(TQ-SCHEDULER底半处理数据结
24、构 bh-active31 0 bh-mask31 0bh-base底半处理过程031底半处理的执行过程 三种情况下执行bottom half处理过程:当调度程序欲选择下一个运行进程之前(Schedule()。当从系统调用返回之前(ret_from_syscall)。当每个中断处理和异常处理返回前(ret_from_intr和ret_from_exception)。定时器中断(IRQ0)中断服务例程的top half与bottom half处理过程间的联系。定时器中断服务例程(函数)叫timer-interrupt,执行它的top half函数为do-timer。执行它的bottom half
25、函数为timer-bh。Linux软中断机制 Linux的 bottom half Linux的 tasklet Linux的 softirq2.3 进程及其实现2.3.1 进程的定义和属属性2.3.2 进程的状态和转换2.3.3 进程的描述2.3.4 进程切换与模式切换2.3.5 进程的控制2.3.6 实例研究:UNIX SVR4进程管理2.3.7 实例研究:Linux进程管理2.3.1 进程的定义和性质进程进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。进程是一个既能用来共享资源,又能描述程序并发执行过程的一个基本单位。操作
展开阅读全文