1. 程式人生 > >作業系統原理之成組連結法

作業系統原理之成組連結法

    成組連結法是UNIX/Linux等大型檔案系統採用的檔案空間管理方法。在UNIX/Linux系統中,將空閒塊分成若干組,每100個空閒塊為一組,每組的第一個空閒塊登記了下一組空閒塊的物理盤塊號和空閒塊總數。如果一組的第一個空閒塊號等於0,則有特殊的含義,意味著該組是最後一組,即無下一個空閒塊。平時整個連結資訊保存於計算機系統磁碟上的系統區,系統啟動以後,第一組的連結資訊經緩衝區複製到記憶體專用塊中。如圖1-2所示。


圖1-2  UNIX/Linux系統空閒塊成組連結示意圖

    分配空閒磁碟塊時,總是先把專用塊中的空閒塊計數減1,以它為指標找到專用塊的相應表項,其內容就是要分配的空閒磁碟塊號。當空閒計數減1後等於0時,專用塊中僅剩1個磁碟塊號,此時要取出表項中磁碟塊號(設為i),再把此盤塊中所儲存的下一組空閒磁碟塊連結資訊經緩衝區複製到記憶體專用塊中,然後把當前磁碟塊i分配出去。釋放儲存塊時,將盤塊號記錄在由專用塊所指示的表項中,然後空閒塊計數加1。若發現此表已滿(達100項),則應把整個表經緩衝區複製到下面要釋放的磁碟塊中,然後將釋放塊的塊號寫入專用塊中的第一個位置,置空閒計數為1。搜尋到磁碟塊中的第一項是0時,系統應向操作員發出警告,表明空閒塊已經用完。