1、1.7.1 中央处理器CPU一、CPU的构成与基本工作方式:CPU包含:运算器、控制器、寄存器、高速缓存。PCIR数据寄存器数据寄存器处理器内存总线总线PSW地址寄存器地址寄存器控制和状态寄存器控制和状态寄存器高速缓存高速缓存Cache运算器运算器控制器控制器1.7 操作系统的运行环境1运算器运算器实现指令中的算术和逻辑运算,是计算机计算的核心。控制器控制器负责控制程序运行的流程,包括取指令、维护CPU状态、CPU与内存的交互等等。寄存器寄存器是指令在CPU内部作处理的过程中暂存数据、地址以及指令信息的存储设备,在计算机的存储系统中它具有最快的访问速度。高速缓存高速缓存处于CPU和物理内存之间
2、,一般由控制器中的内存管理单元(MMU:Memory Management Unit)管理,访问速度快于内存,低于寄存器。利用程序局部性原理使得高速指令处理和低速内存访问得以匹配,从而提高CPU的效率。2处理器中的寄存器 寄存器提供了一定的存储能力 速度比主存快得多 造价高,容量一般都很小两类寄存器:用户可见寄存器用户可见寄存器 高级语言编译器通过算法分配并使用之,以减少程序访问主存次数。控制和状态寄存器控制和状态寄存器 用于控制处理器的操作,由OS的特权代码使用,以控制其它程序的执行。3用户可见寄存器 机器语言(汇编语言)直接引用 包括数据寄存器、地址寄存器等 数据寄存器数据寄存器(data
3、 register)又称通用寄存器 地址寄存器地址寄存器(address register)用于存储数据及指令的物理地址。如index register、segment pointer、stack pointer4控制和状态寄存器 用于控制处理器的操作 大部分对于用户是不可见的 一部分可以在某种特权模式(由OS使用)下访问5常见的控制和状态寄存器 程序计数器(PC:Program Counter),记录将要取出的指令的地址 指令寄存器(IR:Instruction Register),包含最近取出的指令 程序状态字(PSW:Program Status Word),记录处理器的运行模式信息等等
4、6指令执行的基本过程(1)两个步骤:先从存储器中每次读取一条指令 然后执行这条指令一个单条指令处理过程称为一个指令周期程序的执行是由不断取指和执行的指令周期组成7 每个指令周期开始时,依据在程序计数器中的指令地址从存储器中取一条指令 在取指完成后根据指令类别自动将程序计数器的值变成下条指令的地址 取到的指令放在指令寄存器(IR)中 处理器解释并执行所要求的动作指令执行的基本过程(2)85类指令 访问存储器指令:处理器和存储器间数据传送 I/O指令:处理器和I/O设备间数据传送和命令发送 算术逻辑指令(数据处理指令):执行数据算术和逻辑操作 控制转移指令:指定一个新的指令的执行起点 处理器控制指
5、令:修改处理器状态,改变处理器工作方式9特权指令和非特权指令 使用多道程序设计技术的计算机指令系统必须要区分为特权指令和非特权指令 特权指令:只能由操作系统使用的指令。如启动I/O设备、设置时钟、控制中断屏蔽位、清主存、设置中断向量,修改PSW等。非特权指令:一般用户使用的指令。如算术逻辑运算、访问内存、访管指令等 CPU如何知道当前运行的是操作系统还是一般应用软件?依赖于处理器状态10Which of the following instructions should be privileged?a.Set value of timer.b.Read the clock.c.Clear me
6、mory.d.Issue a trap instruction.e.Turn off interrupts.f.Modify entries in device-status table.g.Switch from user to kernel mode.h.Access I/O device.11处理器的状态为了保护操作系统,将处理器工作状态划分为管态和用户态:管态:操作系统管理程序执行时机器所处的状态,较高的特权级别,又称为特权态(特态)、系统态、核心态用户态:用户程序执行时机器所处的状态,较低的特权级别,又称为普通态(普态)、目态有些系统将处理器状态划分核心状态,管理状态和用户程序状态(
7、目标状态)三种12核态(Kernel Mode):CPUCPU执行操作系统程序时所处的状态。执行操作系统程序时所处的状态。在此状态下允许CPU使用全部资源和全部指令,其中包括一组特权指令(如涉及外设的I/O、改变处理机状态、修改存储保护的指令),实现对系统资源的分配与管理,为用户提供使用外部设备的服务。管态比核态的权限低,在此状态下允许使用一些用户态下不能使用的资源,但不能使用修改CPU状态的指令。无核态时,管态执行核态的全部功能。用户态(User Mode):用户程序执行时用户程序执行时CPUCPU所处的状态。所处的状态。在此状态下禁止使用特权指令,不能直接使用系统资源与改变CPU状态,并且
8、只能访问用户程序所在的存储空间。13 在核态下操作系统可以使用所有指令,包括一组特权指令。允许和禁止中断;在进程之间切换处理机;存取用于内存保护的寄存器;执行输入和输出操作;停止一个中央处理机的工作。在下列情况下,由用户态转向核态:用户程序要求操作系统的服务,系统调用;发生一次中断;在用户程序中产生了一个错误的状态;在用户程序中企图执行一条特权指令;从核态转回用户态用一条指令实现,这条指令也是特权指令。一般情况下是中断返回指令。14实例:x86系列处理器 386、486、Pentium系列都支持4个处理器特权级别(特权环:R0、R1、R2和R3)从R0到R3特权能力依次降低 R0相当于双状态系
9、统的管态 R3相当于目态 R1和R2则介于两者之间,它们能够运行的指令集合具有包含关系:3210RRRRIIII15四个级别运行不同类别的程序:R0-运行操作系统核心代码 R1-运行关键设备驱动程序和I/O处理例程 R2-运行其它受保护共享代码,如语言系统运行环境 R3-运行各种用户程序现有基于x86处理器的操作系统,如UNIX、Linux以及Windows系列大都只用了R0和R3两个特权级别16图:Intel 系列CPU的特权级别17管态和用户态的差别处理器处于管态时:全部指令(包括特权指令)可以执行 可使用所有资源 并具有改变处理器状态的能力处理器处于目态时:只有非特权指令能执行18程序状
10、态字PSWPSW(Program Status Word):CPU的状态指明管态还是目态,用来说明当前在CPU上执行的是操作系统还是一般用户程序,从而决定其是否可以使用特权指令或拥有其它的特殊权力 条件码反映指令执行后的结果特征 中断屏蔽码指出是否允许中断19例1:微处理器M68000的程序状态字1514131211109876543210TSI2I1I0XNZVC条件位:C:进位标志位 V:溢出标志位Z:结果为零标志位N:结果为负标志位I0 I2:三位中断屏蔽位S:CPU状态标志位,为1处于管态,为0处于目态T:陷阱(Trap)中断指示位为1,在下一条指令执行后引起自陷中断20CPU状态的转
11、换目态-管态 其转换的唯一途径是通过中断管态-目态 可用设置PSW(修改程序状态字)实现211.7.2 存储系统 作业必须把它的程序和数据存放在内存中才能运行 多道程系统中,若干个程序和相关的数据要放入主存储器 操作系统要管理、保护程序和数据,使它们不至于受到破坏 操作系统本身也要存放在主存储器中并运行 22一、存储器类型:RAM 和 ROM二、存储系统的层次结构:存储访问的局部性原理容量速度光盘、磁盘、优盘、磁带硬盘硬盘缓存内存高速缓存寄存器256K、512K128M、2G2M40G80G650M、1.44M、64M、400G23读写型的存储器 可把数据存入其中任一地址单元,并可在以后的任何
12、时候把数据读出,或者重新存入新的数据的一种存储器 常被称为随机访问存储器(RAM:Random Access Memory)RAM主要用作存放随机存取的程序的数据24只读型的存储器:只能从其中读取数据,但不能随意用普通方法写入数据(写入数据只能用特殊方法)称为只读存储器(ROM:Read-Only Memory)变型变型:PROM和和EPROM PROM:一种可编程只读存储器,使用特殊PROM写入器写入数据 EPROM:用特殊的紫外线光照射此芯片,以“擦去”信息,恢复原来状态,然后使用特殊EPROM写入器写入数据25存储器的层次结构存储系统设计三个问题:容量、速度和成本 容量:需求无止境 速度
13、:能匹配处理器的速度 成本问题:成本和其它部件相比应在合适范围之内26容量、速度和成本 三个目标不可能同时达到最优,要作权衡 存取速度快,每比特价格高 容量大,每比特价格越低,同时存取速度也越慢27解决方案采用层次化的存储体系结构 当沿着层次下降时 每比特的价格将下降,容量将增大 速度将变慢,处理器的访问频率也将下降28存储访问局部性原理提高存储系统效能关键点:程序存储访问局部性原理 程序执行时,有很多的循环和子程序调用,一旦进入这样的程序段,就会重复存取相同的指令集合 对数据存取也有局部性,在较短的时间内,稳定地保持在一个存储器的局部区域处理器主要和存储器的局部打交道在经过一段时间以后,使用
14、的代码和数据集合会改变29设计多级存储的体系结构假设两级存储器:第I级包含1KB,存取时间为0.1s第II级包含1MB,存取时间为1s存取I级中的内容,直接存取存取II级,首先被转移到I级,然后再存取假设确定内容所在位置时间可以忽略若在I级存储器中发现存取对象的概率是95%,则平均访问时间为:结果非常接近I级存储的存取时间ssss15.011.005.01.095.030缓冲技术引入缓冲目的:缓和CPU与设备速度不匹配的矛盾。CPUCache内存内存Buffer外部设备外部设备字传送块传送缓冲包括:Cache和Buffer。31什么是中断?指CPU对系统中或系统外发生异步事件的响应 异步事件是
15、指无一定时序关系的随机发生事件如外部设备完成数据传输、实时设备出现异常等“中断”名称源于:当异步事件发生后,打断了对当前程序的执行 而转去处理该异步事件 直到处理完了后,再转回原程序中断点继续执行1.7.3 中断技术32从用户角度看中断33几个概念中断是指某个事件(例如,电源掉电、俘点运算溢出、外部设备传输完成或出错等)发生时,系统中止现运行程序的执行,引出处理事件程序对相应事件进行处理,处理完毕后返回断点继续执行。中断源:引起中断的事件称中断源,如打印完成中断,其中断源是打印机。断点:发生中断时正在运行的程序被暂时停止,程序的暂停点称为断点。例如,某程序正在执行0200地址的指令被中断,那么
16、,0200地址就是断点,在中断返回时就执行0200的下一条指令。中断响应:是处理机发现有中断请求时,中止现运行程序的执行并自动引出中断处理程序的过程。中断处理程序:对中断事件进行处理的程序叫中断处理程序。如时钟中断处理、打印机完成中断处理、打印机缺纸中断处理等等。它是操作系统中与硬件最接近的一部分,是操作系统与硬件的接口。34强迫性中断 输入/输出(I/O)中断:主要来自外部设备通道 程序性中断:运行程序中本身的中断(如被如被0 0除除,缺页中断缺页中断,缺段中断缺段中断,地址越界地址越界)时钟中断 控制台中断 硬件故障中断自愿性中断又称访管中断35IBM370中的中断1.机器故障中断:如电源
17、故障、电路检验出错等2.输入输出中断:I/O设备完成任务时产生3.外部中断:时钟中断、多机系统中其它CPU的通信要求中断等4.程序中断:程序中的问题引起的中断,如错误地使用指令或数据、存储保护等5.访管中断:每当CPU执行访管指令时,即引起中断并调用操作系统相应的功能模块为其服务36中断系统中断系统的两大组成部分:硬件中断装置和软件中断处理程序 中断装置-中断系统的机制部分 负责捕获中断源发出的中断请求,以一定方式响应中断源,然后将处理器控制权交给特定的中断处理程序 中断处理程序-中断系统的策略部分 37中断装置的基本功能 发现中断 响应中断:保护现场、找到恰当的中断处理程序38处理器如何发现
18、中断信号?处理器的控制部件中设一个能检测中断的机构,称为中断扫描机构 在每条指令执行周期的最后时刻扫描中断寄存器,询问是否有中断信号 若无中断信号,继续执行下一条指令 若有中断,中断硬件就进行中断响应发现中断39中断向量表:存放所有中断处理程序的入口地址。主存最低端的若干个字节。中断向量?关中断关中断保存中断现场保存中断现场根据中断向量表根据中断向量表设置新运行现场设置新运行现场开中断开中断执行中断处理程序执行中断处理程序关中断关中断恢复被中断程序的现场恢复被中断程序的现场开中断开中断返回断点,继续执行返回断点,继续执行此时允许中断嵌套。即优此时允许中断嵌套。即优先级更高的中断请求可以先级更高
19、的中断请求可以打断低级中断的处理。打断低级中断的处理。设备发中断信号设备发中断信号CPU向设备发确认中断信号向设备发确认中断信号中断处理过程40中断处理一般过程:(1)设备给处理器发一个中断信号(2)处理器处理完当前指令后检测到中断,判断出中断来源并向发送中断的设备发送确认中断信号,确认信号使得该设备将中断信号恢复到一般状态(3)处理器开始为软件处理中断做准备:保存中断点的程序执行上下文环境,这通常包括程序状态字PSW,程序计数器PC,一些寄存器的值,它们通常保存在系统栈中41(4)处理器根据中断源查询中断向量表,获得与该中断相联系的处理程序入口地址,并将PC置成该地址,处理器开始一个新的指令
20、周期,控制转移到中断处理程序(5)中断处理程序开始工作(6)中断处理结束时,执行中断返回指令,被中断程序的上下文环境从系统堆栈中被恢复,处理器状态恢复成原来的状态。(7)PSW和PC被恢复成中断前的值,处理器开始一个新的指令周期,中断处理结束42设备控制器或其他系统硬件发出中断处理器完成当前指令的执行处理器接受中断处理器将PSW和PC推入系统堆栈处理器根据中断类型读入新的PC和PSW值中断系统硬件完成的工作43保存CPU状态的其余信息执行中断处理程序恢复CPU状态信息从系统堆栈恢复原PSW和PC中断系统软件完成的工作44中断的其它问题中断优先级在一些机器中,中断优先级按中断类型划分:以机器故障
21、中断的优先级最高 程序中断和访问管理程序中断次之 外部中断更次之 输入输出的优先级最低45中断屏蔽在CPU上运行的程序,有时由于种种原因,不希望其在执行过程中被别的事件所中断,称为中断屏蔽 在PSW中设置中断屏蔽码以屏蔽某些指定的中断类型 各设备接口中也有中断禁止位,以禁止该设备的中断46多个中断的处理 若中断处理过程中又发生中断,引起多中断处理问题两种处理方法:第一种:处理一个中断时禁止中断,对任何新中断置之不理,当再次允许中断时,新中断才被响应。47多中断处理第一种处理方法48 第二种:中断按照优先度分级 允许高优先级中断打断低优先级的中断中断处理嵌套 49用户程序低级中断高级中断多中断处
22、理第二种处理方法501.8 用户界面用户工作环境用户工作环境 服务(一)系统生成 系统生成是指在一台裸机上(或者安装新的操作系统)安装操作系统的过程。一般情况下,系统生成的工作是由系统程序员来完成的,在系统生成的过程中涉及到机器的硬件配置和操作系统核心参数的设置。还涉及软件系统的版权的问题。在微机上的系统生成用户是可以完成的,比如安装WINDOWS 98、LINUX、MINIX、UNIX。51(二)系统初启 在系统生成后,用户每次使用机器时必须启动系统。对于大、中、小型计算机来说,系统启动的工作是由系统程序员(或系统管理员来完成的),对于微机来说,是由用户自己完成。WINDOWS 98初启:1
23、、打开机器电源;2、ROM中引导程序运行装入系统盘中的主引导块;3、主引导块程序执行,启动DOS7.0引导程序做系统初始化的工作;包括系统资源初始状态的设置、系统主要数据结构初始化、引导图形用户界面程序;4、图形用户界面运行,生成用户的图形用户界面,系统初启工作完成。52Windows 98系统初启完成后的用户界面53 UNIX系统初启:1、将指定的UNIX操作系统执行代码程序装入内存;a.ROM中引导程序将主引导块装入指定内存,启动主引导程序运行;b.主引导程序在系统盘上找到UNIX文件,装入内存,并启动其初启程序;2、存储空间及其管理机构初始化;3、与设备有关的初始化;4、与文件系统有关的
24、初始化;5、创建0和1进程;6、1进程创建各终端进程;7、终端进程运行shell;8、各用户终端上出现 login:表示系统初启完成,等待用户键入命令。54作业 作业步在操作系统中,把编好源程序后上机调试的工作分成四个步骤,称为四个作业步:编辑 编译 连接 运行运行一个用户程序的过程55用户界面用户界面56操作系统提供两个用户接口:程序级:系统调用 操作命令级:作业控制语言(早期批处理操作 系统)键盘命令(交互式操作系统,分时操作系 统为代表)图形用户接口(UNIX、WINDOWS)57(一)作业控制语言 在批处理操作系统时代,用户使用机是采用脱机方式,即用户将自己的程序、数据和用作业控制语言
25、编写的上机操作的步骤的程序一起提交给计算中心(或机房),隔一段时间去机房取结果。作业控制语言是一种语言,用来写程序操作步骤的程序。(二)键盘命令 分时操作系统诞生后,用户可以通过用户终端直接使用计算机,并且可与计算机“对话”,这就是所谓的交互式计算机。用户可通过键盘直接向计算机发布各种命令,计算机可接受、执行用户命令。58DOS系统把键盘命令分为:文件管理(COPY、COMP、TYPE、DEL、REN)磁盘管理(FORMAT、CHKDSK、DISKCOPY、DISKCOMP)目录管理(DIR、CD、MD、RD、TREE)设备工作模式(CLS、MODE)日期、时间、系统设置(DATE、TIME、
26、VER、VOL)运行用户程序(MASM、LINK、DEBUG)59系统功能调用 例如,在程序中要求显示某个子目录,这时就不能让正在运行的程序退出,然后发出“DIR”命令。这就要求在程序中能直接使用“DIR”命令,这种直接使用操作系统命令的功能称为系统功能调用。系统功能调用:系统调用是操作系统与用户的接口之一,用户在程序中使用系统功能调用请求操作系统的服务。(系统功能调用命令、进管指令、访管指令)。6061 系统调用是通过访管指令请求操作系统服务的,PDP11系统计算机的UNIX系统 TRAP n 微机系统windows 95/98 ,NT MS-DOS INT N 教材上称为自愿进管指令:SV
27、C N SVC(supervisor call):自愿进管指令的操作码 N:为地址码 62 系统调用是通过访管指令实现的。在程序中,如果希望请求操作系统的服务(例如,打开一个文件,显示某个目录的内容等),就要执行一条访管指令(trap、int),系统处理这个中断,即为用户提供相应的服务(或者称响应用户的请求)。注意:在汇编程序中是显式地使用访管中断命令,trap、INT。在高级语言中(C语言)是隐式使用访管指令。63 不同的操作系统,系统调用实现的具体方法有所不同,但其实质的特点是相同的:1、每个系统调用对应一个系统调用号;2、每个系统调用有一个对应的执行程序段;3、每个系统调用要求一定数量的
28、输入参数和返回值;4、整个系统有一个系统调用执行程序入口地址表;64系统调用的实现65UNIX系统的系统调用一、UNIX系统调用的使用在UNIX系统中系统调用是自陷的一种。例如:某用户程序要求打开一个文件:汇编语言程序中:trap 5 C语言程序中:open(“文件路径名,mode)66二、trap处理程序 trap处理程序是UNIX系统的自陷处理程序,负责处理所有的自陷(来自处理机内部的中断),其中包括系统调用的处理。在处理系统调用时,首先把要求的参数传送到指定的存储区(user结构中),然后根据系统调用号查系统调用入口表,找到相应处理程序的入口地址,并启动执行,处理程序执行完成后,返回tr
29、ap程序,trap程序返回中断自陷总控程序。67三、系统调用入口表 系统调用入口表是系统调用处理程序入口地址表,该表的第一个表目对应0号系统调用,第二个表目对应1号系统调用,如此类推。在老版本的UNIX系统中只有64个系统调用,在现代流行的UNIX系统版本中,一般有128个系统调用。UNIX系统的系统调用入口表的定义如下:struct sysent int count;/*参数的个数*/int(*call)();/*执行程序入口地址*/sysent64;686970四、UNIX系统调用实现UNIX系统调用的分类1、有关进程管理的系统调用 fork 创建一个进程 exec 执行一个可执行的文件 wait 等待子进程终止 exit 进程终止(自杀).2、与文件有关的系统调用 open 打开一个文件 close 关闭文件 read 读文件 write 写文件 creat 创建文件 lseek 修改文件的读写指针 link 文件连接 unlink 撤除文件连接(删除文件).3、与系统状态有关的系统调用 time 取日历时间 stime 设置日历时间 .71