Linux 档案系统的运作:
我们现在知道了目录树与档案系统的关系了,但是由第零章的内容我们也知道, 所有的资料都得要载入到记忆体后 CPU 才能够对该资料进行处理。想一想,如果你常常编辑一个好大的档案, 在编辑的过程中又频繁的要系统来写入到磁碟中,由于磁碟写入的速度要比记忆体慢很多, 因此你会常常耗在等待硬碟的写入/读取上。真没效率!
为了解决这个效率的问题,因此我们的 Linux 使用的方式是透过一个称为非同步处理 (synchronously) 的方式。所谓的非同步处理是这样的:
当系统载入一个档案到记忆体后,如果该档案没有被更动过,则在记忆体区段的档案资料会被设定为乾净(clean)的。 但如果记忆体中的档案资料被更改过了(例如你用 nano 去编辑过这个档案),此时该记忆体中的资料会被设定为脏的 (Dirty)。此时所有的动作都还在记忆体中执行,并没有写入到磁碟中! 系统会不定时的将记忆体中设定为‘Dirty’的资料写回磁碟,以保持磁碟与记忆体资料的一致性。 你也可以利用第五章谈到的 sync指令来手动强迫写入磁碟。
我们知道记忆体的速度要比硬碟快的多,因此如果能够将常用的档案放置到记忆体当中,这不就会增加系统性能吗? 没错!是有这样的想法!因此我们 Linux 系统上面档案系统与记忆体有非常大的关系喔:
* 系统会将常用的档案资料放置到主记忆体的缓冲区,以加速档案系统的读/写;
* 承上,因此 Linux 的实体记忆体最后都会被用光!这是正常的情况!可加速系统效能;
* 你可以手动使用 sync 来强迫记忆体中设定为 Dirty 的档案回写到磁碟中;
* 若正常关机时,关机指令会主动呼叫 sync 来将记忆体的资料回写入磁碟内;
* 但若不正常关机(如跳电、当机或其他不明原因),由于资料尚未回写到磁碟内, 因此重新开机后可能会花很多时间在进行磁碟检验,甚至可能导致档案系统的损毁(非磁碟损毁)。
阅读(754) | 评论(0) | 转发(0) |