数据从内存要写入磁盘中时,数据会被先写入到磁盘缓冲区,磁盘再从磁盘缓冲区中读取数据写入,磁盘缓冲区是为了平滑不同I/O设备的速度差。 那“内存缓冲区”的作用是什么?node中的内存缓冲区,是不是就是一般所说的“内存缓冲区”?
应该是这样:数据从内存要写入磁盘中时,数据会被先写入到磁盘缓冲区,磁盘缓冲区满了再把数据写入磁盘。 磁盘缓冲区是为了平滑不同I/O设备的速度差。 是的,磁盘是分区分块存储的。如果是机械硬盘,是分磁道和扇区的。当磁头转到一个扇区的某磁道时,开始读取数据,如果只读取了 100KB 的数据,这时操作系统就想,磁头转到这儿看不容易啊,反正来都来了,顺带多读点数据吧,万一用的着呢。 所以,读取数据的时候也是通过缓冲区的。 题外话:如果应用的数据存放在不同的磁道,不同的扇区,那么读取的效率是很低的,这被称为磁盘碎片,所以 windows 有个操作叫“整理磁盘碎片”。
应该是这样:数据从内存要写入磁盘中时,数据会被先写入到磁盘缓冲区,磁盘缓冲区满了再把数据写入磁盘。
是的,磁盘是分区分块存储的。如果是机械硬盘,是分磁道和扇区的。当磁头转到一个扇区的某磁道时,开始读取数据,如果只读取了 100KB 的数据,这时操作系统就想,磁头转到这儿看不容易啊,反正来都来了,顺带多读点数据吧,万一用的着呢。
所以,读取数据的时候也是通过缓冲区的。
题外话:如果应用的数据存放在不同的磁道,不同的扇区,那么读取的效率是很低的,这被称为磁盘碎片,所以 windows 有个操作叫“整理磁盘碎片”。