引入缓冲区的主要原因:
缓和CPU与I/O设备间速度不匹配的矛盾。
缓冲区数据成批传入内存,也可进一步减少对CPU的中断频率
最终目的:提高CPU和I/O设备的并行性。
使用缓冲区的方式:
1)单缓冲、多缓冲
每当用户进程发出一I/O请求时
OS在主存中为之分配一个缓冲区。
CPU和外设轮流使用,一方处理完后等待对方处理。
进一步加快输入和输出速度,提高设备利用率制,也称缓冲对换
2)循环缓冲
3)缓冲池(Buffer Pool)
2)循环缓冲(circular buffer)
①循环缓冲的组成
多个缓冲区。大小相同,三种类型:
¨预备装输入数据的空缓冲区R
¨装满数据的缓冲区G
¨计算进程正在使用的现行工作缓冲区C
多个指针。
¨指示正在使用的缓冲区C的指针Current
¨指示计算进程下一个可取的缓冲区G的指针Nextg
¨指示输入进程下次可放的缓冲区R的指针Nexti
②循环缓冲区的使用
计算进程(CPU)和输入进程(I/O操作)可利用两个过程来使用循环缓冲区。
主要就是利用指针,操作上述不同类型缓冲区
Getbuf过程:使用缓冲区时,可调用该过程
计算进程取:current=Nextg,G—>C,nextg下移一个。
输入进程放:current=nexti,R—>C,nexti下移一个
Releasebuf过程:
计算进程:C->R
输入进程:C->G
一个时段只能用于输入或输出,不能同时双向通信
③进程同步
3)缓冲池(Buffer Pool)
①缓冲池的组成
对于既可输入又可输出的公用缓冲池,至少应含有下列三种类型的缓冲区:
1.空缓冲区;
2.装满输入数据的缓冲区;
3.装满输出数据的缓冲区;
为方便管理,将上述类型相同的缓冲区连成队列
¨空缓冲区队列(所有进程都可用)
¨输入队列(n个进程有各自的队列)
¨输出队列(n个进程有各自的队列)
②缓冲区的工作方式
磁盘
1)磁盘性能简述 首先与格式有关 数据的组织和格式 盘片、面、磁道、扇区 为方便处理,每条磁道存储容量相同,每个磁道上的每个扇区相当于一个盘块。磁盘”格式化”的过程就是按规定的格式规划盘块。
如温盘格式: 每道30个扇区,每扇600个字节。512字节用于存放数据,其余存放控制信息。 标识符字段:标识一个扇区的信息记录; 1+2+1+1+3 bytes 数据字段:每个扇区存放数据的空间。 数据前后还有若干特定功能字节。 1+512+2 bytes |
与速度有关 磁盘类型 固定磁头(每道一磁头) 移动磁头(每盘一磁头) 访问时间的计算 寻道时间(到磁道) 旋转延迟(到扇区) 传输时间 传输时间占总时间的比例最小,磁盘读写速度的提高要选择合适的调度算法,减少前两项用时,使所有作业的磁盘处理时间均衡。 |
2)磁盘调度方法
对所有请求访问磁盘的进程进行合理调度,使对磁盘的平均访问时间最小。 目标:使平均寻道时间最少。 算法: FCFS
最短寻道时间优先SSTF 选择从当前磁头位置出发移动最少的磁盘I/O请求 SSTF会导致“饥饿”现象 总选择最近的磁道访问,远磁道请求的进程会长时间得不到执行
扫描算法SCAN(磁盘电梯调度算法) 规定磁头移动方向:自里向外,再自外向里移动
循环扫描算法CSCAN N-Step-SCAN算法 FSCAN算法 |