《IO设备的多样性》PPT课件.ppt_第1页
《IO设备的多样性》PPT课件.ppt_第2页
《IO设备的多样性》PPT课件.ppt_第3页
《IO设备的多样性》PPT课件.ppt_第4页
《IO设备的多样性》PPT课件.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

第13章I/O系统,I/O设备的多样性Os管理和控制I/O操作和I/O设备。,13.1I/O管理概述,外设管理目的提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设方便使用:方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用方便控制:方便OS内部对设备的控制:增加和删除设备,适应新的设备类型外设管理功能提供设备使用的用户接口:命令接口和编程接口设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器。设备的访问和控制:包括并发访问和差错处理(虚拟设备)。I/O缓冲和调度:目标是提高I/O访问效率,按交互对象分类人机交互设备:视频显示设备、键盘、鼠标、打印机与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器计算机间的通信设备:网卡、调制解调器按交互方向分类输入(可读):键盘、扫描仪输出(可写):显示设备、打印机输入/输出(可读写):磁盘、网卡按外设特性分类使用特征:存储、输入/输出、终端数据传输率:低速(如键盘)、中速(如打印机)、高速(如网卡、磁盘)信息组织特征:单个字符或数据块字符设备(如打印机):通常的输入输出型设备,以字符为单位存储、传输信息;不可寻址块设备(如磁盘):以数据块为单位存储、传输信息。可寻址,13.1I/O管理外部设备类型和特征,按资源分配角度分类独占设备在一段时间内只能有一个进程使用的设备,一般为低速I/O设备。如打印机,磁带等。共享设备在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。如硬盘虚拟设备在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备(实例:SPOOLing技术)从程序使用角度分逻辑设备:用户程序中使用的设备物理设备:实际完成I/O操作的设备,13.1I/O管理外部设备类型和特征,13.2I/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干预)。,设备绝对号和相对号,设备绝对号:计算机系统为每一台设备确定的编号,用来区分和识别设备;用户在编写程序时不能通过设备的绝对编号来使用设备设备类型号:操作系统为每类设备规定的一个编号设备相对号:用户自己规定的所用的同类设备中的第几台。如Unix中,rfd0和rfd1分别表示第1个和第2个软盘驱动器;,设备绝对号和相对号,设备的指定方式设备绝对号设备类型号+设备相对号用户程序中提出使用设备的申请时,使用系统规定的设备类型号和用户自己规定的设备相对号,由操作系统进行地址转换,变成系统中的设备绝对号;,I/O软件的设计目标:效率:大多数I/O设备慢,I/O操作一般是系统瓶颈,很大程度上影响系统的性能和吞吐量。因此要改善I/O的有效性,采用多道程序设计、交换。目前比较关注磁盘I/O。通用性:设备种类、特点和性能千差万别;要求能够以一种一致的方式来管理所有设备一致的外部接口,很难做到通用,但希望能够用统一的方法处理所有设备,用一种层次化的,模块化的方法设计I/O功能。能够在低层例程中隐藏大部分设备I/O的细节,使得用户进程和OS高层可以通过一些通用的功能,如读、写、打开、关闭等查看I/O设备。设备独立性。用户在编写使用软盘或硬盘上文件的程序时,无需为不同的设备类型而修改程序就可以使用统一命名。一个文件或一个设备的名字只应是一个简单的字符串或一个整数,不应依赖于设备,13.3设备管理系统的组织,设备独立性,如果用户程序中直接使用真实的物理设备,那么会出现这样的问题:用户指定的设备因故障不能使用,或者该设备正忙于为其他进程服务,只有等待或者修改程序,重新指定设备。为了实现用户程序与物理设备的无关性,在用户程序中不要直接使用物理设备名(或者设备的物理地址),而只能使用逻辑设备名。逻辑设备是实际物理设备的抽象,它不限于某类具体设备。逻辑设备究竟和哪一个具体的物理设备相对应,还要由系统根据当时的设备忙、闲情况来决定或者由系统管理员指定。,IO软件的基本思想是按分层的思想构成:较低层软件要使较高层软件独立于硬件的特性,较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口,13.3设备管理系统的组织,13.3设备管理分层模型,逻辑I/O:将设备当作一个逻辑资源,不涉及实际的设备控制的细节:针对用户接口,提供抽象的命令,如:Open,Close,Read,针对通信设备,则是通信体系结构如网络协议栈;针对文件存储设备,是文件系统的逻辑结构控制;设备I/O:逻辑设备与物理设备间的过渡协调机构。用户命令到设备操作序列的转换。请求的操作和数据被转换成适当的I/O指令序列、通道命令和控制器指令。可以用I/O缓冲提高I/O效率调度和控制:是I/O模块和设备硬件真正发生交互的软件层,直接面对硬件设备的控制细节。如I/O操作的排队,设备控制和状态维护、中断处理。这部分通常体现为设备驱动程序;,13.3设备管理分层模型,进行I/O调用,格式化I/O;Spooling,命名,保护,阻塞,缓冲,分配,建立设备寄存器;检查状态,当I/O结束时,唤醒驱动器,执行I/O操作,I/O系统的层次结构及每层的主要功能,用户进程层执行输入输出系统调用,对I/O数据进行格式化独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配;(逻辑I/O)设备驱动程序设置设备寄存器、检查设备的执行状态中断处理程序负责IO完成时,唤醒设备驱动程序进程,进行中断处理硬件层实现物理IO的操作,I/O系统的层次结构及每层的主要功能,练习题,描述设备管理软件的层次结构,并说明以下的工作各在I/0软件层次的哪一层?维护一个最近使用的块的缓冲。为一个磁盘读操作计算磁道、扇区、磁头。向设备寄存器写命令。设备保护各类I/O库函数,缓冲技术的基本思想:在CPU和外设之间设置缓冲区,用于暂存CPU与外设之间交换的数据,从而缓和CPU与外设速度不匹配的矛盾。缓冲区所在的位置:内存,控制器或外设(多级缓冲机制)硬件缓冲,如I/O控制器中的数据缓冲寄存器软件缓冲:在内存画出一个具有n个单元的专用缓冲区。根据方向:分为输入缓冲和输出缓冲根据用途:分为专用缓存(为一个设备独占,如键盘缓存)和公用缓存(为多个设备公用),缓冲区,CPU,外设,13.4缓冲,13.4缓冲,无缓冲时问题分析:设备直接向进程地址空间传送数据(如用户从磁带中读数据块的操作),则进程要么忙等待,要么阻塞。如果用忙等待方式,则浪费大量CPU时间;如果是阻塞方式,则进程阻塞在设备的I/O请求队列中。这时,不能将进程全部换出,还可能出现单进程死锁。(进程在等待I/O操作结果之前被换出,等待I/O事件,而I/O操作也被阻塞,等待该进程被换入。),缓冲技术的用途可以在发出请求之前就开始执行输入操作(预输入),在发出请求一段时间后才开始执行输出操作(缓输出)。匹配CPU或用户应用进程与外设的不同处理速度减少对CPU的中断次数:提高CPU和I/O设备之间以及各个I/O设备之间的处理并行性。多道程序环境中提高OS效率和单个进程的工具(技术)之一。,13.4缓冲用途,单缓冲(singlebuffer):当一个用户进程发出I/O请求时,OS给该操作分配一个位于主存中系统部分的缓冲区。以面向块的设备为例:输入先传送至系统缓冲区,当传送完成时,进程将该块移动到用户空间,并立即请求另一块预读(对于输出,则称为延迟写)。好处:用户可以在下一块数据正在读入时,处理这块数据(用户进程处理某个数据块的同时,下一个数据块正在读入)。由于输入发生功能在系统存储空间而不是用户进程存储区,因此OS可以将该进程换出。增加了OS的逻辑复杂度:OS必须直到用户进程的缓冲区的分配情况,交换逻辑受到影响。,13.4缓冲单缓冲区,13.4缓冲双缓冲和循环缓冲,双缓冲(doublebuffer):两个缓冲区,CPU和外设都可以连续处理而无需等待对方。当一个进程往一个缓冲区中写数据时(取数据)时,OS正在清空(填充)另一个缓冲区。循环缓冲(circularbuffer):多个缓冲区,CPU和外设的处理速度可以相差较大,如这个进程突然快速执行了大量的I/O。,13.4I/O缓冲,13.4I/O缓冲,由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。设备分配是对进程使用外设过程的管理。这里有两种作法:1)在进程间切换使用外设,如键盘和鼠标;2)通过一个虚拟设备把外设与应用进程隔开,只由虚拟设备来使用设备。,13.4设备分配,13.4.1设备分配数据结构,系统设备表(SDT,SystemDeviceTable):系统内一张,反映系统中设备资源的状态,记录所有设备的状态及其设备控制表的入口。设备控制表(DCT,DeviceControlTable):每个设备一张,描述设备特性和状态。反映设备的特性、设备和控制器的连接情况。控制器控制表(COCT,COntrollerControlTable):每个设备控制器一张,描述I/O控制器的配置和状态。如DMA控制器所占用的中断号、DMA数据通道的分配。通道控制表(CHCT,CHannelControlTable):每个通道一张,描述通道工作状态。,各表间的关系,系统设备表,设备控制表(DCT),控制器控制表COCT,通道控制表CHCT,13.4.2设备分配原则,设备分配的原则合理使用外设(公平和避免死锁)提高设备利用率应用程序与设备无关与设备分配有关的设备属性:独享设备:打印机等;共享设备:磁盘、网卡等;设备分配技术:独占分配:不会出现死锁;但设备利用率不高;共享分配:利用率高,但控制复杂虚拟分配:利用共享设备去实现独占设备的功能;有利于提高设备利用率,先来先服务(FCFS):按I/O请求的先后顺序,排成I/O请求命令队列,队首指向被请求设备的DCT;按FCFS分配设备;基于优先级:依据进程的优先级,指定I/O请求的优先级,排成不同优先级队列;按优先级高低分配设备;,13.4.2设备分配算法,先回顾一下设备分类问题按资源分配角度分类独占设备在一段时间内只能有一个进程使用的设备,一般为低速I/O设备。如打印机,磁带等。因数量有限,会成为系统中的“瓶颈”资源,使进程经常处于阻塞状态;设备利用率比较低共享设备在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高(如硬盘),13.5Spooling系统,13.5虚拟设备,虚拟设备技术多道程序系统中,进程对设备的需求频繁,尤其是独占设备数量有限、效率低,故引入虚拟设备管理技术。基本思想:用大容量的快速设备(磁盘)模拟慢速度的独占设备,把一台物理上的独占设备变为逻辑上的多台共享设备。通过共享型设备来模拟独占型设备的动作,使独占型设备成为共享型设备,提高设备的利用率和系统的效率。实例:SPOOLing技术(SimultaneouslyPeripheralOperationOnLine,外围设备同时联机操作),是用程序模拟脱机I/O的功能,故又称为假脱机技术。,虚拟设备,13.5Spooling系统,13.5SPOOLing系统工作原理,作业执行前用慢速设备将作业预先输入到输入井中,称为预输入(输入井和输出井是某共享设备(磁盘)上的一部分存储空间)。作业运行后,使用数据时,从输入井中取出作业执行不必直接启动外设输出数据,只需将这些数据写入输出井中作业全部运行完毕,再由外设输出全部数据和信息,称为缓输出实现了对作业输入、组织调度和输出的统一管理使外设在CPU直接控制下,与CPU并行工作(称为假脱机),SPOOLing系统,13.5SPOOLing系统举例,假设系统中全部打印机采用了Spooling技术,当某进程要求打印输出时,并不是将某台打印机分配给该进程,而是在某共享设备(磁盘)上的输出井中,为其分配一块存储区,同时为该进程的输出数据建立一个文件,该进程的输出数据实际上并未从打印机上输出,只是以文件形式输出,并输出存放在输出井中。这个输出文件实际相当于虚拟的打印机。这些输出井中的文件形成了一个输出队列,然后调度输出用户进程并未真正分到打印机,用户进程被分配的只是共享设备中的一个存储区,思考:以打印机为例,简述Spooling技术的工作原理,它是如何使一台打印机虚拟成多台打印机的?,13.5SPOOL

温馨提示

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

评论

0/150

提交评论