ch5-5.9windowsio系统和5.8linux设备管理

上传人:n**** 文档编号:91122908 上传时间:2019-06-23 格式:PPT 页数:28 大小:660.50KB
返回 下载 相关 举报
ch5-5.9windowsio系统和5.8linux设备管理_第1页
第1页 / 共28页
ch5-5.9windowsio系统和5.8linux设备管理_第2页
第2页 / 共28页
ch5-5.9windowsio系统和5.8linux设备管理_第3页
第3页 / 共28页
ch5-5.9windowsio系统和5.8linux设备管理_第4页
第4页 / 共28页
ch5-5.9windowsio系统和5.8linux设备管理_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《ch5-5.9windowsio系统和5.8linux设备管理》由会员分享,可在线阅读,更多相关《ch5-5.9windowsio系统和5.8linux设备管理(28页珍藏版)》请在金锄头文库上搜索。

1、5.8Linux的设备管理,5.8.1 设备管理概述 5.8.2 设备驱动程序 5.8.3 设备I/O的处理,5.8.1 Linux设备管理概述, Linux中,设备当作文件处理,可使用标准文件系统调用来控制设备操作。对于字符设备和块设备,其设备文件用mknod命令创建,用主设备号和次设备号标识,同一设备驱动程序控制的所有设备具有相同的主设备号,并用不同次设备号加以区别; 网络设备也当作设备文件来处理,不同的是这类设备由Linux创建,并由网络控制器初始化; 设备文件与普通文件有着根本不同,当进程访问普通文件时,它会通过文件系统访问磁盘分区中的数据块;当进程访问设备文件时,它只要驱动物理设备就

2、行,VFS负责为应用程序隐蔽设备文件与普通文件之间的差异,可把对设备文件的任一系统调用转换成对设备驱动程序的函数调用。,5.8.2 设备驱动程序,1 驱动程序的注册与注销 2 设备的打开与释放 3 设备的读写操作 4 设备的控制操作和控制方式,5.8.3 设备I/O的处理,1 数据传输和设备驱动 2 块设备请求 3 低级请求处理,5.9Windows 2003I/O系统,5.9.1 I/O系统结构和组件 5.9.2 I/O系统数据结构 5.9.3 I/O类型和处理 5.9.4 高速缓存管理,5.9.1 I/O系统结构和组件(1),Windows I/O系统是执行体的组件,存在于 NTOSKRN

3、LEXE文件中。 它接受来自用户态和核心态的I/O请求,并以不同形式把它们传送到I/O设备。,I/O系统结构和组件(2),一个典型的I/O请求流程,I/O管理的特点,1) I/O包驱动 2) 通过虚拟文件实现I/O操作,5.9.2I/O系统数据结构,四种数据结构代表了I/O请求: 文件对象、 驱动程序对象、 设备对象、 IO请求包(IRP)。,1、文件对象,文件作为对象来管理,是可以共享的系统资源,被基于对象的安全性所保护,并且它们支持同步。 当调用者打开文件或单一设备时,I/O管理器为文件对象返回句柄。 文件对象由包含访问控制表(ACL)的安全描述体保护。 I/0管理器查看安全子系统来决定文

4、件的ACL是否允许进程去访问它的线程正在请求的文件。,2、驱动程序对象和设备对象(1),线程为文件对象打开句柄时,I/O管理器根据文件对象名称来决定将调用哪个或哪些驱动程序来处理请求。下面的系统对象满足这些要求: 驱动程序对象,I/O管理器从驱动程序对象中获得并且为I/O记录每个驱动程序的调度例程的地址。 设备对象在系统中代表一个物理的、逻辑的设备并描述它的特征,例如,所需要的缓冲区的对齐方式和用来保存I/O请求包的设备队列位置。,驱动程序对象和设备对象(2),3、I/O请求包 (1),IRP是I/O系统用来存储处理IO请求所需信息的数据结构。 线程调用I/O服务时,I/O管理器就构造一个IR

5、P来表示在整个系统I/O进展中要进行的操作。 I/O管理器在IRP中保存一个指向调用者文件对象的指针。,I/O请求包 (2) IRP由两部分组成,固定部分(标题)和一个或多个堆栈单元。 固定部分包括:请求的类型和大小、同步请求还是异步请求、用于缓冲I/O的指向缓冲区的指针和随着请求的进展而变化的状态信息。 IRP堆栈单元包括一个功能码、功能特定的参数和指向调用者文件对象的指针。,4 驱动程序分类和组成,1) 驱动程序分类: (1)核心模式驱动程序。 (2)用户模式驱动程序。 (3)硬件支持驱动程序。 2)包括调用处理I/O请求不同阶段的例程,主要有:初始化例程、功能例程、启动I/O例程、中断服

6、务例程、延迟过程调用例程、完成例程、取消例程、卸载例程、系统关闭通知例程和错误记录例程。,5 多处理机中I/O同步问题,多个CPU上运行,驱动程序必须同步执行的主要原因。 驱动程序必须同步执行的方法。,5.9.3 I/O类型和处理(1),1 I/O类型 1) 同步I/O和异步I/O 2) 快速I/O 3) 映射文件I/O和文件高速缓存 4) 分散/集中I/O,I/O类型和处理(2),2 I/O处理步骤(1) Windows核心态设备驱动程序I/O请求包含步骤: I/O库函数经过语言的运行时库转换成对子系统DLL的调用; 子系统DLL调用I/O的系统服务; I/O系统服务调用对象管理程序,检查给

7、定的文件名,再搜索名空间,把控制转交给I/O管理器寻找文件对象; 驱动程序询问安全子系统,确定线程的存取权限。,I/O类型和处理(3),I/O处理步骤(2) I/O管理器以IRP的形式将I/O请求送给设备驱动程序,驱动程序启动I/O操作; 设备完成指定操作,请求I/O中断,设备驱动程序的ISR服务于中断; I/O管理器再调用I/O完成例程,将完成状态返回给调用线程。 上述是同步I/O执行的步骤,对于异步I/O,还要增加一步,I/O管理器将控制返回调用线程,使得调用线程与I/O操作并行执行。,3 对单层驱动程序的I/O请求处理,4 对多层驱动程序的I/O请求处理,1) 打开一个文件 2) 读文件

8、 3) 写文件,5.9.4高速缓存管理 1高速缓存管理器主要特征,(1)单一集中式系统高速缓存 (2)与主存管理器结合 (3)高速缓存的一致性 (4)虚拟块缓存 (5)基于流的缓存 (6)可恢复文件系统支持,2、高速缓存的结构(1),系统高速缓存管理器基于虚拟空间缓存数据,它管理一块系统虚拟地址空间区域,而不是一块物理主存区域。 高速缓存管理器把每个地址空间区域分成256KB的槽(slot),被称为视图(view)。,高速缓存的结构(2),3高速缓存的操作,(1)回写缓存和延迟写 (2)计算脏页阈值 (3)屏蔽对文件延迟写 (4)强制写缓存到磁盘 (5)刷新被映射的文件 (6)智能预读 (7)虚拟地址预读 (8)带历史信息的异步预读,快速IO,读写被缓存文件可用被称为快速IO的高速机制来处理。快速IO读写一个缓存的文件不要产生IO请求包(1RP)。 有了快速IO机制,IO管理器可以调用文件系统驱动程序的快速IO例程来查看是否能够直接从高速缓存管理器得到所需的数据,而不需产生IRP。,5、高速缓存支持例程,三种基本的访问缓存数据的方法 (1)“拷贝读取”方法,在系统空间中的高速缓存数据缓冲区和用户空间中的进程数据缓冲区之间拷贝用户数据。 (2)“映射暂留”方法,使用虚拟地址直接读写高速缓存的数据缓冲区。 (3)“物理主存访问”方法,使用物理地址直接读写高速缓存的数据缓冲区。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号