一、IO设备的基本概念和分类
1、什么是IO设备?
UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。
Write操作:向外部设备写数据。
Read操作:从外部设备读入数据。
2、IO设备的分类——按使用特性
3、IO设备的分类——按传输速率分类
4、IO设备的分类——按信息交换的单位分类
5、总结
二、I/O控制器
设备控制器又名I/O接口,我上学期在计算机组成原理系列博客中介绍过,详细内容查看
https://www.cnblogs.com/wkfvawl/p/10954376.html
1、I/O设备的机械部分
2、I/O设备的电子部件(I/O控制器)
3、I/O控制器的组成
4、内存映像I/O(寄存器统一编址)和寄存器独立编址
5、总结
三、I/O控制方式
I/O控制方式的具体内容在计算机组成原理的博客中一个给出了,这个给出链接。
https://www.cnblogs.com/wkfvawl/p/10954376.html#_label5
四、假脱机SPOOLing技术
1、什么是脱机技术
2、假脱机技术——输入井和输出井
3、假脱机技术——输入进程和输出进程
4、假脱机技术——输入/输出缓冲器
5、共享打印机原理分析
SPOOLing技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备。
6、总结
五、设备的分配与回收
1、设备分配时应考虑的因素
设备的固有属性:
设备的分配算法:
设备分配时应考虑的因素
2、静态分配和动态分配
3、设备分配管理中的数据结构
设备控制表(DCT)
控制器控制表(COCT)
通道控制表
系统设备表
4、设备分配的步骤
5、设备分配步骤的改进
这里引出一个概念:设备独立性
设备独立性是指用户程序所用设备与物理设备无关的特性,也称设备无关性。为此要求用户程序对I/O设备的请求不指定特定的设备,而采用逻辑设备名,程序执行时由系统完成逻辑设备到物理设备的映射,这很象程序对逻辑地址的使用。
设备独立性带来的好处:
1)便于用户使用物理外围设备
2)便于系统增减或变更外围设备
3)便于实现I/O重定向;易于对付外设故障
4)提高了设备分配的灵活性和利用率
设备独立性的实现:
系统为每个进程设置一张“逻辑设备表LUT”,记录该进程所用逻辑设备对应的物理设备名和驱动程序入口地址。这是设备分配的一种结果记录,另外,设备分配还要修改全局性的“系统设备表”和“设备控制表”等数据结构。
6、总结
六、缓冲区管理
缓冲技术的基本实现思想:
在CPU和外设之间设立缓冲区,用以暂存CPU与外设之间交换的数据,从而缓和CPU与外设速度不匹配所产生的矛盾。
其实,凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。例如,CPU与内存之间也需要设置缓冲,只不过设在cache里。
1、什么是缓冲区
支持CPU与外设之间并行工作的技术:中断、通道、缓冲。
2、缓冲区的作用
3、单缓冲
4、双缓冲
5、使用单/双缓冲在通信时的区别
6、循环缓冲区
7、缓冲池
8、总结