计算机操作系统:io设备

IO设备:为了合理的兼顾用户需求与IO管理,对于IO设备以及系统的另外一些硬件管理,也会提出一些要求。

1,IO的层次结构:(软件-硬件)用户IO应用软件-设备独立性软件-设备驱动程序-中断处理程序-设备控制器。

2,在以上的层次结构中需要注意的有:用户IO应用软件与设备独立性软件之间有一个IO系统接口。中断处理程序与设备控制器之间有一个RW/HW接口。

3,IO系统接口按照速率分:块设备接口,流设备接口,网络通信接口。

4,设备控制器:CPU与控制器接口,设备与控制器接口,IO逻辑。

5,IO的特性:(1)按照功能分配:IN/OUT (2)按照传输类型分配:块,字符,网络传输。

6,对IO传输的控制方式:

使用轮询的可编程IO:在控制器里的数据寄存器设置一位BUSY位来表示用户输入或者输出的状态,CPU需要不断地访问BUSY的值以确定工作。

使用中断的可编程IO:使用控制器采用中断的方式为CPU汇报IO工作的开头与结尾(对中断下面会有补充)。

直接存储器访问:有DMA控制器(CR位表示忙闲,MAR寄存器记录数据物理起始地址,DR寄存器暂时存放数据,DC寄存器计数)接管工作,整个工作结束后(DC记录的数据大小等于用户调度的数据大小时),通知CPU检查工作成果,有问题则重新进行。

IO通道(一类为独立完成特殊指令而存在的硬件设备,由CPU给出通道程序):全程由IO通道接管工作。

7,这里我们不得说明采用IO通道的方式控制IO传输可能产生“瓶颈现象”从而导致饥饿。通常采用多路互通的方式减少此类现象。

8,为了更好的管理系统中的部分硬件与IO设备,相应的建立可以管理它们的数据结构:

SDT(系统设备表):设备类名+设备标识符+DCT+驱动程序入口地址。

DCT(设备控制表):记录设备忙闲状态,含有COCT的队首指针地址。

COCT(控制器控制表):记录控制器忙闲状态,含有CHCT的队首指针地址。

CHCT(IO通道控制表):记录IO管道忙闲状态,含有COCT的队首指针地址。

9,那么问题来了,系统中大多数IO设备属于独占性设备,当给出的物理地址的设备已经占用时,用户就需要给出未被使用的设备物理地址,对用户来说无疑不可能。逻辑设备表LRT的引入解决了这个问题,同时保证了设备无关性与IO重定向。

10,在IO输入与输出的过程中,IO速率与处理机速率巨大的差距也是当前需要解决的问题之一:如果因为这段时间处理机都在等待IO输入结束,无疑是降低了处理机的并行性与吞吐效率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ForestSpringH

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

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

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

打赏作者

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

抵扣说明:

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

余额充值