一、IO设备的基本概念和分类

image.png

1、什么是IO设备?

image.png
UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。
Write操作:向外部设备写数据。
Read操作:从外部设备读入数据。
image.png

2、IO设备的分类——按使用特性

image.png

3、IO设备的分类——按传输速率分类

image.png

4、IO设备的分类——按信息交换的单位分类

image.png

5、总结

image.png

二、I/O控制器

设备控制器又名I/O接口,我上学期在计算机组成原理系列博客中介绍过,详细内容查看
https://www.cnblogs.com/wkfvawl/p/10954376.html
image.png

1、I/O设备的机械部分

image.png

2、I/O设备的电子部件(I/O控制器)

image.png

3、I/O控制器的组成

image.png image.png

4、内存映像I/O(寄存器统一编址)和寄存器独立编址

image.png

5、总结

image.png

三、I/O控制方式

I/O控制方式的具体内容在计算机组成原理的博客中一个给出了,这个给出链接。
https://www.cnblogs.com/wkfvawl/p/10954376.html#_label5
image.pngimage.png

四、假脱机SPOOLing技术

image.png

1、什么是脱机技术

image.pngimage.png

2、假脱机技术——输入井和输出井

image.png image.png

3、假脱机技术——输入进程和输出进程

image.png image.png

4、假脱机技术——输入/输出缓冲器

image.png

5、共享打印机原理分析

image.pngimage.png
SPOOLing技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备。
image.png

6、总结

image.png

五、设备的分配与回收


image.png

1、设备分配时应考虑的因素

image.png

设备的固有属性:
image.png

设备的分配算法:
image.png

设备分配时应考虑的因素
image.png

2、静态分配和动态分配

image.png

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

image.png

设备控制表(DCT)

image.png

控制器控制表(COCT)

image.png

通道控制表

image.png

系统设备表

image.png

4、设备分配的步骤

image.png image.pngimage.png image.png image.png

5、设备分配步骤的改进

这里引出一个概念:设备独立性
设备独立性是指用户程序所用设备与物理设备无关的特性,也称设备无关性。为此要求用户程序对I/O设备的请求不指定特定的设备,而采用逻辑设备名,程序执行时由系统完成逻辑设备到物理设备的映射,这很象程序对逻辑地址的使用。

设备独立性带来的好处:
1)便于用户使用物理外围设备
2)便于系统增减或变更外围设备
3)便于实现I/O重定向;易于对付外设故障
4)提高了设备分配的灵活性和利用率

设备独立性的实现:
系统为每个进程设置一张“逻辑设备表LUT”,记录该进程所用逻辑设备对应的物理设备名和驱动程序入口地址。这是设备分配的一种结果记录,另外,设备分配还要修改全局性的“系统设备表”和“设备控制表”等数据结构。
image.png image.png

6、总结

image.png

六、缓冲区管理

image.png
缓冲技术的基本实现思想:
在CPU和外设之间设立缓冲区,用以暂存CPU与外设之间交换的数据,从而缓和CPU与外设速度不匹配所产生的矛盾。
其实,凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。例如,CPU与内存之间也需要设置缓冲,只不过设在cache里。

1、什么是缓冲区

image.png
支持CPU与外设之间并行工作的技术:中断、通道、缓冲。

2、缓冲区的作用

image.png

3、单缓冲

image.pngimage.pngimage.png image.png

4、双缓冲

image.pngimage.png image.png

5、使用单/双缓冲在通信时的区别

image.pngimage.png

6、循环缓冲区

image.png

7、缓冲池

image.png image.pngimage.pngimage.png

8、总结

image.png