linux源代码阅读笔记 linux文件系统(三)

当系统申请一个新的inode时。系统并不会对磁盘进行读写。它会在存储在内存的inode表(inode_table)中寻找一个空闲的位置。

如果找到了,直接返回该inode。否则要等待一个空闲的位置。

得到一个空闲的位置后,检查dirty位,如果dirty,那么需要写回磁盘。

但是注意,系统并不会直接对磁盘进行操作。而是申请一个高速缓冲块,对该高速缓冲块进行操作。

ps:为了弥补cpu与磁盘之间巨大的速度差距。系统所有的对磁盘的读写操作都不会直接操作磁盘,而是操作高速缓冲区。

高速缓冲区再和磁盘进行操作。

时间: 2024-11-08 20:13:20

linux源代码阅读笔记 linux文件系统(三)的相关文章

linux源代码阅读笔记 find_entry分析

78 static struct buffer_head * find_entry(struct m_inode * dir, 79 const char * name, int namelen, struct dir_entry ** res_dir) find_entry是linux文件系统中一个较为费解的函数.下面我们来分析一番. 它的第一个参数是 m_inode型,它指示了函数操作的所在根目录的inode节点.即相对路径的起始节点. name自然是想要查找的目录路径,namelen是该目

linux源代码阅读笔记 free_page_tables()分析

76 /* 77 * This function frees a continuos block of page tables, as needed 78 * by 'exit()'. As does copy_page_tables(), this handles only 4Mb blocks. 79 */ 80 int free_page_tables(unsigned long from,unsigned long size)//size以B为单位而不是以页表为单位 81 { 82 un

非常好!!!Linux源代码阅读——中断【转】

Linux源代码阅读——中断 转自:http://home.ustc.edu.cn/~boj/courses/linux_kernel/2_int.html 目录 为什么要有中断 中断的作用 中断的处理原则 Linux 中断机制 中断控制器 中断描述符 中断数据结构 中断的初始化 内核接口 中断处理过程 CPU 的中断处理流程 保存中断信息 处理中断 从中断中返回 编写中断处理程序 软中断.tasklet与工作队列 上半部与下半部 软中断 tasklet 工作队列 1 为什么要有中断 1.1 中

Linux 程序设计学习笔记----Linux下文件类型和属性管理

转载请注明出处:http://blog.csdn.net/suool/article/details/38318225 部分内容整理自网络,在此感谢各位大神. Linux文件类型和权限 数据表示 文件属性存储结构体Inode的成员变量i_mode存储着该文件的文件类型和权限信息.该变量为short int类型. 这个16位变量的各个位功能划分为: 第0-8位为权限位,为别对应拥有者(user),同组其他用户(group)和其他用户(other)的读R写W和执行X权限. 第9-11位是权限修饰位,

CI框架源代码阅读笔记2 一切的入口 index.php

上一节(CI框架源代码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程.这里再次贴出流程图.以备參考: 作为CI框架的入口文件.源代码阅读,自然由此開始. 在源代码阅读的过程中,我们并不会逐行进行解释.而仅仅解释核心的功能和实现. 1.       设置应用程序环境 define('ENVIRONMENT', 'development'); 这里的development能够是不论什么你喜欢的环境名称(比方dev,再如test).相相应的,你要在以下的switch c

Hadoop 2.2.0 Job源代码阅读笔记

本文所有涉及的内容均为2.2.0版本中呈现. 概述: Job在创建Job并且提交的人的眼中,可以在创建的时候通过配置Job的内容,控制Job的执行,以及查询Job的运行状态.一旦Job提交以后,将不能对其进行配置,否则将会出现IllegalStateException异常. 正常情况下用户通过Job类来创建.描述.提交Job,以及监控Job的处理过程.下面是一个简单的例子: // Create a new Job Job job = new Job(new Configuration()); j

需求工程——软件建模与分析阅读笔记一(三)

需求工程--软件建模与分析阅读笔记(三) 需求工程的过程: 需求获取:需求获取是从人.文档.或环境中获取需求的过程,必须用各种方法和技术来发现需求,需求开发的过程包含学习和认知的两个过程,学习和认知是递进的.具体有:1收集背景资料2.获取问题与目标,定义项目前景和范围3.识别涉众,选择信息的来源4.选择获取方法,执行获取.获取功能与非功能需求5.记录获取结果 需求分析:1.背景资料2.问题分析.目标分析.业务分析.确定系统边界3.软件需求建模4.细化需求5.确定优先级6.需求协商 需求规格说明:

Flask 源代码阅读笔记

我认为我已经养成了一个坏习惯.在使用一个框架过程中对它的内部原理非常感兴趣,有时候须要花不少精力才 明确,这也导致了学习的缓慢,但换来的是对框架的内部机理的熟悉,正如侯捷所说,源代码面前,了无秘密.这也是 本文产生的直接原因. 一.flask session原理 flask的session是通过client的cookie实现的.不同于diango的server端实现,flask通过itsdangerous这个苦 将session的内容序列化到浏览器的cookie,当浏览器再次请求时将反序列化co

Mono源代码学习笔记:Console类(三)

Buffer 类 (public static class) 下面就是 mcs/class/corlib/System/Buffer.cs: 001: // 002: // System.Buffer.cs 003: // 004: // Authors: 005: // Paolo Molaro ([email protected]) 006: // Dan Lewis ([email protected]) 007: // 008: // (C) 2001 Ximian, Inc. http