偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

講解Unix內(nèi)核超級塊知識(shí)

系統(tǒng) 其他OS
我們在學(xué)習(xí)Unix內(nèi)核的時(shí)候,會(huì)了解到Unix內(nèi)核超級塊由以下字段組成:文件系統(tǒng)的規(guī)模,文件系統(tǒng)中空閑塊的數(shù)目,文件系統(tǒng)上可用的空閑塊表等。

我們今天要涉及的知識(shí)是Unix內(nèi)核,所有的Unix內(nèi)核都同宗同源,并且提供相同的API,現(xiàn)代的Unix內(nèi)核存在許多設(shè)計(jì)上的相似之處。今天,我們就來介紹關(guān)于Unix內(nèi)核超級塊的知識(shí),我們下面就來看看吧!

Unix內(nèi)核超級塊

Unix內(nèi)核超級塊由以下字段組成:
1,文件系統(tǒng)的規(guī)模
2,文件系統(tǒng)中空閑塊的數(shù)目
3,文件系統(tǒng)上可用的空閑塊表
4,空閑塊表中下一個(gè)空閑塊的下標(biāo)
5,索引結(jié)點(diǎn)表的大小
6,文件系統(tǒng)中空閑索引結(jié)點(diǎn)號(hào)表
7,文件系統(tǒng)中空閑索引結(jié)點(diǎn)的數(shù)目
8,空閑索引結(jié)點(diǎn)表中下一個(gè)空閑索引結(jié)點(diǎn)的下標(biāo)
9,空閑塊表的鎖字段和空閑索引結(jié)點(diǎn)表的鎖字段
10,用來標(biāo)識(shí)超級塊已經(jīng)被修改的標(biāo)志

注意:6中提到的空閑索引結(jié)點(diǎn)號(hào)表位于文件系統(tǒng)中,它與內(nèi)存中的空閑索引結(jié)點(diǎn)表不同。

下面介紹Unix內(nèi)核是如何為新的文件分配索引結(jié)點(diǎn)的,前面我們知道Unix內(nèi)核是通過iget算法得到已經(jīng)存在的文件的索引結(jié)點(diǎn),這里Unix內(nèi)核通過ialloc算法來為新文件分配索引結(jié)點(diǎn)。文件系統(tǒng)包含一個(gè)線性的索引結(jié)點(diǎn)表。

當(dāng)結(jié)點(diǎn)的類型字段為0時(shí),此索引結(jié)點(diǎn)為空閑,也就是說沒有文件占用此結(jié)點(diǎn)。當(dāng)進(jìn)程創(chuàng)建新文件需要索引結(jié)點(diǎn)時(shí),如果進(jìn)行線性的搜索而獲得,其代價(jià)過高了。為此,unix在超級塊里包含了一個(gè)數(shù)組,把空閑的索引結(jié)點(diǎn)號(hào)緩沖起來。等到需要的時(shí)候,在此表中取用空閑的號(hào)對應(yīng)的索引結(jié)點(diǎn),提高了效率。

當(dāng)空閑索引結(jié)點(diǎn)號(hào)表為空時(shí),此時(shí)緩沖起來的空閑索引結(jié)點(diǎn)被用完,Unix內(nèi)核重新在磁盤上搜索空閑的結(jié)點(diǎn)來填滿空閑索引結(jié)點(diǎn)號(hào)表,搜索完成后內(nèi)核將“銘記”住填滿的空閑索引結(jié)點(diǎn)號(hào)表里最大的元素,以便下次搜索時(shí)即從該號(hào)往后搜索。

當(dāng)Unix內(nèi)核釋放一個(gè)索引結(jié)點(diǎn)(調(diào)用ifree算法),即該索引結(jié)點(diǎn)的所有聯(lián)結(jié)變?yōu)?時(shí),Unix內(nèi)核把此結(jié)點(diǎn)號(hào)與“銘記”索引結(jié)點(diǎn)號(hào)比較,如果結(jié)點(diǎn)號(hào)小于“銘記”號(hào),則使“銘記”號(hào)=該結(jié)點(diǎn)號(hào),這樣做的目的是為了防止遺漏空閑的索引結(jié)點(diǎn)。理論上,這樣做空閑索引結(jié)點(diǎn)號(hào)永遠(yuǎn)都在超級塊的空閑索引結(jié)點(diǎn)號(hào)表里,但例外是有的。

接下來著重討論ialloc算法,當(dāng)超級塊上了鎖,此時(shí)進(jìn)入睡眠(sleep),直到超級塊可用,然后檢查是否有空閑索引結(jié)點(diǎn)號(hào)緩沖著,如果沒有,將Unix內(nèi)核超級塊上鎖,搜索磁盤索引結(jié)點(diǎn)表填充空閑索引結(jié)點(diǎn)號(hào)表,然后為超級塊解鎖。在空閑索引結(jié)點(diǎn)號(hào)表里取得一個(gè)號(hào),將空閑結(jié)點(diǎn)的數(shù)目減一,然后調(diào)用iget算法,得到索引結(jié)點(diǎn),并將結(jié)點(diǎn)調(diào)入內(nèi)存完成對它的初始化,然后返回索引結(jié)點(diǎn)。

這樣,我們就對Unix內(nèi)核的知識(shí)基本上介紹的差不多了,如果大家還有問題,那我們會(huì)幫助大家一起來解決的。

【編輯推薦】

  1. 簡單四步 編譯Linux內(nèi)核
  2. 教學(xué)Unix操作系統(tǒng)內(nèi)核級后門
  3. Nginx內(nèi)核優(yōu)化的源代碼探秘
  4. Linux 2.6.31內(nèi)核優(yōu)化指南
  5. 簡單介紹Linux內(nèi)核安全入侵偵察系統(tǒng)
責(zé)任編輯:小霞
相關(guān)推薦

2010-05-05 13:13:55

Unix內(nèi)核

2010-04-19 17:47:59

Unix操作系統(tǒng)

2010-04-30 13:27:26

Unix cronta

2010-05-04 12:25:28

Unix鏈接

2010-05-05 13:45:21

Unix Telnet

2010-05-04 09:22:10

Unix文件

2010-04-30 13:38:51

Unix at命令

2010-04-30 16:08:20

Unix內(nèi)核

2010-04-30 16:19:17

Unix內(nèi)核

2010-04-21 14:29:52

Unix 線程

2010-04-30 18:20:23

Unix系統(tǒng)

2010-04-21 12:39:48

Unix 消息隊(duì)列

2010-05-05 13:22:29

Unix Shell

2010-04-13 17:52:16

Unix交換區(qū)

2010-05-04 09:45:28

Unix系統(tǒng)

2010-05-04 16:33:39

Unix系統(tǒng)

2010-05-05 15:02:39

Unix系統(tǒng)

2010-05-05 10:44:37

Unix 反引號(hào)

2010-04-21 13:41:41

Unix內(nèi)核

2010-04-20 11:34:26

Unix操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)