操作系統--課堂問答筆記28--習題答案

課堂筆記學習視頻來自 操作系統
說明:其他”課堂問答筆記“也在”操作系統“專欄

【6-4、6-5】

1、簡述成組鏈接法的原理。

答:成組鏈接法是Unix系統中常見的管理空閒盤區的方法,它把空閒塊分爲若干組,每100個空閒塊爲一組,每組的第一個空閒塊記錄了空閒塊總數和下一組物理空閒塊的物理盤塊號:

 

左邊綠色的空閒盤塊號棧,這是第一組(唯一進入內存的一組,只有它會佔據存儲空間)。S.free = 100表示該組有100個空閒塊數目,再往下,第0號對應的是300,表示下一組空閒物理塊的物理盤塊號爲300,它指向的是300號對應的磁盤塊。再看黃色的塊,這些塊裏保存的纔是真正的可用的空閒物理塊,也就是說每組中只有99個塊可用。儘管如此,每組還是有100個塊的(第1塊存放下一組的盤塊號)。特別要注意的是,最後一組的下一組盤塊號沒有了,這裏採用的是結束標記“0”,也就是最右邊一個藍色塊的第二項爲0。

分配空閒塊的時候,從前往後分配,先從第一組開始分配,第一組空閒的100塊分完了,才進入第二組。

釋放空閒塊的時候正好相反,從後往前釋放,先將釋放的空閒塊放到第一組,第一組滿了,在第一組前再開闢一組,之前的第一組變成第二組。依次……。

 

2、描述文件控制塊的功能及其構成。

答:文件控制塊是用於描述和控制文件的數據結構。文件與文件控制塊一一對應(就像一個進程與它的PCB一一對應一樣),文件目錄就是文件控制塊的有序集合一個文件控制塊就是目錄中的一個表項

對於不同操作系統的義件系統,由於功能的不同,可能只含有上述信息中的某些部分。下圖是MS-DOS中的文件控制塊,它含有文件名、文件所在的第一個盤塊號、文件屬性、文件建立日期和時間及文件長度等信息。

 

一般地,文件控制塊中可以包含以下信息:

1)文件名:用於標識一個文件的符號名,在每個系統中,文件必須具有唯一的名字,用戶可利用該名字進行存取。

 2)文件的物理位置:指示文件在外存上的存儲位置,包括存放文件的設備名、文件在外存上的起始盤塊號,以及指示文件所佔用磁盤塊數或字節數的文件長度

 3)文件邏輯結構:指示文件是流式文件還是記錄式文件。對於記錄式文件還需說明是定長記錄還是變長記錄等。

 4)文件的物理結構:指示文件是順序文件、鏈接文件還是索引文件。

 5)文件主(文件擁有者,一般是文件創建者)的存取權限。

 6)覈准用戶(除文件主之外的合法用戶)的存取權限。

 7)—般用戶(其餘用戶)的存取權限。

 8)文件的建立日期和時間。

 9)文件上一次修改的日期和時間。

 10)當前使用信息。包括當前已打開該文件的進程數、是否被其他進程鎖住、文件在內存中是否被修改而尚未複製到磁盤上。

 

3、簡述引入索引結點的目的及分類。

答:檢索目錄文件(FCB的集合)時只用到了文件名。僅當找到一個目錄項時才需要從該目錄項(FCB)中讀出該文件的物理地址。即:檢索目錄時文件的其他描述信息用不到,也因此不必調入內存。那麼我們是否可以考慮,把文件名和文件的描述信息分開,文件的描述信息單獨形成一個數據結構,這個被稱作索引結點。簡稱爲i結點。在文件目錄中的每個目錄項僅由文件名和指向該文件所對應的i結點的指針構成。

 

設目錄文件所佔用的盤塊數爲 N,按此方法查找,則查找一個目錄項平均需要調入盤塊(N+1)/2次(≈N/2,怎麼來的,前面講過很多次了)。如不採用索引結點,假如一個FCB爲64個字節(B),又如果一個盤塊大小爲1KB,則每個盤塊中只能存放16個FCB。若一個文件目錄中共有640個FCB,需佔用40個盤塊,故平均查找一個文件需要啓動磁盤20次(調入一個盤塊啓動一次磁盤)。

若採用索引結點,如UNIX文件系統:一個目錄項僅佔16個字節(B),前14個字節是文件名,後2個字節是i結點指針(如上圖),則每個盤塊(盤塊大小=1KB)中可存放64個目錄項,有640個文件的文件目錄只需佔用10個盤塊。爲查找一個文件,可使平均啓動磁盤的次數減少到原來的1/4,大大節省了系統開銷。

存放在磁盤上的索引結點稱爲磁盤索引結點,UNIX中的每個文件都有一個唯一的磁盤索引結點。主要包括以下幾個方面:

文件主標識符——擁有該文件的個人或小組的標識符。

文件類型——包括普通文件、目錄文件或特別文件。

文件存取權限——各類用戶對該文件的存取權限。

文件物理地址——每個索引結點中含有13個地址項,它們以直接或間接方式給出數據文件所在盤塊的編號。

文件長度——以字節爲單位。

文件鏈接計數——在本文件系統中所有指向該文件的文件名的指針計數。

文件存取時間——本文件最近被進程存取的時間、最近被修改的時間以及索引結點最近被修改的時間。

存放在內存中的索引結點稱爲內存索引結點,文件被打開時,磁盤索引結點複製到內存的索引結點中,以便於使用。在內存索引結點中又增加了以下內容(包括上述磁盤索引結點的內容):

索引結點編號——用於標識內存索引結點。

狀態——指示i結點是否上鎖或被修改。

訪問計數——每當有一進程要訪問此i結點時,計數加1,訪問結束減1。

邏輯設備號——文件所屬文件系統的邏輯設備號。

鏈接指針——設置分別指向空閒鏈表和散列隊列的指針。

 

4、簡要描述目錄結構的演化。

答:1)單級文件目錄:

這是最簡單的文件目錄。在整個文件系統中只建立一張目錄表,每個文件佔一個目錄項,目錄項中含文件名、文件擴展名、文件長度、文件類型、文件物理地址以及其它文件屬性。此外,爲表明每個目錄項是否空閒,又設置了一個狀態位。

 

2)兩級文件目錄:

爲了克服單級文件目錄所存在的缺點,可以爲每一個用戶再建立一個單獨的用戶文件目錄UFD(User File Directory)。這些文件目錄具有相似的結構,它由用戶所有文件的文件控制塊組成。此外,在系統中再建立一個主文件目錄MFD(Master File Directory);在主文件目錄中,每個用戶目錄文件都佔有一個目錄項,其目錄項中包括用戶名和指向該用戶目錄文件的指針。

 

3)樹形目錄:

在現代OS中,最通用且實用的文件目錄無疑是樹形結構目錄(大家現在正在用的目錄結構)。它可以明顯地提高對目錄的檢索速度和文件系統的性能。主目錄在這裏被稱爲根目錄,在每個文件目錄中,只能有一個根目錄,每個文件和每個目錄都只能有一個父目錄。把數據文件稱爲樹葉,其它的目錄均作爲樹的結點,或稱爲子目錄。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章