空閒(磁碟術語)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

空閒是一種磁碟術語。

基本介紹

  • 中文名:空閒
  • 所屬領域:計算機
磁碟管理,數組表格,鍊表管理,點陣圖管理,

磁碟管理

作業系統的磁碟管理為了和記憶體管理配合,也是將磁碟分割為最小單元進行統一調度,和記憶體的頁幀概念對應,磁碟管理模組以磁碟塊作為最小單元管理磁碟(常見的磁碟塊為1KB,對應2個512B扇區,磁碟塊是OS概念,磁碟驅動讀取是以扇區作為最小單元)。

數組表格

繼承記憶體頁幀的段頁式管理思想,自然可以想到磁碟管理的空閒空間表法和空閒塊鏈法。前者是指為所有空閒區建立一張空閒表,每個空閒項表示該空閒區的序號、第一個磁碟塊號以及空閒盤塊數目等信息。該表格管理的磁碟空閒區和記憶體的動態分配類似,以空間大小為評判標準,可採用首次適用匹配法、循環首次適用算法(平均各磁碟塊出場機會),還可以採用合併措施增加某相鄰兩塊空閒區,以提供更大的空閒區。可以預想這張表格將會很大(一般該空閒表都存在外存,需要多次低效率的I/O讀操作分批次讀入記憶體),並且由於各空閒區的大小不一致引入的變數,這導致在分配過程中需要增加遍歷空閒表項匹配size需求,無疑為磁碟管理增加了不小的設計負擔。

鍊表管理

空間塊鍊表管理的思路,則是在每個空閒塊中留出部分固定位用來指向下一塊空閒磁碟塊。這種思路當然是無需操作增加額外的輔助結構,但是由於若是需要分配多塊空閒空間,則需要多次I/O操作以提取下一塊空閒塊,故而效率其實是很低的,而且是隱式連結,一旦磁碟某個空盤塊的nextfree_block指針位置出現故障,很可能出現磁碟無法使用的情況,魯棒性較差。

點陣圖管理

其實從以上分析中可以發現,磁碟空閒塊管理需要儘可能地加快磁碟塊索引速度,同時又要儘可能地減少空閒塊管理所需的輔助空間。考慮這些要求,顯然Bitmap是不得不提的方法(點陣圖算法也是布隆過濾器的基礎)。用每個bit來表示一個盤塊的使用情況(0為空,1為占用,則對於1KB的盤塊,1G的磁碟,總共有2^20塊,則需要128KB的空間來描述所有磁碟塊)。但是這樣子的話,磁碟直接以磁碟塊與OS核心互動,需要CPU根據Bitmap中bit位置信息換算成盤塊位置,增加了計算負擔,同時粒度過小讓磁碟塊難以成片出現,這會導致一個檔案分布在磁碟各個跨區很大的盤塊中,增加了I/O操作時間(頻繁更換磁頭號,更換磁軌位置)。

相關詞條

熱門詞條

聯絡我們