1 / 34

第13章 I/O 系统

第13章 I/O 系统. I/O 设备的多样性 Os 管理和控制 I/O 操作和 I/O 设备。. 13.1 I/O 管理- 概述. 外设管理目的 提高效率: 提高 I/O 访问效率,匹配 CPU 和多种不同处理速度的外设 方便使用: 方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用 方便控制: 方便 OS 内部对设备的控制:增加和删除设备,适应新的设备类型 外设管理功能 提供设备使用的用户接口 :命令接口和编程接口 设备分配和释放: 使用设备前,需要分配设备和相应的通道、控制器。 设备的访问和控制: 包括并发访问和差错处理(虚拟设备)。

dayton
Download Presentation

第13章 I/O 系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第13章 I/O系统 I/O设备的多样性 Os管理和控制 I/O操作和I/O设备。

  2. 13.1 I/O管理-概述 • 外设管理目的 • 提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设 • 方便使用:方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用 • 方便控制:方便OS内部对设备的控制:增加和删除设备,适应新的设备类型 • 外设管理功能 • 提供设备使用的用户接口:命令接口和编程接口 • 设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器。 • 设备的访问和控制:包括并发访问和差错处理(虚拟设备)。 • I/O缓冲和调度:目标是提高I/O访问效率

  3. 13.1 I/O管理-外部设备类型和特征 • 按交互对象分类 • 人机交互设备:视频显示设备、键盘、鼠标、打印机 • 与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器 • 计算机间的通信设备:网卡、调制解调器 • 按交互方向分类 • 输入(可读):键盘、扫描仪 • 输出(可写):显示设备、打印机 • 输入/输出(可读写):磁盘、网卡 • 按外设特性分类 • 使用特征:存储、输入/输出、终端 • 数据传输率:低速(如键盘)、中速(如打印机)、高速(如网卡、磁盘) • 信息组织特征:单个字符或数据块 • 字符设备(如打印机):通常的输入输出型设备,以字符为单位存储、传输信息;不可寻址 • 块设备(如磁盘):以数据块为单位存储、传输信息。可寻址

  4. 13.1 I/O管理-外部设备类型和特征 • 按资源分配角度分类 • 独占设备 • 在一段时间内只能有一个进程使用的设备,一般为低速I/O设备。如打印机,磁带等。 • 共享设备 • 在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。如硬盘 • 虚拟设备 • 在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备.(实例:SPOOLing技术,利用虚设备技术——用硬盘模拟输入输出设备) • 从程序使用角度分 • 逻辑设备:用户程序中使用的设备 • 物理设备:实际完成I/O操作的设备

  5. 13.2 I/O控制技术 • 程序控制I/O(轮询):CPU代表进程给I/O模块发送一个命令,CPU进入忙等待(输入输出完全由CPU控制) • 中断驱动I/O: CPU代表进程给I/O模块发送一个命令,然后CPU继续执行后续指令; 当I/O模块完成后,CPU被该模块(CPU和I/O设备可以共同工作)中断。 • 直接存储器存取(DMA):CPU给DMA模块发请求,只有当DMA将整个数据块传送结束后,CPU才被中断(数据在内存和外设之间传输时不需要CPU干预)。

  6. 设备绝对号和相对号 • 设备绝对号:计算机系统为每一台设备确定的编号,用来区分和识别设备; • 用户在编写程序时不能通过设备的绝对编号来使用设备 • 设备类型号:操作系统为每类设备规定的一个编号 • 设备相对号:用户自己规定的所用的同类设备中的第几台。 • 如Unix中,rfd0和rfd1分别表示第1个和第2个软盘驱动器;

  7. 设备绝对号和相对号 • 设备的指定方式 • 设备绝对号 • 设备类型号+设备相对号 • 用户程序中提出使用设备的申请时,使用系统规定的设备类型号和用户自己规定的设备相对号,由操作系统进行地址转换,变成系统中的设备绝对号;

  8. 13.3 设备管理系统的组织 • I/O软件的设计目标: • 效率:大多数I/O设备慢,I/O操作一般是系统瓶颈,很大程度上影响系统的性能和吞吐量。因此要改善I/O的有效性,采用多道程序设计、交换。目前比较关注磁盘I/O。 • 通用性:设备种类、特点和性能千差万别;要求能够以一种一致的方式来管理所有设备-一致的外部接口,很难做到通用,但希望能够用统一的方法处理所有设备,用一种层次化的,模块化的方法设计I/O功能。 • 能够在低层例程中隐藏大部分设备I/O的细节, • 使得用户进程和OS高层可以通过一些通用的功能,如读、写、打开、关闭等查看I/O设备。 • 设备独立性。用户在编写使用软盘或硬盘上文件的程序时,无需为不同的设备类型而修改程序就可以使用 • 统一命名。一个文件或一个设备的名字只应是一个简单的字符串或一个整数,不应依赖于设备

  9. 13.3 设备管理系统的组织 • I/O软件的基本思想是按分层的思想构成: • 较低层软件要使较高层软件独立于硬件的特性, • 较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口

  10. User Process Logical I/O Communications Architecture Device I/O Scheduling & Control(Device Driver) Hardware 13.3 设备管理分层模型 返回

  11. 13.3 设备管理分层模型 • 逻辑I/O:将设备当作一个逻辑资源,不涉及实际的设备控制的细节: • 针对用户接口,提供抽象的命令,如:Open, Close, Read, • 针对通信设备,则是通信体系结构如网络协议栈; • 针对文件存储设备,是文件系统的逻辑结构控制; • 设备I/O:逻辑设备与物理设备间的过渡协调机构。用户命令到设备操作序列的转换。请求的操作和数据被转换成适当的I/O指令序列、通道命令和控制器指令。可以用I/O缓冲提高I/O效率 • 调度和控制:是I/O模块和设备硬件真正发生交互的软件层,直接面对硬件设备的控制细节。如I/O操作的排队,设备控制和状态维护、中断处理。这部分通常体现为设备驱动程序;

  12. I/O系统的层次结构及每层的主要功能 进行I/O调用,格式化I/O; Spooling 命名,保护,阻塞,缓冲,分配 建立设备寄存器;检查状态 当I/O结束时,唤醒驱动器 执行I/O操作

  13. I/O系统的层次结构及每层的主要功能 • 用户进程层执行输入输出系统调用,对I/O数据进行格式化 • 独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配;(逻辑I/O) • 设备驱动程序设置设备寄存器、检查设备的执行状态 • 中断处理程序负责I/O完成时,唤醒设备驱动程序进程,进行中断处理 • 硬件层实现物理I/O的操作

  14. 13.4 缓冲 • 缓冲技术的基本思想:在CPU和外设之间设置缓冲区,用于暂存CPU与外设之间交换的数据,从而缓和CPU与外设速度不匹配的矛盾。 • 缓冲区所在的位置:内存,控制器或外设(多级缓冲机制) • 硬件缓冲,如I/O控制器中的数据缓冲寄存器 • 软件缓冲:在内存画出一个具有n个单元的专用缓冲区。 • 根据方向:分为输入缓冲和输出缓冲 • 根据用途:分为专用缓存(为一个设备独占,如键盘缓存)和公用缓存(为多个设备公用) 缓冲区 外设 CPU

  15. 13.4 缓冲 • 无缓冲时问题分析:设备直接向进程地址空间传送数据(如用户从磁带中读数据块的操作),则进程要么忙等待,要么阻塞。 • 如果用忙等待方式,则浪费大量CPU时间; • 如果是阻塞方式,则进程阻塞在设备的I/O请求队列中。这时,不能将进程全部换出,还可能出现单进程死锁。(进程在等待I/O操作结果之前被换出,等待I/O事件,而I/O操作也被阻塞,等待该进程被换入。)

  16. 13.4 缓冲-用途 • 缓冲技术的用途 • 可以在发出请求之前就开始执行输入操作(预输入),在发出请求一段时间后才开始执行输出操作(缓输出)。 • 匹配CPU或用户应用进程与外设的不同处理速度 • 减少对CPU的中断次数:提高CPU和I/O设备之间以及各个I/O设备之间的处理并行性。 • 多道程序环境中提高OS效率和单个进程的工具(技术)之一。

  17. 13.4 缓冲-单缓冲区 • 单缓冲(single buffer):当一个用户进程发出I/O请求时,OS给该操作分配一个位于主存中系统部分的缓冲区。以面向块的设备为例:输入先传送至系统缓冲区,当传送完成时,进程将该块移动到用户空间,并立即请求另一块-预读(对于输出,则称为延迟写)。 • 好处: • 用户可以在下一块数据正在读入时,处理这块数据(用户进程处理某个数据块的同时,下一个数据块正在读入)。由于输入发生功能在系统存储空间而不是用户进程存储区,因此OS可以将该进程换出。 • 增加了OS的逻辑复杂度:OS必须直到用户进程的缓冲区的分配情况,交换逻辑受到影响。

  18. 13.4 缓冲-双缓冲和循环缓冲 • 双缓冲(double buffer):两个缓冲区,CPU和外设都可以连续处理而无需等待对方。当一个进程往一个缓冲区中写数据时(取数据)时,OS正在清空(填充)另一个缓冲区。 • 循环缓冲(circular buffer):多个缓冲区,CPU和外设的处理速度可以相差较大,如这个进程突然快速执行了大量的I/O。

  19. 13.4 I/O 缓冲

  20. 13.4 I/O 缓冲

  21. 13.4 设备分配 • 由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。设备分配是对进程使用外设过程的管理。这里有两种作法: • 1)在进程间切换使用外设,如键盘和鼠标; • 2)通过一个虚拟设备把外设与应用进程隔开,只由虚拟设备来使用设备。

  22. 13.4.1 设备分配-数据结构 • 系统设备表(SDT, System Device Table):系统内一张,反映系统中设备资源的状态,记录所有设备的状态及其设备控制表的入口。 • 设备控制表(DCT, Device Control Table):每个设备一张,描述设备特性和状态。反映设备的特性、设备和控制器的连接情况。 • 控制器控制表(COCT, COntroller Control Table):每个设备控制器一张,描述I/O控制器的配置和状态。如DMA控制器所占用的中断号、DMA数据通道的分配。 • 通道控制表(CHCT, CHannel Control Table):每个通道一张,描述通道工作状态。

  23. 各表间的关系 系统设备表 设备控制表(DCT) 控制器控制表COCT 通道控制表CHCT

  24. 13.4.2 设备分配-原则 • 设备分配的原则 • 合理使用外设(公平和避免死锁) • 提高设备利用率 • 应用程序与设备无关 • 与设备分配有关的设备属性: • 独享设备:打印机等; • 共享设备:磁盘、网卡等; • 设备分配技术: • 独占分配:不会出现死锁;但设备利用率不高; • 共享分配:利用率高,但控制复杂 • 虚拟分配:利用共享设备去实现独占设备的功能;有利于提高设备利用率

  25. 13.4.2 设备分配-算法 • 先来先服务(FCFS):按I/O请求的先后顺序,排成I/O请求命令队列,队首指向被请求设备的DCT;按FCFS分配设备; • 基于优先级:依据进程的优先级,指定I/O请求的优先级,排成不同优先级队列;按优先级高低分配设备;

  26. 13.5 Spooling系统 • 先回顾一下设备分类问题 • 按资源分配角度分类 • 独占设备 • 在一段时间内只能有一个进程使用的设备,一般为低速I/O设备。如打印机,磁带等。数量有限,成为系统中的“瓶颈”资源,使进程处于阻塞状态;设备利用率比较低 • 共享设备 • 在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。(如硬盘)

  27. 13.5 Spooling系统 • 虚拟设备技术 • 通过共享型设备来模拟独占型设备的动作,使独占型设备成为共享型设备,提高设备的利用率和系统的效率。 • 实例:SPOOLing技术(Simultaneously Peripheral Operation On Line,外围设备同时联机操作)

  28. 虚拟设备 用户进程 …… 输入设备 虚拟设备 …… 输出设备 虚拟设备 用户进程 虚拟设备 输入井 …… 输出井 …… 虚拟设备

  29. 13.5 SPOOLing系统-工作原理 • 作业执行前用慢速设备将作业预先输入到输入井中,称为预输入(输入井和输出井是某共享设备(磁盘)上的一部分存储空间)。 • 作业运行后,使用数据时,从输入井中取出 • 作业执行不必直接启动外设输出数据,只需将这些数据写入输出井中 • 作业全部运行完毕,再由外设输出全部数据和信息,称为缓输出 • 实现了对作业输入、组织调度和输出的统一管理使外设在CPU直接控制下,与CPU并行工作(称为假脱机)

  30. 输入装置 通 道 外 设 输入井 输出井 通 道 输出装置 输入装置 输出装置 通 道 主机系统 输入管 输出管 理模块 理模块 SPOOLing系统

  31. 13.5 SPOOLing系统-举例 • 假设系统中全部打印机采用了Spooling技术,当某进程要求打印输出时,并不是将某台打印机分配给该进程,而是在某共享设备(磁盘)上的输出井中,为其分配一块存储区,同时为该进程的输出数据建立一个文件,该进程的输出数据实际上并未从打印机上输出,只是以文件形式输出,并输出存放在输出井中。 • 这个输出文件实际相当于虚拟的打印机。这些输出井中的文件形成了一个输出队列,然后调度输出 • 用户进程并未真正分到打印机, • 用户进程被分配的只是共享设备中的一个存储区

  32. 打印请求队列 打印机 打印 服务进程 以spooling方式使用外设 13.5 SPOOLing系统-举例 思考:以打印机为例,简述Spooling技术的工作原理,它是如何使一台打印机虚拟成多台打印机的?

  33. 13.5 SPOOLing系统-优点 • Spooling技术优点: • 高速虚拟I/O操作:应用程序的虚拟I/O比实际I/O速度提高,缩短了应用程序的执行时间。另一方面,程序的虚拟I/O操作时间和实际I/O操作时间分离开来。 • 实现对独享设备的共享:由Spooling程序提供虚拟设备,可以对独享设备共享使用。

  34. 思考题 • 什么是缓冲?为什么要引入缓冲? • 区分独占设备、共享设备、虚拟设备; • 理解对共享设备可同时使用的含义; • 简述实现虚拟设备的基本条件,虚拟设备的实现原理 • 解释Spooling系统及其组成;输入井和输出井的位置及作用 • 设备独立性的含义 • 设备的分配方法

More Related