操作系统(thuOS)笔记(十五) 第二十三讲 I/O子系统

操作系统(thuOS)笔记(十四) 第二十三讲 文件系统

23.1 I/O特点

三种常见设备接口类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同步与异步I/O
用户进程与设备进行IO操作时,用户发出IO请求,操作系统将其转换成设备驱动,设备驱动会把它转换成硬件的控制,控制硬件进行相应操作,硬件操作完成后悔产生中断,由内核中的中断处理例程进行响应,最后送到设备驱动,然后回到用户态
在这里插入图片描述
阻塞IO:Wait 发送请求到数据回来中间进程是要处于等待状态的
在这里插入图片描述
非阻塞IO 这种方式可能读写不成功,或者读写的数据量和想要的不一样
在这里插入图片描述
异步IO Tell Me Later
在这里插入图片描述

23.2 IO结构

北桥连高速设备,南桥连IO设备
在这里插入图片描述
CPU与设备的连接
IO地址通过总线连到CPU上。
从设备到CPU,通过中断控制器
在这里插入图片描述
轮询,不用中断控制器,而是CPU直接访问IO端口,或者访问设备对应的内存地址空间
设备中断,外部设备通过中断与CPU通讯
DMA,外设直接到内存

I/O指令和内存映射I/O
内存映射IO
在这里插入图片描述
内核IO结构
在这里插入图片描述
IO请求生命周期
首先看要读的数据是不是已经有了,如果有就直接返回
在这里插入图片描述
内核IO发送IO请求等待结果,处理IO请求发送控制命令等待中断响应
在这里插入图片描述
设备控制命令发送,设备处理,完成后生成中断请求,接收中断,保存结果给驱动层
在这里插入图片描述

23.3 IO数据传输

设备和CPU之间的传输有两种方式
程序控制IO(PIO,Programmed I/O)
通过in/out或load/store(如果做了映射)指令传输所有数据
在这里插入图片描述
在这里插入图片描述
第二种方式是直接内存访问(DMA),适用于高吞吐量的设备IO
在这里插入图片描述
在这里插入图片描述
通过直接IO寻址读取磁盘数据的步骤
CPU通过系统总线连击到内存和DMA控制器,DMA控制器通过PCI总线连接到磁盘设备。

一次读取的过程是这样的:
在这里插入图片描述
IO设备通知操作系统的机制
在这里插入图片描述
轮询:定期检查
延时大指的是,如果检查的时间间隔较长,如果状态发生变化没有及时检测就会出现延时长的问题
在这里插入图片描述
设备中断:
在这里插入图片描述
如果中断比较多,那么CPU被中断的频率就会比较高
在这里插入图片描述
实际一些高速设备的做法可能结合了轮询和设备中断,第一次采用中断方式来响应,如果有数据包的接收,CPU会响应中断来处理这条数据
在这里插入图片描述

设备中断IO处理流程
在这里插入图片描述
在这里插入图片描述

23.4 磁盘调度

磁盘结构
在这里插入图片描述
在这里插入图片描述
平均旋转延迟时间 = 磁盘旋转一周时间的一半

磁盘IO传输时间
其中b=传输的比特数,N=磁道上的比特数,r=磁盘转数
在这里插入图片描述
寻道时间+旋转延迟+数据传送时间

磁盘调度算法
在这里插入图片描述
先进先出算法(FIFO)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最短服务时间(SSTF)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
扫描算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
循环扫描算法(C-SCAN)

在这里插入图片描述
C-LOOK算法
在这里插入图片描述
N步扫描算法
在扫描算法中,考虑后面的请求哪个离得最近,如果总是在当前磁头的边上有请求,会使另一些请求得不到响应,这就是磁头粘着现象
在这里插入图片描述
在这里插入图片描述
双队列扫描算法(FSCAN)

在这里插入图片描述

23.5 磁盘缓存

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
单缓存和双缓存
在这里插入图片描述
双缓存交换速度会更快
在这里插入图片描述
访问频率置换算法(Frequency-based Replacement)
在这里插入图片描述
在这里插入图片描述
短周期用LRU,长周期用LFU,可在短周期内用特殊的栈的处理,来描述访问的顺序,在长周期内用LFU来计数

在这里插入图片描述
每一次访问的时候,访问某一块数据块,把这一块放到栈顶。如果这个数据块处于新区域,则计数不变;如果在中间区域或者旧区域,不但要挪过去,而且要把计数加一。
在这里插入图片描述

这样一来
在这里插入图片描述
淘汰时,在旧区域里找计数最小的
中间区域可以避免数据进来没多久就被替换掉
在这里插入图片描述
完结
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值