美文网首页
File I/O Kernel Inernals

File I/O Kernel Inernals

作者: 无无吴 | 来源:发表于2019-08-12 16:26 被阅读0次

本节介绍Linux内核如何实现I/O,重点是内核的三个主要子系统:虚拟文件系统(VFS)、页面缓存和页面回写。这些子系统有助于使I/O无缝、高效和优化。

The Virtual Filesystem 虚拟文件系统

虚拟文件系统允许Linux 内核在不知道当前使用的文件系统类型的情况下调用文件系统的功能并且操作文件系统数据。

The Page Cache 页缓存

页面缓存是最近从磁盘文件系统访问的数据的内存存储。
磁盘访问速度慢得令人痛苦,特别是相对于今天的处理器速度而言。将请求的数据存储在内存中允许内核完成对来自内存的相同数据的后续请求,避免重复磁盘访问。

Page Writeback 页面回写

内核通过使用缓冲区延迟write。当进程发出写请求时,数据被复制到缓冲区中,缓冲区被标记为脏,表示内存中的副本比盘上复制得到的新。
脏缓冲区需要提交到磁盘,同步磁盘上的文件和内存中的数据。这就是所谓的写回。
这在两种情况下发生:

  • 当空闲内存缩小到一个阈值以下时,脏缓冲区被写回磁盘,以便现在需要清理的缓冲区可以被删除,释放内存。
  • 当脏缓冲区时间超过阈值时,将缓冲区写入磁盘。这可防止数据无限期地保持脏的状态。

相关文章

  • File I/O Kernel Inernals

    本节介绍Linux内核如何实现I/O,重点是内核的三个主要子系统:虚拟文件系统(VFS)、页面缓存和页面回写。这些...

  • kernel 内存 I/O

    内存 I/O# 内存管理单元## MMU辅助操作系统进行内存管理,提供虚拟地址和物理地址的映射、内存访问权限保护和...

  • File I/O 同步I/O

    fsync() and fdatasync() 对fsync()的调用确保将与文件描述符fd映射的文件相关的所有脏...

  • File I/O Multiplexed I/O

    select() select()的调用会一直阻塞,直到给定的文件描述符可以执行I/O,或是已过了可选指定的超时。...

  • TLPI - The Linux Programming Int

    BookCode Chapter 4. File I/O: The Universal I/O Model Cha...

  • Linux Kernel Pwn 入门

    Linux Kernel Pwn 入门 ​ kernel 也是一个程序,用来管理软件发出的数据 I/O 要求,...

  • Go语言学习四:I/O

    Go 语言I/O 涉及两大部分 :I/O ,File 一 I/O /** bufio包实现了有缓冲的I/O。它包装...

  • 今天的内容是Java中的File I/O:输入输出流

    File I/O(Input/Output):文件的输入和输出流。 一般来说,我们用File I/O的主要用法就是...

  • Linux的五种I/O模型

    一.引子 流程介绍:process发起请求,Kernel接收请求,从I/O设备中获取数据至Kernel的Buffe...

  • File I/O creat()

    如下是典型的creat调用 这与如下的调用是相等作用的

网友评论

      本文标题:File I/O Kernel Inernals

      本文链接:https://www.haomeiwen.com/subject/zjmujctx.html