I/O子系统
目录
一、I/O特点
1.设备接口类型
1.1字符设备
- 访问特征:以字节为单位顺序访问
- I/O命令:get()、put()等,通常使用文件访问接口和语义。
1.2块设备
- 访问特征:均匀的数据块访问。
- I/O命令:原始I/O或者文件系统接口、内存映射文件访问。
1.3网络设备
- 访问特征:格式化报文交换。
- I/O命令:send/receive网络报文、通过网络节后支持多种网络协议。
2.同步与异步I/O
2.1阻塞I/O
首先I/O请求——(通过系统调用)内核的设备驱动——内核的硬件控制数据传输——中断处理——内核设备驱动——I/O请求获取数据
2.1非阻塞I/O
2.3异步I/O
二、I/O结构
1.一个实际例子
北桥连接高速设备,南桥连接I/O设备
2.CPU与设备的连接
CPU与设备通信的三种方式:轮询、设备中断和DMA
- 轮询:CPU直接访问设备端口或者直接访问设备对应的内存地址空间
- 设备中断:外部时间需要经过中断才能到CPU
- DMA:外部设备需要直接把数据放到内存中,通过CPU读然后放到内存中去,在DMA控制器的作用下把数据从I/O设备直接到内存单元。
3.I/O指令和内存映射I/O
4.内核I/O
5.I/O生命周期
三、I/O数据传输
1.CPU与设备控制器的数据传输:程序控制I/O、DMA
DMA的流程:
2.I/O设备通知操作系统的机制
2.1轮询
2.2设备中断
3.设备中断I/O处理流程
CPU在执行指令的过程中产生了I/O请求,设备驱动会初始化这个I/O请求,设备驱动中的I/O控制器会初始化I/O操作,然后由设备进行相应的操作。操作完成或者出错都会产生中断,CPU在完成I/O请求初始化之后就可以干别的事情了,但是在每执行一条指令之后都会检查是否有中断请求。收到中断请求后转到中断处理,并分发给相应的中断服务例程进行处理,处理完成之后CPU恢复被中断的进程的执行。
四、磁盘调
1.磁盘工作机制和性能参数度
2.磁盘I/O传输时间
3.磁盘调度算法
3.1 先进先出(FIFO)算法
3.2 最短服务时间优先(SSTF)
3.3 扫描算法(SCAN)
3.4 循环扫描算法(C-SCAN)
3.5 C-LOOK算法
3.6 N步扫描算法、双队列扫描算法
五、磁盘缓存
1.磁盘缓存定义
是放在内存里的磁盘数据缓存
2.单缓存与双缓存
3.访问频率置换算法
LRU:最近最久未使用算法
LFU:最近最少使用算法