如何從file中的pos轉換到磁碟上的塊位址

2021-06-01 08:43:13 字數 970 閱讀 7699

磁碟塊的大小可以設定,目的是為了提高訪問效率。

1.檔案偏移量 pos

2.檔案塊號

3.i_data的陣列

4.磁碟塊位址

轉換:1->2 pos / 檔案塊大小

2->3 **間址

3->4

typedef struct indirect

用陣列 chain[4]描述4 種不同的索引,即直接索引、一級間接索引、二級間接索引、三

級間接索引。舉例說明這個結構各個域的含義。如果檔案內的塊號為 8,則不需要間接索引,

所以只用 chain[0]乙個 indirect 結構,p 指向直接索引表下標為 8 處,即&

inode->u.ext2_i.i_data[8];而key則持有該表項的內容,即檔案塊號所對應的裝置上的塊

號 (類似於邏輯頁面號與物理頁面號的對應關係);bh 為null,因為沒有用於間接索引的塊。

如果檔案內的塊號為 20,則需要一次間接索引,索引要用 chian[0]和 chain[1]兩個表項。

第乙個表項 chian[0] 中,指標 bh 仍為null,因為這一層沒有用於間接索引的資料塊;指標

p 指向&inode->u.ext2_i.i_data[12],即間接索引的表項;而 key 持有該項的內容,即對

應裝置的塊號。chain[1]中的指標 bh則指向進行間接索引的塊所在的緩衝區,這個緩衝區的

內容就是用作間接索引的乙個整數陣列,而 p指向這個陣列中下標為 8 處,而 key則持有該

項的內容。這樣,根據具體索引的深度 depth,陣列 chain中的最後乙個元素,即

chain[depth-1].key,總是持有目標資料塊的物理塊號。而從 chain[]中第 1 個元素 chain

[0]到具體索引的最後乙個元素 chain[depth-1],則提供了具體索引的整個路徑,構成了

一條索引鏈,這也是資料名 chain 的由來。 

從Drupal轉換到Yii的理由

基本上drupal包括joomla 是設計給非技術人員使用的.當然圍繞著這些平台,已經有了很好的技術生態圈.不過如果你要設計大型的 月訪問達到百萬pv以上的級別,那麼現有的drupal 應該考慮盡快切換到yii等高效能框架上來.主要原因是drupal為了通用 易用引入了很多不必要的複雜性 如cck ...

從WordPress轉換到Z Blog的方法

我以前曾經介紹過將z blog資料庫轉換到wordpress的sql語句,做為反例,還會有從wordpress系統轉換到z blog系統的sql語句,這是乙個比較奇怪的話題,估計也很少有人這麼做,不過對於某些特殊情況,我們有可能會將wordpress資料庫轉換到z blog的access資料庫,這裡...

c 中從string陣列轉換到int陣列

以前一直有乙個陣列之間轉換的東西,可是忘記了,今天也是找了好久也沒有解決,最後用這種方法解決了,分享給大家。string input int output array.convertall input,delegate string s 以上是使用了array類中的靜態泛形式方法convertall...