操作系统 ---- 处理器管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断的响应:
发现中断源 保护现场:保护PSW 转向中断/异常处理程序:切换用户态至核 心态 恢复现场:恢复用户态,恢复PSW,下一 条指令是什么,要根据中断的类型
①
②
③
④
以Linux中断机制为例:
采用中断描述符表(IDT),含有256个中 断描述符,表示相应的中断或异常
用一个专门的中断描述符表寄存器IDTR来 指代IDT的位置
第二章 处理器管理
一.
概述
处理器管理是操作系统中最核心的部分, 因为它管理的也是计算机中最重要的硬件 处理器管理负责管理、调度和分配处理器, 并控制程序的执行。
处理器管理的优劣直接影响系统的性能
操作系统中最重要的是处理器管理
处理器管理中最重要的是处理器调度
两种并发的形式:
交替执行(单CPU) 并行执行(多CPU)
2.
分类: 按照中断是由硬件还是软件发出的,可分 为:
硬中断:由硬件发给CPU的中断 软中断:由软件发给CPU的中断
① ②
硬中断可以继续按照中断源硬件所处的 位置,分为: 外中断:来自处理器之外的硬件产生的 中断信号,比如键盘中断,设备中断 内中断:来自处理器内部的硬件产生的 中断
I.
II.
如果应用程序中出现了特权指令,则会产 生保护中断,程序会转入特定的异常处理 程序进行处理
4.
处理器状态:表明此时处理器是运行在内 核上还是应用程序上,即当时可以使用哪 些指令
分为两种状态:核心态(Kernel Mode, 也叫管态),用户态(User Mode,也叫 目态)
核心态:
运行在内核上 可以执行所有指令 可以访问所有内存与其他资源 可以改变处理器状态
当同时出现了多个中断事件时,可以用软 硬件相结合的办法,将中断事件排成一个 队列,根据优先级来排定。
例如: IBM机器中,优先级如下:机器校验中断、 自愿性中断、程序性中断、外部中断、I/O 中断
Intel x86,优先级如下:复位、异常、软件 中断、非屏蔽中断、可屏蔽中断
有关多重中断的另一个概念:中断屏蔽位
例如集群(Cluser)就是一种典型的分布 式系统
百度文库
现今大多数通用操作系统既支持单处理器 系统,也支持多处理器系统和集群系统
2.
寄存器 寄存器用于存储数据、变量和运算的中间 结果,用于加快运算,保存状态
某时刻寄存器的内容,描述了一个进程当 时的执行状态,称为处理器现场
3.
指令 每台计算机的机器指令的集合,称为指令 系统,它反映了该计算机的能力
内中断:CPU在运算过程中,也会出现一 些错误或者意外事件,这里面一部分是运 算发生了错误,比如除数为零等,另外一 部分是程序“故意”而为之,目的就是触 发中断机制,使控制权强行跳转到另一个 地方
一般,把外中断就叫做“中断”,内中断 叫做“异常”,有些书上,把故意而为之 的异常,称为“陷阱”,把异常中的错误, 叫“故障”
①
处理的原则: 以不发生中断丢失为前提,把紧迫程度相 当的中断源归为同一级别,紧迫程度差别 大的归为不同的级别
级别高的中断有优先获得响应的权利,低 优先级的中断可以被高优先级的打断,反 之不行
②
中断优先级:中断装置所预设的响应顺序
中断优先级事先通过评估各种中断事件的 紧急程度,来规定不同的优先级
具体对内中断(异常)的产生原因,做一 下分类: 访管中断:主动引发进行系统调用 硬件故障:处理器内部的硬件问题 程序性异常:运算过程中出现错误,比如 除数为0、页故障、地址越界等
①
② ③
异常均不可屏蔽,因为其不是错误,就是 有意为之,都是有目的的,而中断则是要 分情况,有些可屏蔽,有些不可屏蔽
①
②
在设计一个操作系统时,既要考虑单CPU, 也要考虑多CPU 或者说,在设计时,不能假设CPU的数目
对一个进程的资源,在调度时还可以进一 步细分,最小的调度单位称作线程(Thread) 各种操作系统对线程的实现方式,各不相 同
二.
处理器硬件介绍
1.
体系结构
处理器的任务:按照程序计数器的指向, 从主存中读取指令,对指令进行译码,取 出操作数,然后执行指令
当某个中断处理程序正在执行时,可以暂 时关闭中断响应,这是通过对中断屏蔽位 来做到的
中断屏蔽:产生并提出中断请求后,CPU 允许响应或禁止响应的状态位
复位(0):禁止响应中断 置位(1 ):允许响应中断
中断屏蔽可以暂时禁止对某些中断,协调 中断响应与中断处理之间的关系
三.
进程
1.
每个CPU都有一个存放PSW的硬件装置, 而相应,每一个进程都有一个PSW的数据 结构,当某一个进程占用CPU执行时,它 把自己的PSW放入CPU,当这个进程被换 出时,也更新它的PSW数据结构
注:并非每个CPU都有一个真正的PSW寄 存器,一些CPU采用几个寄存器来实现 PSW寄存器的方式
举例:Intel x86规定的一些中断和异常:
①
②
Linux中把异常按照发生之后处理的方式, 分为以下四种: 故障(Fault):发生问题处理完毕后, 再执行一次原来的指令 陷阱(Trap):执行特定的调试指令时 触发,被调试的进程遇到所设置的断点 处会暂停等待
③
④
终止(Abort):某些错误发生后,无法 恢复,不会返回原进程,有时甚至需要重 启计算机 编程异常(Programmed Exception): 用于实现系统调用
I.
II.
MSP:在特别的处理器上运行内核,在其 他处理器上运行系统程序和应用程序
优点:实现简单 缺点:主CPU一旦崩溃,系统就崩溃,且 主CPU会成为系统性能的瓶颈
SMP:内核与应用程序可以运行在任意 CPU
优点:对称性,单一地址空间,可靠性、 扩充性好 缺点:实现复杂
②
分布式存储:每个处理单元有自己独立的 主存与通道,各个单元之间通过线路或网 络相连
如Intel x86中,用EFLSGS和EIP来表示 PSW
分为三类标志
状态标志:OF,SF,ZF,AF,CF,PF, AC,串扫描,串比较等。 控制标志:DF,VM,IF位 系统标志:IOPL,NT,RF,用户保护模 式
①
② ③
二.
中断
现代的操作系统,是由中断驱动的
1.
定义(interrupt):是指在程序执行过程 中,遇到急需处理的事件时,暂时中止现 行程序在CPU上的运行,转而执行相应的 事件处理程序,待处理完成后,再返回断 点或调度其他程序执行
执行系统调用,申请操作系统服务 产生中断或异常
①
②
前者为应用程序主动发起的 后者是由于产生了意外事件导致的
总之,应用程序需要在受控制的情况下, 改变处理器状态,并被安排跳转到指定的 地方开始执行
5.
程序状态字 PSW(Program Status Word),主要作 用是实现程序状态的保护与恢复
根据处理器的数目,可以分为单处理器系 统和多处理器系统
早期的计算机是单处理器结构,采用流水 线、发射体系结构等技术,加快指令的执 行
并行技术出现后,发展得比较好的一种体 系结构为:多指令流多数据流结构 分为两类 共享存储 分布式存储
① ②
①
所谓共享式存储,是指共享所有处理器, 平等地访问同一个物理内存 根据处理器分配策略,又可以分为两类: 主从式系统(Main/Slave MultiProcessor, MSP) 对称式系统(Symmetric MultiProcessor, SMP)
软中断:模仿硬中断的方法,内核与进程 之间,或进程与进程之间的一种通信方式 信号 软件中断
①
②
① ②
③
④
几种中断各自的用途: 中断(外中断):外部设备对CPU的中断 异常(内中断):因指令执行不正常而对 CPU的中断 软件中断:用于硬中断服务程序对内核的 中断 信号:用于内核或进程,对某个进程的中 断
①
②
③
④
中断与信号有很多类似之处: 概念上一致:都是中断源向某个目的地发 送中断信号 均是异步:不知道何时会发生中断事件 实现方式均采用向量表,以向量号做索引 查找中断处理程序 均设有“中断屏蔽位”,可以对于一些中 断信号,置之不理
中断与信号的区别:
中断由硬件和软件实现,信号则专门由软 件实现 中断向量表与中断处理程序位于内核空间, 而信号向量表属于内核空间,但信号处理 程序一般位于用户空间 中断会立即处理,而信号则可能会延时
用户态:
运行在一般应用程序上 只能执行非特权指令 只能访问属于该进程的内存和其他资源 不能改变处理器状态,除非采用特定的方 式
①
Intel x86中,定义了这么几种级别
0 内核级 1 系统调用级 2 共享库级 3 应用程序级
②
③ ④
实际使用时,根据操作系统自己的策略
何时可由用户态转入核心态,两种途径:
一些概念 定义:进程是可并发执行的程序在某个数 据集合上的一次计算活动,也是操作系统 进行资源分配和保护的基本单位
每个中断/异常有一个向量号,0-255,表示 在IDT中的索引 在系统初始化时,创建IDT,分配向量号
Linux对向量号的使用情况:
0 – 31 异常或硬件非屏蔽中断 32 – 47 硬件可屏蔽中断 48 – 255 软中断,其中128号为系统调用
4.
具体的处理方式:
程序性中断:几类错误:1,语法错误;2, 逻辑错误;3,运行异常 一般借助于信号机制,内核往往将这类事 件交给应用程序自行处理
请大家思考下,中断有什么好处?
中断最初是用来解决CPU轮询外围设备导 致大量浪费CPU时间的问题,后来这种机 制被应用到其他各种情形中,包括系统调 用、异常,也出现了用软件模拟中断机制 这种行为
中断有中断源或中断装置发出,其共性: 改变处理器的操作执行次序,同时也是实 现了把控制权从应用程序转移出来的功能, 比如从应用程序转移到内核
外中断信号,不一定是代表了一定发生了 需要CPU处理的事情,很多时候,只是告 诉一下CPU设备完成了某项工作,这个时 候,CPU其实并不一定要知道这个中断发 生了
因此,外中断可以分为可屏蔽中断与不可 屏蔽中断
有一些中断,是比较紧急的情况,是不可 以忽略的,CPU在收到这些中断信号后, 必须马上进行处理,否则会引起系统的问 题,这些就是不可屏蔽中断
①
②
访管中断(异常的一种):
以Linux为例,调用号放入EAX,其余参数 分别放入EBX,ECX,EDX,ESI,EDI 中,然后执行访管指令 int 0x80,陷入内 核,返回值也放回EAX
③
时钟中断: 时钟是内核进行调度工作的重要工具,利 用定时器能够确保内核可以获得控制权
时钟:绝对时钟 间隔时钟
①
②
③
3.
响应方式 尽管中断有这样那样的分类,但其处理起 来的方式是一致的:根据中断源提供的中 断向量,在主存中找到相应的处理程序入 口,并执行
中断向量由硬件或内核预先定义
中断的捕获:
外:每个指令执行结束后,CPU检查中断 寄存器中是否有中断事件,来判断是否有 外中断需要执行 内:指令执行的时候,就会发生,无需去 检查中断寄存器
① ②
③
④
⑤
指令的分类: 数据处理类 转移类 数据传送类 移位与字符串类 I/O类
指令可分为特权指令和非特权指令
特权指令,是指只能被内核使用的指令, 比如启动设备,设置时钟,控制中断屏蔽 位,清空主存,建立存储键,加载PSW等 关键操作
非特权指令,是指可以被应用程序使用的 一些指令,当然内核也可以使用 即,内核可以使用全部指令(特权与非特 权),而应用程序只能执行非特权指令
绝对时钟:每隔一定时间间隔,产生一次 中断 间隔时钟:当寄存器内容为0时,产生中断, 相当于闹钟
中断需要硬件和软件结合来发挥作用,比 如这里时钟中断硬件只按已知时间间隔产 生中断,至于中断以后干什么,由软件来 负责
5.
中断优先级、多重中断:
问题出现的背景:当同一时刻出现了多个 中断,怎么办
总结一下上面的
故障发生后,处理完毕后将原来引发故障 的指令再执行一遍 陷阱与编程异常发生后,处理完毕之后, 执行原指令的下一条指令 终止则不再返回原来的指令
软中断:不必由硬件产生的中断。实质是 用一种软件的办法来模拟硬中断的一种方 式
软中断利用一般中断的思想方法,来处理 进程之间的一些问题