read()之后操作系统都干了什么

  • 首先说明三个参数 file文件 buff从内存中开辟一段缓冲区用来接收读取的数据 size表示这个缓冲区的大小 
  • 有关file的参数:
  1. 状态:被打开 被关闭
  2. 权限:可读可写
  3. 最重要的是inode: 他包含了 文件的元数据(比如文件大小 文件类型 文件在访问前需要加锁),最关键的是他在磁盘中的位置

假设 我们要访问4 5两个块,那么在磁盘启动的过程中,第一个块被设置成超级块 

 剩下的空间会被分成一个又一个的块并标上编码

superblock会记录 inode的数量和block的数量 

inode是包含多个数据块的结构 

回到我们之前要访问4 5两个块的问题,read会根据inode里面获取了 4 5两个编号剩下就是将内容写入buffer了

猜你喜欢

转载自blog.csdn.net/qq_62260432/article/details/134773683