1. 程式人生 > >作業系統檔案系統練習題

作業系統檔案系統練習題

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).