存儲空間的劃分和初始化
首先將物理磁盤劃分為一個個文件卷(邏輯卷/邏輯盤)
對于一個文件卷,將其劃分為目錄區(qū)和文件區(qū)
目錄區(qū)存放文件目錄信息FCB、用于磁盤存儲空間管理的信息
有的系統(tǒng)支持超大型文件,支持多個物理磁盤組成一個文件卷
存儲空間管理
空閑表法:和動態(tài)分區(qū)分配方式很相似,存在一個空閑盤塊表記錄空閑分區(qū)信息,可以使用首次適應(yīng)、最佳適應(yīng)、最壞適應(yīng)等算法來決定要為文件分配哪個區(qū)間,回收時注意合并
空閑鏈表法
空閑盤塊鏈:空閑盤塊中存儲著下一個空閑盤塊的指針,操作系統(tǒng)需要保存鏈頭、鏈尾指針。適合離散分配的物理結(jié)構(gòu)
空閑盤區(qū)鏈:連續(xù)的空閑盤塊組成一個空閑盤區(qū),空閑盤區(qū)中的第一個盤塊內(nèi)記錄了盤區(qū)的長度、下一個盤區(qū)的指針,操作系統(tǒng)需要保存鏈頭、鏈尾指針。分配可以采用首次適應(yīng)、最佳適應(yīng)、最差適應(yīng)等方法,如果沒有滿足要求的空閑盤區(qū),可以將不同盤區(qū)的盤塊分配給一個文件;回收時注意合并。適用于連續(xù)和離散分配
位示圖法:每個二進制位對應(yīng)一個盤塊,0表示空閑,1表示已分配。連續(xù)離散都適用
成組鏈接法(UNIX采用)
文件卷的目錄區(qū)中專門用一個磁盤塊作為超級塊,當系統(tǒng)啟動時需要將超級塊讀入內(nèi)存,并且要保證內(nèi)存和外存中的超級塊數(shù)據(jù)一致

若已經(jīng)沒有下一組空閑塊,則設(shè)為特殊值
一個分組中的塊號不需要連續(xù)
如何分配


如何回收


文件的基本操作
創(chuàng)建文件:create系統(tǒng)調(diào)用
主要參數(shù):所需空間大小、文件存放路徑、文件名
操作系統(tǒng)干了什么:在外存中找到文件所需的空間(空閑鏈表法、位示圖、成組鏈接法);根據(jù)路徑找到對應(yīng)的目錄表,創(chuàng)建插入文件對應(yīng)的目錄項
刪除文件:delete系統(tǒng)調(diào)用
主要參數(shù):文件存放路徑、文件名
操作系統(tǒng)干了什么:根據(jù)路徑找到相應(yīng)目錄表,根據(jù)文件名找到目錄項;根據(jù)目錄項記錄中的外存位置、文件大小等信息,回收文件占用的磁盤塊(空閑表法、空閑鏈表法、位示圖法等);刪除目錄項
打開文件:open系統(tǒng)調(diào)用
主要參數(shù):路徑、文件名、對文件的操作類型
操作系統(tǒng):根據(jù)路徑找到目錄表,根據(jù)文件名找到目錄項,檢查用戶的訪問權(quán)限;將目錄項復(fù)制到內(nèi)存中的“打開文件表”中,用戶使用打開文件表的編號指明要操作的文件
打開文件表有兩種:操作系統(tǒng)的打開文件表只有一張,其中有編號、文件名、外存地址、打開計數(shù)器等;每個進程自己也有打開文件表,包含編號、文件名、讀寫指針、訪問權(quán)限、系統(tǒng)表索引號等信息
關(guān)閉文件:close系統(tǒng)調(diào)用
操作系統(tǒng)做了什么:將進程的打開文件表相應(yīng)表項刪除;回收分配給該文件的內(nèi)存空間等資源;系統(tǒng)打開文件表計數(shù)器更新,若為0,刪除表項
讀文件:read系統(tǒng)調(diào)用
寫文件:write系統(tǒng)調(diào)用
文件共享
硬鏈接:基于索引節(jié)點的共享方式,索引節(jié)點中設(shè)置一個鏈接計數(shù)變量count,用于表示鏈接到共享節(jié)點上的用戶目錄項數(shù),不同用戶起的名字可以不同
刪除時,刪除目錄項,count--,當count為0刪除文件
軟鏈接:給予符號鏈的共享方式,相當于Windows的快捷方式,用一個link型的文件記錄文件1的存放路徑,就可以訪問文件1了
如果文件1被刪除了,軟鏈接就找不到文件了,軟鏈接失效
軟鏈接通過查詢多級目錄多次IO操作訪問到文件,所以訪問速度比硬鏈接慢
文件保護
口令保護:口令一般存放在文件對應(yīng)的FCB或索引節(jié)點中,用戶訪問文件前需要先輸入口令,口令正確才允許訪問
優(yōu)點:開銷小,驗證口令時間短
缺點:正確口令在系統(tǒng)內(nèi)部,不夠安全
加密保護:使用密碼對文件進行加密,訪問時提供密碼對文件進行解密
最簡單的是異或加密
優(yōu)點:保密性強,不需要在系統(tǒng)中存密碼
缺點:編碼、譯碼需要花費一定時間
訪問控制:在每個文件的FCB或索引節(jié)點中增加一個訪問控制列表ACL,記錄各個用戶可以對該文件進行哪些操作
層次結(jié)構(gòu)

