RK3568平台开发系列讲解(Linux文件系统篇)缓存
🚀返回专栏总目录
文章目录
- 一、背景
沉淀、分享、成长,让自己和他人都能有所收获!😄
一、背景
因为硬盘的读写速度远远低于内存的读写速度,如果直接让内存与硬盘进行交换数据,那么会导致内存资源严重浪费,因为为了优化此问题,在UNIX当中,读写的数据会先存放到高速缓存中,以提高读写速度,linux以页作为高速缓存的单位,当进程修改了高速缓存里的数据时,该页就被内核标记为脏页,内核将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数据是一致的。
大多数磁盘I/O都通过缓冲进行。 当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时, 再将该缓冲排入到输出