《c6_设备管理》PPT课件.ppt_第1页
《c6_设备管理》PPT课件.ppt_第2页
《c6_设备管理》PPT课件.ppt_第3页
《c6_设备管理》PPT课件.ppt_第4页
《c6_设备管理》PPT课件.ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

设备管理,概述 I/O系统特点 设备分类 I/O硬件 设备管理 Windows I/O技术,系统的基本目标是:向用户提供使用 设备的方便接口以及充分发挥设备利用率。 隐蔽设备的物理特性 提供独立于设备的统一接口 设备的分配 在多道程序系统中,用户进程竞争使用有限的设备资源。按设备的使用方式,设备有独享设备和共享设备之分。一台独享设备在一进程使用期间为该进程所独占,其它进程不得插入进行交替使用。 出错处理 出错处理是系统的另一重要任务。总的说来,错误应尽可能在硬件层或最接近硬件的软件部分处理。如果控制器或通道能够处理则自行处理,否则由设备驱动程序处理,1、I/O的特点,(1)I/O性能经常成为系统性能的瓶颈 CPU性能不等于系统性能 响应时间也是一个重要因素 CPU性能越高,与I/O差距越大 弥补:更多的进程 进程切换多,系统开销大,(2)操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自I/O 外设种类繁多,结构各异 输入输出数据信号类型不同 速度差异很大 (3)理解I/O的工作过程与结构是理解操作系统的工作过程与结构的关键 (4)与其他功能联系密切,特别是文件系统,(1)按使用特性分 存储型设备 输入型设备(外设主机) 输出型设备(主机外设) 输入输出型设备(交互型设备),2、设备的分类,(2)按数据组织分 块设备 以数据块为单位存储、传输信息 字符设备 以字符为单位存储、传输信息,(3)按外部设备的从属关系分 系统设备 指操作系统生成时,登记在系统中的标准设备 (如终端、打印机、磁盘机等) 用户设备 指在系统生成时,未登记在系统中的非标准设备。对于这类设备的处理程序由用户提供,并将其纳入系统,由系统代替用户实施管理。 (如A/D,D/A转换器,CAD所用专用设备),(4)按资源分配角度分 独占设备 在一段时间内只能有一个进程使用的设备,一般为低速I/O设备(如打印机,磁带等) 共享设备 在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高(如硬盘),虚设备 在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备 目的:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率 (实例:SPOOLing技术,利用虚设备技术 用硬盘模拟输入输出设备),为解决独立设备数量少,速度慢,不能满足众多进程的要求,而且在进程独占设备期间,设备利用率比较低而提出的一种设备管理技术,Spooling技术,(5)从程序使用角度分 逻辑设备、物理设备 (6)按数据传输率分 高速设备、低速设备 (7)按接口分 与用户交流:显示器,键盘,鼠标,打印机等 与电子设备交流:磁盘、磁带等 通信:与远程设备通信:调制解调器,各类设备的差别: 数据传输率 应用 控制的复杂性 传输单位 数据表示 出错条件,(1) 按照用户的请求,控制设备的各种操作,完成I/O设备与内存之间的数据交换(包括设备分配与回收;设备驱动程序;设备中断处理;缓冲区管理),最终完成用户的I/O请求。,3.设备管理的目标和任务,设备分配与回收 记录设备的状态 根据用户的请求和设备的类型,采用一定的分配算法, 选择一条数据通路 建立统一的独立于设备的接口 完成设备驱动程序,实现真正的I/O操作 处理外部设备的中断处理 管理I/O缓冲区,功能,(2)向用户提供使用外部设备的方便接口,使用户摆脱繁琐的编程负担 方便性 友好界面 透明性 逻辑设备与物理设备、屏蔽硬件细节(设备的物理细节,错误处理,不同I/O的差异性),(3)充分利用各种技术(通道,中断,缓冲等)提高CPU与设备、设备与设备之间的并行工作能力,充分利用资源,提高资源利用率 并行性 均衡性(使设备充分忙碌),(4)保证在多道程序环境下,当多个进程竞争使用设备时,按一定策略分配和管理各种设备,使系统能有条不紊的工作 (5)保护 设备传送或管理的数据应该是安全的、不被破坏的、保密的,(6)与设备无关性(设备独立性) 用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备(实际设备)的转换 用户能独立于具体物理设备而方便的使用设备。 统一性: 对不同的设备采取统一的操作方式,在用户程序中使用的是逻辑设备 优点: 设备忙碌或设备故障时,用户不必修改程序 改善了系统的可适应性和可扩展性,IO软件的基本思想是按分层思想构成,较低层软件要使较高层软件独立于硬件的特性,较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口。,二、I/O软件的组成,在设计IO软件时的一个关键概念是设备独立性。用户在编写使用软盘或硬盘上文件的程序时,无需为不同的设备类型而修改程序就可以使用 与设备独立性密切相关的是统一命名这一目标。一个文件或一个设备的名字只应是一个简单的字符串或一个整数,不应依赖于设备,1. IO软件的目标,出错处理是IO软件的另一个目标。一般来说,数据传输中的错误应尽可能地在接近硬件层上处理 最后一个问题是可共享设备和独占设备的处理问题,2.中断处理程序,每个进程在启动一个IO操作后阻塞 直到IO操作完成并产生一个中断 由操作系统接管CPU后唤醒该进程为止。,3.设备驱动程序,与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型 每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责释放这些命令,并监督它们正确执行,一般,设备驱动程序任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求。 在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式, 执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。 而在其它情况下,命令执行不必延迟就很快完成。,4.设备独立的软件,虽然IO软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的,1.独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口 2.如何给文件和设备这样的对象命名是操作系统中的一个主要课题。独立于设备的软件负责把设备的符号名映射到正确的设备驱动上 3.设备保护 系统如何防止无权存取设备的用户存取设备,4.不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块 5.缓冲技术 6.设备分配 7.出错处理,5.用户空间的IO软件,尽管大部分IO软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括IO系统调用,通常由库过程实现 这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的IO过程实际实现真正的操作,(1)用户进程层执行输入输出系统调用,对IO数据进行格式化,为假脱机输入输出作准备 (2)独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配 (3)设备驱动程序设置设备寄存器、检查设备的执行状态 (4)中断处理程序负责IO完成时,唤醒设备驱动程序进程,进行中断处理 (5)硬件层实现物理IO的操作,1.设备组成 IO设备一般由机械和电子两部分组成 把这两部分分开处理,以提供更加模块化,更加通用的设计,三、I/O硬件特点,(1)物理设备 机械部分是设备本身(物理装置) (2)设备控制器 电子部分叫做设备控制器或适配器。 在小型和微型机中,它常采用印刷电路卡插入计算机中(接口) 完成设备与主机间的连接和通讯,控制器卡上通常有一个插座,通过电缆与设备相连 控制器和设备之间的接口是一个标准接口,它符合ANSI、IEEE或ISO这样的国际标准。,I/O设备特点: (1)操作异步性 (2)设备自治性 (3)接口通用性 关注点:对该硬件如何进行程序设计,不考虑设备内部如何工作 程序员:软件接口 即硬件所接受的命令,它所完成的功能,报回的错误,四、设备有关技术,Spooling(虚拟设备)技术 一个虚拟设备 一个资源转换技术 (用空间,如输入,输出等换取CPU时间) 解决问题: 在进程所需物理设备不存在或被占用时使用该设备,计算机系统I/O设备与部件配置的应用技术 顾名思义: 插入就可用,不需要进行任何设置操作,即插即用技术(Plug and Play),由于一个系统可以配置多种外部设备,设备也经常变动和更换,它们都要占有一定的系统资源,彼此间在硬件和软件上可能会产生冲突。因此在系统中要正确地对它们进行配置和资源匹配;当设备撤除、添置和进行系统升级时,配置过程往往是一个困难的过程,PnP技术的产生,(1)支持I/O设备及部件的自动配置,使用户能够简单方便地使用系统扩充设备 (2)减少由制造商装入的种种用户支持和限制,简化部件的硬件跳接设置,使I/O附加卡和部件不再具有人工跳接线设置电路。 (3)在主机板和附加卡上保存系统资源的配置参数和分配状态,有利于系统对整个I/O资源的分配和控制 (4)支持和兼容各种操作系统平台,具有很强的扩展性和可移植性。 (5)在一定程度上具有“热插入”、“热拼接”技术,PnP技术的特点,设备分配程序,1 设备分配的数据结构,在配置有通道的计算机系统中,设备分配程序至少应解决以下三个问题: (1) 是否有能用来为I/O请求提供的通路? (2) 是否有一条以上的通路可用? (3) 如果当前尚无通路可用, 那么通路何时才能空闲?,数据结构: 设备控制块DCB(设备控制表DCT) 控制器控制块COCB (控制器控制表COCT) 通道控制块CHCB (通道控制表CHCT) 系统设备表SDT,设备控制表,系统设备表SDT 整个系统一张表,记录系统中所有I/O设备的信息,表目包括: 设备类型、设备标识符、进程标识符、DCT表指针等,设备控制表DCT 主要内容:设备类型、设备标识符、设备状态、与此设备相连的COCT、重复执行的次数或时间、等待队列的队首和队尾指针、I/O程序地址 COCT、CHCT与DCT类似,通道控制表(CHCT) 根据用户请求的I/O设备的逻辑名,查找逻辑设备和物理设备的映射表;以物理设备为索引,查找SDT,找到该设备所连接的DCT;继续查找与该设备连接的COCT和CHCT,就找到了一条通路,由于在多道程序系统中,进程数多于资源数,引起资源的竞争。因此,要有一套合理的分配原则 考虑的因素: I/O设备的固有属性 I/O设备的分配算法 设备分配的安全性 与设备的无关性,2.设备分配策略,独占设备的分配 要考虑充分发挥效率,避免由于不合理的分配策略造成死锁 静态分配:在进程运行前, 完成设备分配;运行结束时,收回设备 缺点:设备利用率低,动态分配: 在进程运行过程中,当用户提出设备要求时,进行分配,一旦停止使用立即收回 优点:效率好 缺点:分配策略不好时, 产生死锁,共享设备分配 由于同时有多个进程同时访问,且访问频繁,就会影响整个设备使用效率,影响系统效率。因此要考虑多个访问请求到达时服务的顺序,使平均服务时间越短越好,为了控制I/O传输,系统为每类设备编制设备驱动程序 任务:主要负责接收和分析从设备分配转来的信息,并根据设备分配的结果,结合具体物理设备特性完成以下具体工作,设备驱动程序,(1) 预置设备的初始状态 (2) 根据请求传输的数据量,组织I/O缓冲队列,利用I/O缓冲对数据进行加工,包括数据格式处理和编码转换 (3) 构造I/O程序(在有通道系统中,是通道程序) (4) 启动设备进行I/O操作,不同操作系统处理I/O事务所采用的形式不同,主要有三种处理方式: (1) 每类设备一个I/O进程 (2) 整个系统一个I/O进程 (3) 为各类设备设置相应的设备处理程序供外部调用 I/O进程:专门处理系统中的I/O请求和I/O中断工作,设备分配实现方案:I/O进程,(1)I/O请求的进入 用户程序:调用send将I/O请求发送给I/O进程;调用block将自己阻塞,直到I/O任务完成后被唤醒 系统:利用wakeup唤醒I/O进程,完成用户所要求的I/O处理 (2)I/O中断的进入 当I/O中断发生时,内核中的中断处理程序发一条消息给I/O进程,由I/O进程负责判断并处理中断,(3)I/O进程 是系统进程,一般赋予最高优先级。一旦被唤醒,它可以很快抢占处理机投入运行 I/O进程开始运行后,首先关闭中断,然后用receive去接收消息。两种情形:,没有消息,则开中断,将自己阻塞; 有消息,则判断消息(I/O请求或I/O中断); a.I/O请求 准备通道程序,发出启动I/O指令,继续判断有无消息 b.I/O中断,进一步判断正常或异常结束 正常:唤醒要求进行I/O操作的进程 异常:转入相应的错误处理程序,为进程P分配所需的I/O设备,从SDT表查该类设备的控制表DCT,由DCT检查该设备忙否?,不忙,检查分配此设备的安全性?,不安全,分配此设备给进程P,查此设备连接的COCT忙否?,不忙,不忙,分配此控制器给进程P,查此控制器连接的CHCT忙否?,最后一个DCT?,分配此通道给进程P,启动I/O,进行具体的I/O操作,忙,进程P的PCB放入 此设备的等待队列,Y,N,忙,最后一个COCT?,最后一个DCT?,进程 P 的 PCB 放入 此控制器的等待队列,Y,N,Y,忙,最后一个CHCT?,Y,最后一个COCT?,进程 P 的 PCB 放入 此通道的等待队列,N,Y,N,N,多通路设备分配流程示意图,管理程序,保护现场 组织通道程序 保存通道程序 的始址于CAW 启动I/O指令 分析条件码 启动成功使 P阻塞, 另选 程序q运行 保护程序q的 现场 分析中断原因 处理I/O中断 选择可运行程序,请求 启动程序,程序q,程序P,用户程序,判断状态 执行通道程序 控制I/O设备 操作,执行情 况记录在CSW 出现中断事件 CSW=主存通 道号, 设备号 送特定寄存器,通道程序,执行规定 的操作,设备控制器和设备,1,2,3,4,5,6,I/O的操作全过程,I/O系统的软件组织,I/O软件设计的目标,设备无关性。其含义就是使程序员写出的软件无需任何修改便能读出软盘、硬盘以及CD-ROM等不同设备上的文件,而与具体设备无关。 错误处理。 同步/异步传输。 处理独占设备和共享设备的I/O操作。,为实现以上四个目标, I/O系统应组织成以下四个层次: (1) 中断处理程序; (2) 设备驱动程序; (3) 与设备无关的I/O软件; (4) 用户空间的I/O软件。,中断处理程序 中断处理程序位于I/O系统的最低层。当进程需要进行I/O操作时,操作系统应将该进程挂起,即进入阻塞,直至I/O操作结束并发生中断。 当中断发生时,中断处理程序执行相应的操作,以解除相应进程的阻塞状态。,设备驱动程序,设备驱动程序包括了所有与设备有关的代码。每一个设备驱动程序只处理一种设备或者一类密切相关的设备。 设备驱动程序的功能是从与设备无关的软件中接收抽象的请求,并执行该请求。例如,读磁盘上的第n块。如果请求到来时,驱动程序空闲,则它立即执行该请求; 但如果它正在处理另一请求, 则它将该请求挂在一个等待队列中。,与设备无关的I/O软件,以块设备为例,与设备无关的I/O软件的主要功能包括: 设备命名 (2) 设备保护 (3) 与设备无关的块大小 (4) 数据缓冲 (5) 数据块的分配 (6) 对独占设备的分配与释放 (7) 错误处理,用户空间的I/O软件,尽管大部分I/O软件属于操作系统,但是也有一小部分是与用户程序链接在一起的库例程,甚至是在核心外运行的完整程序。 系统调用,包括I/O系统调用,通常是库例程调用。如下C语句: count=write(fd, buffer, nbyte); 所调用的库函数write( )将与用户程序链接在一起, 并包含在运行时的二进制代码中。这一类库例程显然也是I/O系统的一部分。标准I/O库包含相当多涉及I/O的库例程,它们作为用户程序的一部分运行。,I/O系统软件的层次结构,I/O系统的层次结构,图 6.22 I/O系统概貌,I/O系统概貌,Windows 的I/O系统,NT执行体的I/O系统接收用户态和核心态进程的I/O请求,以不同的方式传送到I/O设备。I/O系统包含一组负责处理各种设备的输入/输出部件: (1) I/O管理程序; (2) 文件系统; (3) 缓冲存储管理器(Cache Manager); (4) 设备驱动程序(Device Driver); (5) 网络转发程序(NetWork Redirector)和网络服务程序(Network Server)。,I/O管理程序 I/O管理程序建立了NT执行体的I/O模型,它实现与设备无关的输入/输出,即它并不进行实际的I/O处理。 主要工作是建立一个代表I/O操作的I/O请求包IRP(I/O Request Packet),把IRP传送给适当的驱动程序并在I/O完成后处理其结果,最后撤消IRP。,驱动程序接收IRP,执行IRP规定

温馨提示

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

评论

0/150

提交评论