Chinaunix首页 | 论坛 | 博客
  • 博客访问: 299471
  • 博文数量: 64
  • 博客积分: 1770
  • 博客等级: 上尉
  • 技术积分: 588
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-26 18:19
文章分类

全部博文(64)

文章存档

2019年(1)

2014年(1)

2012年(1)

2011年(8)

2010年(19)

2009年(1)

2008年(1)

2007年(12)

2006年(20)

分类: BSD

2010-09-16 10:14:43

Mysql上的innodb log buffer与buffer pool都使用到了缓冲技术,特别是在刷写数据和日志的时候,会用到操作系统的缓冲。特此我翻了翻OS原理一书,予以记录于此。

缓冲技术

为什么要在操作系统中使用缓冲技术?
1.改善CPU与IO设备之间速度的差距
2.逻辑记录大小与物理记录大小不一致
3.提高CPU与IO设备的并行性
4.减少IO对CPU的中断次数
5.放宽CPU中断响应时间的要求

在操作系统中普遍要使用缓冲技术

一般缓冲技术用于平滑连接两种速度不同设备之间的信息传输,由于硬件缓冲成本高,所以一般都直接在主机内存中分配一块区域作为io缓冲区
专门存放临时IO的数据。

读缓冲:

当一个进程执行读操作数据的时候,先向系统申请一个读缓冲区,系统将IO设备的物理记录读入到读缓冲区,然后根据进程需求,把需要的逻辑记录从
读缓冲区选出,送给进程

写缓冲:

当一个进程执行写操作数据的时候,先向系统申请一个写缓冲,申请完后,数据将高速送到该缓冲区,当进程写需求完成后,继续进行计算时,系统
可以将顺序的写或者随机的写操作,转换为顺序的IO写操作到IO设备上。(如果缓冲区不够,直到缓冲区写满时,进程如果还需要写操作,可能需要一边
回写IO设备,一边清空脏缓冲区)

操作系统的缓冲分为3种:

单缓冲
双缓冲
多缓冲

单缓冲就是单个缓冲区进行缓冲物理记录
双缓冲就是两个缓冲区轮流交替进行r/w IO设备物理记录
多缓冲就是多个缓冲区进行循环交替R/W IO设备物理记录

阅读(2314) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-16 16:48:30

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com