Alex_McAvoy

想要成为渔夫的猎手

I/O 系统

【I/O 系统组成】

I/O 系统是 OS 的重要组成部分,用于管理 I/O 设备、存储数据等,其是 OS 中最繁杂、与硬件联系最密切的部分

I/O 系统的基本由以下几部分组成:

  • 需要用于输入、输出和存储信息的设备
  • 需要相应的设备控制器
  • 控制器与CPU连接的高速总线
  • 有的大中型计算机系统,配置I/O通道

为满足系统与用户的功能,I/O 系统应具备以下功能:

  • 隐藏物理设备细节
  • 实现设备无关性
  • 提高处理机和设备的并行性与利用率
  • 对I/O设备进行控制
  • 确保对设备正确共享
  • 错误处理

【I/O 系统的层次结构】

层次结构,是指系统中的设备管理模块分为若干层次

在 I/O 系统中,下层为上层提供服务,完成输入输出功能中的某些子功能,并屏蔽功能实现的细节

I/O 软件的层次

通常来说,I/O 软件分为以下四个层次:

  • 用户层软件:实现与用户交互的接口,用户可直接调用在用户层提供的、与 I/O 操作有关的库函数对设备进行操作
  • 设备独立软件:用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间
  • 设备驱动程序:与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序
  • 中断处理程序:用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后,返回到被中断进程

I/O 系统的分层

与上述的 I/O 软件组织的层次结构相对应,I/O 系统本身也可分为下面三个层次:

  • 中断处理程序:处于I/O系统的底层,直接与硬件进行交互
  • 设备驱动程序:处于次底层,是进程和控制器之间的通信程序,其将上层发来的抽象I/O请求,转换为对I/O设备的具体命令和参数,并把它装入到设备控制其中的命令和参数寄存器中
  • 设备独立性软件:包括设备命名、设备分配、数据缓冲等软件

【I/O 系统接口】

在 I/O 系统与高层接口中,根据设备类型的不同,又进一步分为若干个接口:

  • 块设备接口:对于块设备来说,数据的存取和传输是以数据块为单位的,而块设备接口是块设备管理程序与高层间的接口,其反映了大部分磁盘存储器和光盘存储器的本质特征,用于控制块设备的输入和输出

  • 流设备接口:对于流设备来说,数据的存取和传输是以字符为单位的,而流设备接口是流设备管理程序与高层间的接口,反映了大部分字符设备的本质特征,用于控制字符设备的输入和输出

  • 网络通信接口:OS 提供相应的网络软件和网络通信接口,使得计算机能通过网络与其他计算机通信

感谢您对我的支持,让我继续努力分享有用的技术与知识点!