《设备管理方法与信息化课程36511.pptx》由会员分享,可在线阅读,更多相关《设备管理方法与信息化课程36511.pptx(174页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章 设 备 管 理 第五章第五章 设备管理设备管理 5.1 5.1 引言引言 5.2 5.2 操作系统与中断处理操作系统与中断处理 5.3 5.3 操作系统与时钟系统操作系统与时钟系统 5.4 5.4 操作系统对操作系统对I/OI/O操作的控制操作的控制 5.5 5.5 设备管理的数据结构设备管理的数据结构 5.6 5.6 磁盘调度磁盘调度 5.7 UNIX5.7 UNIX系统系统V V的设备管理的设备管理5.8 5.8 设备分配设备分配1第五章 设 备 管 理 第五章第五章 设备管理设备管理 5.1 引言引言 设备管理设备管理是指计算机系统中,除中央处理器、是指计算机系统中,除中央处理器
2、、主存储器以外的设备的管理,是操作系统的主要主存储器以外的设备的管理,是操作系统的主要功能之一。功能之一。通常把这些设备及其接口线路、控制部件和通常把这些设备及其接口线路、控制部件和管理软件统称为管理软件统称为I/O系统系统。2第五章 设 备 管 理 在在I/O系统中,普遍地使用系统中,普遍地使用中断中断、通道通道、缓冲区缓冲区等等各种技术,使主机和外设并行工作,改善了设备的各种技术,使主机和外设并行工作,改善了设备的使用效率。使用效率。但是,在另一方面却但是,在另一方面却给用户带来困难给用户带来困难。用户想使用。用户想使用一台外部设备,除了需掌握相关一台外部设备,除了需掌握相关 I/O部分的
3、原理之部分的原理之外,还要求对接口、控制器以及设备的物理特性都外,还要求对接口、控制器以及设备的物理特性都要有一定了解。要有一定了解。为了使用户摆脱这些限制,操作系统承担了这项任为了使用户摆脱这些限制,操作系统承担了这项任务,务,凡是有关外设的驱动、控制、分配等技术问题凡是有关外设的驱动、控制、分配等技术问题都统一由设备管理程序负责都统一由设备管理程序负责。3第五章 设 备 管 理 5.1.1 5.1.1 设备的概念和分类设备的概念和分类 1.设备的概念设备的概念 它既指进行实际输入输出操作的它既指进行实际输入输出操作的物理设备物理设备,也指控制这些设备并进行也指控制这些设备并进行I/O操作的
4、操作的支持设备支持设备和和支持部件支持部件,也指为提高设备利用率,采用某,也指为提高设备利用率,采用某种种 I/O技术形成的技术形成的逻辑设备逻辑设备和和虚拟设备虚拟设备。因此可以说,因此可以说,输入输出设备可指计算机系统输入输出设备可指计算机系统所能控制的一切控制对象或者与控制对象相联所能控制的一切控制对象或者与控制对象相联系的媒体系的媒体。4第五章 设 备 管 理 2.设备的分类设备的分类 按照功能分类:按照功能分类:可以分为输入设备、输出设备、存储设可以分为输入设备、输出设备、存储设备、供电设备、网络联网设备等。备、供电设备、网络联网设备等。从设备的数据组织方式分类:从设备的数据组织方式
5、分类:可以分为块设备可以分为块设备(blockdevice)和字符设备()和字符设备(characterdevice)。)。块设备块设备以数据块为单位组织和传送数据以数据块为单位组织和传送数据。它将数据存储在定。它将数据存储在定长块中,每个数据块都有自己的地址,块的大小与设备和具长块中,每个数据块都有自己的地址,块的大小与设备和具体的操作系统有关,一般在体的操作系统有关,一般在5124096字节之间。块设备的基字节之间。块设备的基本特征是本特征是能够单独地读写每一个数据块能够单独地读写每一个数据块,所读写的块与其他,所读写的块与其他数据块无关。数据块无关。字符设备字符设备以字符为单位组织和传送
6、数据以字符为单位组织和传送数据。它传送或接收一连。它传送或接收一连串字符,数据组织不考虑块结构,也不能单独寻址。串字符,数据组织不考虑块结构,也不能单独寻址。5第五章 设 备 管 理 从设备的管理模式分类从设备的管理模式分类,可以分为,可以分为物理设备物理设备和和逻辑设备逻辑设备。物理设备物理设备指计算机系统硬件配置的实际设备。这指计算机系统硬件配置的实际设备。这些设备在操作系统内具有一个惟一的符号名称,些设备在操作系统内具有一个惟一的符号名称,系统可以按照该名称对相应的设备进行物理操作。系统可以按照该名称对相应的设备进行物理操作。逻辑设备逻辑设备是指一种在逻辑意义上存在的设备,在是指一种在逻
7、辑意义上存在的设备,在未加以定义前,它不代表任何硬件设备和实际设未加以定义前,它不代表任何硬件设备和实际设备。逻辑设备是系统提供的,它也是独立于物理备。逻辑设备是系统提供的,它也是独立于物理设备而进行输入输出操作的一种设备而进行输入输出操作的一种“虚拟设备虚拟设备”。6第五章 设 备 管 理 从设备的资源属性分类从设备的资源属性分类,可以分为,可以分为独占设备独占设备、共享设备共享设备和和虚拟设备虚拟设备。独占设备独占设备在用户作业或者进程运行期间为该用户在用户作业或者进程运行期间为该用户所独享,只有等它用完,才能让别的用户和进程所独享,只有等它用完,才能让别的用户和进程使用;使用;共享设备共
8、享设备是指能被多个用户或进程是指能被多个用户或进程交替共用交替共用的设的设备,宏观上似乎多个用户同时在使用,如磁盘等备,宏观上似乎多个用户同时在使用,如磁盘等随机存储设备。随机存储设备。虚拟设备虚拟设备具有将一种物理设备模拟成另一种设备具有将一种物理设备模拟成另一种设备的能力。用户进行输入输出所使用的设备并不是的能力。用户进行输入输出所使用的设备并不是他所指定的设备,系统用另一种设备代替了用户他所指定的设备,系统用另一种设备代替了用户指定的设备。指定的设备。7第五章 设 备 管 理 SPOOLING技术技术l系统采用某种系统采用某种 I/O技术(如技术(如 SPOOLING),将),将某个独占
9、设备改进为多用户共享的设备,以提高某个独占设备改进为多用户共享的设备,以提高系统运行效率和资源利用率。系统运行效率和资源利用率。l随着随着SPOOLING技术的引入,技术的引入,I/O 设备不再被看设备不再被看做仅仅是一个孤立的物理设备,而且把它们与文做仅仅是一个孤立的物理设备,而且把它们与文件系统联系起来,看做是一种流式文件(数据流件系统联系起来,看做是一种流式文件(数据流的的I/O),建立了),建立了设备文件设备文件的概念,采用了直接的概念,采用了直接I/O端口控制语句和文件操作语句来进行端口控制语句和文件操作语句来进行I/O设备设备操作,使操作,使I/O设备的操作更加灵活。设备的操作更加
10、灵活。8第五章 设 备 管 理 5.1.2 I/O设备控制与驱动设备控制与驱动I/O 设备的控制和驱动技术包括了设备的控制和驱动技术包括了硬件控制驱动技硬件控制驱动技术术和和驱动软件驱动软件。前者是前者是 I/O 设备厂商设计建立的与设备密切相关的技术,设备厂商设计建立的与设备密切相关的技术,这些技术根据不同的设备依赖性很大。这些技术根据不同的设备依赖性很大。后者涉及系统所有后者涉及系统所有I/O 处理的软件,通过它们完成整个处理的软件,通过它们完成整个 I/O 操作。操作。9第五章 设 备 管 理 操作系统中的操作系统中的I/O驱动(处理)软件一般分为几个层次,如驱动(处理)软件一般分为几个
11、层次,如中断处理程序中断处理程序、设备驱动程序设备驱动程序、操作系统操作系统 I/O原语和用户原语和用户级软件级软件。中断处理程序中断处理程序位于最底层,它作为系统和位于最底层,它作为系统和I/O操作的激励,操作的激励,响应来自系统内部和外部的响应来自系统内部和外部的 I/O请求。请求。设备驱动程序设备驱动程序处理一种设备类型或者一类密切相关的设备,处理一种设备类型或者一类密切相关的设备,程序代码依赖于设备操作,其任务是接收来自与设备无关程序代码依赖于设备操作,其任务是接收来自与设备无关的上层软件的抽象请求,确保操作的具体实施。的上层软件的抽象请求,确保操作的具体实施。操作系统操作系统I/O原
12、语原语是系统和用户进程请求是系统和用户进程请求 I/O操作的抽象的操作的抽象的高级的操作,它们不针对某个具体设备,而在高级的操作,它们不针对某个具体设备,而在 I/O处理过处理过程中由设备控制表和设备驱动程序转接到物理设备。程中由设备控制表和设备驱动程序转接到物理设备。用户级软件用户级软件是用户程序中负责处理是用户程序中负责处理 I/O 操作的程序部分,操作的程序部分,经编译后产生对经编译后产生对I/O的高级处理,操作再逐层下交。的高级处理,操作再逐层下交。10第五章 设 备 管 理 5.1.3 设备管理的设计要求和任务设备管理的设计要求和任务1.设计要求设计要求第一第一,为用户提供方便、统一
13、的设备使用界面,为用户提供方便、统一的设备使用界面;第二第二,提高外部设备的利用率,尽量提高并行,提高外部设备的利用率,尽量提高并行程度。程度。第三第三,用户程序应独立于设备,即实现程序与,用户程序应独立于设备,即实现程序与设备的无关性,当物理设备发生意外或有更改设备的无关性,当物理设备发生意外或有更改时,用户程序不必修改,就可使用系统分配的时,用户程序不必修改,就可使用系统分配的其他设备其他设备11第五章 设 备 管 理 2.设备管理的任务设备管理的任务为了达到上述目标,管理功能通常包括为了达到上述目标,管理功能通常包括设备的配置和资设备的配置和资源分配源分配、设备的控制和驱动设备的控制和驱
14、动、系统与设备之间的缓冲协系统与设备之间的缓冲协调调、设备的调度与分配设备的调度与分配等。等。(1)设备配置和资源分配)设备配置和资源分配是针对是针对 I/O 设备本身的。由于设备本身的。由于系统要配置各种系统要配置各种 I/O 设备和部件,它们都要使用一定的设备和部件,它们都要使用一定的系统资源,包括系统资源,包括I/O通道、通道、I/O地址、地址、I/O端口、存储器地端口、存储器地址、中断请求号及址、中断请求号及 DMA 通道等,它们的共享在硬件和通道等,它们的共享在硬件和软件上可能会产生冲突,必须由操作系统对软件上可能会产生冲突,必须由操作系统对 I/O 设备进设备进行正确的配置和分配。
15、行正确的配置和分配。12第五章 设 备 管 理(2)设备控制和驱动)设备控制和驱动主要是按照主要是按照 I/O 控制的方式,对不同控制的方式,对不同的设备完成相应的的设备完成相应的 I/O 中断、设备控制器操作、读写操作等中断、设备控制器操作、读写操作等物理过程。针对不同的设备请求,通过设备处理程序或设备物理过程。针对不同的设备请求,通过设备处理程序或设备驱动程序完成对设备的直接控制。驱动程序完成对设备的直接控制。(3)系统与设备间的协调)系统与设备间的协调主要是速度上的协调,通常要解主要是速度上的协调,通常要解决快速的处理器与慢速的决快速的处理器与慢速的I/O 设备之间的操作匹配的问题,设备
16、之间的操作匹配的问题,在操作系统中在操作系统中采用缓冲区的方式采用缓冲区的方式来缓解这个矛盾,设备管理来缓解这个矛盾,设备管理要实现这些缓冲区的建立、分配、释放与回收。要实现这些缓冲区的建立、分配、释放与回收。(4)设备调度与分配)设备调度与分配是针对两种不同情况:是针对两种不同情况:对等待设备和对等待设备和I/O 操作的进程操作的进程进行调度;进行调度;对对多个进程争用设备多个进程争用设备进行分配。进行分配。13第五章 设 备 管 理 UNIX设备管理设备管理在在UNIX操作系统中,采用比较统一的方法对外操作系统中,采用比较统一的方法对外设进行管理。设进行管理。首先将各种外部设备分成特性迥然
17、不同的两大类,首先将各种外部设备分成特性迥然不同的两大类,即即块设备块设备和和字符设备字符设备;接着又把与设备物理特性密切相关的部分与设备接着又把与设备物理特性密切相关的部分与设备管理的基本方式和使用的基本技术分离开来。管理的基本方式和使用的基本技术分离开来。系统为各个设备设置单独的数据结构,然后用基系统为各个设备设置单独的数据结构,然后用基本相同的方式和技术对同类设备的本相同的方式和技术对同类设备的I/O操作进行操作进行处理。处理。14第五章 设 备 管 理 5.2 5.2 操作系统与中断处理操作系统与中断处理中断中断是参与计算机系统设备管理的一个重要因是参与计算机系统设备管理的一个重要因素
18、和重要结构。它是操作系统中与硬件最接近素和重要结构。它是操作系统中与硬件最接近的一部分,是操作系统和硬件的界面,是由软、的一部分,是操作系统和硬件的界面,是由软、硬件结合形成的一套中断机构实施的。硬件结合形成的一套中断机构实施的。15第五章 设 备 管 理 5.2.1 中断的基本概念中断的基本概念当一个正在运行的过程被另外一个过程打断,停止运行过程当一个正在运行的过程被另外一个过程打断,停止运行过程而转向执行另一过程的活动称为而转向执行另一过程的活动称为中断中断。中断的过程是打断目前正在进行的工作,转而处理更紧急的中断的过程是打断目前正在进行的工作,转而处理更紧急的事务,处理完成后再继续原来的
19、工作。事务,处理完成后再继续原来的工作。计算机系统的中断既来自系统内部,也来自系统外部,分别计算机系统的中断既来自系统内部,也来自系统外部,分别称为称为内(部)中断内(部)中断和和外(部)中断外(部)中断。内部中断是计算机系统本身在工作过程中出现的各种需要紧内部中断是计算机系统本身在工作过程中出现的各种需要紧急处理的事务,如出错中断、程序中断等,也称为急处理的事务,如出错中断、程序中断等,也称为软件中断软件中断。内部中断多采用程序陷入(内部中断多采用程序陷入(trap)的方式。)的方式。外部中断主要是来自外部中断主要是来自 I/O 设备的中断,如设备请求中断、打设备的中断,如设备请求中断、打印
20、中断、掉电中断、数据传输中断等,大部分是印中断、掉电中断、数据传输中断等,大部分是硬件中断硬件中断。16第五章 设 备 管 理 17第五章 设 备 管 理 5.2.2 中断的类型中断的类型(1)I/O中断中断这是来自通道或者各种外部设备的中断,用于这是来自通道或者各种外部设备的中断,用于反映通道或设备的工作情况。例如,打印机打反映通道或设备的工作情况。例如,打印机打印结束、磁盘传输完成、利用终端进行印结束、磁盘传输完成、利用终端进行 I/O 操操作等,也包括外设在执行作等,也包括外设在执行 I/O 操作时出错而引操作时出错而引起的中断。起的中断。18第五章 设 备 管 理(2)时钟中断)时钟中
21、断一类特殊的一类特殊的 I/O 完成中断,它不一定与具体的完成中断,它不一定与具体的 I/O 相连,既可由硬件引起,也可由软件引起。相连,既可由硬件引起,也可由软件引起。经由硬件定时芯片产生规则的时钟间隔(时间经由硬件定时芯片产生规则的时钟间隔(时间片)或者由软件计数产生的时间间隔,每一次片)或者由软件计数产生的时间间隔,每一次中断都意味着一段固定时间已到,时钟中断需中断都意味着一段固定时间已到,时钟中断需要定时、复位和更新。要定时、复位和更新。19第五章 设 备 管 理(3)系统请求中断)系统请求中断向操作系统提出的请求服务,是由系统指令产向操作系统提出的请求服务,是由系统指令产生的。系统调
22、用指令是这一类中断的特例。生的。系统调用指令是这一类中断的特例。各种各种 I/O 指令,如指令,如 TRAP、IOT 等均可产生系等均可产生系统请求。该中断把命令传送到操作系统,以确统请求。该中断把命令传送到操作系统,以确定一个进程需要什么样的服务,操作系统对请定一个进程需要什么样的服务,操作系统对请求做出分析并提供所需要的服务。求做出分析并提供所需要的服务。20第五章 设 备 管 理(4)报警中断)报警中断一般由计算机系统的外部条件引起,如计算机一般由计算机系统的外部条件引起,如计算机的中断键、启动键、求助键等,以及由外部通的中断键、启动键、求助键等,以及由外部通信信号和网络传输信号到达产生
23、的中断。信信号和网络传输信号到达产生的中断。(5)程序错误中断)程序错误中断因编程错误、逻辑条件判断或分支错误、运行参因编程错误、逻辑条件判断或分支错误、运行参数错误而产生的中断。它通常会通过用户终端或数错误而产生的中断。它通常会通过用户终端或显示器给予提示。这类中断的类型包括:除数为显示器给予提示。这类中断的类型包括:除数为零、浮点运算溢出、存储器使用无效、地址越界、零、浮点运算溢出、存储器使用无效、地址越界、使用特权或非法指令、越权访问、错误的格式化使用特权或非法指令、越权访问、错误的格式化数据等数据等21第五章 设 备 管 理(6)机器错误中断)机器错误中断对应于系统硬件的错误中断。如存
24、储器错误、对应于系统硬件的错误中断。如存储器错误、I/O 设备错误、显示器错误、接口通道错误等。设备错误、显示器错误、接口通道错误等。一般操作系统只报告这些错误,并终止操作。一般操作系统只报告这些错误,并终止操作。22第五章 设 备 管 理 UNIX 中断机构中断机构处理一切外部设备的处理一切外部设备的 I/O 中断。中断。陷入机构陷入机构处理在系统内发生的需要立即干预的事处理在系统内发生的需要立即干预的事件,包括使用指令的陷入(自陷)和由于软、硬件,包括使用指令的陷入(自陷)和由于软、硬件故障或错误造成的陷入。件故障或错误造成的陷入。系统调用系统调用是是UNIX操作系统面向在用户态下运操作系
25、统面向在用户态下运行的程序的界面,在行的程序的界面,在C语言和汇编语言级上都语言和汇编语言级上都允许用户态程序使用系统调用。允许用户态程序使用系统调用。23第五章 设 备 管 理(补充)系统调用命令补充)系统调用命令操作系统里预先编制了很多不同功能的子程序。用操作系统里预先编制了很多不同功能的子程序。用户可以在自己的程序里调用这些子程序,请求操作户可以在自己的程序里调用这些子程序,请求操作系统提供服务。这些子程序称为系统提供服务。这些子程序称为“系统功能调用系统功能调用”程序。程序。系统调用是操作系统程序模块的一部分,它应该在系统调用是操作系统程序模块的一部分,它应该在管态下执行。不能直接被用
26、户程序调用,用户程序管态下执行。不能直接被用户程序调用,用户程序只有通过系统提供的只有通过系统提供的“访管访管”指令指令,才能实现由目,才能实现由目态转为管态、进而调用这些功能程序的目的。态转为管态、进而调用这些功能程序的目的。24第五章 设 备 管 理 访管指令访管指令访管指令访管指令:是一条非特权指令,功能是执行它就:是一条非特权指令,功能是执行它就会产生一个软中断,促使处理器由目态转换到管会产生一个软中断,促使处理器由目态转换到管态,进入操作系统,并处理中断。态,进入操作系统,并处理中断。利用访管指令的这种功能,编译程序就把源程序利用访管指令的这种功能,编译程序就把源程序中的系统调用都转
27、换成访管指令,把具体的功能中的系统调用都转换成访管指令,把具体的功能转换成不同的编码。这样,就能使处理机执行访转换成不同的编码。这样,就能使处理机执行访管指令由目态进入管态,再根据编码,转到相应管指令由目态进入管态,再根据编码,转到相应的功能处理程序去执行。的功能处理程序去执行。25第五章 设 备 管 理 例:在例:在c c语言中,语言中,write(fd,buf,count)write(fd,buf,count)系统调用命令。系统调用命令。C编译程序在编译编译程序在编译C的源程序时,总把系统调的源程序时,总把系统调用命令翻译成能够引起软中断的访管指令用命令翻译成能够引起软中断的访管指令tra
28、p.该指令长两个字节,第一个字节为该指令长两个字节,第一个字节为操作码操作码,第,第二个字节为系统调用命令的二个字节为系统调用命令的功能编码功能编码。Trap功能码FdBufcountTrapTrapTrapTrap的的的的16161616进制操作码进制操作码进制操作码进制操作码89898989;WriteWriteWriteWrite的功能码的功能码的功能码的功能码04040404;WriteWriteWriteWrite的机器指令:的机器指令:的机器指令:的机器指令:二进制二进制二进制二进制10001001000001001000100100000100100010010000010010
29、00100100000100;八进制八进制八进制八进制10440410440410440410440426第五章 设 备 管 理 Trap指令中的功能码是用来区分不同的功能调指令中的功能码是用来区分不同的功能调用的。用的。在在UNIX操作系统中,有一张操作系统中,有一张“系统调用程序系统调用程序入口地址表入口地址表”。该表表目从。该表表目从0开始、以系统调开始、以系统调用命令所对应的功能码为顺序排列。用命令所对应的功能码为顺序排列。自带参数个数自带参数个数自带参数个数自带参数个数该系统调用处理程序的入口地址该系统调用处理程序的入口地址该系统调用处理程序的入口地址该系统调用处理程序的入口地址表目
30、内容表目内容表目内容表目内容27第五章 设 备 管 理 系统调用处理过程系统调用处理过程语言语言编译编译程序程序产生产生中断中断查看查看入口入口表表Write处处理程序理程序Write入口3write(fd,buf,write(fd,buf,write(fd,buf,write(fd,buf,count)count)count)count)104404(trap 04)C C语言源程序语言源程序目标程序目标程序TrapTrap中断处中断处理程序理程序34528第五章 设 备 管 理 系统调用与一般过程调用的区别系统调用与一般过程调用的区别(1)一般过程调用,调用者与被调用者都运行在相同的一般过
31、程调用,调用者与被调用者都运行在相同的cpu状态。但发生系统调用时,发出调用命令的调用者运行状态。但发生系统调用时,发出调用命令的调用者运行在目态,而被调用者运行在管态。在目态,而被调用者运行在管态。(2)一般过程调用,是直接通过转移指令转向被调用程序一般过程调用,是直接通过转移指令转向被调用程序的;但发生系统调用时,只能通过软中断指令提供的一个的;但发生系统调用时,只能通过软中断指令提供的一个统一入口,由目态进入管态,经分析后,才转向相应的命统一入口,由目态进入管态,经分析后,才转向相应的命令处理程序。令处理程序。(3)一般过程调用,在被调用者执行完后,就径直返回断一般过程调用,在被调用者执
32、行完后,就径直返回断点继续执行;但系统调用可能会招致进程状态的变化,从点继续执行;但系统调用可能会招致进程状态的变化,从而引起系统重新分配处理机。因此,系统调用结束后,不而引起系统重新分配处理机。因此,系统调用结束后,不一定是返回调用者断点处继续执行。一定是返回调用者断点处继续执行。29第五章 设 备 管 理 1与进程管理和控制有关的系统调用与进程管理和控制有关的系统调用属于这一类的有属于这一类的有21种。种。进程的创建和消亡:进程的创建和消亡:fork、exit。进程间的同进程间的同步:步:wait、pause等。等。2 与文件系统有关的系统调用与文件系统有关的系统调用属于这一类的有属于这一
33、类的有28种。种。文件生成和取消:文件生成和取消:creat、unlink。文件打开、文件打开、关闭及控制:关闭及控制:open、close、fcntl。UNIX SVR4 提供了提供了 53 种系统调用,它们大致种系统调用,它们大致可分为可分为 3 类。类。30第五章 设 备 管 理 3其他系统调用其他系统调用属于这一类的有属于这一类的有4种。种。设置和获得系统或进程时间:设置和获得系统或进程时间:stime、time、times。在指定时间后发告警信号:在指定时间后发告警信号:alarm31第五章 设 备 管 理 5.2.3 中断的响应和实现过程中断的响应和实现过程中断是在中断是在中断控制
34、机构中断控制机构的管理下实现的。设备的管理下实现的。设备提出的中断请求信号由中断控制机构响应,然提出的中断请求信号由中断控制机构响应,然后予以实施。后予以实施。中断控制机构的中断控制机构的主要功能主要功能如下。如下。记录各中断源的中断请求信号,以便于分别记录各中断源的中断请求信号,以便于分别处理。处理。在在CPU硬件中,每当执行完一条指令,或开硬件中,每当执行完一条指令,或开始取一条指令前,检测有无中断请求,若有则始取一条指令前,检测有无中断请求,若有则硬件自动转入中断处理周期。硬件自动转入中断处理周期。32第五章 设 备 管 理 系统对不同的中断类型规定了不同的优先级,系统对不同的中断类型规
35、定了不同的优先级,当同时存在多个中断请求时,选优先级最高的当同时存在多个中断请求时,选优先级最高的予以响应。予以响应。如果两个中断的优先级相等,将按照一定算如果两个中断的优先级相等,将按照一定算法,如先来先服务(法,如先来先服务(FIFO)等进行处理。)等进行处理。优先级机制可能使中断服务形成嵌套,即优优先级机制可能使中断服务形成嵌套,即优先级低的中断处理程序的执行会被优先级高先级低的中断处理程序的执行会被优先级高的中断打断,从而又调用了另一个处理程序。的中断打断,从而又调用了另一个处理程序。在有的操作系统(如实时系统)中是不允许在有的操作系统(如实时系统)中是不允许中断嵌套的。中断嵌套的。3
36、3第五章 设 备 管 理 响应中断后,根据中断源找出相应的中断处理响应中断后,根据中断源找出相应的中断处理程序入口地址,以便转去执行。程序入口地址,以便转去执行。如何转入相应的中断处理程序,目前常用的结构如何转入相应的中断处理程序,目前常用的结构是是中断矢量中断矢量(interruptvector)结构。)结构。中断矢量结构中断矢量结构是一类是一类地址指针的集合地址指针的集合,在主存中,在主存中开辟了一个特殊的存储区域来存放这种结构,其开辟了一个特殊的存储区域来存放这种结构,其中的某一个或者几个存储单元存放一个指向中断中的某一个或者几个存储单元存放一个指向中断处理程序的地址,它被称为中断矢量。
37、一个中断处理程序的地址,它被称为中断矢量。一个中断发生,总可以在固定的位置找到这个指针,再根发生,总可以在固定的位置找到这个指针,再根据指针所指的位置(即指针的内容)获得相应的据指针所指的位置(即指针的内容)获得相应的处理程序或者驱动程序入口地址。处理程序或者驱动程序入口地址。34第五章 设 备 管 理 保护现场保护现场,以便中断返回时可以在断点处继续,以便中断返回时可以在断点处继续执行。执行。中断现场中断现场主要指:相应中断时主要指:相应中断时指令计数器指令计数器PC的的内容(即下一条指令的地址,也称为断点);内容(即下一条指令的地址,也称为断点);进程运行参数和条件进程运行参数和条件;现运
38、行程序状态寄存器现运行程序状态寄存器 PS 的内容以及的内容以及累加器累加器或或通用寄存器通用寄存器的内容和标的内容和标记,有的计算机也把记,有的计算机也把 PC 和和PS 合起来统称为合起来统称为程程序状态字序状态字 PSW。现场保护是把它们保存到主存中的特殊区域现场保护是把它们保存到主存中的特殊区域(一般是堆栈)中,并保证中断过程中原有现(一般是堆栈)中,并保证中断过程中原有现场不做任何改变。场不做任何改变。35第五章 设 备 管 理 当正在进行某一中断处理时,或在执行程序当正在进行某一中断处理时,或在执行程序的某些阶段,有时不允许响应某些中断,所以的某些阶段,有时不允许响应某些中断,所以
39、应该在程序控制下,禁止响应某些中断,即应该在程序控制下,禁止响应某些中断,即屏屏蔽这些中断蔽这些中断。当不需要屏蔽时,又能及时在程。当不需要屏蔽时,又能及时在程序控制下撤销屏蔽。序控制下撤销屏蔽。在实时系统中中断屏蔽必须小型化,并且严格在实时系统中中断屏蔽必须小型化,并且严格限制中断处理程序的执行时间。限制中断处理程序的执行时间。36第五章 设 备 管 理 5.2.4 中断处理程序和驱动程序中断处理程序和驱动程序中断处理程序也叫做中断处理程序也叫做中断服务程序中断服务程序,它是与设,它是与设备硬件密切相关的处理程序,一般情况下,处备硬件密切相关的处理程序,一般情况下,处理设备的各个理设备的各个
40、 I/O 操作的细节是采用汇编语言操作的细节是采用汇编语言和机器语言编写。和机器语言编写。为了将这种与设备有关的程序对用户透明,使为了将这种与设备有关的程序对用户透明,使用户不必去了解每一种设备操作的具体细节,用户不必去了解每一种设备操作的具体细节,通常采用统一的简单方式,如上述的中断矢量通常采用统一的简单方式,如上述的中断矢量方式来进行。方式来进行。37第五章 设 备 管 理 在微型机和个人计算机中,常常把在微型机和个人计算机中,常常把I/O 中断处理中断处理程序程序以以设备驱动程序设备驱动程序的方式作为操作系统设备的方式作为操作系统设备管理和控制的依据,用户采用一种管理和控制的依据,用户采
41、用一种通用的界面通用的界面和操作和操作来使用这些设备。来使用这些设备。例如,例如,UNIX和和 DOS 操作系统中都把设备作为操作系统中都把设备作为一种一种虚拟的文件虚拟的文件对待,每个设备有一个像文件对待,每个设备有一个像文件名那样的名字,并对它像一个文件那样存取。名那样的名字,并对它像一个文件那样存取。设备驱动程序设备驱动程序被作为一种特殊的文件存放在系被作为一种特殊的文件存放在系统辅助存储设备(如磁盘)中,在需要时由操统辅助存储设备(如磁盘)中,在需要时由操作系统装入使用。作系统装入使用。38第五章 设 备 管 理 在操作系统设计时,考虑了所有可能与计算机在操作系统设计时,考虑了所有可能
42、与计算机系统配置的设备,所有设备的驱动程序随操作系统配置的设备,所有设备的驱动程序随操作系统软件一起提供给用户,用户在安装操作系系统软件一起提供给用户,用户在安装操作系统时,根据当时配置的统时,根据当时配置的 I/O 设备情况,调入相设备情况,调入相应的设备驱动程序文件,将它们设置并嵌入操应的设备驱动程序文件,将它们设置并嵌入操作系统中,做好系统运行操作的环境准备。如作系统中,做好系统运行操作的环境准备。如果操作系统的设备配置有变化,则需要重新引果操作系统的设备配置有变化,则需要重新引导或者重新配置安装操作系统。导或者重新配置安装操作系统。39第五章 设 备 管 理 在在UNIX系统中,将设备
43、分成两类:系统中,将设备分成两类:块设备块设备和和字符设备字符设备。核心与驱动程序的接口是由。核心与驱动程序的接口是由块设备块设备开关表开关表和和字符设备开关表字符设备开关表描述的描述的.40第五章 设 备 管 理 5.2.5 中断的返回与恢复中断的返回与恢复当中断请求操作完成时,系统必须返回被中断当中断请求操作完成时,系统必须返回被中断的程序。的程序。此时,必须将中断开始保存下来的原来程序的此时,必须将中断开始保存下来的原来程序的状态、寄存器内容和标记、进程运行参数和条状态、寄存器内容和标记、进程运行参数和条件等一一恢复,复原到中断未出现时的状态,件等一一恢复,复原到中断未出现时的状态,称为
44、称为现场恢复现场恢复。41第五章 设 备 管 理 UNIX 操作系统中,操作系统中,中断处理都是在核心态下进行中断处理都是在核心态下进行的的。如果如果中断前处理机状态为核心态中断前处理机状态为核心态,则在执行完设,则在执行完设备处理子程序后就恢复现场,然后用中断返回指备处理子程序后就恢复现场,然后用中断返回指令回到中断前状态,继续执行被中断的操作系统令回到中断前状态,继续执行被中断的操作系统程序。程序。如果如果中断前为用户态中断前为用户态,则在执行完设备处理子程,则在执行完设备处理子程序后,先要检查重新调度标志序后,先要检查重新调度标志runrun是否设置。是否设置。如若已经设置,则调用进程切
45、换调度程序进行进如若已经设置,则调用进程切换调度程序进行进程调度,中断时被保护的现场就不必立即恢复。程调度,中断时被保护的现场就不必立即恢复。如果如果runrun标志没有设置,则恢复保护在堆栈中标志没有设置,则恢复保护在堆栈中的现场,继续在用户态下执行被中断的程序。的现场,继续在用户态下执行被中断的程序。42第五章 设 备 管 理 5.4 5.4 操作系统对操作系统对I/OI/O操作的控制操作的控制 外围设备与内存或外围设备与内存或CPU间常用的数据传送间常用的数据传送控制方式:控制方式:1.程序循环测试方式程序循环测试方式2.中断控制方式中断控制方式3.直接存储器存取(直接存储器存取(DMA
46、)方式)方式4.通道方式通道方式43第五章 设 备 管 理 1.程序程序I/O方式方式 等待等待发发Start指令指令Test测试,设备标测试,设备标志触发器为志触发器为“Done”?CPU执行下一条指令执行下一条指令开始数据传送开始数据传送 否否是是外围设备外围设备接收到接收到Start指令指令作接收或发送数据准备作接收或发送数据准备准备好?准备好?标志触发器置为标志触发器置为“Done”等待等待CPU来的下一条指令来的下一条指令是是否否44第五章 设 备 管 理 程序程序I/O方式方式 在在程程序序I/O方方式式中中,由由于于CPU的的高高速速性性和和I/O设设备备的的低低速速性性,致致使
47、使CPU的的绝绝大大部部分分时时间间都都处处于于等等待待I/O设设备备完完成成数据数据I/O的循环测试中,的循环测试中,造成对造成对CPU的极大浪费。的极大浪费。在在该该方方式式中中,CPU之之所所以以要要不不断断地地测测试试I/O设设备备的的状状态态,就就是是因因为为在在CPU中中无无中中断断机机构构,使使I/O设设备备无无法法向向CPU报告它已完成了一个字符的输入操作。报告它已完成了一个字符的输入操作。45第五章 设 备 管 理 2.中断驱动中断驱动I/O控制方式控制方式 I/O操作由程序发起,在操作完成时(如数据可读或操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向已经写入)
48、由外设向CPU发出中断,通知该程序。发出中断,通知该程序。数据的每次读写通过数据的每次读写通过CPU。硬件要求:硬件要求:要在要在CPU与控制器之间连有与控制器之间连有中断请求线路中断请求线路;要在设备控制器的要在设备控制器的状态寄存器状态寄存器中增设中增设“中断允许位中断允许位”46第五章 设 备 管 理 数据传输的步骤数据传输的步骤1)通过通过CPU发出发出start指令。启动设备,将中断允许位加以设指令。启动设备,将中断允许位加以设置置2)发出发出I/O请求的进程由运行状态改变为阻塞状态,等待输入请求的进程由运行状态改变为阻塞状态,等待输入/输出的完成。输出的完成。3)输入输入/输出完成
49、时,设备控制器通过中断请求线向输出完成时,设备控制器通过中断请求线向CPU发出发出中断请求信号。中断请求信号。CPU响应该中断后,就转向中断处理程序,响应该中断后,就转向中断处理程序,对数据的传输工作进行相应的处理。对数据的传输工作进行相应的处理。4)输入输入/输出请求全部完成后,进程被解除阻塞,改变状态为输出请求全部完成后,进程被解除阻塞,改变状态为“就绪态就绪态”,以便进入它的下一步工作。,以便进入它的下一步工作。47第五章 设 备 管 理 中断控制方式的处理过程中断控制方式的处理过程接收到接收到CPU发来的发来的Start指令指令缓冲寄存器满?缓冲寄存器满?设备设备控制器发中断信号控制器
50、发中断信号是是准备数据并将其置入准备数据并将其置入缓冲寄存器缓冲寄存器否否CPU调度程序调度其它进程调度程序调度其它进程收到中断信号了吗?收到中断信号了吗?中断处理中断处理被中断进程执行被中断进程执行是是否否向设备发向设备发Start指令,指令,置中断允许位为置中断允许位为“1”其它进程执行其它进程执行48第五章 设 备 管 理 在在I/O设设备备输输入入每每个个数数据据的的过过程程中中,由由于于无无须须CPU干干预预,因因而而可可使使CPU与与I/O设设备备并并行行工工作作。仅仅当当输输完完一一个个数数据据时时,才才需需CPU花花费费极极短短的的时时间间去去做做些些中中断断处处理理。可可见见