IO设备基本概念

image_a32b8d93.png

什么是I/O设备?

image_da0366e7.png

image_5ca94170.png

I/O设备的分类

按使用特性分类

image_23895f92.png

按传输速率分类

image_f319d0a3.png

按信息交换单位分类

image_ea9dc8be.png

IO控制器

image_8f01b473.png

I/O设备的组成

image_0b7c8f41.png

机械部件

image_e19704bd.png

电子部件—I/O控制器的功能

image_cc00f466.png

I/O控制器的组成

image_9355914c.png
注意:
image_b60721ab.png

I/O控制器的两种寄存器编址方式

内存映像—独立编址

image_a7e39635.png

IO控制方式

image_04512864.png

程序直接控制方式

key word : 轮询

  • 完成一次读/写操作的流程图(以读操作为例)
    image_f10462ef.png
    下面以C语言代码和流程图来剖析,程序直接控制方式
    image_425d7ae6.png
    分析一下在思维导图中提到的几个问题:
    image_3ae84b73.png

中断驱动方式

  • 由于程序直接控制方式CPU利用率低,忙等,所以提出了中断驱动方式。

image_ba66d923.png
分析一下在思维导图中提到的几个问题:

image_dbf829e7.png

DMA方式

  • 虽然中断驱动方式解决了程序直接控制方式的问题,但是每一次只能读/写一个字,导致CPU频繁切换,耗费了很多时间。于是人们又发明了DMA方式。

image_34505a29.png
DMA控制器:
image_3e902d03.png
分析一下在思维导图中提到的几个问题:
image_982846d8.png

通道控制方式

  • 通道控制方式是为了解决DMA方式连续存储的问题

image_6ad9c58a.png
分析一下在思维导图中提到的几个问题:
image_5a1566ec.png

四种方式总结一下

image_5376b1f8.png

I/O软件层次结构

image_a0221ab5.png

用户层软件

image_dc806449.png

设备独立性软件

六大功能

image_f45f3b85.png
image_66912242.png
image_dec739ad.png

逻辑设备表—LUT

image_3807dc18.png

不同设备需要不同的驱动程序

image_8de10d1c.png
举几个假设的例子:

image_4f9e74b2.png
image_f4faac86.png
image_48f407ee.png

设备驱动程序

image_d04a5e28.png

中断处理程序

image_03190f32.png
image_05bdefcc.png

总结回顾

image_e63d0dc3.png

I/O核心子系统以及功能

image_56404e69.png

这些功能在哪个层次实现?

假脱机技术

image_70c179ec.png

I/O调度

image_a8eacd4b.png

设备保护

image_0fd1e67b.png

假脱机技术(SPOOLing)

image_59d02e3a.png

什么是脱机技术?

这里温习一下手工操作阶段:
image_8d94d80a.png

  • 因为手工阶段的速度慢问题,引入了脱机技术
    image_bf6a2897.png

假脱机技术

  • 在脱机技术的基础上人们发明了更好的假脱机技术

输入井和输出井

image_764ec3c4.png
image_55853782.png

输入进程与输出进程

image_66b7b39f.png
image_b9f2e182.png

输入输出缓冲区

image_7c04b508.png

共享打印机原理分析—假脱机技术的一种应用

先了解一下独占和共享设备,以此引出假脱机技术如何实现对独占设备的共享:
image_fc867e23.png
image_702d2523.png

  • 打印请求完成后,请求表从打印队列删除,执行后续队列的打印任务

image_7c9d5771.png

IO设备分配和回收

image_e5b45a94.png

设备分配时应该考虑的因素

设备的固有属性

image_b1dc6a47.png

设备的分配算法

image_9bdc901e.png

设备分配中的安全性

image_f559b62a.png

静态分配与动态分配

image_7ac62334.png

设备分配管理中的数据结构

设备、控制器、通道之间的关系:
image_7903af27.png

设备控制表—DCT

image_c5dd1e5b.png

控制器控制表—COCT

image_fdad6b12.png

通道控制表—CHCT

image_fc45a679.png

系统设备表—SDT

image_ec8cd967.png

设备分配的步骤

image_369ca51a.png
image_c0381564.png
image_8cf2cb53.png
image_f183d8d0.png

设备分配的改进步骤

image_99424845.png
image_834e532a.png
image_af40f912.png

缓冲区管理

image_eae00d9a.png

缓冲区概念及其作用

image_e7595b00.png
image_1c9c869a.png

单缓冲

image_e110c237.png
T>C时的例子:

image_f72ac55c.png
image_bb3c95fe.png
image_8ddfbbc1.png
T<C时:

image_2ca28bd9.png

双缓冲

T>C+M时:

image_59f8be70.png
T<C+M时:
image_7a4e1382.png
image_9c45c8ce.png

单缓冲和双缓冲通信时的区别

image_8e139363.png
image_5442943a.png

循环缓冲区

image_407fa7b7.png

缓冲池

image_1db4f584.png
image_b015ba1d.png
image_c4d3990f.png
image_d13a27da.png
image_dabc86ac.png