操作系統文件系統練習題

1.Linux系統有幾種類型文件?它們分別是什麼?有哪些相同點和不同點?如果文件的類型和權限用“drwxrw-r--"表示,那麼這個文件屬於什麼類型的文件,

各類用戶對這個文件擁有什麼權限?


3類:普通文件、目錄文件和設備文件。

相同點是,它們都是文件,都有一個文件名和i節點號。

不同點是,普通文件的內容爲數據,目錄文件的內容爲目錄項或文件名與i節點對應表,而設備文件不佔用磁盤空間,

通過其i節點信息可建立與內核驅動程序的聯繫。

目錄文件。文件屬主讀寫執行權限,文件屬組讀寫權限,除屬主和屬組成員之外的其他用戶讀權限。


2.假定一個文件系統組織方式與MS-DOS相似,在FAT中可有64K個指針,磁盤的盤塊大小爲512B,試問該文件系統能否指引一個512MB的磁盤?

有512MB/512B = 1M個盤塊,64K個指針不夠。


3.在UNIX中,每個i節點中有10個直接地址和一、二、三級間接索引。若每個盤塊512B,每個盤塊地址4B,

則一個1MB的文件分別佔用多少間接盤塊?25MB的文件呢?


10個直接盤塊存放的容量爲:10*512B/1024 = 5KB

一個盤塊中可放的盤塊地址數爲:512B/4B = 128

一次間接索引存放的容量爲:128*512B/1024 = 64KB

二次間接索引存放的容量爲:128*128*512B/1024 = 8192KB

三次間接索引存放的容量爲:128*128*128*512B/1024 = 1048576KB


則:1MB爲1024KB,1024KB-64KB-5KB=955KB,955×1024B/512B=1910,所以1MB的文件分別佔用128個一次間接盤塊和1910個二次間接盤塊。

        25MB爲:25×1024KB--64KB-5KB-8192KB=17339KB,  17339×1024B/512B=34678  所以25MB的文件分別佔用128個一次間接盤塊

和128^2=16384個二次間接盤塊,     34678個三次間接盤塊.


4.假設某文件系統的硬盤空間爲500MB,盤塊大小爲1KB,採用顯示鏈接分配,請回答以下問題:

(1)其FAT表(文件分配表)需佔用多少存儲空間?

(2)如果文件A佔用硬盤的盤塊號依次爲120、130、145、135、125共五個盤塊,請畫圖示意文件A的FCB與FAT表的關係以及FAT表中各盤塊間的鏈接情況。


(1).FAT的每個表項對應於磁盤的一個盤塊,其中用來存放分配給文件的下一個盤塊的塊號,故FAT的表項數目由物理盤塊數決定,而表項的長度則由磁盤系統的最大盤塊號決定(即它必須能存放最大的盤塊號)。爲了地址轉換的方便,FAT表項的長度通常取半個字節的整數倍,所以必要時還必須由最大盤塊號獲得的FAT表項長度作一些調整。由題意可知,該硬盤共有500K個盤塊,故FAT中共有500K個表項;如果盤塊從1開始編號,爲了能保存最大的盤塊號500K,該FAT表項最少需要19位,將它擴展爲半個字節的整數倍後,可知每個FAT表項需20位,即2.5個字節。因此,FAT需佔用的存儲空間的大小爲: 2.5×500K=1250KB

(2).如下圖所示:


.


5.某文件系統採用單級索引文件結構,假定文件索引表的每個表項佔3個字節存放一個磁盤塊的塊號,磁盤塊的大小爲512B。試問:

(1)該文件系統能支持的最大文件大小是多少字節?能管理的最大磁盤空間是多大?

(2)若採用3級索引,該文件系統能支持的最大文件大小是多少字節?


(1).由於索引表佔用一個大小爲512B的磁盤,所以該文件系統的索引表可以管理512/3=170個表項,而每一個表項對應一個物理塊,因此該文件

系統可以支持的最大文件爲:170*512B=87040B=85KB

能管理的最大磁盤空間:2^24*512B

(2).170*170*170*512B=2456500KB=2398.93MB




6.在某個採用混合索引分配的文件系統中,FCB中有i_addr[0]~i_addr[8] 共9個物理地址項,其中i_addr[0]~i_addr[6]是7個直接地址項,i_addr[7]是1個一次間址項,i_addr[8]是1

個二次間址項。如果一個盤塊的大小是4KB,每個盤塊號佔4個字節。請寫出將下列文件的字節偏移量轉換成物理地址的過程:

(1)10000;

(2)500000。


(1).10000/(4*1024) = 2 餘1808,第3個直接地址項指向的盤塊,塊內偏移1808個字節。

(2).每個盤塊可以放4KB/4 = 1K個盤塊號,500000 / (4 * 1024) = 122 餘 288,一次間址項夠用,122 - 7 = 125,一次間址項裏的第125 + 1 = 126個盤塊號指向的盤塊,塊內偏移288個字節。


7.在UNIX系統中有空閒盤塊棧如圖所示:

(1)現有一個進程要釋放4個物理塊,其塊號爲150#、156#、172#、177#,畫出空閒盤塊棧的變化。

(2)在(1)的基礎上假定一個進程要求分配5個空閒塊,畫出分配後的空閒盤塊棧。


(1).每個空閒盤塊棧放100個空閒盤塊。



(2).


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