Windows内核原理与实现之Windows I/O软件技术

本文探讨Windows内核中I/O软件技术,解释设备驱动程序的作用和设计原则。驱动程序运行在特权模式下,处理与硬件的同步或异步通信,涉及中断处理、缓冲区管理、设备共享和状态管理。操作系统提供统一的框架,支持设备的即插即用和电源管理,而驱动程序则专注于设备特性的实现。
摘要由CSDN通过智能技术生成

从操作系统角度而言,I/O软件的模型应该是设备无关的,因而,系统可以支持各种设备,甚至是未来出现的设备。针对I/O设备的软件模型必须有足够的通用性,至少能够将上节介绍的各种I/O硬件特性涵盖到模型之中。另外,操作系统必须提供有效的管理手段,从而让设备的软件组件融入到系统的I/O处理框架中,这样,这些软件可以专注于针对特定设备的功能需求,而不必过多地考虑与系统打交道或者与系统中其他模块的协作。例如,针对磁盘读写的软件组件无须考虑磁盘上的文件系统。

设备的软件组件通常称为设备驱动程序,或简称驱动程序。设备驱动程序或者由设备的硬件厂商提供,或者由操作系统厂商提供。由于设备驱动程序直接与硬件打交道,它们需要一定的特权才能操纵硬件设备,所以驱动程序通常运行在处理器的特权模式下,其代码与操作系统的内核代码享有同样的特权。这种设计的一个潜在后果是,驱动程序中的错误可能会导致整个操作系统奔溃。因此,驱动程序代码往往需要经过精心的设计、检查和调试,其代码规模应尽可能地小。从代码功能划分的角度来考虑,应尽可能把代码逻辑移到应用程序中,而让驱动程序只做最必要的事情。

与设备关联的驱动程序,其最基本的功能是,将操作系统的功能请求,解释成针对该设备的请求,然后操纵设备以完成该请求,最后将结果以指定的方式返回给调用者。在此过程中,有些事项往往是驱动程序必须要考虑并解决的。下面逐一讨论。

首先,与设备的通信是同步或异步方式。从软件控制流的角度,同步方式的通信容易实现,而且错误处理和恢复也相对容易。若一个I/O请求是异步方式&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值