




已阅读5页,还剩139页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章操作系统的逻辑结构 主讲 张玉宏yhily 补充理解资料 解释几个重要术语 操作系统的构件 我们把组成操作系统程序的单位称作操作系统的构件 剖析现代操作系统 其构成操作系统的基本单元除内核之外 主要还有进程 线程 类程和管程 1 什么是进程 1 进程的定义 一个具有一定独立功能的程序在某个数据集合上的一次动态执行过程 简单的可以理解为一个程序的动态执行 进程进程与程序的区别 进程是一个动态的概念 而程序则一个是静态的概念 程序是指令的有序集合 没有任何执行的含义 而进程则强调执行过程 它动态的被创建 并被调度执行后消亡 进程是一个能独立运行的单位 能与其它进程并行活动 具有并行特性 而程序没有 进程是竞争计算机系统资源的基本单位 也是进行处理机调度的单位 同一个程序同时运行于若干不同的数据集合上 它将属于若干个不同的进程 2 什么是线程 早期 进程是操作系统中资源分配以及系统调度的独立单位 由于每个进程拥有自己独立的存储空间和运行环境 进程和进程之间并发性粒度较粗 通信和切换的开销相当大 要更好地发挥硬件提供的能力 如多CPU 要实现复杂的各种并发应用 单靠进程是无能为力的 于是 近年来开始流行多线程 结构 进程 Multithreadedprocess 亦叫多线程 2 什么是线程 线程是进程中一条执行路径 每个进程中允许有多个并行执行的路径 在一个多线程环境中 进程是系统进行保护和资源分配的单位 而线程才是系统进行调度的单位 在一个进程中包含有多个可并发执行的控制流 而不是把多个控制流一一分散在多个进程中 这是并发多线程程序设计与并发多进程程序设计的主要不同之处 关于线程的比喻 假设某家庭主男正在准备晚餐 微波炉里正烤着面包 咖啡壶里正煮着咖啡 煤气灶边忙着煎鸡蛋 正忙活时 电话铃也想起来了 老婆打电话来说自己不喜欢喝咖啡 她想喝牛奶美容 如果把准备晚餐比作运行的进程的话 那么在没有线程的机制里 他不能同时干这些事情 只能一件一件的干 运行单一的进程 因此他的炊具 CPU等硬件 没有得到充分的利用而稍微懂得统筹安排时间的人 有线程的机制里 他就会边关照着微波炉和咖啡壶 还可注意不把蛋煎糊了 如果电话铃响了 还可以把电话夹在腋窝下接电话 答应老婆用电磁炉给她热她爱喝的牛奶 创建新的线程 如此一来当然效率大大提高了 这就是多线程任务 3 什么是内核 现代操作系统中大都采用了进程的概念 为了解决系统的并发性 共享性和随机性 使进程能协调地工作 单靠计算机硬件提供的功能是十分不够的 例如 进程调度工作目前就不能用硬件来实现 而进程自己调度自己也是困难的 所以 系统必须有一个部分能对硬件处理器及有关资源进行首次改造 以便给进程的执行提供良好的环境 这个部分就是操作系统的内核 内核的功能 一般而言 内核提供以下三方面功能 1 中断处理 当中断事件产生时 先由内核的中断处理例行程序接受并进行原则处理 它分析中断事件的类型和性质 进行必要的状态修改 然后交给进程或模块去处理 例如 产生外围设备结束中断事件时 内核首先分析是否正常结束 如果是正常结束 那么 就应释放等待该外围传输的进程 又如当操作员请求从控制台输入命令时 内核将把这一任务转交给命令管理进程或模块去处理 内核的功能 2 进程程调度 主要职能是分配处理器 当发生了一个事件之后 可能一个进程要让出处理器 而另一个进程又要获得处理器 短程调度按照一定策略管理处理器的转让 以及完成保护和恢复现场的工作 内核的功能 3 原语管理 原语是内核中一个完整的过程 为了协调进程并发工作和共享资源 同步原语是必不可少的此外还有其它原语 如启动外围设备工作的启动原语 若启动不成功则请求启动者应等待 显然 这个启动过程应该是完整的 否则在成为等待状态时 可能外围设备已经空闲 关于内核 内核是操作系统对裸机的第一次改造 内核和裸机组成了一台虚拟机 进程或模块就在这台虚拟机上运行 它比裸机的功能更大 4 什么是原语 所谓原语 serviceprimitive 是操作系统内核中 由若干条指令构成 用于完成一个特定的功能的一个过程 该过程在执行时是不可中断的 如 创建进程原语 create n 撤销进程原语 destroy n 阻塞进程原语 block 唤醒进程原语 wakeup n 开始课本内容 2 1概述 操作系统是一个大型的复杂的系统软件 它对整个计算机系统实施控制和管理 为用户提供灵活 方便的结构 操作系统包括处理机管理 存储管理 输入输出设备管理 文件系统管理那么如何将这些复杂的模块构成一个完整的操作系统呢 这就是操作系统的结构问题 操作系统的几种构造结构 操作系统规模庞大 结构复杂 其质量的好坏直接关系到计算机系统能否有效可靠的运行 从操作系统的发展过程来看 构造操作系统的方法有如下几种 1 整体式结构 在早期开发操作系统时 设计者只是把他的注意力放在功能的实现和获得高的效率上 缺乏首尾一致的设计思想 这种OS是无结构的 整体式系统 是最常用的组织方式 又叫模块组合法 但常被人们形容为 一锅粥 其结构其实就是 无结构 Monolithic oneunstructuredprogram 整体式结构 整个操作系统是一堆过程的集合 每个过程都可以调用任意其他过程 使用这种技术时 系统中的每一过程都有一个定义完好的接口 即它的入口参数和返回值 而且相互间的调用不受约束 整体式系统也必须采用模块化的程序设计技术 即将系统设计成若干个模块 信息被隐藏在这些模块内部 在外部只允许从预先定好的调用点访问这些模块 整体式结构 模块接口结构具有一系列的优点 主要是编制紧凑程序 便于利用内存 但其对goto无限制 缺乏清晰的程序结构 难以维护和理解 增加了维护人员的负担 MonolithicOperatingSystem MS DOSSystemStructure MS DOS writtentoprovidethemostfunctionalityintheleastspace notdividedintomodules monolithic AlthoughMS DOShassomestructure itsinterfacesandlevelsoffunctionalityarenotwellseparated MS DOSSystemStructure UNIXSystemStructure UNIX limitedbyhardwarefunctionality theoriginalUNIXOShadlimitedstructuring TheUNIXOSconsistsoftwoseparableparts SystemsPrograms TheKernel Consistsofeverythingbelowthesystem callinterfaceandabovethephysicalhardwareProvidesthefilesystem CPUscheduling memorymanagement andotheroperating systemfunctions alargenumberoffunctionsforonelevel TraditionalUNIXKernel Bach86 2 分层式OS结构 所谓分层结构 即是把操作系统划分为内核和若干模块 或进程 组成 这些模块 或进程 排列成若干层 各层之间只能是单向依赖关系 不构成循环 2 分层式OS结构 层次结构是如此构造起来的 从裸机A0开始 在它上面添加一层软件 使机器的功能得以扩充 形成了一台功能比原来机器要强的虚拟机A1 又从A1出发 在它上面添加一层新的软件 把A1改造成功能更强的虚拟机A2 就这样 添加 扩充 再添加 由底向上地增设软件层 每一层都在原来虚拟机的基础上扩充了原有的功能 于是最后实现一台具有所需操作系统各项功能的虚拟机 LayeredApproach Theoperatingsystemisdividedintoanumberoflayers levels eachbuiltontopoflowerlayers Thebottomlayer layer0 isthehardware thehighest layerN istheuserinterface Withmodularity layersareselectedsuchthateachusesfunctions operations andservicesofonlylowerlayers AnOperatingSystemLayer GeneralOSLayers LayeredOperatingSystem OlderWindowsSystemLayers OS 2LayerStructure 3 微内核结构 由于Mach操作系统成功应用了微内核 Microkernel 技术 微内核的概念近来得到了广泛的关注 尽管不同的操作系统开发者对微内核有着不同的解释 微内核技术可以看作是提供一个小型的操作系统核心 它为操作系统的扩展提供了基于模块扩充的基础 这种方法给系统带来了高度的灵活性 模块性和可移植性 已经在微机 工作站和服务器操作系统中得到广泛使用 3 微内核结构 早期操作系统实现时采用过程调用的方式 系统缺乏结构性 过于庞大 如OS 360由5000个程序员做了五年 有100万行源程序 Multics则包括2000万行 以后 模块化程序设计技术被引进来解决大型软件的开发 于是出现了分层操作系统结构操作系统被划分为进程管理 存储管理 设备管理 文件管理等等层次 它们一般都处于操作系统内核 很少分布在用户模式下 3 微内核结构 但是由于层与层之间是按功能划分的 互相之间关系密切 因此操作系统的扩充和裁减变得十分困难 并且由于许多交互卡在相邻层之间进行 还影响到系统的安全性 现代操作系统的一个趋势是将这种把代码移到更高层次的思想进一步发展 从操作系统中去掉尽可能多的东西 而只留一个最小的核心 通常的方法是将大多数操作系统功能由用户进程来实现 过去已成为操作系统传统的许多服务 现在成了与微内核交互的外部子系统 微内核思想 微内核用水平型代替传统的垂直型结构操作系统 微内核基本思想是 内核中仅存放那些最基本的核心操作系统功能 其它服务和应用则建立在微内核之外 在用户模式下运行 Layeredvs MicrokernelArchitecture 分层结构内核和微内核结构对比 分层结构内核和微内核结构对比 分层结构操作系统的内核很大 互相之间调用关系复杂 微内核结构操作系统则把大量的操作系统功能放到内核外实现 这些外部的操作系统构件是作为服务过程来实现的 它们之间的信息相互均借助微内核提供的消息传送机制实现 这样 微内核起消息交换功能 它验证消息 在构件构件之间传送消息 并授权存取硬件 分层结构内核和微内核结构对比 例如 当一个应用程序要打开一个文件 它就传送一个消息给文件系统服务器 当它希望建立一个进程或线程 就送一个消息给进程服务器 每个服务器都可以传送消息给另外的服务器 或者调用在内核中的原语功能 这是一种可以运行在单计算机中的C S结构 MicrokernelOperatingSystem 单机环境下的客户 服务器模式 微内核客户 服务器模式的优点 1 提高了系统的灵活性和可扩充性 modulardesign easytoaddservices 2 提高了OS的可靠性 smallmicrokernelcanberigorouslytested 3 可运行于分布式系统中 messagearesentwithoutknowingwhatthetargetmachineis 微内核客户 服务器模式的优点 4 支持面向对象的操作系统 OOOS componentsareobjectswithclearlydefinedinterfacesthatcanbeinterconnectedtoformsoftware WindowsNTClient ServerStructure 4 虚拟机结构 虚拟机系统的最早尝试是IBM公司的CP CMS 后来改名为VM 370 这一系统的后继产品今天仍然在IBMS 390等大型主机上广泛使用 它基于如下思想 一个分时系统应该提供以下特性 1 多道程序 2 一个具有比裸机更方便 界面扩展的计算机 VM 370的主旨在于将此二者彻底地隔离开来 虚拟机结构 虚拟机结构是在裸机上扩展一层软件 向上提供了若干台虚拟机 这些虚拟机不是那种具有文件良好特征的扩展计算机 而仅仅是裸机硬件的精确复制 它包含核心态 用户态 I O功能 中断 以及真实硬件的全部内容 虚拟机结构 因为每台虚拟机与裸机完全一样 所以每台虚拟机可以运行裸机上运行的任何操作系统 虽然虚拟机是裸机的精确复制 实际上它是一个具有比裸机更方便 灵活的计算机 例如 在奔腾CPU运行老的MS DOS程序 此时程序就是运行在虚拟8086的模式下 虚拟机结构 奔腾CPU 或其他Intel的32位CPU 也采用虚拟机的思想运行老的MS DOS程序 在设计奔腾芯片的硬件和软件时 Intel和Microsoft都意识到要使软件能够在新硬件上运行 于是Intel在奔腾芯片上提供了一个虚拟8086模式 在此模式下 奔腾机就象一台8086计算机一样 包括1M字节内的16位寻址方式 虚机机的概念结构 Non virtualMachine VirtualMachine 虚拟机 物理计算机资源通过多重化和共享技术可改变成多个虚拟机 这种技术的基本做法是 通过用一类物理设备来模拟另一类物理设备或通过分时地使用一类物理设备 把一个物理实体改变成若干个逻辑上的对应物 物理实体是实际存在的 而逻辑上的对应物是虚幻的 感觉上的 虚拟机结构 因为每台虚拟机都与裸机完全一样 所以 每台虚拟机可以运行裸机能够运行的任何操作系统 不同的虚拟机可以运行不同的操作系统而且往往如此 IntegratingtwoOperatingSystems Application TestinganewOperatingSystem 2 1 1操作系统虚拟机 对多数计算机而言 在机器语言一级的体系结构上编程是很困难的 尤其是输入输出操作 显然 程序员不想涉及硬件的这些具体细节 他需要的是一种简单的高度抽象的设备 一种典型的抽象是一张磁盘包含了一组命名的文件 每个文件可以被打开 然后进行读写 最后被关闭 其中的一些细节如数据记录格式 当前步进电机的开启状态等则对用户隐藏 2 1 1操作系统虚拟机 这种将硬件细节与程序员隔离开来 同时提供一个简洁的命名文件方式的程序 就是操作系统 它还隐藏了其他许多低层硬件的特性 包括中断 时钟 存储器等 总之 操作系统提供的每一种抽象都较低层硬件本身更简单 更易用 从这个角度看 操作系统的作用是为用户提供一台等价的扩展计算机 或称虚拟机 它比低层硬件更容易编程 2 1 1操作系统虚拟机 操作系统虚拟机 上图既可看成是一个多层虚拟机结构也可是通常操作系统的逻辑结构 2 1 1操作系统虚拟机 在裸机上配置了操作系统程序后就构成了操作系统虚拟机 一道考研题 填空题 所谓操作系统的虚拟机的概念 是指 华中科技大学2002 答案 裸机装配有操作系统 虚拟机的用户界面 操作系统虚拟机为用户提供了一个协助解决问题的装置 其功能是通过它提供的命令来实现的 用户也是通过这一组命令和操作系统虚拟机大交道的 系统所提供的全部命令的集合称为操作命令语言 它是用户和系统进行通信的手段和界面 这一界面分为两个方面 一是操作命令 又称命令接口 和系统功能调用 又称程序 接口 1 操作命令 操作命令按使用方式的不同可以分为以下三种 1 键盘命令分时系统或个人计算机系统中的用户使用键盘命令通过控制台或终端设备向系统提出请求 组织自己的程序运行 2 作业控制语言批处理系统中的用户使用这种语言编写作业说明书 组织作业的运行或提出对系统资源的申请 1 操作命令 3 图形化用户界面它以菜单驱动 图符驱动等方式为用户提供一个友好的 直观的 图文并茂的视窗环境 2 系统调用 系统调用是操作系统与应用程序之间的接口 是为用户程序或其它系统程序在执行过程中访问系统资源 调用系统功能而建立的 在用户程序中可以直接使用系统调用功能来请求操作系统提供的服务 若把操作系统比作一台为用户定义的虚拟机 那么操作命令语言就给出了虚拟机作能执行的 指令 集合 也刻画了相应的虚拟机的功能 2 1 2操作系统逻辑结构 整个操作系统在结构上类似于一个洋葱头 它由若干层组成 每一层都提供一组功能 这些功能只依赖于该层以内的各层 洋葱头的中心部分是机器硬件本身提供的各种功能 洋葱头的各个层次可以看作一系列的虚拟机 而洋葱头作为整体实现了用户要求的虚拟机 操作系统逻辑结构见下图所示 操作系统逻辑结构 操作系统逻辑结构 操作系统逻辑结构 与基本机器硬件紧挨着的是系统核 具有初级中断处理 外部设备驱动 在进程之间切换处理机以及实施进程控制和通信的功能 提供一种进程可以存在和活动的环境 系统核以外各层依次是存储管理层 I O处理层 文件存取层 调度 作业调度 和资源分配层 它们具有各种资源管理功能并为用户提供各种服务 2 2 1处理机的状态及特权指令 为什么要区分处理机的态 答 操作系统是计算机系统的最重要的系统软件 为了能正确的进行管理和控制 其本身是不能被破坏的 为此系统应能建立一个保护环境 采用的办法就是处分处理机的状态 在系统中有两类程序在运行 1 管理程序2 用户程序 2 2 1处理机的状态及特权指令 1 管理程序其担负的任务是 管理和控制者为用户提供服务负责管理和分配系统资源 2 用户程序其担负的任务是 被管理和被控制者所需资源必须向操作系统提出请求享受系统提供的服务 什么是处理机的态 处理机的态 处理机的工作状态 即处理机当前正在执行哪一类程序 依此来区分处理机的状态 计算机系统在执行上述两种不同类型的程序时 就应该有不同的权限而为此根据对资源和机器指令的使用权限 把处理执行时的两种工作状态分为核态和用户态 有的系统还将管理程序在执行时机器状态进一步细分为核态和管态 管态比核态的权限要低 而比用户态高 关于 态 的几个概念 核态 KernelMode 又称系统态 CPU执行管理程序时所处的状态 在此状态下允许CPU使用全部资源和全部指令 其中包括一组特权指令 如涉及外设的I O 改变处理机状态 修改存储保护的指令 实现对系统资源的分配与管理 为用户提供使用外部设备的服务 关于 态 的几个概念 管态 SupervisorMode 管态比核态的权限低 在此状态下 只允许使用一些在用户态下所不能使用的资源 但不能使用修改机器的状态指令 在无管态的系统 核态执行核态的所有指令 此时管态和核态是合二为一的 不再区分核态和管态的称呼 用户态 UserMode 又叫目态或常态 用户程序执行时CPU所处的状态 在此状态下禁止使用特权指令 不能直接使用系统资源与改变CPU状态 并且只能访问用户程序所在的存储空间 关于 态 的几个概念 当用户程序执行时 如果需要请求操作系统服务 则必然由用户态转为核态 即由操作系统得到控制权 在核态下执行其管理程序 服务完毕后 返回用户态 继续让用户程序执行 一道考研题 在计算机系统中 为什么要区分管态与目态 西安电子科技大学1999年试题 解答 操作系统是计算机系统中最重要的系统软件 为了能正确地进行管理和控制 其本身是不能被破坏的 因此 系统采用了区分处理机状态的办法 为操作系统程序建立一个保护环境 这样 用户程序只能在目态下运行 只能执行非特权指令 只能访问自己的存储区 从而保护了操作系统程序的正常运行 一道考研题 判断对错 操作系统程序都是在核心态下才能运行 大连理工大学2000年试题 分析 操作系统是一组控制和管理计算机硬件和软件资源 合理地对各类作业进行调度以及方便用户的程序的集合 操作系统提供的服务 一部分必须在核心态下才能运行 如进程调度 目录服务等 还有一些功能 如DOS下的外部命令 则可以由用户调用 运行在用户态下 特权指令集合 在CPU的所有指令中 有一些指令是非常危险的 如果错用 将导致整个系统崩溃 比如 清内存 设置时钟等所以 CPU将指令分为特权指令 PrivilegedInstructions 和非特权指令 对于那些危险的指令 只允许操作系统及其相关模块使用 普通的应用程序只能使用那些不会造成灾难的指令 形象地说 特权指令就是那些儿童不宜的东西 而非特权指令则是老少皆宜 特权指令集合 所谓特权指令是指具有特殊权限的指令 由于这类指令的权限最大 所以如果使用不当 就会破坏系统或其它用户信息 因此为了安全起见 这类指令只能用于操作系统或其它系统软件 而一般不直接提供给用户使用 特权指令集合 在核态下 操作系统可以使用所有指令 包括一组特权指令 这些特权指令执行如下各种功能 允许和禁止中断在进程之间切换处理存取用户主存保护的寄存器执行I O操作停止一个中央处理器的工作 常见特权指令与非特区指令 特权指令举例 启动输入输出设备 设置时钟 控制中断屏蔽位 清内存 建立存储键 加载PSW 程序状态字 等非特权指令举例 访管指令 加法减法等 用户态 管态 在下列情况下 由用户态转向管态 用户进程访问操作系统 要求操作系统的某种服务 这种访问称为管理程序调用发生一次中断在一个用户进程中产生了一个错误 这种中断称为内部中断 并能调用中断处理程序进行处理在用户态下企图执行一条特权指令 这种企图可被看作一中特殊类型的错误 并按 处理从管态转回用户态是用一条指令实现的 这条指令本身也是特权指令 2 2 2存储器 存储器 主存 内存 中央处理机能直接访问的存储器称为主存储器 用来存放正在或将要执行的系统和用户程序和数据以及程序执行时要求的临时存储空间 辅存储器 辅存 外存 中央处理机不能直接访问的存储器 如磁盘 磁带 光盘等 用来存放大量的数据信息 主存储器的类型 主存储器的类型主要可以分为如下两种 随机访问存储器RAM randomaccessmemory 只读存储器ROM Read onlymemory 在微机中有这两种类型的存储 一种是ROM称为BIOS 用来存放基本的I O程序 另一种是RAM 通常所说的128MB 256MB内存 存储器组织 当前计算机系统中 采用三种运行原理不同 性能差异很大的存储介质 来分别构建高速缓冲存储器 主存储器和辅助 虚拟 存储器三级结构的存储器系统如下图所示 存储器组织 这种多级结构的存储器使CPU大部分时间访问高速缓存 速度最快 仅在从缓存中读不到数据时 才去读主存 速度略慢但容量较大 当从主存中还读不到数据时 才去批量读辅助 虚拟 存储器 速度很慢容量极大 这样就解决了对速度 容量 成本的需求 多级结构的存储器具有良好的性能 价格比是建立在程序运行的局部性原理之上的 三级不同的存储器的区别 选用生产与运行成本不同的 存储容量不同的 读写速度不同的多种存储介质 组成一个统一管理的存储器系统 高速缓存 使用静态存储器芯片 主存储器 使用动态存储器芯片 虚拟存储器 使用辅存磁盘存储器上的一片区域 Win2000的虚拟内存 存储器组织 2 存储器组织3 存储保护时钟是操作系统运行时必不可少的硬设施 它以固定的时间间隔产生中断信号 这对于实施进程调度 计算系统资源的消耗 实时控制等功能是必不可少的 在操作系统中需时钟支持的工作有 2 2 4中断和俘获 中断 interrupt 定义 是指程序执行过程中 当发生某个事件 例如电源掉电 定点加法溢出或I O传输结束等 时 中止CPU上现行程序的运行 引出处理该事件的服务程序执行的过程 处理完毕后返回断点 继续执行 整个中断过程示意 中断技术 这种处理突发事件的能力是由硬件和软件协作完成的 首先 由硬件的中断装置发现产生的中断事件 然后 中断装置中止现行程序的执行 引出处理该事件的程序来处理 中断技术 在不同的硬件结构中 通常有不同的中断源和不同的中断装置 但它们有一个共性 即 当中断事件发生后 中断装置能改变处理器内操作执行的顺序 可见中断是现代操作系统实现并发性的基础之一 中断源分类 引起中断的事件称为中断源 发现中断源并产生中断的硬件称中断装置不同硬件结构的中断源各不相同 从中断事件的性质来说 可以分成强迫性中断事件和自愿性中断事件两大类 强迫性中断事件 强迫性中断事件不是正在运行的程序所期待的 而是由于某种事故或外部请求信息所引起的 这类中断事件大致有以下几种 机器故障中断事件 例如 电源故障 主存储器出错等 程序性中断事件 例如 定点溢出 除数为0 地址越界等 外部中断事件 例如 时钟的定时中断 控制台发控制信息等 输入输出中断事件 例如 设备出错 传输结束等 自愿性中断事件 自愿性中断事件是正在运行的程序所期待的事件 这种事件是由于执行了一条访管指令而引起的 它表示正在运行的程序对操作系统有某种需求 一旦机器执行到一条访管指令时 便自愿停止现行程序而转入访管中断处理程序处理 例如 要求操作系统协助启动外围设备工作 两类中断事件的响应过程对比图 两类中断事件的响应过程略有不同 如下图所示 按照中断信号的来源的中断分类 还可以按照中断信号的来源 把中断分为两类 1 外中断一般又称中断 是指来自处理器和主存储器之外的中断 包括 电源故障中断 时钟中断 控制台中断和I O中断等 按照中断信号的来源的中断分类 2 内中断是指来自处理器和主存内部的中断 一般又称陷入 trap 或异常 包括 通路校验错 主存奇偶错 非法操作码 地址越界 页面失效 调试指令 访管中断 算术操作溢出等各种程序性中断等 Note 访管中断 访管中断对操作系统提出某种需求 如请求I O传输 建立进程等 时所发出的中断称为访管中断 它是正在运行的程序有意识安排的 通常是由于程序员在编制程序时 因要求操作系统提供服务而有意使用访管指令 特权指令 或系统调用 从而导致中断的 所以又称其为访管中断 普通中断和陷入的区别 普通中断和陷入的区别如下 中断是由与现行指令无关的中断信号触发的 通常在两条机器指令之间才可以响应中断 一般来说 中断处理程序提供的服务不是为当前进程所需的 而陷入则是由处理器正在执行现行指令而引起的 因而 一条指令执行期间允许响应陷入 通常 陷入处理程序提供的服务是为当前进程所用的 有时称之为自陷程序 一道考研题 选择题 用户程序在目态下使用特权指令引起的中断属于 2002华中科技大学 硬件中断程序中断外部中断访管中断答案D 中断装置 发现中断源并产生中断的硬件称中断装置 迄今为止 所有的计算机系统都采用硬件和软件结合的方法实现中断处理 整个中断过程由中断响应 或称中断进入 和软件的中断处理过程组成 中断处理 NOTE 当硬件完成了中断进入过程后 由相应的中断处理程序得到控制权 进入了软件的中断处理过程 如下图所示 中断处理 中断处理过程主要有如下三项工作 保护现场和传递参数 执行相应的中断 或自陷 处理程序 恢复和退出 注 在中断进入时由硬件保护了被中断程序的PC和PS 在中断处理中保护各寄存器的值和其它状态信息 中断处理流程的软硬件分工 保护现场与恢复现场 什么是现场 是指在中断的那一时刻能确保程序继续运行的有关信息主要包括 后继指令所在主存的单元号程序运行所处的状态指令执行情况以及程序执行的中间结果等 中断现场 什么叫保护现场当中断发生时 立即将现场信息保存到主存中什么是恢复现场 程序重新运行之前 把保留的该程序现场信息从主存中送至相应的指令计数器 通用寄存器或一些特殊的寄存器中 程序状态字 任何程序运行时都有反映其运行状态的一组信息 有的机器将这些信息集中在一起就称之为 程序状态字 ProgramStateWord 存放这些信息的寄存器称为程序状态字寄存器 但是并不是所有机器都是这样集中存放的 也有采用分散存放的 什么是程序状态字 程序状态字是反映程序执行时机器所处的现行状态的代码 主要内容包括 程序现在应该执行哪条指令当前指令执行情况机器处于何种程序状态 核态 用户态 程序在执行时应该屏蔽哪些中断 处理机运行级 寻址方法 编址 保护键响应中断的内容 程序状态字 上述信息内容显然是在执行指令时都要用到的或者可能要用到的 这些信息基本上反映了程序运行过程中指令一级的瞬间状态 这些信息存放在什么位置 不同的机器可以有不同的方法 如IBM370把这些信息集中存放在一个双字的机器字中 称为程序状态字 程序状态字 而PDP11系统机程序状态信息存放在两个寄存器中 一个是程序计数器 PC 一个是处理器状态寄存器 PS 例 PDP 11系列机的PS PC是另一个寄存器 如下图所示 什么是中断响应 中断响应是当中央处理机发现已有中断请求时 中止现行程序执行 并自动引出中断处理程序的过程 中断响应的实质 中断响应的实质 交换指令地址及处理机的状态信息 以达到如下目的 保留程序断点和有关信息自动转入相应的中断处理程序 PDP11系列及把程序状态字信息存放在两个寄存器中 一个指令计数器 PC 一个处理器状态 PS 其中断示意图如下所示 IBM中大型机中断响应过程 一道考研题 中断响应的实质是什么 北京大学1997年试题 答案 中断响应的实质是交换指令执行地址和处理器状态信息 向量中断和中断向量 当中断发生时 由中断源自己引导处理机 CPU 进入中断服务程序的中断过程称为向量中断 为了提高中断的处理速度 在向量中断中 对于每一个中断类型都设置一个中断向量 向量中断和中断向量 中断相量就是存储类型中断的服务例行程序的入口地址和处理器状态字的存储单元 系统中所有中断类型的中断向量放在一起 就形成了中断向量表 例如下图所示 向量中断和中断向量 在向量中断中 由于每一个中断都有自己的中断向量 所以当发生某一中断事件时 可直接进入处理该事件的中断处理程序 向量中断和中断向量 微型机一般采用向量中断机制 具有向量机制的计算机 PDP11机器 的中断向量包括两个字 中断服务例行程序入口地址中断服务例行程序所用的处理状态字 PSW 一道考研题 选择题 中断向量地址是 子程序入口地址中断服务例行程序入口地址中断服务例行程序入口地址的地址例如程序入口地址 2002年华中科技大学 答案 B 一道考研题 选择题 中断发生时 由硬件保护并更新程序指令计数器PC 而不是由软件完成 主要是为了 华中科技大学1998年试题 A 提高处理速度 B 使中断程序易于编制 C 节省内存 D 能进入中断处理程序并能正确返回 答案分析 一次中断过程分为中断进入 由硬件负责 和中断处理过程 由软件负责 在中断进入过程中 首先保存原先运行程序的PC PS值 然后从中断向量地址中得到PC PS值放入寄存器 软件的中断处理过程是 先保存现场信息和参数传递 再执行中断处理程序 最后恢复和退出中断 简要地说 一次中断 两次保护现场 分步保护现场的原因是 进入软件的中断处理后 PC PS寄存器 硬件 里被填上了新内容 因此 PC PS的保护只能由硬件完成 解答 答案是D 两道考研题 填空题 1 中断响应将保留处理机状态字和指令计数器的内容 这项工作是由计算机的 完成的 华中科技大学2001 2 操作系统具备处理同时性活动的能力 最重要的硬件支持是 华中科技大学2002 答案 1 硬件2 中断机构 中断的优先级 在计算机执行的每一瞬间 可能有几个中断事件同时发生 例如 由非法操作码引起程序性中断的同时可能发生外部中断要求 这时 中断装置如何来响应这些同时发生的中断呢 中断的优先级 一般说 中断装置按照预定的顺序来响应 这个按中断请求轻重缓急的程度预定的顺序称为中断的优先级 中断装置首先响应优先级高的中断事件 中断的屏蔽 主机可以允许或禁止某类中断的响应 称之为中断的屏蔽如主机可以允许或禁止所有的输入输出中断 外部中断 机器校验中断以及某些程序性中断 中断的屏蔽 对于被禁止的中断 有些以后可继续响应 有些将被丢弃 例如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高速养护施工方案(3篇)
- 新店开业当天活动策划方案(3篇)
- 信号总线施工方案(3篇)
- 高级执法考试题库及答案
- 征兵工作教学课件
- 北京市门头沟区2023-2024学年八年级下学期期末质量监测物理题目及答案
- 写高三数学题目及答案
- 小学智力测试题目及答案
- 高二物理《浮力原理的应用:高中物理实验教程》
- 市场资源置换合作合同
- JB∕T 13977-2020 液化天然气(LNG)低温潜液泵
- 年度设备维护保养计划表
- 110kV企业变电站短路电流计算及继电保护整定计算
- 口咽通气道的使用方法
- 2022年晋能控股煤业集团有限公司招聘笔试题库及答案解析
- 福建师范大学各学生组织部门简介
- CAMDS操作方法及使用技巧
- (新版)铁路防洪知识题库(含答案)
- 山西省太原市小升初语文试卷(含答案)
- 飞行区基础知识
- 器械清洗质量抽查记录表
评论
0/150
提交评论