




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统设计与实现第四章I/O设备管理,主讲教师:史广顺gsshigsshi,2,内容提要,I/O设备管理概述I/O硬件原理与软件原理进程死锁I/O设备管理实例剖析,内容提要,3,I/O设备管理系统结构图,设备管理概述,上层用户程序(应用层),设备控制器,命令寄存器,中断处理程序,设备驱动程序,设备无关程序,用户进程,状态寄存器,数据寄存器,4,I/O设备的特点分析,操作系统需要管理的最复杂的资源I/O设备I/O设备种类繁多,工作模式各不相同I/O设备数据多样,处理方式各不相同I/O设备性能参差,运行控制多种多样最容易成为计算机系统的瓶颈I/O设备很多I/O设备使用机械操作,导致其速度较CPU相差很大进程运行中的输入输出操作可能造成系统运行的性能瓶颈I/O管理:如何最大限度保证I/O设备与CPU的并行工作最实用、最体现操作系统特色的工作I/O管理兼容性:操作系统最难以完成的使命标准化:IT技术迅速普及发展的本质高性能:I/O设备发展的主要目标,I/O硬件管理,5,I/O设备分类,按照设备的功能特性划分存储型设备:保存各类数据(临时或永久)输入输出型设备:提供人机交互手段数据通信型设备:实现电子数据交换按照数据的组织形式划分块设备:以数据块为单位存储、传输数据字符设备:以字节为单位存储、传输数据按照资源分配的形式划分独占式设备:一个时刻只能由一个进程使用,一般为低速I/O设备共享式设备:一个时刻可由多个进程使用,资源利用率很高虚拟式设备:用高速设备模拟低速设备,用共享设备模拟独占设备按照程序使用的方式划分逻辑设备:由操作系统维护,简便用户操作和控制的“设备结构”物理设备:由硬件结构组成,真实完成各类I/O设备操作,I/O硬件管理,6,I/O设备的差别,I/O设备的评价标准设备的数据传输单位和传输率设备的数据表示和应用目标设备的控制方式和出错情况,I/O硬件管理,7,I/O管理的任务和目标,根据用户请求,控制各类I/O设备实现用户的目标控制设备操作,实现设备与内存的数据交换设备的分配与回收、设备驱动程序、设备中断管理、各类缓冲区管理等向用户提供方便的I/O设备接口,屏蔽底层硬件细节差别虚拟机逻辑设备的作用:用户能够简单方便的使用I/O设备设备接口的方便性、友好性、透明性、设备无关性利用各种技术,提高I/O设备的运行效率设备与CPU之间、设备之间的并行设备负载的均衡:保持设备的充分忙碌实现对I/O设备的管理和保护设备的分配与回收:针对独占设备和共享设备,实现合理的资源分配设备的数据保护:不同设备之间的保护、设备内部的保护,I/O硬件管理,8,内容提要,I/O设备管理概述I/O硬件原理与软件原理进程死锁I/O设备管理实例剖析,内容提要,9,I/O设备硬件组成,I/O设备的硬件结构机械部分(物理装置):由模拟信号驱动的各种机械装置控制器/适配器(电子装置):实现与主机的连接和通信设备控制器的工作方式常以板卡的形式与主板的总线插槽连接通过设备的接口寄存器、缓冲区与CPU进行通信设备控制器的工作内容地址译码:实现对I/O地址空间的正确映射外部通信:接受或者发送数据/状态信号执行指令:将数字化指令转化为机械装置能够理解的模拟信号性能增强:实现内部硬件缓冲、完成数据加工等性能提升目标,I/O硬件管理,10,操作系统的硬件环境,课程导论,11,I/O设备接口的工作流程,I/O操作过程的细分准备、启动、测试和等待、结果检查和错误处理I/O设备接口的作用接口寄存器:保存命令、状态或者数据接口缓冲区:用来保存大量数据的缓冲区通过I/O设备接口,CPU可以设定指令或状态、可以读取状态和结果I/O设备接口的工作方式设置命令寄存器和状态寄存器:CPU通过总线与I/O接口通信I/O设备与CPU并行工作:控制器根据指令完成相应I/O操作通过中断向CPU发出信号:工作完成后通过硬件中断通知CPU,I/O硬件管理,12,I/O设备接口的工作流程(续),IBMPC的软盘控制器可接受15条指令:READ、WRITE、SEEK、FORMAT等各条指令均可带参数,指令和相关参数均被设置到接口寄存器中位串行工作机制:驱动器提供“位流”,控制器负责在缓冲区中将其组装为字节,并进行必要的校验和纠错显示器的控制器位串行工作机制:从显示缓冲区中读取可供显示的内容,而后产生用来调制CRT电子束的信号I/O设备接口的价值屏蔽底层硬件细节,降低应用者的操作难度体现模块化的特点,适应不同的应用环境通过对I/O设备接口进行标准化,即可方便实现兼容,I/O硬件管理,13,计算机的系统结构图,课程导论,14,I/O设备的连接与地址映射,I/O设备的连接方式连接路径:I/O设备与CPU建立连接时,所有有关组件构成连接路径I/O端口:I/O设备接口中有多个接口寄存器或缓冲区,每一个寄存器或缓冲区被称为一个I/O端口I/O端口地址空间:实现对I/O接口寄存器/缓冲区的访问I/O设备端口的编址方式I/O端口独立编址:与内存空间完全独立内存映射I/O地址:在内存空间中划分固定区域映射I/O端口I/O地址空间的编址方式和使用差别指令运行差别:访问的地址空间不同系统资源消耗:所需要的资源数不同优缺点权衡:总线规格、地址信息传输与过滤、系统性能等因素,I/O硬件管理,15,I/O端口独立编址模式,I/O地址与内存空间完全独立使用专用的I/O指令对I/O端口进行操作优缺点分析优点1:I/O设备不占用内存地址空间,减少系统资源消耗优点2:技术实现复杂度低,易于区分I/O地址和内存地址缺点:由于地址空间独立、狭小,导致指令类型少,只能使用简单的汇编语言编程,I/O硬件管理,16,I/O端口的内存映射编址方式,I/O端口地址空间和内存地址空间统一编址I/O端口地址也被作为物理地址空间的一部分进行存储管理CPU访问地址空间时,将对地址空间的范围进行判断,然后选择读取内存空间或者访问I/O端口内存映射编址的优缺点分析优点1:使得技术实现手段更加方便,可用C语言编写驱动程序优点2:不需要对I/O地址空间进行特殊保护,只需要利用现有的存储保护机制(例如分页式中的页表项设置)优点3:使得I/O端口的指令更加灵活多样缺点1:内存映射方式中必须保证I/O端口的实时性(禁用高速缓存)缺点2:对于双总线或者多总线结构而言,I/O端口的地址映射将比较困难和麻烦,I/O硬件管理,17,I/O端口地址的映射与访问,I/O硬件管理,混合方案中,内存空间负责管理I/O端口,I/O独立编址部分属于数据缓冲区。例如Pentium就使用了这种方式,18,系统总线对I/O端口编址的影响,I/O硬件管理,19,系统总线对I/O端口编址的影响,I/O硬件管理,20,I/O设备的控制方式,程序控制I/O(轮询或忙等待模式)CPU直接与I/O设备进行通信,负责将用户数据传送到I/O端口用户程序通过系统调用来使用I/O设备CPU需要不断查询I/O设备的端口状态,性能较低中断控制I/OCPU设定I/O设备的初始值,然后不再忙等待,运行其他进程,当前进程阻塞I/O设备完成对当前数据的处理后,向CPU发出中断,I/O中断处理程序将负责传送剩余数据中断控制模式依然造成CPU时间的浪费,而且效率不高DMA控制I/O使用独立的DMA控制器代替CPU的工作,I/O设备与DMA通信,DMA在传输完成一个数据缓冲区之后再向CPU发中断DMA模式减少了中断次数,同时又集成了程序控制和中断控制的优点I/O通道机制DMA机制过于简单,有时未必能够提高与CPU并行效率为此专门增加了I/O处理机,专门负责I/O设备的控制和操作,与CPU并行工作,I/O硬件管理,21,程序控制I/O的工作流程,I/O硬件管理,由操作系统的“服务程序”负责将用户数据传送至打印机端口服务程序顺序传送打印数据,填满接口缓冲区后就等待(空循环)每次循环中都检查接口缓冲区是否可用,一旦可用就继续传送数据数据传送完成后“服务程序”结束,用户进程继续运行缺点:靠CPU以“忙等待”的形式与打印机进行通信,浪费CPU资源,22,中断控制I/O的工作流程,I/O硬件管理,“打印服务程序”只将最开始的数据传送至打印机端口,然后阻塞CPU可继续调度其他进程运行,不浪费CPU时间一旦打印缓冲区空后,打印机端口发出硬件中断CPU响应中断,恢复“打印服务程序”运行,继续传送数据缺点:虽然节省了CPU资源,但是中断响应也消耗较大的系统资源,23,DMA控制I/O的工作流程,I/O硬件管理,用户进程发出系统调用后进入阻塞态,CPU直接设置DMA端口CPU与DMA并行工作,DMA负责将用户数据传送给打印机当DMA完成所有工作后,向CPU发出中断,CPU响应后唤醒用户进程优点:只有一次中断、DMA与CPU并行提高了系统运行效率缺点:DMA速度较慢,如果CPU并不繁忙,那么DMA机制并无太大意义,24,DMA工作方式的深入分析,DMA内部结构的差异单路I/O连接:DMA中只有一组寄存器,只能连接一个I/O设备多路I/O连接:DMA中有多组寄存器,可同时连接多个I/O设备多路I/O连接模式下,DMA内部也需要进行适当的调度(轮转、优先级)DMA工作方式的差异数据总线的工作模式:块模式和字符模式,传输数据的速率不同字符模式(周期窃取):DMA窃取一个总线周期以传输一个字,造成CPU轻微延迟块模式(突发模式):DMA获得总线控制权后连续发出多个请求,提高总线利用效率飞越模式:DMA内部存在数据缓冲,设备将数据发送给DMA,DMA再进行转发DMA模式的权衡与分析DMA保存的地址信息:绝大多数情况下DMA保存的是物理地址,CPU负责将用户地址转换为物理地址,然后将其设置到DMA中DMA的数据缓冲:DMA内部也会使用数据缓冲,这样会大大提高I/O通信效率DMA的优劣分析:DMA比CPU慢好多,简单的应用环境中,用CPU要比DMA好;只有存在频繁的多道程序并发的情况下,DMA才会体现与CPU并行的作用,I/O硬件管理,25,I/O通道机制的引入与实现,I/O通道(Channel)的概念如何以高速、高效的方式控制I/O设备,是I/O管理的重要问题DMA速度很慢,而且结构简单,无法执行相对复杂的程序引入I/O通道(专门的处理机),可以运行由通道指令组成的通道程序I/O通道的工作方式和分类分为字节多路通道、选择通道、成组多路通道三种I/O通道采取“窃取总线周期”的方式实现对I/O设备的控制和数据传输I/O通道就是一个小型的处理机,和CPU共享内存I/O通道接到CPU的指令后即启动通道命令/程序,独立于CPU控制I/O设备工作I/O通道的结构组成CAW:通道地址寄存器,用于记录通道程序在内存中的地址CCW:通道命令寄存器,用于保存当前正在运行的通道命令CSW:通道状态寄存器,用于保存命令执行后的结果CDW:通道数据寄存器,用于存放传输的数据(起到缓冲的作用),I/O硬件管理,26,不同类型的I/O通道,I/O硬件管理,27,单通道与多通道,I/O硬件管理,28,I/O软件原理,I/O软件的设计需求有哪些?解决同步(阻塞)异步(传输)的问题。底层:如何传送控制命令?如何传输数据?上层:如何向用户屏蔽此过程?如何调度I/O进程实现对设备访问的错误处理。简单情况:可在硬件底层解决的错误复杂情况:无法有效解决,只能通知高层的错误为便于人的使用,实现设备无关性统一命名法。如何让用户无需考虑各种设备的差别,采用相同的习惯来使用?如何管理不同设备的统一命名?实现名称与设备的映射?I/O设备的缓冲管理缓冲区的维护与使用;实时I/O设备中缓冲区的预存和实时性保持实现对专有设备的和共享设备的有效管理共享设备:如何记录共享状态?专有设备:如何实现对专有设备的互斥性访问?,I/O软件管理,29,I/O软件体系结构,I/O软件管理,中断处理程序,底层硬件设备,设备驱动程序,用户I/O软件,设备无关软件,I/O请求,I/O响应,提供系统库调用,供人员使用;提供类似Spooling这样的精灵守护进程管理共享设备,命名、保护、阻塞、缓冲,建立设备寄存器、解决错误,处理中断信号,30,中断处理程序,控制I/O设备的基本方法用户发出系统调用或直接调用I/O设备,然后用户进程阻塞设备驱动程序启动I/O操作,然后自己阻塞I/O设备完成操作后产生中断,对应的中断服务程序更新各种状态信息用户进程恢复为就绪,继续运行中断处理程序的工作过程保存CPU现场信息:各类寄存器(最重要的是PSW)为中断服务程序设定CPU上下文:TLB、内核堆栈等应答中断控制器:屏蔽同类中断、打开其他中断恢复中断服务进程的运行,完成对设备控制器接口的操作操作结束后进行调度,改变用户进程状态,选择下一个运行程序用户进程恢复正常运行,此时设备驱动程序无事可干,又陷入阻塞,I/O软件管理,31,设备驱动程序,设备驱动程序的特点用来控制设备控制器的代码和指令,被称为设备驱动程序目前的体系结构中,设备驱动程序属于操作系统的内核部分操作系统实现过程中,需要提供标准化的接口函数,用于封装设备驱动程序设备驱动的存在形式:与操作系统统一编译,或者运行时动态链接设备驱动程序的工作过程接受上层用户发送的各类参数,并对输入参数进行检查对硬件设备的可用性进行检查,并接通或者启动设备控制设备完成对应的操作(通过设置接口寄存器实现)实现数据的I/O,同时返回操作的状态结果。设备驱动工作过程中的特殊考虑设备驱动的工作方式:同步阻塞或持续运行同步阻塞模式下,必须考虑支持“中断嵌套”的情况,将其设计为可重入热插拔系统中,自动的适应设备插入或者卸载,I/O软件管理,32,设备驱动程序的统一接口,I/O软件管理,33,缓冲机制的设计与实现,I/O软件管理,34,用户空间的I/O软件,I/O操作相关的库函数或工具包实现对OS内核设备I/O管理机制的封装向应用层用户提供规范、简洁的操作接口实现I/O管理底层机制与上层用户的交互假脱机(Spooling)技术通过应用软件来实现对独占式I/O设备的管理缓冲封装:用户只需要管理“特殊I/O文件”守护进程(Daemon):实现假脱机目录利用应用程序,将独占式I/O设备虚拟为共享设备,I/O软件管理,35,I/O设备管理小结,I/O设备管理面对的各种冲突和矛盾“独特性”与“兼容性”标准化环境下的发展选择“高性能”与“友好性”系统资源消耗的代价取舍硬件实现与软件模拟成本与性能之间的权衡I/O设备管理的思维方式统一、规范的软硬件平台是一切技术发展的基础性能稳定和错误处理机制是一切应用普及的前提系统观:软硬搭配、高低结合是复杂问题的解决思路未来趋势:随着硬件成本的降低,软件的作用越来越大,I/O设备管理,36,内容提要,I/O设备管理概述I/O硬件原理与软件原理进程死锁I/O设备管理实例剖析,内容提要,37,进程死锁原理,死锁举例进程A:获得CD-ROM使用权,申请打印机进程B:获得打印机使用权,申请CD-ROM死锁:此时进程A、B均被阻塞,无法运行,进程死锁,进程A,进程B,打印机,CD-ROM,38,进程死锁原理,死锁的定义,进程死锁,若一个进程集合中的每一个进程都在等待只能由本集合中其他进程引发的事件。则这种情况为死锁。,死锁发生的条件互斥条件:每一个资源或者空闲,或者被分配给一个进程保持和等待条件:已占有某些资源的进程需申请新的资源后方可继续运行非剥夺条件:被进程占用的资源不可剥夺,只能被进程本身显式释放循环等待条件:系统必然存在一条由两个或两个以上进程组成的循环链,该循环链中每个进程都在等待临近的进程释放资源,39,如何理解死锁,概念基础资源、可剥夺资源与不可剥夺资源可剥夺资源会造成死锁吗?(举例)发生条件分析保持当前资源,等待未分配资源存在循环的保持等待链,造成死锁情况对比理解死锁与互斥有哪些异同?操作系统为什么要解决死锁问题?在所有的操作系统中都会发生死锁问题吗?,进程死锁,40,死锁的形式化描述,基于有向图描述死锁条件,进程死锁,41,死锁现象与死锁过程,产生死锁的进程运行过程示例,进程死锁,42,死锁现象与死锁过程,进程死锁,产生死锁的进程运行过程示例,43,死锁处理策略,不理会死锁原因:为什么耗费大量的时间在小概率事件上呢?死锁检测与恢复目标:检测死锁发生,通过撤销进程恢复系统运行死锁预防目标:对进程加以适当限制以防止死锁情况发生死锁避免目标:不对进程加以限制,由操作系统完成死锁预防,进程死锁,44,鸵鸟算法,核心思想:忽略死锁问题原因:死锁问题的发生是小概率事件策略分析方便性与正确性之间的选择平均情况与最坏情况的选择,进程死锁,45,死锁检测与恢复,核心思想:将系统从死锁中解脱方法动机:与其耗费大量时间来避免死锁的发生,不如采取有效的手段解决死锁死锁检测的解决方法每个类型的资源只有一个:基于图和集合的算法检测是否有闭环每个类型的资源有多个:基于矩阵和向量比较方法检测是否存在死锁死锁恢复的解决方法进行资源抢占:将某个进程的资源强制性分配给其他进程利用回退恢复:设定检查点,发现存在死锁情况后则回退杀死进程恢复:直接杀掉占用资源的进程,使得其他进程得以运行;最关键的问题是选择杀死哪一个进程,进程死锁,46,死锁检测算法简介,每个类型的资源只有一个建立资源分配图结构,记录了所有的进程、资源和有向边从任一结点开始进行深度优先遍历,如找到闭环则结束如某条遍历路径已经到达终点,则回退至上一结点,继续重复此过程每个类型的资源有多个建立现有资源标量、可用资源标量、当前分配矩阵、请求矩阵等数据结构对当前分配矩阵,寻找可满足资源需求的进程,对其标记如果有进程没有被标记,说明该进程是死锁进程,进程死锁,47,死锁预防,核心思想:对进程加以限制防止死锁发生设计思路:针对四个死锁条件,逐一避免具体解决方法互斥条件:使用Spooling技术来管理设备(保持和等待条件:资源可用性决定资源分配不可剥夺条件:由系统直接剥夺此类资源循环链条件:资源编号,按预定规则申请,进程死锁,48,死锁避免,核心思想:不对进程进行限制,预防死锁设计思路:操作系统分析资源分配情况防止死锁核心思想安全状态:存在某种资源调度顺序,保证所有进程正常运行完成,则称该状态为安全状态不安全状态:不存在可满足所有进程正常运行的资源调度顺序,则称该状态为不安全状态具体实现方法资源轨迹图:针对两个进程的死锁避免银行家算法:单种资源和多种资源的算法,进程死锁,49,使用资源轨迹图方法避免死锁,针对两个进程、两种资源的死锁避免方法条件:两个进程A和B,两种资源“打印机”和“绘图仪”根据指令运行过程来判断是否发生死锁进程A:P点启动,I1I3使用打印机,I2I4使用绘图仪;进程B:Q点启动,I5I7使用绘图仪,I6I8使用打印机;,进程死锁,50,使用资源轨迹图方法避免死锁,进程死锁,51,单种资源银行家算法,核心思想记录每个进程的已有资源和所需最大资源数对每一个资源请求进行检查,判断是否会造成不安全如果不安全则不分配,从而避免死锁方法分析对任何资源请求,都寻找是否存在安全状态序列不抱侥幸心理,防止任何死锁情况的发生,进程死锁,52,单种资源银行家算法,进程死锁,53,多种资源银行家算法,核心思想对单种资源银行家算法进行扩充基于向量操作来运行银行家算法,进程死锁,54,多种资源银行家算法,处理步骤Step1:检查“仍需资源矩阵”中的每一行,判断是否存在一行,其所需资源总数小于向量A(剩余资源总数),失败则系统死锁。Step2:如存在此行,则将所有资源分配给该行对应向量,并将其状态标识为结束。Step3:重复12步,直至所有进程状态为结束。如果所有进程状态均可标为结束,则状态安全,否则会发生死锁。,进程死锁,55,举例:历史考研题举例,北大1997年OS考研试题系统中有三种资源(A,B,C)和5个进程P1P5资源总数为(17,5,20),T0时刻系统状态如表所示,系统采用银行家算法实施死锁避免策略,进程死锁,56,举例:历史考研题举例,北大1997年OS考研试题请解答以下问题:(1)T0时刻是否为安全状态?若是则给出安全序列(2)在T0时刻P2请求资源(0,3,4),是否能够实施资源分配,为什么?(3)在(2)的基础上,若P4请求资源(2,0,1),是否能够实施分配,为什么?(4)在(3)的基础上,若P1请求资源(0,2,0),是否能够实施分配,为什么?,进程死锁,57,内容提要,I/O设备管理概述I/O硬件原理与软件原理进程死锁I/O设备管理实例剖析,内容提要,58,Minix中的I/O设备管理,设备驱动方式(与Unix的本质区别,与Linux类似方式)每一类设备均有单独的设备驱动程序,其中硬件无关的内容形成公共程序、硬件相关的内容作为特定驱动。以模块化组织提高系统灵活性采用进程间通信的方式完成I/O设备的使用(Minix的进程式组织结构)Unix采用过程调用的方式,用户进程调用驱动程序,引发操作系统陷入,完成I/O操作后由中断处理程序唤醒用户进程设备管理方法设备驱动程序作为独立进程存在,OS启动时各个设备驱动进程完成基本初始化,而后等待消息(阻塞),直到用户进程发送消息(使用I/O设备)将其唤醒与硬件相关的设备驱动部分作为过程被设备驱动程序调用,从而实现无关性封装I/O软件与死锁处理Minix将所有与设备无关的I/O软件封装在文件系统模块中,所有的块设备均作为一种特殊的文件用户空间的I/O软件主要是供用户程序调用的函数库Minix中对死锁的处理采用“鸵鸟算法”,I/O管理实例,59,进程式OS与整体式OS,I/O管理实例,60,Windows中的I/O设备管理,I/O管理系统结构I/O管理系统是一个独立的系统组件,存在于NTOSKRNL.exe文件中I/O管理系统由多个执行体组件和设备驱动程序组成,负责接受I/O请求,并针对性的将设备请求传送到各类对应的设备Windows中将所有的I/O操作均看作对虚拟文件的操作,所有的I/O数据传输都被看作“流数据”,由I/O管理系统负责将虚拟文件映射到对应的物理设备上I/O管理系统组成I/O管理器:负责定义支撑设备驱动程序的基本架构,直接响应I/O请求设备驱动程序:负责定义并实现某一特定类型设备的I/O接口管理PnP管理器:与I/O管理器和总线驱动程序协同,检测硬件资源的分配、设备的变更电源管理器:与I/O管理器协同工作来检测整个系统和单个设备,完成电源状态转换WDMWMI:WDM的WMI支持例程,负责实现设备与WMI服务之间的通信注册表:作为一个数据库,存储基本硬件描述信息以及驱动程序的初始化和配置信息硬件抽象层:将设备驱动程序实现为二进制可移植的形式,实现对硬件平台的独立Windows中的I/O系统数据结构文件对象、驱动程序对象、设备对象、I/O请求包,I/O管理实例,61,Windows中I/O系统组件,I/O管理实例,62,Windows中的I/O数据结构,文件对象所有I/O设备被看作文件对象,用户程序进行I/O操作时就像是对一个文件进行操作文件对象是可共享的、有设备无关命名的、受保护的、支持同步的结构调用与实现过程:C库函数Win32DLLNTDLL.DLLNTOSKRNL.DLL驱动程序对象与设备对象驱动程序对象代表一个独立的驱动程序,I/O管理器从驱动程序对象中获得并且为I/O记录每个驱动程序的入口点设备对象在OS中代表一个物理/逻辑/虚拟的设备,并描述设备的基本特征当驱动程序被加载时,I/O管理器将创建一个驱动程序对象,然后调用驱动程序的初始化例程,初始化例程将创建一个设备对象。设备对象接受I/O操作请求,驱动程序对象实现I/O操作请求I/O请求包由固定部分(标题)和堆栈单元(数量不定)组成,包含了I/O请求的各类信息IRP由I/O管理器构造,保存了I/O请求的相关信息,同时保存了调用者的相关信息所有的IRP均保存在IRP队列中,当用户程序终止后,I/O系统将清除未完成的IRP,I/O管理实例,63,I/O请求涉及到的数据结构,I/O管理实例,64,Windows中设备驱动程序层次,I/O管理实例,65,设备驱动程序的内容组成,I/O管理实例,66,Windows中的I/O处理简述,设备驱动程序的同步操作驱动程序在访问相关数据时,必须实现“同步”操作,即以互斥的形式保护各类共享数据。在单CPU的机器上,通过同步例程实现;在多CPU的机器上,通过“自旋锁”实现I/O处理的类型同步I/O和异步I/O:绝大部分I/O操作是以同步方式实现的。但是也可以通过设定CreatFile的参数来使用异步I/O,异步I/O要求用户程序在设计和实现时必须保证不访问来自I/O操作的数据。在异步方式下,用户程序通过等待同步对象来实现与异步I/O操作的“同步”快速I/O:允许I/O系统不产生IRP而直接使用驱动程序执行I/O请求映射文件I/O和文件高速缓存映射文件I/O是将磁盘中的MappingFile作为进程的虚拟内存一部分,直接把文件作为大的数组进行访问Windows利用MappingFile可实现文件高速缓存和映象活动分散/集中式I/O:运行用户程序从
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 回收手机商务合同范本
- 房屋租赁合同范本版
- 阀门长期供货合同范本
- 厂房货物承揽合同范本
- 会员入会合同范本
- 游园项目合作合同范本
- 学校课桌采购合同范本
- 高空外墙施工合同范本
- 营销保密合同范本
- 月租酒店转租合同范本
- 2025年教师招聘小学语文真题及答案
- 2025年(完整版)十八项核心制度培训考核试题(含答案)
- 2025年低压电工理论考试1000题(附答案)
- 2025年益阳市融资担保有限责任公司招聘考试笔试试卷【附答案】
- 【湖南】2025年高考湖南卷化学高考真题+答案
- 2025年中国LCP料数据监测报告
- DGTJ08-2093-2019 电动汽车充电基础设施建设技术标准 含2021年局部修订
- 民政知识教学课件
- DB1301∕T494-2023 城市非机动车停放设施建设及管理规范
- KET教学课件新版
- 乳房恶性肿瘤放疗护理查房
评论
0/150
提交评论