操作系统硬件机制_第1页
操作系统硬件机制_第2页
操作系统硬件机制_第3页
操作系统硬件机制_第4页
操作系统硬件机制_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统硬件机制处理器状态、特权指令、非特权指令;中断概念、中断系统、中断向量表、中断响应处理过程;系统调用、处理过程、分类2操作系统的硬件环境任何系统软件都是对硬件功能的延伸,都是建立在硬件基础上的,离不开硬件设施的支持。而操作系统更是直接依赖于硬件,与硬件的关系尤为密切。3计算机系统的体系结构(本图摘自Silberschatz,GalvinandGagne:“OperatingSystemConcepts”)4

受保护的指令;系统调用;内存保护;中断机制;

I/O系统;时钟操作。OS需要的硬件特性5有些指令只有操作系统才有权使用,例如:访问某些硬件资源的指令,这些硬件资源

禁止用户程序直接访问;对I/O设备的直接访问指令,如磁盘、打印

机等;对内存管理状态进行操作的指令(页表指

针、刷新TLB等);某些特殊的状态位的设置指令;

停机指令。一、受保护的指令(特权指令)6如何从硬件上实现OS的这个要求?处理器的状态

根据运行程序对资源和机器指令的使用权限,

把处理器设置为不同状态。多数系统将处理器工作状态划分为管态和目态。管态:操作系统的管理程序运行时的状态,较高的

特权级别,又称为特权态、系统态、内核态处理器处于管态时:可以执行所有的指令(包括特权

指令)、使用所有的资源,并具有改变处理器状态的

能力。Supervisormode==“Superuser”privilege?7目态:用户程序运行时的状态,较低的特权级别,

又称为普通态(普态)、用户态。在此状态下禁止使用特权指令,不能直接使用系统

资源与改变CPU状态,并且只能访问用户程序所在

的存储空间。有些系统将处理器状态划分核心状态,管理状态和

用户程序状态(目标状态)三种。8实例:x86系列处理器(1)386、486、Pentium系列都支持4个处理器特权级别(特权环:R0、R1、R2和R3)从R0到R3特权能力依次降低R0相当于双状态系统的管态R3相当于目态R1和R2则介于两者之间,它们能够运行的指令集合具有包含关系:9各个级别有保护性检查(地址校验、I/O限制)特权级别之间的转换方式不尽相同四个级别运行不同类别的程序:R0-运行操作系统核心代码R1-运行关键设备驱动程序和I/O处理例程R2-运行其它受保护共享代码,如语言系统运行环境R3-运行各种用户程序现有基于x86处理器的操作系统,多数UNIX、Linux以及Windows系列大都只用了R0和R3两个特权级别实例:x86系列处理器(2)10问题一:CPU怎么来判断当前运行的程序是

系统程序还是用户程序呢?程序状态字PSW一个专门的寄存器,用来指示处理器的状态,PSW

(ProgramStatusWord),通常包括:

CPU的工作状态码——指明管态还是目态,用来

说明当前在CPU上执行的是操作系统还是一般用

户,从而决定其是否可以使用特权指令或拥有其

它的特殊权力;条件码——反映指令执行后的结果特征;中断屏蔽码——指出是否允许中断11问题二:状态之间如何转换?用户程序无法直接修改程序状态字;那么用户程序如何才能去做一些带有“特权”的

事情(如I/O)呢?解决之道是————管态→目态通过设置PSW(修改程序状态字)来实现;目态→管态12二、系统调用用户程序通过特殊的访管指令,来请求操作系统

为其提供某种功能的服务。系统调用指令的实现

过程一般是:当CPU执行访管指令时,即引起访管中断;处理器保存中断点的程序执行上下文环境(PSW,

PC和其他的一些寄存器),CPU切换到管态。中断处理程序开始工作,调用相应的系统服务;中断处理结束后,恢复被中断程序的上下文环境,

CPU恢复为目态,回到中断点继续执行。13管态(系统态)目态(用户态)系统调用(汇编指令)中断处理程序系统服务程序用户程序OS内核陷入到

管态恢复到

目态14intsys_fork();创建进程intsys_read();读文件intsys_write();写文件intsys_open();打开文件intsys_execve();执行程序intsys_time();取当前时间intsys_chdir();更改当前目录intsys_mount();安装文件系统……Linux0.11版本中的系统调用(72个)数组sys_call_table[]记录了每个系统调用函数的入口地址,系统调用中断int0x80,eax中是调用号。15

受保护的指令;系统调用;内存保护;中断机制;

I/O系统;时钟操作。OS需要的硬件特性16Why内存保护?

Youcan’thurtme,Ican’thurtyou

防止一个用户程序去访问其他用户

程序的数据;保护操作系统免受用户程序的破坏。三、内存保护17在硬件上如何支持?最简单的做法:基址寄存器和边界寄存器程序C程序A程序B内存基址寄存器边界寄存器在开始运行一

个程序时,由

操作系统负责

给基址寄存器

和边界寄存器

设置相应的值虚拟存储技术:把内存和外存结合起来使用,硬件

提供虚、实地址映射的机制。18中断对于操作系统的重要性就像机器中的驱动齿轮一样

有人把操作系统称为是由“中断驱动”或者“(中断)事件驱动”四、中断机制19什么是中断(interrupt)?指的是由于某个事件的发生,改变了正在CPU上

执行的指令的顺序;这种事件对应于CPU芯片内部或外部的硬件电路

所生成的电信号。中断处理的过程:当中断事件发生时,CPU暂停正在执行的程序,

保留现场后自动转去执行相应事件的处理程序,

待处理完成后返回断点,继续执行被打断的程序。20中断的类型按照Intel公司的文档,中断可以分为两大类,即同步中断和异步中断。同步中断:指当CPU正在执行指令的时候,由CPU的控制单元所发出的中断,也称为“异常”;CPU检测到的异常,包括:错误Fault、

陷阱Trap和中止Abort,例如:算术溢出、被零除、用户态下使用了特权指令等;程序设定的异常,即程序员通过int、int3等指令来发出的中断请求,也称为软中断,主要用来实现系统调用服务。21异步中断:指由其他的硬件设备在任意的时刻所发出的中断,简称为“中断”;可屏蔽中断,即I/O中断,它是当外部设备或通道操作正常结束或发生错误时所发生的中断。例如:打印机打印完成、缺纸,读磁盘时驱动器中没有磁盘等;不可屏蔽中断,例如:由掉电、存储器校验错等硬件故障引起的硬件中断;每一个中断或异常都用一个0-255之间的整数来标识,称为中断向量,系统根据中断向量,来为每一个中断或异常指定相应的处理程序。中断嵌套在处理一个中断事件时,系统又响应了新的中断事件。程序执行中断中断处理再次中断嵌套中断处理返回返回中断的作用CPU与I/O设备并行工作:设备传输结束发中断硬件故障处理:出现故障发中断实现人机联系:干预机器运行,了解机器状态,下达临时命令实现多道程序和分时系统:切换实现实时处理:以中断方式传送实时信号实现应用程序与OS联系:如软中断多处理机间的联系:以中断方式实现多处理机间的信息交流和任务切换中断优先级中断优先级是中断响应的优先级别。当多个中断发生时,系统根据优先级决定响应中断的次序,优先响应高优先级的中断,同级中断则按硬件规定的次序响应。中断优先级由高到低的顺序为:硬件故障中断、访管中断、程序性中断、外部中断、输入/输出中断。中断屏蔽中断屏蔽表示暂时封锁对中断的响应,待屏蔽消除后再响应。让屏蔽字与一些中断事件对应,当某中断屏蔽时,其屏蔽标志置位,表示封锁对相应事件的响应;当中断产生时,若没有屏蔽则响应中断,若屏蔽则暂时不响应该中断,待屏蔽标志消除后再响应。注意:自愿性中断不能屏蔽。中断响应中断响应:当处理机发现中断请求时,终止现行程序的运行,并自动引出中断处理程序的过程。其响应流程如下图所示。中断响应流程图执行一条指令指令结束?Y有中断请求?开中断?YY响应中断取下条指令NN中断响应过程中断响应过程一般包含以下几步:发现中断源保护现场引出中断处理程序发现中断源发现中断源:通过扫描中断寄存器检查有无中断请求。中断装置:发现中断源而产生中断过程的设备称为中断装置。中断由软硬件协同完成,软硬件部分合称中断系统。中断系统的职能是实现中断进入。断点及恢复点:发现中断时刚执行完的那条指令所在的单元号称为断点,断点的逻辑后继指令的单元号称为恢复点。保护现场保护现场:当中断发生时,将现场信息保存到内存中。现场:指中断那一刻能确保程序继续运行的信息,主要包括:后继指令单元号、程序运行时CPU状态、指令执行情况、程序执行中间结果。恢复现场:被中断程序恢复运行之前,将保存的现场信息恢复到内存中。引出中断处理程序引出中断处理程序:中断发生时,中断系统将程序状态字的内容保存到主存约定单元中,再将中断处理程序的程序状态字送入相应的寄存器,于是引出了中断处理程序。中断响应的本质是交换程序状态字的内容以保留程序断点信息、自动转入相应的中断处理程序。中断处理过程中断处理功能由硬件和软件配合完成。硬件负责中断的发现及进入,软件负责中断的分析处理及恢复工作。软件中断处理过程主要有三项工作:保护被中断程序的现场并传递参数执行相应的中断服务程序恢复被中断程序的现场并退出中断中断处理例程简介1硬件故障中断的处理:这类故障一般需要人工干预,OS所做工作是:保护现场、防止事故蔓延、向操作员报告并提供故障信息。程序性中断的处理:大体有以下处理方法对纯程序性错误,如地址越界,OS将出错程序名、出错地址、错误性质报告给操作员对其他程序性错,如溢出,可交给用户自行处理,若用户没有提出处理办法,则OS将出错程序名、出错地址、错误性质报告给操作员。中断处理例程简介2外部中断的处理:对不同中断分别进行处理。如时钟中断完成增加时钟计数。外部设备中断的处理:分为以下情况传输结束:决定传输是否结束。若未结束则启动下一次传输,否则置设备状态为空闲。传输错误:置设备空闲,报告传输错误。故障:置设备空闲,报告设备错误。访管中断的处理:根据系统调用号查得系统调用程序的入口地址,并转入执行。2.4向量中断向量中断:中断发生时由中断源引导CPU进入中断处理程序。中断向量:由中断处理程序入口地址及

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论