操作系统八股文04-设备管理
1. 磁盘调度
- 磁盘读写时间 = 旋转时间 + 寻道时间 + 数据传输时间
- 寻道算法:FIFS、最短寻道、电梯扫描
2. I/O模型
- 阻塞I/O:阻塞进程等待数据到达
- 非阻塞I/O:进程轮询等待数据达到
- I/O复用
- Select
- 多个fd存放在一起(位图,存放fd数量受限)
- 线性扫描就绪fd,时间复杂度O(n)
- 存放的fd集合需要在内核空间和用户空间之间进行复制传递,有额外开销
- Poll
- 与Select类似
- 使用链表存放fd,存放数量不受限
- Epoll
- 使用红黑树存放fd,就绪fd加入到双向链表中
- 就绪fd回调,不需要轮询,时间复杂度O(1)
- 使用共享内存存放fd集合,不需要在内核空间和用户空间之间进行复制传递
- LT模式与ET模式
- LT模式:若当前fd没有读取完成,下次还会通知
- ET模式:只通知一次,需要保证一次读完
- Select
- 异步I/O:数据准备完成并已拷贝到用户空间时,通知进程