操作系统 ---- 处理器管理

上传人:kms****20 文档编号:56895656 上传时间:2018-10-16 格式:PPT 页数:179 大小:832.50KB
返回 下载 相关 举报
操作系统 ---- 处理器管理_第1页
第1页 / 共179页
操作系统 ---- 处理器管理_第2页
第2页 / 共179页
操作系统 ---- 处理器管理_第3页
第3页 / 共179页
操作系统 ---- 处理器管理_第4页
第4页 / 共179页
操作系统 ---- 处理器管理_第5页
第5页 / 共179页
点击查看更多>>
资源描述

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

1、第二章 处理器管理,概述,处理器管理是操作系统中最核心的部分,因为它管理的也是计算机中最重要的硬件处理器管理负责管理、调度和分配处理器,并控制程序的执行。处理器管理的优劣直接影响系统的性能,操作系统中最重要的是处理器管理处理器管理中最重要的是处理器调度,两种并发的形式:交替执行(单CPU) 并行执行(多CPU),在设计一个操作系统时,既要考虑单CPU,也要考虑多CPU或者说,在设计时,不能假设CPU的数目,对一个进程的资源,在调度时还可以进一步细分,最小的调度单位称作线程(Thread)各种操作系统对线程的实现方式,各不相同,处理器硬件介绍,体系结构处理器的任务:按照程序计数器的指向,从主存中

2、读取指令,对指令进行译码,取出操作数,然后执行指令,根据处理器的数目,可以分为单处理器系统和多处理器系统早期的计算机是单处理器结构,采用流水线、发射体系结构等技术,加快指令的执行,并行技术出现后,发展得比较好的一种体系结构为:多指令流多数据流结构分为两类 共享存储 分布式存储,所谓共享式存储,是指共享所有处理器,平等地访问同一个物理内存根据处理器分配策略,又可以分为两类: 主从式系统(Main/Slave Multi-Processor, MSP) 对称式系统(Symmetric Multi-Processor, SMP),MSP:在特别的处理器上运行内核,在其他处理器上运行系统程序和应用程序

3、优点:实现简单 缺点:主CPU一旦崩溃,系统就崩溃,且主CPU会成为系统性能的瓶颈,SMP:内核与应用程序可以运行在任意CPU优点:对称性,单一地址空间,可靠性、扩充性好 缺点:实现复杂,分布式存储:每个处理单元有自己独立的主存与通道,各个单元之间通过线路或网络相连例如集群(Cluser)就是一种典型的分布式系统,现今大多数通用操作系统既支持单处理器系统,也支持多处理器系统和集群系统,寄存器寄存器用于存储数据、变量和运算的中间结果,用于加快运算,保存状态某时刻寄存器的内容,描述了一个进程当时的执行状态,称为处理器现场,指令每台计算机的机器指令的集合,称为指令系统,它反映了该计算机的能力,指令的

4、分类: 数据处理类 转移类 数据传送类 移位与字符串类 I/O类,指令可分为特权指令和非特权指令特权指令,是指只能被内核使用的指令,比如启动设备,设置时钟,控制中断屏蔽位,清空主存,建立存储键,加载PSW等关键操作,非特权指令,是指可以被应用程序使用的一些指令,当然内核也可以使用即,内核可以使用全部指令(特权与非特权),而应用程序只能执行非特权指令,如果应用程序中出现了特权指令,则会产生保护中断,程序会转入特定的异常处理程序进行处理,处理器状态:表明此时处理器是运行在内核上还是应用程序上,即当时可以使用哪些指令分为两种状态:核心态(Kernel Mode,也叫管态),用户态(User Mode

5、,也叫目态),核心态:运行在内核上 可以执行所有指令 可以访问所有内存与其他资源 可以改变处理器状态,用户态:运行在一般应用程序上 只能执行非特权指令 只能访问属于该进程的内存和其他资源 不能改变处理器状态,除非采用特定的方式,Intel x86中,定义了这么几种级别0 内核级 1 系统调用级 2 共享库级 3 应用程序级实际使用时,根据操作系统自己的策略,何时可由用户态转入核心态,两种途径:执行系统调用,申请操作系统服务 产生中断或异常,前者为应用程序主动发起的 后者是由于产生了意外事件导致的总之,应用程序需要在受控制的情况下,改变处理器状态,并被安排跳转到指定的地方开始执行,程序状态字PS

6、W(Program Status Word),主要作用是实现程序状态的保护与恢复,每个CPU都有一个存放PSW的硬件装置,而相应,每一个进程都有一个PSW的数据结构,当某一个进程占用CPU执行时,它把自己的PSW放入CPU,当这个进程被换出时,也更新它的PSW数据结构,注:并非每个CPU都有一个真正的PSW寄存器,一些CPU采用几个寄存器来实现PSW寄存器的方式如Intel x86中,用EFLSGS和EIP来表示PSW,分为三类标志状态标志:OF,SF,ZF,AF,CF,PF,AC,串扫描,串比较等。 控制标志:DF,VM,IF位 系统标志:IOPL,NT,RF,用户保护模式,中断,现代的操作

7、系统,是由中断驱动的,定义(interrupt):是指在程序执行过程中,遇到急需处理的事件时,暂时中止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后,再返回断点或调度其他程序执行,请大家思考下,中断有什么好处?,中断最初是用来解决CPU轮询外围设备导致大量浪费CPU时间的问题,后来这种机制被应用到其他各种情形中,包括系统调用、异常,也出现了用软件模拟中断机制这种行为,中断有中断源或中断装置发出,其共性:改变处理器的操作执行次序,同时也是实现了把控制权从应用程序转移出来的功能,比如从应用程序转移到内核,分类:按照中断是由硬件还是软件发出的,可分为:硬中断:由硬件发给CPU的中

8、断 软中断:由软件发给软件的中断,硬中断可以继续按照中断源硬件所处的位置,分为:外中断:来自处理器之外的硬件产生的中断信号,比如键盘中断,设备中断 内中断:来自处理器内部的硬件产生的中断,外中断信号,不一定是代表了一定发生了需要CPU处理的事情,很多时候,只是告诉一下CPU设备完成了某项工作,这个时候,CPU其实并不一定要知道这个中断发生了因此,外中断可以分为可屏蔽中断与不可屏蔽中断,有一些中断,是比较紧急的情况,是不可以忽略的,CPU在收到这些中断信号后,必须马上进行处理,否则会引起系统的问题,这些就是不可屏蔽中断,内中断:CPU在运算过程中,也会出现一些错误或者意外事件,这里面一部分是运算

9、发生了错误,比如除数为零等,另外一部分是程序“故意”而为之,目的就是触发中断机制,使控制权强行跳转到另一个地方,一般,把外中断就叫做“中断”,内中断叫做“异常”,有些书上,把故意而为之的异常,称为“陷阱”,把异常中的错误,叫“故障”,具体对内中断(异常)的产生原因,做一下分类:访管中断:主动引发进行系统调用 硬件故障:处理器内部的硬件问题 程序性异常:运算过程中出现错误,比如除数为0、页故障、地址越界等,异常均不可屏蔽,因为其不是错误,就是有意为之,都是有目的的,而中断则是要分情况,有些可屏蔽,有些不可屏蔽,举例:Intel x86规定的一些中断和异常:,Linux中把异常按照发生之后处理的方

10、式,分为以下四种: 故障(Fault):发生问题处理完毕后,再执行一次原来的指令 陷阱(Trap):执行特定的调试指令时触发,被调试的进程遇到所设置的断点处会暂停等待,终止(Abort):某些错误发生后,无法恢复,不会返回原进程,有时甚至需要重启计算机 编程异常(Programmed Exception):用于实现系统调用,总结一下上面的故障发生后,处理完毕后将原来引发故障的指令再执行一遍 陷阱与编程异常发生后,处理完毕之后,执行原指令的下一条指令 终止则不再返回原来的指令,软中断:不必由硬件产生的中断。实质是用一种软件的办法来模拟硬中断的一种方式软中断利用一般中断的思想方法,来处理进程之间的

11、一些问题,软中断:模仿硬中断的方法,内核与进程之间,或进程与进程之间的一种通信方式信号 软件中断,几种中断各自的用途: 中断(外中断):外部设备对CPU的中断 异常(内中断):因指令执行不正常而对CPU的中断 软件中断:用于硬中断服务程序对内核的中断 信号:用于内核或进程,对某个进程的中断,中断与信号有很多类似之处: 概念上一致:都是中断源向某个目的地发送中断信号 均是异步:不知道何时会发生中断事件 实现方式均采用向量表,以向量号做索引查找中断处理程序 均设有“中断屏蔽位”,可以对于一些中断信号,置之不理,中断与信号的区别:中断由硬件和软件实现,信号则专门由软件实现 中断向量表与中断处理程序位

12、于内核空间,而信号向量表属于内核空间,但信号处理程序一般位于用户空间 中断会立即处理,而信号则可能会延时,响应方式尽管中断有这样那样的分类,但其处理起来的方式是一致的:根据中断源提供的中断向量,在主存中找到相应的处理程序入口,并执行中断向量由硬件或内核预先定义,中断的捕获:外:每个指令执行结束后,CPU检查中断寄存器中是否有中断事件,来判断是否有外中断需要执行 内:指令执行的时候,就会发生,无需去检查中断寄存器,中断的响应:发现中断源 保护现场:保护PSW 转向中断/异常处理程序:切换用户态至核心态 恢复现场:恢复用户态,恢复PSW,下一条指令是什么,要根据中断的类型,以Linux中断机制为例

13、:采用中断描述符表(IDT),含有256个中断描述符,表示相应的中断或异常用一个专门的中断描述符表寄存器IDTR来指代IDT的位置,每个中断/异常有一个向量号,0-255,表示在IDT中的索引在系统初始化时,创建IDT,分配向量号,Linux对向量号的使用情况:0 31 异常或硬件非屏蔽中断 32 47 硬件可屏蔽中断 48 255 软中断,其中128号为系统调用,具体的处理方式:程序性中断:几类错误:1,语法错误;2,逻辑错误;3,运行异常一般借助于信号机制,内核往往将这类事件交给应用程序自行处理,访管中断(异常的一种):以Linux为例,调用号放入EAX,其余参数分别放入EBX,ECX,E

14、DX,ESI,EDI中,然后执行访管指令 int 0x80,陷入内核,返回值也放回EAX,时钟中断:时钟是内核进行调度工作的重要工具,利用定时器能够确保内核可以获得控制权时钟:绝对时钟 间隔时钟,绝对时钟:每隔一定时间间隔,产生一次中断间隔时钟:当寄存器内容为0时,产生中断,相当于闹钟,中断需要硬件和软件结合来发挥作用,比如这里时钟中断硬件只按已知时间间隔产生中断,至于中断以后干什么,由软件来负责,中断优先级、多重中断:问题出现的背景:当同一时刻出现了多个中断,怎么办,处理的原则: 以不发生中断丢失为前提,把紧迫程度相当的中断源归为同一级别,紧迫程度差别大的归为不同的级别级别高的中断有优先获得

15、响应的权利,低优先级的中断可以被高优先级的打断,反之不行,中断优先级:中断装置所预设的响应顺序中断优先级事先通过评估各种中断事件的紧急程度,来规定不同的优先级,当同时出现了多个中断事件时,可以用软硬件相结合的办法,将中断事件排成一个队列,根据优先级来排定。,例如: IBM机器中,优先级如下:机器校验中断、自愿性中断、程序性中断、外部中断、I/O中断Intel x86,优先级如下:复位、异常、软件中断、非屏蔽中断、可屏蔽中断,有关多重中断的另一个概念:中断屏蔽位当某个中断处理程序正在执行时,可以暂时关闭中断响应,这是通过对中断屏蔽位来做到的,中断屏蔽:产生并提出中断请求后,CPU允许响应或禁止响

16、应的状态位复位(0):禁止响应中断 置位(1 ):允许响应中断中断屏蔽可以暂时禁止对某些中断,协调中断响应与中断处理之间的关系,进程,一些概念 定义:进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位注:现代操作系统,往往把线程当做调度的基本单位,但分配资源时,是以进程为单位的,通俗讲:进程就是一个正在执行的程序理论上:对当前运行程序的一种抽象 实践上:是一种数据结构,用来刻画当时的程序的动态执行状态,进程的想法最早在MULTICS项目和CTSS/360机器设计中出现,因此叫法不一MIT:Process 进程 IBM:Task 任务 Univac:Action 活动,为何要引入进程这个概念?在多道程序设计之下,原来的“程序”概念已经不能用来描述这时候的情况了,程序只是一个静态的概念,而进程是一个动态的概念,程序:存放在磁盘上的文件进程:运行着的程序实例,包括代码,数据,信号,栈等多种信息,

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

当前位置:首页 > 生活休闲 > 科普知识

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