操作系统-第5章 设备管理(S)_第1页
操作系统-第5章 设备管理(S)_第2页
操作系统-第5章 设备管理(S)_第3页
操作系统-第5章 设备管理(S)_第4页
操作系统-第5章 设备管理(S)_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、哈尔滨学院软件学院 王知非计算机操作系统计算机操作系统第第5章章 设备管理设备管理第5章 设备管理5.1 I/O系统5.2 I/O控制方式5.3 缓冲管理5.4 I/O软件5.5 设备分配5.6 磁盘存储器的管理5.1 I/O系统n5.1.1 I/O设备n5.1.2 设备控制器n5.1.3 I/O通道n5.1.4 总线系统5.1 I/O系统5.1.1 I/O设备1、设备类型n按使用特性:存储设备、I/O设备n按传输速率:低速、中速、高速n按信息交换的单位分类:块设备、字符设备n按设备的共享属性:独占设备、共享设备、虚拟设备5.1 I/O系统5.1.1 I/O设备2、设备与控制器之间的接口缓冲转

2、换器控制逻辑信号数据I/O设备至设备控制器数据信号线状态信号线控制信号线5.1 I/O系统5.1.1 I/O设备2、设备与控制器之间的接口(1)信号数据线用于在设备和设备控制器之间传送数据信号。(2)控制信号线由设备控制器向I/O设备发送控制信号时的通路(3)状态信号线指示当前设备状态的信号5.1 I/O系统5.1.2 设备控制器n设备控制器用于控制一个或者多个设备,以实现I/O设备和计算机之间的数据交换。n设备控制器是CPU和外设之间的接口,接收CPU的I/O命令,并控制外设工作。n设备控制器是一个可编址的设备。5.1 I/O系统5.1.2 设备控制器1、设备控制器的功能(1)接收和识别命令

3、(2)数据交换(3)标识和报告设备状态(4)地址识别(5)数据缓冲(6)差错控制5.1 I/O系统5.1.2 设备控制器2、设备控制器的组成(1)设备控制器与处理机的接口n用于实现CPU与DCU之间的通信。(2)设备控制器与设备的接口n用于连接一个或者多个设备。(3)I/O逻辑n用于实现对设备的控制。5.1 I/O系统5.1.3 I/O通道1、I/O通道的引入nI/O通道是一种特殊的处理机,它具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作。n引入I/O通道的目的是使一些原来由CPU处理的I/O任务转由通道来承担,减少由于干预I/O操作而造成的CPU负担。n特点:指令集单一;与CP

4、U共享内存5.1 I/O系统5.1.3 I/O通道2、I/O通道的类型(1)字节多路通道n按字节交叉方式工作的通道n用于连接多个慢速外围设备n为多个外设交叉工作5.1 I/O系统5.1.3 I/O通道2、I/O通道的类型(2)数组选择通道n连接快速外设n以成组方式工作,一次传送一组数据,速度快n每次启动只能为一个设备服务,完成一次I/O操作后,才能选择其它设备,通道利用率低。5.1 I/O系统5.1.3 I/O通道2、I/O通道的类型(3)数组多路通道n用于连接多台高速外设n先为一台设备执行一条通道命令,然后自动转换为另一个设备执行一条通道命令n任一时刻只为一台设备传送一组数据,但可以交叉地位

5、多个设备提供服务。5.1 I/O系统5.1.3 I/O通道3、I/O通道的“瓶颈”问题n由于通道价格昂贵,会造成由于通道数量不足而造成“瓶颈”现象。n解决的办法:n增加设备到主机之间的通路5.1 I/O系统5.1.4 总线系统1、ISA和EISA总线(1)ISA总线(2)EISA总线2、局部总线(1)VESA总线(2)PCI总线第5章 设备管理5.2 I/O控制方式n5.2.1 程序I/O方式n5.2.2 中断驱动I/O控制方式n5.2.3 直接存储器访问I/O控制方式n5.2.4 I/O通道控制方式5.2 I/O控制方式5.2.1 程序I/O方式n由用户程序直接控制主存和外设间交换数据。n特

6、点:n(1)控制管理简单,所需硬件支持少。n(2)CPU和外设只能串行n(3)传送数据的单位是字节,速度慢n(4)CPU利用率低5.2 I/O控制方式5.2.2 中断控制方式n工作过程:nCPU向DCU发出启动外设的指令nDCU按要求启动设备后,向CPU发出中断请求,通知CPU外围设备已经启动nCPU向DCU发出一条I/O指令,DCU按要求传送数据,传送完毕后,再向CPU发出中断,通知CPU给出下一条I/O指令。5.2 I/O控制方式5.2.2 中断控制方式n特点:(1)和程序直接I/O相比,提高了CPU利用率和吞吐量(2)数据传输速度仍受数据寄存器大小的限制(3)一次I/O操作,中断次数多,

7、仍消耗CPU时间,CPU利用率提高有限5.2 I/O控制方式5.2.3 直接存储器访问(DMA)控制方式1、引入n基本思想:在外设和主存之间建立数据传送的直接通路,避免使用数据寄存器为中转站的数据交换方式的弊端。n与前两种方式相比,做了如下改进:n(1)数据传送的基本单位是块n(2)建立了主存和外存之间的直接数据通路n(3)设置DMA控制器,控制存储器和外设的数据传送n(4)CPU仅在一个块的开始和结束时才干预。5.2 I/O控制方式5.2.3 直接存储器访问(DMA)控制方式2、DMA控制器的组成n三个部分:主机与DMA控制器接口、DMA控制器与块设备的接口、I/O逻辑n四个寄存器:n命令/

8、状态寄存器CRn内存地址寄存器MARn数据寄存器DRn数据计数器DC5.2 I/O控制方式5.2.3 直接存储器访问(DMA)控制方式3、工作过程nCPU发出一条I/O指令,送到DMA控制器,同时,把传送数据的字节数和主存区起始地址送入DMA控制器的主存地址寄存器和数据寄存器。n启动外设开始传送数据,传送数据过程中,CPU转去执行其它任务(进程),数据传送由DMA控制器控制,直到传输结束或出错,向CPU发出中断,nCPU响应后继续处理:如传送下一块、结束I/O操作或进行故障处理。5.2 I/O控制方式5.2.4 通道控制方式1、引入n进一步减少处理机对I/O操作的干预n实现CPU、通道和外围设

9、备三者间的并行5.2 I/O控制方式5.2.4 通道控制方式2、通道程序n通道有自己的控制指令,称为通道命令(channel control word, CCW)n每一条通道命令规定了外设的一种操作,由以下信息组成:n操作码、内存地址、计数器、通道程序结束位P、记录结束标志Rn若干条通道命令按一定的方式连接起来,就构成了通道程序。5.2 I/O控制方式5.2.4 通道控制方式3、通道地址字n要启动I/O设备工作,首先把I/O要求,用通道程序表示出来,然后由通道控制外设完成指定的操作。n编好的通道程序是放在主存中的,为了使通道能取到通道命令去执行,需要把通道程序的内存起始地址告诉通道。n用于存放

10、通道程序首地址的主存固定单元称为通道地址字(channel address word_CAW),通道启动后,从CAW中获得通道程序的起始地址。第5章 设备管理5.3 缓冲管理n5.3.1 缓冲的引入n5.3.2 单缓冲和双缓冲n5.3.3 循环缓冲n5.3.4 缓冲池5.3 缓冲管理5.3.1 缓冲的引入n(1)缓和CPU与I/O设备间速度不匹配的矛盾n(2)减少对的中断频率,放宽对中断响应时间的限制。n(3)提高CPU和I/O设备之间的并行性。5.3 缓冲管理5.3.2 单缓冲和双缓冲1、单缓冲n在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户

11、区的时间为M,而CPU对数据的处理时间为C。n由于T和C可以并行,当TC时,系统对每块数据的处理时间为M+T,反之则为M+C,即Max(C,T)+ M5.3 缓冲管理5.3.2 单缓冲和双缓冲2、双缓冲n也称为缓冲对换。先输入第一缓冲区,充满后再输入第二缓冲区,同时,用户进程处理第一缓冲区中的数据。n双缓冲时,系统处理一块数据的时间可以粗略地认为是MAX(C,T)。如果CT,则可使CPU不必等待设备输入。5.3 缓冲管理5.3.3 循环缓冲(多缓冲)1、循环缓冲的组成(1)多个缓冲区各个缓冲区大小相同,可分为3类:n用于装输入数据的空缓冲区Rn已装满数据的缓冲区Gn计算进程正在使用的现行工作缓

12、冲区C(2)多个指针n三个指针n指示计算进程下一个可用缓冲区G的nextgn指示下一个输入进程可用的空缓冲区R的nextin指示计算进程正在使用的缓冲区C的current5.3 缓冲管理5.3.3 循环缓冲(多缓冲)2、循环缓冲区的使用(1)Getbuf过程n调用该过程以获取缓冲区(2)Releasebuf过程n调用该过程以释放缓冲区5.3 缓冲管理5.3.3 循环缓冲(多缓冲)3、进程同步(1)nexti指针追赶上nextgn即输入进程速度快于计算进程n输入进程应阻塞(2)nextg追赶上nextin计算进程快于输入进程n计算进程应阻塞5.3 缓冲管理5.3.4 缓冲池(Buffer Poo

13、l)1、缓冲池的组成(1)三种类型的缓冲区n空闲缓冲区n装满输入数据的Buffern装满输出数据的Buffer5.3 缓冲管理5.3.4 缓冲池(Buffer Pool)1、缓冲池的组成(2)形成三个队列n空缓冲队列emqn输入队列inqn输出队列outq5.3 缓冲管理5.3.4 缓冲池(Buffer Pool)1、缓冲池的组成(3)四个工作缓冲区n收容输入工作缓冲区n提取输入工作缓冲区n收容输出工作缓冲区n提取输出工作缓冲区5.3 缓冲管理5.3.4 缓冲池(Buffer Pool)2、Getbuf过程和Putbuf过程(1)Addbuf(type, number)n用于将参数number

14、所指示的缓冲区,挂在type队列上。(2)Takebuf(type)n从type指示的队列的对首摘下一个缓冲区5.3 缓冲管理5.3.4 缓冲池(Buffer Pool)3、缓冲区的工作方式(1)收容输入(2)提取输入(3)收容输出(4)提取输出第5章 设备管理5.4 I/O软件n5.4.1 I/O软件的设计目标和原则n5.4.2 中断处理程序n5.4.3 设备驱动程序n5.4.4 设备独立性软件n5.4.5 用户层的I/O软件5.4 I/O软件5.4.1 I/O软件的设计目标和原则n设计目标:(1)与具体设备无关(2)统一命名(3)对错误的处理(4)缓冲技术(5)设备的分配和释放(6)I/O

15、控制方式5.4 I/O软件5.4.1 I/O软件的设计目标和原则I/O软件的四个层次:(1)用户层软件(2)设备独立性软件(3)设备驱动程序(4)中断处理程序5.4 I/O软件5.4.2 中断处理程序n中断处理层的主要工作:进行进程上下文的切换,对处理中断信号源进行测试,读取设备状态和修改进程状态等。1、唤醒被阻塞的驱动(程序)进程2、保护被中断进程的CPU环境3、转入相应的设备处理程序4、中断处理5、恢复被中断进程的现场5.4 I/O软件5.4.3 设备驱动程序1、设备驱动程序的功能(1)接收由设备独立性软件发来的命令和参数,将命令中的抽象要求转换为具体要求。(2)检查用户I/O请求的合法性

16、,了解I/O设备的状态,传递有关参数,设置设备的工作方式。(3)发出I/O命令。(4)及时响应由控制器或通道发来的中断请求,并根据中断类型调用相应的中断处理程序。(5)对于设置由通道的计算机系统,应能根据用户的输入输出请求,自动构成通道程序。5.4 I/O软件5.4.3 设备驱动程序2、设备处理方式(1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作(2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作(3)不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序(模块),共用户进程或系统进程调用。5.4 I/O软件5.4.3 设备驱动程序3、设备驱

17、动程序的特点(1)驱动程序是在请求输入输出的进程与设备控制器之间的一个通信和转换程序。(2)驱动程序与设备控制器和I/O设备的硬件特性紧密相关,因而不同类型设备应配置不同的驱动程序。(3)驱动程序与I/O设备的I/O控制方式紧密相关(4)由于驱动程序与硬件紧密相关,其中一部分必须用汇编语言编写。(5)驱动程序应允许可重入(6)驱动程序不允许系统调用5.4 I/O软件5.4.3 设备驱动程序4、设备驱动程序的处理过程(1)将抽象的要求转换为具体的要求(2)检查I/O请求的合法性(3)读出和检查设备的状态(4)传送必要的参数(5)设置工作方式(6)启动I/O设备5.4 I/O软件5.4.4 设备独

18、立性软件1、设备独立性的概念n又称为设备无关性:应用程序独立于具体使用的物理设备。n(1)设备分配时的灵活性n(2)易于实现I/O重定向5.4 I/O软件5.4.4 设备独立性软件2、设备独立性软件n驱动程序与硬件紧密相关,为了实现设备无关,必须在驱动程序之上设置一层软件,称为设备独立性软件。n主要功能:n(1)执行所有设备的公有操作n(2)向用户层(或文件层)软件提供统一的接口。5.4 I/O软件5.4.4 设备独立性软件3、逻辑设备名到物理设备名映射的实现(1)逻辑设备表n系统必须设置一张逻辑设备表n三个表项:逻辑设备名、物理设备名、设备驱动程序的入口地址。(2)LUT的设置问题n第一种方

19、式是整个系统设置一张LUTn第二种方式是每个用户设置一张LUT5.4 I/O软件5.4.5 用户层的I/O软件3、逻辑设备名到物理设备名映射的实现n用户程序必须通过一组系统调用来取得操作系统的服务。第5章 设备管理5.5 设备分配n5.5.1 设备分配中的数据结构n5.5.2 设备分配时应考虑的问题n5.5.3 独占设备的分配程序n5.5.4 SPOOLing软件5.5 设备分配5.5.1 设备分配中的数据结构n1、设备控制表DCTn(1)设备队列对首指针n(2)设备状态n(3)与设备连接的控制器表指针n(4)重复执行次数5.5 设备分配5.5.1 设备分配中的数据结构n2、控制器控制表、通道

20、控制表和系统设备表n(1)控制器控制表(COCT)n(2)通道控制表(CHCT)n(3)系统设备表(SDT)5.5 设备分配5.5.2 设备分配时应考虑的因素1、设备的固有属性(1)独占设备:应采用独享分配策略,即将一个设备分配给某进程后,便由该进程独占直至该进程自己释放。(2)共享设备:可同时分配多个进程(3)可虚拟设备:采用虚拟技术,编程可共享设备。5.5 设备分配5.5.2 设备分配时应考虑的因素2、设备分配算法(1)先来先服务n请求同一设备的多个进程,形成一个设备请求队列(2)优先权高者优先n优先权相同者,仍采用先来先服务5.5 设备分配5.5.2 设备分配时应考虑的因素3、设备分配中

21、的安全性(1)安全分配方式n即采用一次性分配策略,打破“占有且等待”条件,避免死锁。(2)不安全分配方式n避免死锁5.5 设备分配5.5.3 独占设备的分配程序1、基本的设备分配程序(1)分配设备n根据I/O请求中的物理设备名,查找SDT,找出设备的DCT(2)分配控制器:根据DCT找到COCT(3)分配通道:根据COCT 找到CHCT5.5 设备分配5.5.3 独占设备的分配程序2、设备分配程序的改进n基本的设备分配过程中的问题:进程以物理设备名提出I/O请求;采用的是单通路I/O结构。n改进办法:n(1)增加设备独立性n(2)考虑多通路情况5.5 设备分配5.5.4 SPOOLing技术1、什么是SPOOLingn假脱机输入输出n在联机情况下实现的同时外围操作称为SPOOLi

温馨提示

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

评论

0/150

提交评论