Skip to content

4.3 设备管理软件的层次结构

Giovanna

About 821 wordsAbout 3 min

2024-08-31

一、I/O 软件的设计目标和原则

1. 目标

  • 与具体设备无关

  • 统一命名

  • 对错误的处理

  • 缓冲技术

  • 设备的分配和释放

  • I/O 控制方式

2. 设备管理软件层次结构

  • 要使设备按用户的要求工作,必须对与设备接口的通道和控制器等进行程序编制,通过程序实现对设备的控制。

  • 为了方便用户使用还必须给出调用接口或命令接口。

  • 为了更有效的利用设备还必须研究管理技术和算法。

image.png

二、设备驱动程序的功能

  • 接收由设备独立性软件发来的命令和参数,并将命令中的抽象要求转换为具体要求。

  • 检查用户I/O请求的合法性。

  • 发出I/O命令。

  • 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。

  • 根据用户的I/O请求,自动地构成通道程序。

三、设备驱动程序的处理过程

1. 对指定的设备进行初始化

在执行输入或输出之前完成必要的准备工作

  • 例如RS一232异步通信。通过编程设置波特率因子寄存器和线路寄存器的代码。

  • 波特率因子寄存器的作用是控制发送、接收的波特率。

  • 在线路寄存器中设置不同的代码就代表了不同的工作方式。

线路控制寄存器:

image.png

2. 将抽象要求转换为具体要求

  • 用户及上层软件对设备控制器的具体情况毫无了解,因而只能向它们发出抽象的要求,但又无法传送给设备控制器。因此,就需要能将这些抽象要求转换为具体要求。

  • 在OS中只有设备驱动程序才同时了解抽象要求和设备控制器中的寄存器情况;也只有它才知道数据和参数应分别送到哪个寄存器。

  • 例如,将抽象要求中的盘块号转换为磁盘的盘面、磁道号及扇区。这一转换工作只能由设备驱动程序来完成。

3. 检查I/O请求的合法性

对于任何输入设备都只能完成一组特定的功能,如该设备不支持这次I/O请求,则认为这次I/O请求非法。

4. 读出和检查设备的状态

要启动某个设备进行I/O操作,其前提条件应是该设备正处于空闲状态。

5. 传送必要的参数

有许多设备,特别是块设备,除必须向其控制器发出启动命令外,还需传送必要的参数。

6. 启动I/O设备

  • 在完成上述各项准备工作后,设备驱动程序可以向控制器中的命令寄存器传送相应的控制命令。

  • 设备驱动程序发出I/O命令后,基本的I/O操作是在设备控制器的控制下进行的。