I/O 设备管理软件一般分为 4 层,即中断处理程序、设备驱动软件、与设备无关的系统软件和用户层I/O软件。
1. 中断处理程序
中断处理程序的作用是,当I/O 操作结束时,唤醒驱动程序。中断处理过程如下。
-
CPU 检查响应中断的条件是否满足。
-
如果 CPU 响应中断,则 CPU 关中断,使其进入不可再次响应中断的状态。
-
保存中断进程的现场。
-
分析中断原因,调用中断处理子程序。
-
执行中断处理子程序。
-
退出中断,恢复被中断进程的现场或调度新进程占据 CPU。
-
开中断,CPU 继续执行。
2. 设备驱动程序
设备驱动程序直接同硬件打交道,任务是接受来自于设备无关的上层软件的抽象请求,进行与设备相关的处理。最突出的特点是它与 I/O 设备的硬件结构联系密切。设备驱动程序中基本上是依赖于设备的代码,是操作系统底层中唯一知道各种输入输出设备的控制器细节及其用途的部分。
3. 与设备无关的系统软件
除了一些 I/O 软件与设备相关外,大部分软件是与设备无关的。设备驱动程序与设备无关的软件之间的界限如何划分随操作系统不同而不同。具体划分原则取决于系统的设计者如何权衡系统与设备的独立性、驱动程序的运行效率等诸多因素。
4. 用户层 I/O 软件
通常的系统调用包括 I/O 系统调用,是由库函数实现。所有库函数是设备管理I/O 系统的组成部分,通过这些库函数所做的工作主要是把系统调用时所用的参数放在合适的位置,由其他 I/O 过程去实现真正的操作。
另一种方法是采用 SPOOLing 系统,SPOOLing 系统是多道程序设计系统中模拟独占 I/O 设备完成假脱机的一种 I/O 技术。SPOOLing 技术不仅可适用于打印机这类输入输出设备,还可以应用到其他情况。
网友评论