iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 29
0
自我挑戰組

作業系統概論系列 第 29

DAY 29 Implementing File System(檔案執行系統) (中)

今天就來談談分配方法吧!

  • Allocation Methods:說明如何分配disk block給檔案使用。
  1. Contiguous allocation:
    ==>每個檔案都是占用硬碟的一組連續blocks。要讀取資料時,從某一個block開始並讀取被要求的長度資料。
    ==>這是種隨機存取的方法,但因依序放置所以會造成空間上的浪費,也因如此現在網路上並不常用此方法。
    https://ithelp.ithome.com.tw/upload/images/20181113/20112086LYYg5cgykF.png
    ==>依圖片來看,LA就是logical address,也是以此來處理block,而這個block有512個數,進行處理後會有餘數(R)
    產生,所以R是多少便從第幾個位置開始。
    ==>以下為此方法在Disk Space中的示意圖:
    https://ithelp.ithome.com.tw/upload/images/20181113/20112086O9qxeUBuKk.png

  2. Extent-Based Systems:
    ==>因為一個一個的block很小,所以成立一個新單位--extent。其定義就是一堆連續的disk blocks的組合便是extent。
    ==>extent類似於一個可變尺寸的單位,內含一個以上的block,接者再分配給需要的檔案;一個檔案可以由一個或多個的extent組成。

  3. Linked Allocation:
    ==>每個檔案是個硬碟block的link list;blocks可能會散落再硬碟的任何地方。
    ==>是個簡單的方法,只需要開始的位置訊息,而且也不會有浪費空間的事情發生,並不是一個可隨機存取的方法。
    ==>以下為示意圖:是種非連續的方式
    https://ithelp.ithome.com.tw/upload/images/20181113/20112086omFVEjZYx6.png
    ==>File-Allocation Table:
    https://ithelp.ithome.com.tw/upload/images/20181113/20112086kz0DfBDo9e.png

  4. Indexed Allocation:
    ==>每個檔案都有自己的index block,裡面有各配置的data block編號,提供尋找。配置方式則採非連續的。
    ==>需要index table,以及支援隨機存取。在動態存取中不會產生外部碎片,但有index block的沉重負擔。
    https://ithelp.ithome.com.tw/upload/images/20181113/20112086aAzlNlEhI1.png
    ==>Q:代表index table裡的位置。R:從index table中的位置要到哪個block。
    ==>在檔案中從logical對映到physical是沒有限制長度的;同樣的Linked scheme是index table的link block,一的沒有尺寸限制。
    ==>以下為示意圖:
    https://ithelp.ithome.com.tw/upload/images/20181113/20112086Yy7kZwTHQv.png
    ==>Q1:index table的block。R1的用法如下:
    https://ithelp.ithome.com.tw/upload/images/20181113/201120862KwxodmUdo.png
    ==>Q2:index table進入block的位置。R2:檔案進入block的位置。
    ==>以下為Index Allocation的Mapping示意圖:
    https://ithelp.ithome.com.tw/upload/images/20181113/20112086dOnR39x1aN.png

明天我們將繼續介紹最後的部分!!/images/emoticon/emoticon08.gif


上一篇
DAY 28 Implementing File Systems(檔案系統執行) (上)
下一篇
DAY 30 Implementing File System(檔案執行系統) (下)
系列文
作業系統概論30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言