操作系统课件 2-处理器管理

上传人:我** 文档编号:117867806 上传时间:2019-12-11 格式:PPT 页数:201 大小:1,007KB
返回 下载 相关 举报
操作系统课件 2-处理器管理_第1页
第1页 / 共201页
操作系统课件 2-处理器管理_第2页
第2页 / 共201页
操作系统课件 2-处理器管理_第3页
第3页 / 共201页
操作系统课件 2-处理器管理_第4页
第4页 / 共201页
操作系统课件 2-处理器管理_第5页
第5页 / 共201页
点击查看更多>>
资源描述

《操作系统课件 2-处理器管理》由会员分享,可在线阅读,更多相关《操作系统课件 2-处理器管理(201页珍藏版)》请在金锄头文库上搜索。

1、操作系统教程(第4版) 第二章 处理器管理 高等教育出版社出版 2008年3月 第二章 处理器管理 2.1 中央处理器 2.2 中断技术 2.3 进程及其实现 2.4 线程及其实现 2.5 Linux进程和线程 2.6 Windows 2003进程和线程 2.7 处理器调度 2.8 作业的管理与调度 2.9 处理器调度算法 2.10 Linux调度算法 2.11 Windows 2003调度算法 2.1中央处理器 2.1.1处理器 2.1.2程序状态字寄存器 2.1.1 处理器 1单处理器和多处理器系统 共享存储(紧密耦合)多处理 机系统和分布存储(松散耦合 )多处理机系统。 2寄存器(1)

2、计算机系统的处理器包括一 组寄存器,其个数根据机型 的不同而不同,它们构成了 一级存储,比主存容量小 , 但访问速度快。 这组寄存器所存储的信息与 程序的执行有很大关系,构 成了处理器现场。 寄存器(2) 通用寄存器- EAX,EBX,ECX和EDX 指针及变址寄存器-ESP,EBP,ESI及EDI 段选择符寄存器-CS、DS、SS、ES 、FS、 GS 指令指针寄存器和标志寄存器-EIP、 EFLAGS 控制寄存器-CR0,CR1,CR2和CR3 外部设备使用的寄存器 3 特权指令与非特权指令(1) 机器指令的集合称指令系统 (1)数据处理类指令; (2)转移类指令; (3)数据传送类指令;

3、 (4)移位与字符串指令; (5)I/O类指令。 特权指令与非特权指令(2) 从资源管理和控制程序执行的角 度出发,必须把指令系统中的指 令分作两部分:特权指令和非特 权指令。 特权指令是指只能提供给操作系 统的核心程序使用的指令,如启 动I/O设备、设置时钟、控制中断 屏蔽位、清主存、建立存储键, 加载PSW等。 4 处理器状态 处理器怎么知道当前是操作系统还是一般用户程 序在运行呢? 处理器状态标志: 管理状态(特权状态、系统模 式、特态或管态)和用户状态(目标状态、用户 模式、常态或目态)。处理器状态的转换。 处理器处于管理状态时,程序可以执行全部指令 ,使用所有资源,具有改变处理器状态

4、的能力; 处理器处于用户状态时,程序只能执行非特权指 令 Intel Pentium的处理器状态有四种,支持4个保 护级别,0级权限最高,3级权限最低 2.1.5 程序状态字寄存器(1) 计算机如何知道当前处于何种工作状态?这 时能否执行特权指令?通常操作系统都引入 程序状态字PSW(Program Status Word)来 区别不同的处理器工作状态 PSW用来控制指令执行顺序并保留和指示与 程序有关的系统状态,主要作用是实现程序 状态的保护和恢复 每个程序都有一个与其执行相关的PSW,每 个处理器都设置一个PSW寄存器。程序占有 处理器执行,它的PSW将占有PSW寄存器 程序状态字寄存器(

5、2) PSW寄存器包括以下内容: 程序基本状态: (1) 程序计数器; (2) 条件码; (3)处理器状态位。 中断码。保存程序执行时当前发 生的中断事件。 中断屏蔽位。指明程序执行中发 生中断事件时,是否响应出现的 中断事件。 IBM360/370系列计算机 程序状态字的基本格式 XX X X XXXX X X XXXXXX 8位系统 屏蔽 4位CMWP 字段 4位程序 屏蔽 4位保护键 16位中断码 字段 指令长和 条件码 24位指令 地址 Intel Pentium程序状态字 Intel Pentium中,PSW由标志 寄存器EFLAGS和指令指针寄存 器EIP组成,均为32位。 EFL

6、AGS的低16位称FLAGS,标 志可划分为三组:状态标志、 控制标志、系统标志。 2.2中断技术 2.2.1 中断概念 2.2.2 中断源分类 2.2.3 中断和异常的响应及服务 2.2.4 中断事件处理 2.2.5 中断优先级和多重中断 2.2.6 Linux中断处理 2.2.7 Windows 2003中断处理 2.2.1中断的概念 请求系统服务, 实现并行工作, 处理突发事件, 满足实时要求, 都需要打断处理器正常的工 作,为此,提出了中断概念 。 中断的定义 中断是指程序执行过程中,遇到急 需处理的事件时,暂时中止CPU上 现行程序的运行,转去执行相应的 事件处理程序,待处理完成后再

7、返 回原程序被中断处或调度其他程序 执行的过程。 2.2.2中断源分类(1) 从中断事件的性质和激活的手段来说, 可以分成两类: 强迫性中断事件强迫性中断事件不是正在运行 的程序所期待的,而是由于某种事故或外部请求信息 所引起的,分为: 机器故障中断事件。 程序性中断事件。 外部中断事件。 输入输出中断事件。 自愿性中断事件自愿性中断事件是正在运 行的程序所期待的事件。 中断源分类(2) 按中断事件的性质和激活方式划分 运行程序 中断处理 程序 中断装置 中断处理 程序 中断装置 机器故障中断事件 程序性中断事件 外部中断事件 输入输出中断事件 运行程序 访管指令 中断源分类(3) 硬中断 软

8、中断 外中断(中断、异步中断) 内中断(异常、同步中断) 信号 软件中断 按事件 来源和 实现手 段分类 中断源分类(4) 外中断(中断或异步中断)-是指来自处理 器之外的中断信号,包括时钟中断、键 盘中断、它机中断和设备中断等;外中 断又分可屏蔽中断和不可屏蔽中断,每 个不同中断具有不同的中断优先级,表 示事件的紧急程度,在处理高一级中断 时,往往会屏蔽部分或全部低级中断。 内中断(异常或同步中断)-是指来自处理 器内部,通常由于程序执行中,发现与 当前指令关联的、不正常的、或是错误 的事件。 中断和异常的区别 中断是由与现行指令无关的中断信号 触发的(异步的),且中断的发生与CPU 处在用

9、户模式或内核模式无关,在两 条机器指令之间才可响应中断,一般 来说,中断处理程序提供的服务不是 为当前进程所需的; 异常是由处理器正在执行现行指令而引 起的,一条指令执行期间允许响应异 常,异常处理程序提供的服务是为当 前进程所用的。异常包括很多方面, 有出错(fault),也有陷入(trap)等。 Linux的异常 Linux为例,异常按错误报告方式分四 种: 故障、陷阱、 终止、编程异常。 故障发生时保存的返回指令地址指向触 发异常的当前那条指令,故障处理后会 重新执行。编程异常和陷阱是由于执行 访管指令引起的同步操作,异常返回时 ,回到触发异常的下一条指令。 硬中断与软中断 中断和异常要

10、通过硬件设施来 产生中断请求,是硬中断。 软中断是利用硬中断的概念, 用软件方法对中断机制进行模 拟,实现宏观上的异步执行效 果。 软中断分两种:“信号”和“ 软件中断”。 中断的通常用法 “中断”(硬中断)用于外部设备对CPU的中 断(中断的是正在运行的任何程序),转向中 断处理程序上半部分执行; “异常”(硬中断)因指令执行不正常而中断 CPU(中断的是正在执行这条指令的程序), 转向异常处理程序; “软件中断”(软中断)用于硬中断服务程序 对内核的中断,在上半部分中发出软件中断( 即标记下半部分),使得中断下半部分在适当 时刻获得处理; “信号”(软中断)用于内核或进程对某个进 程的中断

11、,通知进程某个特定事件发生或迫 使进程执行信号处理程序。 中断机制与信号机制进行类比 相同点是:(1)概念上是一致的 ,(2)两 者都是“异步”的 ,(3)实现上均采用 “向量表”, (4)均具有“屏蔽”设施 。 区别是:中断机制由硬件与软件相结合 来实现,而信号机制由软件实现;中断 向量表和中断处理程序(由系统提供)均 在系统空间,而信号向量表虽在系统空 间,但信号处理程序由应用程序提供, 并在用户空间执行。 硬中断与软中断BH进行类比 (1)数组bh_base 相当于硬件中断机制中的数组 irq_desc ; (2)bh_active在概念上相当于硬件的“中断请求寄 存器”,而bh_mas

12、k相当于硬件中的“中断屏蔽寄 存器”; (3)执行一个BH函数时,就通过mark_bh( )将 bh_active中的某位设成1,相当于中断源发出(软件) 中断请求,所设置的具体标志位则类似于“中断向 量”; (4)如果bh_mask中的相应位是l,就会在每次执行完 do_IRQ()中的中断服务程序后,及每次系统调用 结束后,在函数do_bottom_half()中执行相应BH 函数,而do_bottom_half(),则类似于do_IRQ( ) 。 硬中断或软中断处理延时问题 CPU接到和响应硬中断或异常后会立即 调用中断或异常处理程序处理;对于接 收到的信号或软件中断,此时由于进程 未必占

13、有处理器运行或内核正在执行敏 感性操作,通常会有一定时间的延迟, 在适当的时刻内核或相关进程才能加以 处理。 信号和软件中断虽然都由软件产生,并 都由软件处理,但它们的中断来源、使 用场合、实现手段并不相同。 中断/异常响应要做四件事 发现中断源: 保护现场: 转向处理中断/异常事件的处 理程序: 恢复现场: IBM中大型机中断响应过程 外中断旧PSW 访管中断旧PSW 程序中断旧PSW 机器故障中断旧PSW I/O中断旧PSW 外中断新PSW 访管中断新PSW 程序中断新PSW 机器故障中断新PSW I/O中断新PSW 18 20 28 30 38 58 60 68 70 78 现行PSW

14、中断时保存现 行PSW 中断时装入 现行PSW 中断后 恢复PSW 主存专用双字单元 (16进制) 装配中断码 IBM PC机中断的响应过程 IP CS PSW 现行PSW 寄存器 新IP 新CS 老IP 老CS 老PSW 新栈顶 主存 新PSW 2.2.4 中断事件处理 1 中断和异常的一般处理过程 2 硬件故障中断 3 程序性中断 4 I/O中断 5 访管中断 6时钟中断(1) 时钟是操作系统进行调度工作的重要 工具,如让分时进程作时间片轮转、 让实时进程定时发出或接收控制信号 、系统定时唤醒或阻塞一个进程、对 用户进程进行记账 时钟可分成绝对时钟和间隔时钟两种 时钟中断(2) 1) 绝对

15、时钟服务 提供以下功能的函数: update_clock( )更新当前时间; get_time( )返回当前时钟值; set_clock( )把当前时间设置为新值 。 时钟中断(3) 2) 间隔定时器 进程可被延迟、阻塞,直到被间隔定时 器中断信号唤醒,应提供以下函数: delay(tdel)把调用进程阻塞由参数tdel 指定的时间长度,进程保持阻塞直到本 地时间到达进程阻塞时的当前时间 +tdel的时刻。 set_timer(tdel)硬件间隔定时器被设置 为起始的递减值tdel,当该值达到0时 ,产生间隔时钟中断,调用timeout( ) 函数进行处理。 时钟中断(4) 3) 逻辑定时器 需要提供函数: tn=creat_ltime( ):创建逻辑定时 器,tn中存放返回标识符。 destroy_ltime(tn):撤销tn标识的 逻辑定时器。 set_ltime(tn,tv):把tv值装到逻辑 定时器tn中,当该值为0时,产生 时间到中断。 时钟中断(5) (1) 使用带有绝对唤醒定时器的优先级队

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号