目录
一、I/O设备基本概念和分类 304
1.concept
2.classification
(1)根据信息交换单位(可能考)
1)字符设备
2)块设备
(2)传输速率(以下了解即可)
(3)使用特性
(4)共享资源
二、I/O控制器(I/O接口) 305
1.function
(1)接受和识别命令(控制寄存器)
(2)数据交换(数据寄存器)
(3)标识和向CPU报告设备状态(状态寄存器)
(4)地址识别(由I/O逻辑实现)
2.construction
(1)CPU和控制器接口
(2)I/O逻辑
(3)控制器和设备接口
3.两种寄存器编码方式
(1)内存映像
(2)寄存器独立编址
三、I/O控制方法 307
1.程序直接控制方式
(1)cpu干涉率
(2)data流向(将I/O设备理解为disk)
2.中断驱动方式
(1)cpu干涉率
(2)data流向(将I/O设备理解为disk)
3.DMA方式(直接存储器方式)(Direct Memory Access)
(1)cpu干涉率
(2)data流向(将I/O设备理解为disk)
4.通道控制方式
(1)cpu干涉率
(2)data流向(将I/O设备理解为disk)
四、I/O软件层次结构 309
编辑
1.用户层软件
2.设备独立性软件
(1)主要功能
3.设备驱动程序
4.中断处理程序
5.考点
(1)次序
(2)每层是干嘛的
五、I/O管理 311
1.应用程序I/O接口
(1)字符设备接口
(2)块设备接口
(3)网络设备接口(网络套接字Socket接口)
(4)阻塞I/O vs 非阻塞I/O
2.设备驱动程序接口
六、设备独立性软件 318
编辑
1.假脱机技术(SPOOLing技术) 324
(1)脱机技术(源自OS的批处理阶段)
(2)假脱机技术
(3)application
2.设备分配与回收 322
(1)应考虑的因素
(2)静态分配和动态分配
(3)设备分配管理中的DS
(4)设备分配的step
分配设备、分配控制器、分配通道
(5)分配的step改进
3.缓冲区管理(高速缓存与缓冲区) 319
(1)缓冲区concept
(2)缓冲区function
(3)单缓冲
(4) 双缓冲
(5) 循环缓冲
(6) 缓冲池
一、I/O设备基本概念和分类 304
1.concept
进行输入输出data的设备,eg:disk、打印机
2.classification
(1)根据信息交换单位(可能考)
1)字符设备
以字符为data传输单位,传输速率低,不可寻址(不能确定是从哪开始读or写)
eg:从键盘中获取data,只能从头开始
2)块设备
以数据块为data传输单位,传输速率高,可寻址
eg:使用read or write() 函数参数为file_name,从哪开始读,读多少长度
(2)传输速率(以下了解即可)
(3)使用特性
(4)共享资源
二、I/O控制器(I/O接口) 305
进行data传输的东西
1.function
(1)接受和识别命令(控制寄存器)
CPU发布命令,控制寄存器接受命令
(2)数据交换(数据寄存器)
CPU和I/O设备速度差距较大,为了减缓差距,先将data放在数据寄存器中
(3)标识和向CPU报告设备状态(状态寄存器)
空闲/忙碌/故障
(4)地址识别(由I/O逻辑实现)
识别文件的地址
2.construction
(1)CPU和控制器接口
(2)I/O逻辑
(3)控制器和设备接口
3.两种寄存器编码方式
(1)内存映像
与内存中地址接着一块编码
(2)寄存器独立编址
自己编号,每个控制器的寄存器重新开始
disa:如果需要指明寄存器的时候,需指明设备管理器号和寄存器号
三、I/O控制方法 307
怎么进行data读写
1.程序直接控制方式
cpu发布命令之后,轮询的问是否完成
(1)cpu干涉率
一直干涉
(2)data流向(将I/O设备理解为disk)
读:I/O设备->cpu(的寄存器)->内存
写:内存->cpu(的寄存器)->I/O设备
disa:cpu一直占用,不能处理其他任务
2.中断驱动方式
cpu发出命令之后,就去处理别的任务,当命令完成之后,发回一个中断信号告诉cpu完成了
(1)cpu干涉率
cpu发任务和处理中断
(2)data流向(将I/O设备理解为disk)
同程序直接控制方式
3.DMA方式(直接存储器方式)(Direct Memory Access)
在I/O和内存间开辟通道,解放cpu
(1)cpu干涉率
传输一个块or多个块的开始和结束的时候才需cpu干涉
ATTn:如果每次传输的data块是一块,可以在物理上是离散的
if 传输的是连续的块,则在物理上也得是连续的
(2)data流向(将I/O设备理解为disk)
读:I/O设备->内存
写:内存->I/O设备
so 如果是多个1块1快的,则需要多次I/O
4.通道控制方式
建立通道,"弱鸡版CPU",cpu只需发命令和处理中断即可,data传输是一组块
(1)cpu干涉率
cpu只需发命令和处理中断即可
(2)data流向(将I/O设备理解为disk)
同DMA
四、I/O软件层次结构 309
1.用户层软件
实现与用户交互的接口,包括库函数,对设备进行操作
2.设备独立性软件
提供与设备硬件功能无关的功能
(1)主要功能
书+补充
1)将逻辑设备名映射为物理设备名,根据设备类型选择调用相应的驱动程序
利用逻辑设备表(LUT) 324
3.设备驱动程序
eg:打印机
4.中断处理程序
用于保留中断的进程的CPU环境
5.考点
(1)次序
(2)每层是干嘛的
五、I/O管理 311
1.应用程序I/O接口
(1)字符设备接口
(2)块设备接口
(3)网络设备接口(网络套接字Socket接口)
bind:将Socket绑定到某个本地接口
connect:将Socket连接到远程地址
read/write:从Socket中读/写data
(4)阻塞I/O vs 非阻塞I/O
在进行I/O操作时,进行就被阻塞 eg:从键盘中输入字符,没有回车之前都在阻塞
在进行I/O操作时,进行不会被阻塞,cpu每隔一段时间就问询是否完成
2.设备驱动程序接口
OS规定好设备驱动程序的接口标准,各厂商必须按照要求开发设备的驱动程序接口
六、设备独立性软件 318
1.假脱机技术(SPOOLing技术) 324
(1)脱机技术(源自OS的批处理阶段)
使用外围控制器+高速设备缓冲区缓解CPU和I/O设备间速度的差距,实现预输入,缓输出
(2)假脱机技术
而假脱机技术利用程序实现脱机,从而称为假脱机技术
输入井 and 输出井、输入缓冲区 and 输出缓冲区、输入进程 and 输出进程、井管理程序
(3)application
使用SPOOLing技术将独占设备打印机实现共享
2.设备分配与回收 322
(1)应考虑的因素
(2)静态分配和动态分配
静态分配:进行运行前为其分配所有的所需资源,运行结束之后归还
破坏了"请求和保持"条件,不会“死锁”
动态分配:在执行过程中动态申请设备资源
(3)设备分配管理中的DS
多个通道,通道:控制器=1:多,控制器:设备=1:多
设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)、系统控制表(SCT)
(4)设备分配的step
分配设备、分配控制器、分配通道
disa:①用户变成是使用物理设备名,底层细节对用户不透明,不方便编程
②if更换物理设备,则程序无法执行
③设备分配使用的是设备的物理名称,那么即使有同类的设备空闲,也会造成阻塞
(5)分配的step改进
将物理设备名映射为逻辑设备名,使用LUT
3.缓冲区管理(高速缓存与缓冲区) 319
(1)缓冲区concept
(2)缓冲区function
(3)单缓冲
ATTn:①缓冲区非空时不能再冲入data,只能冲出
②缓冲区冲满之后才能取data
初始条件:工作区满,缓冲区空
Summary:max(C,T)+M
ATTn:只有工作区空且缓冲区满才能从缓冲区冲入工作区
(4) 双缓冲
初始状态:工作区空,缓冲区一空一满
SUmmary:Max(T,C+M)
T<C+M时,找不到完全与初始状态完全相同的时刻,但是多几个回合之后发现每C+M的时间就处理完一次,so avgT = C+M