I/O设备管理

I/O层次结构

图片1.png

  1. 用户层I/O软件: 实现与用户的交互,用户可以直接调用此层提供的接口、函数等;
  2. 设备独立性软件: 用于实现用户程序和设备驱动器的统一接口、设备命名、设备保护以及设备分配和释放等,同时为数据的传输提供必要的空间
  3. 设备驱动程序: 与硬件直接相关,用于具体实现系统施加给硬件设备的指令
  4. 中断处理程序: 保护被中断的CPU环境,转入中断处理程序,处理,返回恢复现场

中断和陷入

中断

指CPU对I/O设备发来的中断信号的一种响应。CPU保护暂停当前进程,转而去处理引发中断的进程。执行完后,再返回到原进程,继续执行。I/O设备可以是字符设备(键盘),块设备(磁盘)或通信设备(网络)等。由于中断是外部造成的,所以又叫外中断。

陷入

陷入是由CPU进程内部事件引发的中断,因此叫陷入或内中断。其产生的原因往往是由于进程本身出现运行时异常。

中断向量表和中断优先级

图片2.png

中断向量表

  • 用于记录相应中断处理程序入口地址的映射表。
  • 表中有为中断类型分配的中断号和相对应的中断处理程序的入口地址。
  • 当中断来临时,由中断控制器确定中断号,再到表中寻找程序。

中断优先级

  • 对于并发的中断请求,必须要给出合理的中断顺序,比如键盘中断和磁盘中断谁更重要等,要给出解决中断的优先级。

中断处理程序(Interrupt Handlers)

操作系统需完成如下复杂的任务:

  1. 保存没有被中断硬件保存的所有寄存器(PSW)
  2. 为中断服务过程设置上下文
  3. 为中断服务过程设置堆栈
  4. 应答中断控制器
  5. 将寄存器从被保存的地方复制到进程表
  6. 运行中断服务过程
  7. 选择下一次运行哪个进程
  8. 为下个进程设置MMU上下文
  9. 装入新进程的寄存器
  10. 运行新进程

对I/O设备的控制方式

  • 程序控制 I/O
  • 中断驱动I/O
  • 直接存储器访问(DMA)
  • I/O通道控制方式
    前两种是以字节为单位进行数据传递,后两种是以数据块为单位进行数据传递。

程序控制I/O

让CPU做所有工作
打印一个字符串的步骤

图片3.png

中断驱动I/O

图片4.png

使用中断驱动I/O 将一个字符串写到打印机.
(a) 当打印系统调用发出时所执行的代码. (b) 打印机的中断服务过程.

使用DMA的I/O

图片5.png

使用DMA中打印字符串.
(a) 当打印系统调用发出时所执行的代码. (b) 中断服务过程.

I/O通道方式

  • I/O通道方式是DMA方式的发展,可进一步减少CPU的干预。
    • 把对一个数据块的读(或写)为单位的干预减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备三者的并行操作。
  • 通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。
  • 通道分为选择通道、字节多路通道和数组多路通道三种类型

假脱机操作 SPOOLing(Simultaneaus Periphernal Operating On Line)

  • 为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术。

    • 该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。
    • 事实上,当系统中引入了多道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。
  • 在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称为SPOOLing(Simultaneaus Periphernal Operating On Line),或称为假脱机操作。

SPOOLing系统的组成

图片5.png

SPOOLing系统的特点

  • 提高了I/O的速度。
  • 将独占设备改造为共享设备。
  • 实现了虚拟设备功能。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值