59IO子系统层次结构

IO子系统的层次结构
IO软件涉及的面非常广,往下与硬件有密切关系,晚上又与用户直接交互,它与进程管理、存储器管理、文件管理等都存在一定的联系,即他们都可能需要IO软件来实现IO操作。
为了使复杂的IO软件具有清晰的结构,良好的可移植性和适应性,在IO软件中普遍采用了层次式结构,将系统输入\输出功能组织成一系列的层次,每一层都利用其下层提供的服务,完成输入\输出功能中的某些子功能。
一个比较合理的层次划分如下图所示。整个IO系统可以看成具有四个层次的系统结构,各层次及其功能如下:
在这里插入图片描述

(1) 用户层I/O软件:实现与用户交互的接口,用户可直接调用在用户层提供的、y与IO操作有关的库函数,对设备进行操作。
一般而言,大部分的IO软件都在操作系统内部,但仍有小部分在用户层,包括与用户程序连接在一起的库函数,以及完全运行在内核之外的一些程序。
(2) 设备独立性软件:用于实现用户程序与设备驱动器的同一接口、设备命令、设备保护、以及设备分配与释放等,同时为设备管理和数据传送提供比亚的存储空间。
设备独立性软件主要功能可分为以下两个方面:
1、 执行所有设备的公有操作。包括:对设备的分配与回收;将逻辑设备名映射为物理设备名;对设备进行保护,进制用户直接访问社诶;缓冲管理;差错控制;提供独立于设备的大小统一的逻辑块,屏蔽设备之间信息交换单位大小和传输速率的差异
2、 向用户层提供统一接口。无论何种设备,它们向用户所提供的接口应该是相同的。例如,对设备的读、写操作在应用程序都统一使用read/write命令等
(3) 设备驱动程序:与硬件相关,负责具体实现系统对设备发出的操作指令,驱动IO设备工作的驱动程序。
通常,每一类设备配置一个设备驱动程序,它是IO进程与设备控制器之间的通信程序,常以进程形式存在。设备驱动程序向上层用户程序提供一套标准接口,设备具体的差别被设备驱动程序所封装你,用于接收上层软件发来的抽象IO要求,如reaf和weite命令,转换为具体要求后,发送给设备控制器,控制IO设备工作;它也将由设备控制器发来的信号传送给上层软件。从而为IO内核子系统隐藏设备控制器之间的差异。
(4) 中断处理程序:用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完并恢复被中断进程的现场后,返回被中断进程。
中断处理层的主要任务有:进程上下文切换、对处理中断信号源进行测试、读取设备状态和修改进程状态。
(5) 硬件设备:IO设备通常包括一个机械部件和一个电子部件。为了达到设计的模块性和通用性,一般将其分开:电子部件称为设备控制器,在个人计算机中,通常是一块插入主板扩充槽的印刷电路板,机械部件则是设备本身。
设备控制器的主要功能为:
1、 接收和识别CPU或通道发出来的命令,如磁盘控制器能接收读、写、查找等命令。
2、 实现数据交换、包括设备和控制器之间的数据传输;通过数据总线或通道,控制器和主存之间的数据传输
3、 发现和记录设备及自身的状态信息,供CPU处理使用
4、 设备地址识别
实现上述功能,设备控制QQ必须包含以下组成部分:
1、 设备控制器与CPU的接口。该接口有三类信号线:数据线、地址线和控制线。数据线通常与两类寄存器相连接:数据寄存器和控制状态寄存器
2、 设备控制器与设备的接口:设备控制器连接设备需要相应数量的接口,一个接口连接一台设备。每个接口中都存在数据、控制和状态三种类型的信号。
3、 IO控制逻辑:用于实现对设备的控制。它通过一组控制线与CPU交互,对从CPU收到的IO命令进行译码。CPU启动设备时,将启动命令发送给控制器,同时通过地址线把地址发送给控制器,由控制器的IO逻辑对地址进行译码,并相应地对所选设备进行控制。

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光怪陆离的节日

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值