第5章操作系 统 操作系统在用户和计算机硬件之间提供了一个附加层,负责管理计算机的软硬件资源, 并为用户使用计算机提供方便。本章主要讨论以下问题。 (1)什么是操作系统? 为什么要在计算机硬件之上设置操作系统? (2)为了方便用户使用计算机,操作系统应该提供什么样的用户界面? (3)操作系统启动后就接管了计算机,操作系统的工作方式是什么? (4)计算机的软硬件资源有哪些? 操作系统如何管理计算机的软硬件资源? 【情景问题】操作系统为我们做了什么 操作系统是计算机裸机之上的第一层软件程序。如果没有操作系统,用户(包括应用程 序)就要直接与计算机硬件进行交互,不仅要熟悉计算机的硬件系统,而且还要了解各种外 部设备的物理特性,这显然是非常不方便的。操作系统为用户使用计算机搭建了一个最基 本的工作环境,换言之,计算机只有加载了相应的操作系统,用户(尤其是普通用户)才可以 方便地使用计算机。 操作系统就像是一个大管家,接收来自应用软件和用户的操作请求,然后把请求分配给 执行具体操作的硬件,硬件才会开始工作完成指定操作。例如,在Windows环境下,用户双 击一个Word文档的图标,屏幕上就会出现该文档的编辑窗口,如果用户想要打印这个文 档,只需要单击“打印”按钮,在对话框中进行相应设置后,即可完成打印。其实,用户的双击 操作是向操作系统发出一个操作请求,操作系统要确定相应的应用程序存放在磁盘的什么 位置,启动对磁盘的读操作,按照内存空间的当前状态把应用程序加载到合适的存储区域, 然后启动应用程序;用户的打印操作也是向操作系统发出一个打印请求,操作系统启动打印 驱动程序,并将要打印的文档传送到打印缓冲区,然后由打印驱动程序控制打印机完成打印 操作,如图5. 1所示。 图5.操作系统接收和分配用户的操作请求 1 计算机加载了相应的操作系统之后,就构成了一个可以协调运转的计算机系统。例如, 你在计算机上同时打开了文字处理软件、音频播放器和微信,在编辑文档的同时听着舒缓的 第5章操作系统 音乐, 和微信好友聊着天, 这时CPU 就同时运行着很多软件。为了满足并发的需求, 操作 系统把每个程序的运行虚拟化成进程,CPU 在一个进程上运行几十毫秒后快速切换到另一 个进程, 一两秒钟内就把所有进程都运行了一遍。CPU 的运行速度非常快, 但是CPU 的每 一瞬间也只能执行一个进程, 如果没有操作系统的管理和协调,CPU 的利用率就非常低。 任何一个程序的执行都要使用CPU 、内存、外部设备等资源, 计算机资源是有限的, 不可能 让一个程序独享所有的资源, 操作系统以管理者的身份来有效地管理计算机的软硬件资源, 提高资源的使用效率。 5.什么是操作系统 1 在计算机系统中, 操作系统位于硬件和软件之间, 对下层的硬件进行管理, 并为上层的 应用软件提供接口。 5.1 操作系统的定义 1. 任何一个正在使用计算机的用户都不可避免地使用计算机的资源, 其中硬件资源包括 处理器、内存和各种外部设备,软件资源包括各种以文件形式存在的程序、数据和文档。例 如, 我们需要分配内存空间来存放正在运行的程序, 程序运行时需要从外界输入数据, 程序 运行的结果需要输出到屏幕上、打印出来或存到磁盘上。在多道多任务环境下,并发执行的 程序就产生了对处理器的竞争、对内存的竞争、对外部设备的竞争, 总之是对各类计算机资 源的竞争。凡是在供不应求的地方都应该有一个管理者, 操作系统是计算机系统的管理者, 按照一定的策略管理和调度计算机的软硬件资源来满足用户对计算机的基本操作需求。显 然, 资源越多, 用户需求越多, 操作系统就越复杂。 从资源管理的角度, 操作系统的描述性定义是: 操作系统是负责管理计算机的软硬件 资源、提高计算机资源的使用效率、方便用户使用的程序集合。 .. .... .... .... .. .. ................................................................................ .. 操作系统是一个程序集合,这个程序集合应该包含哪些功能没有严格定义。1997 年 10 月,美国司法部指控微软公司把IE 浏览器与Windows 操作系统绑定到一起, 违反了 为保护正常竞争而制定的反托拉斯法。但微软公司声称IE 浏览器本就是Windows 的一 部分,如果从操作系统中删除浏览器,将对操作系统造成损害。最终微软公司胜诉。 .............. .. ........ .................... .................. .................... .............. 操作系统的作用主要有以下3 点。 (1) 方便性。一个未配置操作系统的计算机是极难使用的, 因为计算机硬件只认识0 和1, 用户要想与计算机交流就必须使用机器指令; 要想输入数据或打印数据, 也必须自己 启动并控制相应的外部设备。 (2) 有效性。CPU 的高速和外部设备的相对低速是计算机硬件无法逾越的基本矛盾, 如果没有操作系统的管理,CPU 和外部设备就会经常处于空闲状态, 尤其CPU 更容易“ 一 天打鱼, 千天晒网”。操作系统通过合理地组织计算机的工作流程, 改善系统的资源利用率 并提高系统的吞吐量。 (3) 提供应用软件的运行环境。操作系统位于应用软件和硬件之间, 掩盖了不同硬件 95 计算机学科概论(第3版) 的设计细节,对应用软件提供统一接口。因此,应用软件的兼容性通常由硬件和操作系统共 同定义,人们经常使用“软硬件平台”这个术语来描述运行应用软件所依赖的硬件系统和操 作系统,所有的应用软件都要确定在哪个操作系统上能够正确执行,2所示。 如图5. 图5.运行应用软件的软硬件平台 2 操作系统是紧邻硬件的第一层软件,其他软件(包括各种系统软件、工具软件和应用软 件)则是建立在操作系统之上的。因此,操作系统在计算机系统中占据着非常重要的地位, 操作系统的性能高低,决定了计算机的潜在硬件性能是否能发挥出来;操作系统的安全可靠 程度,决定了计算机系统的安全性和可靠性。 5.2 操作系统的用户界面 1. 作为用户和计算机之间的操作接口,操作系统应该提供方便友好的用户界面,以改善用 户与计算机的交互环境。通常有两种用户界面:命令行用户界面和图形用户界面。 1. 命令行用户界面 所谓命令行用户界面就是用户通过键盘在终端上输入命令和操作系统进行交互,操作 系统执行命令的结果以字符界面的形式提供给用户,如图5.因此, 3所示, 命令行用户界面 也称为面向字符的操作系统。DOS 和UNIX 都属于命令行用户界面。 图5. 3 DOS 的命令行界面 在命令行界面下,用户能够灵活而高效地操纵计算机,但是通常需要记忆大量的命令语 句。目前,命令行用户界面并没有过时,在手机、微波炉、立体音响以及其他内存和功能都很 有限的消费设备上还是采用命令行界面,通过网络传送数据的应用程序也常常采用命令行 界面。事实上,互联网的爆炸式发展使得命令行界面的UNIX 操作系统大受欢迎。 2. 图形用户界面 图形用户界面主要由窗口、图标、菜单和指点设备(如鼠标)组成,如图5.用户不 4所示, 96 第5章操作系统 仅可以用键盘操作计算机, 也可以用鼠标对出现在图形界面上的对象直接进行操作。 Windows 就属于图形用户界面,UNIX 和Linux 也提供了图形界面形式。 从用户角度看, 图形用户界面至少有以下两点好处。 (1) 直观化。可视化的图标( 如垃圾站、文件夹等) 比输入命令更容易操作。 (2) 人性化。几乎所有对话框都有撤销功能, 允许用户反悔。但是这些好处是需要代 价的, 需要更贵的图形显示系统、更大的内存空间、更大的磁盘空间、更快的处理器以及更复 杂的软件来支持。 图5.s的图形界面 4 Window .. .. .. .. .. .. .. .. .. .. .. .. ................................................................................ .. MS-DOS 开始时只支持20 多条命令, 只能显示黑白的简单字符, 只能支持BASIC 语言。后来不断发展成熟, 能支持100 多条命令, 能显示彩色的简单图形, 支持多种高 级语言, 与此同时, 对硬件也提出了更高的要求。事实上, 每当英特尔公司推出一款新 .................... .. ........ .................... .................. .................... .............. 的微处理器, 微软公司也会推出一款新的操作系统, 每一款在功能上都有一定的进步, 但对机器性能的要求也提高了, 刺激了用户的购买欲, 同时, 也推动了个人计算机的发 展。Wintl 联盟( 即微软与英特尔的联盟) 曾经瓜分了PC 市场60% 的利润。 e 5.3 操作系统的分类 1. 随着大规模集成电路和计算机体系结构的发展, 以及计算机应用领域的不断扩展, 形成 了微机操作系统、网络操作系统、分布式操作系统和嵌入式操作系统等适用于不同体系结构 和应用的操作系统。任何操作系统都以自己特定的方式管理计算机资源。 1. 微机操作系统 配置在微型计算机上的操作系统称为微机操作系统, 分为单用户单任务操作系统、单用 户多任务操作系统和多用户多任务操作系统。所谓任务指的是计算机完成的一项工作, 计 算机执行一个任务通常就对应着运行一个应用程序。目前, 在32 位微机上配置的操作系统 大多数是单用户多任务操作系统。 单用户单任务操作系统只允许一个用户使用, 且只允许用户程序作为一个任务运行, 如 DOS 和CP /M。单用户多任务操作系统只允许一个用户使用, 但允许将一个用户程序分成 97 计算机学科概论( 第3版) 若干任务并发执行, 如Windows 和OS /2。多用户多任务操作系统允许多个用户通过各自 的终端使用, 且允许将每个用户程序分成若干任务并发执行, 如UNIX 和Linux。 2. 网络操作系统 网络操作系统是用户和计算机网络之间的接口, 也就是说, 用户通过网络操作系统使用 计算机网络资源。与单机操作系统不同, 网络操作系统是开放系统, 除了具有单机操作系统 的功能外, 还应该支持网络通信、网络资源共享以及其他网络服务功能。典型的网络操作系 统有UNIX 和NetWare。 3. 分布式操作系统 在分布式系统上配置的操作系统称为分布式操作系统。所谓分布式系统是指由多个处 理单元连接而成的系统, 其中, 每个处理单元既具有高度的自主性又相互协同, 能在系统范 围内实现资源管理、动态分配任务、并行运行分布式程序。与网络操作系统的不同之处在 于: 分布式操作系统淡化了所访问资源的位置, 用户使用分布式系统资源或请求系统服务 就像在使用本机资源或请求本机服务一样。 4. 嵌入式操作系统 在嵌入式系统上配置的操作系统称为嵌入式操作系统, 例如, 在手机、工控机、汽车等电 子设备中都运行着相应的嵌入式操作系统。嵌入式操作系统具有单机操作系统的功能, 但 同时具有占用空间小、实时性强、专用性强、执行效率高、软件固化等特点。 思考题 1. 如何理解软件的跨平台特性? 你使用过的哪些软件具有跨平台特性? 2. 为什么嵌入式操作系统要进行软件固化呢? 请探讨其合理性。 5.操作系统的工作方式 2 2.操作系统的启动 5.1 操作系统的启动过程是将操作系统从辅助存储器( 如硬盘) 加载到内存中并开始运行的 过程。操作系统的启动是由驻留在BIOS (BasicI nputOutputS ystem , 基本输入输出系统) 中的引导程序来完成的, 这些程序被固化到计算机主板的ROM 芯片上。 ................................................................................ .. .. ...... .... ...... .... .. .. ...................... .. ........ .................... .................. .................... .............. 对计算机系统中的输入/输出设备进行控制, 是连接软件程序和硬件设备之间的枢纽。 就PC 而言,BIOS 包括控制键盘、显示屏幕、磁盘驱动器、串行通信设备和其他功能的 程序代码, 在每次开机或重新启动计算机时,BIOS 便会自动开始运行。CMOS 是计算 机主板上的一块可读写的芯片, 用来保存当前系统的硬件配置情况和用户对某些参数 的设定。CMOS 由主板上的充电电池供电, 即使系统断电参数也不会丢失。 BIOS 与CMOS 的区别 BIOS 是一组设置计算机硬件的程序, 保存在主板上的一块ROM 芯片中, 它直接 操作系统的核心指令称为内核, 内核提供操作系统中最重要的服务, 例如内存管理、设 备驱动程序等。启动操作系统实质上是将操作系统的内核加载到内存中, 在计算机运行的 过程中, 内核会一直驻留在内存中, 操作系统的其他部分则存储在硬盘上, 需要时才被载入。 98 第5章操作系统 所谓加载操作系统实质上是指加载操作系统的内核。 不论是台式机、笔记本电脑还是手机, 无论是Windows、Linux、An droid 还是iOS 系统, 所有设备在开机启动过程中都会经过以下4 个阶段: 机器自检、查找引导设备、加载内核、 登录系统, 具体过程如下。 (1) 机器自检。打开与计算机相连的外部设备( 如显示器、打印机) 的电源开关, 然后打 开计算机的电源开关;CPU 执行BIOS 中的系统启动程序进行机器自检, 检测系统各个部 件, 如总线、主板、时钟、键盘、鼠标等部件是否正常连接, 同时显示检测信息; 如果在机器自 检中发现问题, 系统将给出提示信息或鸣笛警告。 (2) 查找引导设备。CPU 根据BIOS 设定的启动顺序, 找到优先启动的设备, 例如本地 磁盘、USB 设备等, 然后从这个设备启动系统。 (3) 加载内核。CPU 执行BIOS 中的引导程序, 将操作系统的内核加载到内存中, 然后 将系统的控制权交给操作系统, 接下来由操作系统控制计算机的所有活动。在这个阶段, 有 的操作系统会对硬件进行重新检测, 同时加载各个设备的驱动程序, 然后操作系统的内核才 接管了BIOS 的工作。 (4) 登录系统。操作系统根据系统配置信息, 启动并执行一些系统程序, 如提示用户输 入用户名和密码。出现操作系统的用户界面( 如Windows 桌面) 后, 用户就可以使用计算 机了。 ................................................................................ .. .......... .. .. Windows 注册表是帮助Windows 控制硬件、软件、 .......... .. 用户环境和界面的数据文件, 包括所有外部设备的驱动程序。在Windows 目录下, 注册表一般命名为system.d at e 程序存取注册表的记录。 at。可以通过Win ........ .................... .................. .................... .............. dows 目录下的regedit .e x ser.d 和u 5.2 操作系统的中断类型 2. 操作系统是硬件与软件的中间接口, 是计算机资源的管理者。那么, 操作系统是如何管 理如此复杂的硬件设备呢? 又是如何向应用程序提供服务的呢? 答案是中断, 操作系统的 常态是睡眠, 只有发生中断时, 操作系统才被唤醒并处理事务。 中断指在程序执行的过程中遇到需要紧急处理的事件时, 暂时终止CPU 正在执行的 程序, 转去执行相应的事件处理程序, 处理完成后再返回原程序被中断处或调度其他程序执 行的过程。引起中断的事件称为中断源, 中断源向CPU 提出处理的请求称为中断请求, CPU 暂停现行程序而转为响应中断请求的过程称为中断响应。操作系统是“ 中断驱动” 的, 换言之, 中断是唤醒操作系统的唯一方式。根据中断源的不同, 有以下3 种中断。 (1) 硬件中断。硬件中断是由硬件发出的中断, 包括输入输出设备发出的数据交换请求、 时钟中断、硬件故障中断等。例如, 用户在键盘按下一个按键时, 键盘会发出中断信号去唤醒 操作系统来处理这个事件。再如, 总线、串并口等硬件故障引发的中断, 向CPU 请求处理。 (2) 软件中断。软件中断是应用程序触发的中断, 通常是正在执行的应用程序需要操 作系统提供服务, 包括各种系统调用。例如, 应用程序要执行打印操作、文件读写操作、网络 连接操作等, 由应用程序发出软件中断, 唤醒操作系统进行相应的处理。 (3) 异常中断。异常中断指应用程序在运行过程中出现了非正常的失误, 需要操作系 99 计算机学科概论(第3版) 统进行处理。例如,程序中出现除以零的语句、操作结果发生溢出等算术异常;再如,应用程 序读写一个地址,而这个地址被保护起来不能被用户程序读写,也会发生异常中断。需要说 明的是,异常并不全是错误,例如,即将运行的某一段程序没有从硬盘调入内存,也会产生异 常中断,唤醒操作系统将没有载入内存的程序段调入内存。 思考题 1. 每次开机时都要重新启动操作系统,这是不是很麻烦? 是否可以将操作系统整体固 化到硬件中? 2. 现代计算机在关机时通常都要花费几分钟的时间,开机时启动操作系统需要时间, 关机为什么也需要时间呢? 3. 为什么操作系统采用中断驱动的方式? 中断技术的前身是什么? 操作系统有更好 的工作方式吗? 5.操作系统的基本功能 3 可以把计算机系统划分为硬件、操作系统和软件3个层次。从资源管理的角度,操作系 统应该具有处理器管理、存储管理、设备管理、文件管理等功能。 3.处理器管理 5.1 处理器是计算机系统最重要的硬件资源。为了提高处理器的利用率,现代操作系统一 般都允许计算机同时执行多个任务。现在主流的计算机通常都配置一个或多个处理器,每 个处理器包含多个核。尽管如此,核的数量远远小于需要执行的程序的数量,每个等待执行 的程序(也称为任务)都要抢占CPU 资源,因此,操作系统需要合理安排和调度任务,使得 处理器资源得以充分利用。下面以单处理器为例进行讨论,例如Windows操作系统启动成 功后,就进入了并发执行的多任务处理状态,5所示。 如图5. 图5.s操作系统同时执行多个任务 5 Window 在多任务环境下,通常会有多个任务并发地使用处理器,操作系统应该能够按照有效的 100 第5章操作系统 策略采用合理的调度算法组织多个任务在系统中运行,其中,有效主要指系统的运行效率和 资源的利用率,合理主要指操作系统对于不同的用户程序要公平,以保证系统不发生“饥饿” 和“死锁”。 操作系统维护了一个就绪任务队列存放请求CPU资源的就绪任务,这个队列中的所 有任务都在等待分配CPU资源。如何将CPU从当前运 行的进程中释放出来呢? 计算机系统通过Timer硬件 发出时钟中断,然后执行Timer中断服务程序的调度 器,根据当前的任务执行情况,将CPU分配给就绪队列 中的任务。如图5.操作系统为每个任务分配一 6所示, 个定长的时间片,在此时间内,CPU由获得该时间片的 6 任务所占据,当时间片被用完时,Timer硬件便会自动发 图5.按时间片切换CPU 出中断,正在执行的任务被释放并存放到就绪队列中,调度器从就绪队列中选择一个任务来 使用CPU 。 每个任务在执行过程中,如果时间片消耗完毕,该任务就被调度器切换出CPU 。但是, 当该任务被再次执行时,如何恢复运行呢? 这就涉及以下两个问题:①程序从哪里开始执 行?②程序恢复后应该从切换出去的语句(称为断点)开始执行,那么之前的运行环境怎么 恢复? 操作系统为每个执行中的程序(任务) 图5.now 创建了一个进程,7所示是Wids环境下 正在执行的进程。为了能够对进程进行有效的控制,操作系统为每个进程创建了进程控制 块(ProcesingControlBlock),用以保存每个任务执行时的所有环境信息,包括程序被切换 出去时执行到的语句,以及运行过程中产生的中间数据和当时的堆栈等信息。每当进程切 换出去时,进程控制块随着进程一起保存到了内存,等到该进程重新占有CPU时,能够根 据进程控制块恢复到切换之前的运行环境,使得程序继续执行。这个一进一出的过程称作 进程交换。显然,进程切换是比较花费时间的,应该尽量减少切换的次数,因此,调度的好坏 就关乎整个系统的性能。 图5.s环境下正在执行的进程 7 Window 101 计算机学科概论(第3版) 5.2 存储管理 3. 在冯·诺依曼体系结构下,计算机处理的数据和指令都必须存储在内存中,因此,内存 是计算机最重要的资源之一。随着计算机技术的发展,虽然存储容量一直在不断扩大,但仍 然不能满足现代计算机系统的需要,内存仍然是一种宝贵又稀缺的资源。存储管理的对象 是内存(也称主存), 主要功能包括分配和回收内存空间、对存储信息实现有效保护、扩充内 存等,为多任务运行提供支撑,提高存储空间的利用率。 1. 分配和回收内存空间 操作系统应该能够对内存资源进行分配和回收。在多任务环境下,由于操作系统和多 个应用程序共存于内存之中(注意:操作系统本身也是 程序,也需要占用内存空间), 存储管理应该为正在运行 的程序分配内存,使得这些程序都占有各自的内存空间, 如图5.存储管理还应该 8所示。在一个任务结束执行时, 能够将分配的内存资源进行回收,以便为其他任务所 使用。 为了解决多个任务使用主存的问题,存储管理采用 图5.操作系统为正在运行的每一 分区存储管理、分页存储管理、分段存储管理、段页式存 8 个程序分配内存空间储管理等方案进行内存分配。例如,分区存储管理方案 采用可变分区的最佳适应调度算法,在进行内存分配时 从空闲区中选择一个能满足任务要求的最小分区,这样可以保证不去分割一个更大的区域。 采用这种分配算法时,通常把空闲区按大小以递增顺序排列,然后总是从最小的一个区开始 进行查找,直至找到一个满足要求的分区为止。 在进行内存分配和回收的过程中会遇到碎片问题,内存空间会被分割为许多很小的空 闲分区,这样的小分区被称为碎片。由于这些碎片并不连续,即便是其容量总和大于要载入 的程序仍无法使用。如何解决碎片问题,对内存分配和回收至关重要。 2. 对存储信息实现有效保护 操作系统应该能够对已分配的内存进行存储保护。在多任务环境下,内存中既有操作 系统,又有许多用户程序在运行,为了保证操作系统和应用程序之间以及应用程序和应用程 序之间互不冲突,存储管理应该提供内存保护机制,使得每个程序只在自己的内存空间内运 行。如果指令和数据从一个内存区域“泄漏”到其他另一个程序的内存区域,那么,另一个程 序的指令和数据就有可能被破坏并且“崩溃”。可以同时按住Ctrl键、Alt键和Del键来关 闭被破坏的程序,重新将该程序载入内存就能够修复内存泄漏的问题。 内存中的程序和数据进行保护可以从两个方面进行:①防止地址越界,采取存储区域 保护的方式,划定每个任务的操作地址范围,对进程存取的地址进行检查,发生地址越界时 产生中断,由操作系统进行相应处理;②防止操作越权,对属于自己区域的信息可读可写, 对公共区域中允许共享的信息或获得授权可使用的信息可读而不可修改,对于未获授权使 用的信息不可读不可写。 3. 扩充内存 由于计算机系统的物理内存容量有限,而应用程序往往需要大量的内存空间,为了在有 102 第5章操作系统 限的物理内存上运行内存需求远超物理内存容量的程序, 存储管理还应该提供内存扩充功 能。扩充指的是对物理内存进行逻辑上的扩充, 通常采用交换技术将内、外存结合起来, 让 执行程序的一部分驻留内存, 其他部分运行时根据需要在内、外存之间进行交换, 从而完成 整个程序的运行。例如, 在程序运行过程中需要访问某个变量,CPU 在读取数据时发现这 个变量不在内存, 就会产生异常中断, 操作系统就被唤醒来处理这个中断, 中断处理程序把 该变量所在的页面从磁盘载入内存。如果内存已经没有空间来存放这个页面, 中断处理程 序会将内存中的某个页面切换出去, 以腾出空间存放该变量所在的页面。常用的页面替换 算法是LRU (LeastR ecentlyUsed) 算法, 将内存中最长时间未使用的那个页面切换出去。 LRU 算法的基本原理是, 最近使用的页面会在未来一段时间内仍然被使用, 已经很久没有 使用的页面很有可能在未来较长的一段时间内仍然不会被使用。LRU 算法的合理性在于 优先选择热点数据, 所谓热点数据, 就是最近最多使用的数据, 主要衡量指标是使用的时间, 附加指标是使用的次数。计算机系统中大量使用了LRU 算法的基本原理, 解决了很多实 际开发面临的问题。 5.3 设备管理 3. 随着计算机相关领域的发展, 输入输出设备的种类越来越繁多, 诸如显卡、磁盘、网卡、 U 盘、智能手机等都是常见的外接输入输出设备, 并且, 新的输入输出设备也在不断出现。 操作系统负责与各种各样的设备进行通信, 设备管理应该能够记录所有设备的当前状态, 并 根据设备的种类采用合理的设备分配策略, 将设备分配给提出请求的任务, 启动具体设备完 成数据传输等操作, 当设备使用完毕后, 还要负责设备的回收。由于外部设备的运行速度远 低于处理器的处理速度, 设备管理还应该能够提供缓冲功能, 以协调外部设备和处理器之间 的并行工作程度。 ................................................................................ .. 所谓缓冲区就是一段内存, 通常是在一个设备向另一个设备传输数据时用来临时 保存数据的一段存储区。凡是速度不匹配的场合都需要设立缓冲区, 例如打印缓冲 区、键盘缓冲区、文件缓冲区等。 .......... .. .. .......... .. ........ .................... .................. .................... .............. 操作系统与外部设备的通信是在设备驱动程序的协助下完成的, 例如, 用键盘输入数据 是通过键盘驱动程序把键盘的机械接触转换为系统可以识别的ASCI 码, 并存放到内存的 键盘缓冲区; 显示器输出信息也是通过显示器驱动程序从内存中取出要显示的信息, 并输出 到显示器上。所谓设备驱动程序就是能够控制特定设备接收和发布信息的程序。每个设备 驱动程序必须与特定的设备类型和物理特性相关, 因此, 安装一个新设备到计算机上就需要 安装这个设备的驱动程序, 例如, 安装了一台新的打印机, 如果不是操作系统已有驱动程序 支持的, 就必须先安装配套的打印驱动程序。 操作系统对输入输出设备的管理采用硬件中断方式。当某个设备的状态发生变化时, 该设备主动产生硬件中断并反映当前的状态, 从而操作系统可以采取相应的措施。每一个 设备都有一个中断类型码和相应的中断服务程序, 这些信息保存在中断向量表中, 当发生硬 件中断时, 操作系统能够区分来自不同设备的中断请求, 并提供不同的中断服务。 下面以键盘为例说明设备中断的处理过程, 键盘中断响应进程如图5.9 所示。假设用 103