1、 磁盘高速缓存(Disk Cache)
操作系统中使用磁盘高速缓存技术来提高磁盘的IO速度,对高速缓存复制的访问要比原始数据访问更高效。例如正在运行的进程的指令即存储在磁盘上,也存储在物理内存上,也被复制到CPU的二级和一级高速缓存中。
不过磁盘高速缓存技术不同于通常意义下的介于CPU与内存之间的小容量高速存储器,而是利用内存的存储空间来暂存从磁盘读出的一些了盘块中的信息。因此,磁盘高速缓存在逻辑上属于磁盘,在物理上则是驻留在内存中的盘块。
高速缓存在内存中分为两种形式:一种是在内存中开辟一个单独的存储空间作为磁盘高速缓存,大小固定;另一种是把未利用的内存空间作为缓冲池,共请求分页系统和磁盘IO时共享。
2、 缓冲区(Buffer)
在设备管理子系统中,引入缓冲区的目的主要有:
(1) 缓和CPU与IO设备间速度不匹配的矛盾
(2) 减少对CPU的中断频率,放款对CPU中断响应时间的限制
(3) 解决基本单元数据大小不匹配的问题
(4) 提高CPU和IO设备之间的并行性
其实现方法有:1、采用硬件缓存器,但由于成本太高,除一些关键部位外,一般不采用硬件缓冲器 2、采用缓冲区(位于内存区域)。
缓冲区有一个特点,当缓冲区的数据非空时,不能往缓冲区冲入数据,只能把缓冲区数据传出;当缓冲区数据为空时,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区中把数据传出。
根据系统设置缓冲器的个数,缓冲技术可以分为:
(1) 单缓冲:在设备和处理机之间设置一个缓冲区。设备和处理机交互数据时,先把被交换数据写入缓冲区,然后需要数据的设备或处理机从缓冲区取走数据。
(2) 双缓冲区:根据但缓冲区的特点,cPU在传输时间M内处于空闲状态,由此引入双缓冲。IO设备输入数据时先装填到缓冲区1,在缓冲区1填满后才开始装填缓冲区2,与此同时处理机可以从缓冲区1中取出数据放入用户进程处理,当缓冲区1中的数据处理完后,若缓冲区2已经填满,则处理机又从缓冲区2中取出数据放入用户进程处理,而IO设备又可以装填缓冲区1.要注意,必须等缓冲区充才能让处理机从缓冲区2取出数据。双缓冲机制提高了处理机和输入设备并行操作的程序。
(3) 循环缓冲
(4) 缓冲池
3、 高速缓存与缓冲区的对比
高速缓存是可以保存数据拷贝的高速存储器,访问高速缓存比访问原始数据更高效,速度更快,如下所示