IO系统

来源:互联网 发布:什么翻译软件好用 编辑:程序博客网 时间:2024/05/17 03:56

I/O

三种常见的设备接口:字符设备(键盘、鼠标),块设备(磁盘、光驱),网络设备(无线、以太网)。

(1)字符设备:以字节为单位顺序访问;get()put(),文件访问接口和语义;

(2)块设备:以数据块为单位,均匀的大数据;I/O接口,文件接口,内存映射;

(3)网络设备:格式化的报文,Send/receive网络报文,网络接口支持网络协议。

 

(1)阻塞I/O:“wait”,读数据read,进程将进入等待状态,直到完成数据读出;

写数据write,进程将进入等待状态,直到完成数据写入。

(2)非阻塞I/O:“don’t wait”,立即从read或write系统调用返回,返回值为成功传输字节。传输字节有可能为零。


(3)异步I/O tell me later:

CPU与设备的连接:


IO指令:通过I/O端口号访问设备寄存器;


IO请求生存周期

CPU与设别控制器的数据传输:

程序控制I/O,ProgrammeI/O,通过CPU的in,out传输所有的,特点是硬件简单,但消耗CPU,适用于简单的、小型的设备I/O;直接内存访问DMA:适用于高吞吐量I/O,设备控制器可直接访问系统总线,直接与内存互相传输数据。


IO操作系统方式(1)轮询:IO设备在特定的状态寄存器中放置状态和错误信息,操作系统定期检测状态寄存器,开销大。(2)设备中断:CPU在IO之前设置任务参数,发出IO请求后执行其他,IO设备处理请求处理完成后出发CPU中断请求。

 

磁盘调度:寻道时间(定位到期望的磁道所花费的时间),旋转延迟(从零扇区到目的地花费的时间,平均延时是磁盘转一周时间的一半)。


磁盘调度算法优化磁盘访问时间:寻道时间是磁盘访问最耗时的部分,同时又多个在同一磁盘上的IO请求,随机处理磁盘性能差。

(1)先进先出FIFO算法:

(2)最短服务时间优先SSTF算法:选择当前位置需要移动时间最少的。

(3)扫描算法SCAN:在一个方向上移动,访问所有未完成的请求,调换方向。

(4)循环扫描算法C-SCAN:公平性;

(5)C-LOOK算法:先到达最后一个请求后,折访;

(6)N步扫描N-step-SCAN:磁头粘着现象(磁头停留在某处不动的情况),将其分为n个子队列(先来后到),对每个队列扫描算法。

(7)双队列扫描算法FSCAN:只分为两个队列,交替使用扫描算法。

 

磁盘缓存:数据传输双方访问速度差异较大时,引入的速度匹配中间层,是磁盘扇区在内存中的缓冲区。单缓存Single Buffer Cache,双缓存Double Buffer Cache


访问频率置换算法Frequency-based Replacement:在短周期中使用LRU,在长周期内使用LFU。


 

0 0
原创粉丝点击