作業系統
組員:D1024242006 林偉哲
D1024242014 闕均庭
D1024242048 何瑋倫
實體區塊
對於作業系統而言,要找到檔案內部的某一特定位
置可能是個相當複雜的任務。這是因為對於磁碟這類裝
置而言,它的輸出/輸入都是以固定大小的區塊為單位,
稱為實體區塊。
檔案系統架構
1.裝置驅動程式:負責實際的I/O運算;他會接受高階的
I/O命令,例如「存取區塊532」,然後轉換為與裝置相
關的低階指令,寫到I/O硬體控制器的特定記憶體位置中,
以指揮控制器的動作。
2.基本檔案系統:這是電腦系統與外部裝置間的主要介
面,負責處裡兩者間的區塊交 換。電腦系統藉由送出高
階命令給驅動程式來讀寫磁碟上的實體區塊。
檔案系統架構
3.檔案組織模組:負責邏輯與實體位置的對應;因為一
個邏輯區塊中可能包含多筆邏輯記錄,所以必須進行轉
換,要找到特定邏輯位置所對應的實體區塊。
4.邏輯檔案系統:提供使用者的存取介面,管理目錄結
構,並且維護檔案與目錄的存取權,以提供安全與保護。
檔案存取的方法
1.循序存取:循序存取就是依循著資料在檔案中的存放
順序進行存取;這是最常見的檔案存取方式之一。在循
序存取的方式下,作業系統會為每個開啟的檔案建立指
標,因此,檔案的讀取或寫入運算並不需要指定位置,
而是發生在檔案指標所指的位置。
2.隨機存取:隨機存取又稱為直接存取;藉由隨機忖取
的方式,使用者可以在任意時間點,隨意存取檔案中的
任一邏輯位置。
檔案存取的方法
3.索引存取:前面兩種存取方式是一般作業系統中最基
本的兩種存取運算,為了增加檔案存取上的便利性。索
引存取會利用邏輯記錄中的某個欄位作為索引,建立指
向特定資料區塊的指標,以減少資料搜尋的時間。
檔案運算
1.讀取:讀取檔案中的資訊。
2.寫入:將資訊寫入檔案。
3.刪除:刪除檔案,並釋放它所佔據的空間。
4.表列:列出檔案名稱與屬性。
5.執行:將檔案內容載入記憶體,並建立行程來執行。
6.變更存取權限:變更某些使用者對特定運算的存取權。
邏輯區塊的組成
1.固定式的組成方式:如果系統中的檔案都是由固定長
度L的紀律所組成,且區塊的程度為B,則每個區塊中會
放入「B/L」筆記錄。當區塊長度無法被記錄長度整除
時,區塊的結尾就會剩下一些空間,在這種設計下,如
果需要存取某筆記錄,就可以先利用B/L的值計算它所
屬的區塊位置,在設計該筆記錄在區塊中的位移量。
邏輯區塊的組成
2.不跨區塊變動的組成方式:如果系統提供可變長度的
記錄,則不跨越區快的組成方式就是盡可能將最多的完
整記錄存放在單一區塊內,但是不允許記錄橫跨兩個區
塊儲存。
3.允許區塊變動的組成方式:單一記錄可以儲存在多個
區塊中,因此,記錄長度不會受到限制,並且不會有
剩餘空間的問題 – 所以剩餘的未使用空間都會落在最後
一個區塊的最後面。
實體區塊的配置
就像虛擬記憶體一樣,在記錄組成邏輯區塊時,作
業系統是將邏輯區塊視為是連續的空間,並且從0開始
依序編號。這些邏輯區塊最終會透過I/O裝置寫入輔助儲
存裝置之中,或是從這些終致中讀出。常用的磁碟空間
配置方法有三種,分別是連續式配置、鏈結式配置、索
引式配置。
連續式配置
連續式中置式所有區塊配置方法中最簡單的一種;
也就是將檔案的邏輯區塊存在連續的實體區塊之中。此
時,檔案目錄中只需要儲存檔案在實體裝置的起始位址
和長度即可。連續式配置的方法可以分裂下列3種:
1.先試法:從可用空間中搜尋到第一個能夠容納整個檔
案的空間,然後將檔案放進去。
2.最適法:從所有的可用空間中找出大於這個檔案,而
且最接近這個檔案長度的區塊。
3.最不適法:將最大的連續可用空間分配給檔案,希望
所剩下的連續區塊還能夠放下其他的檔案。
鏈結式配置
連續式的區塊配置方式雖然可以增加存取效率,但
是在空間的利用上缺乏彈性,而且很容易產生外部碎片
之類的問題,而造成空間的浪費。鏈結式的配置方式則
允許將檔案放在不連續的磁碟空間中,然後利用鏈結串
列連在一起。
索引式配置
為了提供檔案隨機存取的彈性,我們可以將所有的
區塊指標集中放置在某個區塊,以便快速找到所需區塊
的位置 – 這種做法就稱為索引式配置。索引式配置可以
說是鏈結式裝置的一種變形,而用來存放鏈結指標(索引)
的區塊就稱為索引表格或索引區塊。常見的調整方式包
括:
1.鏈結索引:將幾個索引區塊以指標連在一起;也就是
在索引區塊中預留一個指標欄位,可以指向屬於該檔案
的下一個索引區塊。
2.多層索引:建立一層以上的索引階段。例如在兩層式
索引中,第一層索引會指向存取放第二層的區塊,而第
二層索引才會真正指向檔案的存取區塊。
可用空間的管理
作業系統除了必須管理每個檔案在輔助儲存裝置中
的位置,還必須知道目前尚未使用的實體區塊位置,以
便是需要進行配置。為了要管理這些可用空間,系統會
維護一個可用空間串列,記錄目前尚未使用的所有可用
區塊磁碟。當新增一個檔案時,作業系統會從這個串列
中取出所需的區塊;當刪除檔案時,原本配置給該檔案
的區塊則會被放回可用空間串列中。一般來說,建立可
用串列空間的方法包括下列幾種:
串列空間的方法
1.位元映射:要記錄可用空間資訊,最簡單的方式是建
立一個位元陣列,其中的每個位元循序對應到硬碟上的
一個實體區塊。
2.鏈結串列:另一種方式是利用鏈結將所有可用的區塊
連在一起;這種方法與鏈結式的檔案配置方式一樣,只
是此處連結對象是尚未使用區塊罷了。當作業系統需要
可用區塊時,只需要利用開頭指標取出串列開頭的第一
個區塊,然後將開頭指標移到第二個區塊即可。
串列空間的方法
3.計算法:由於我們在儲存檔案時,通常都會盡量儲存
在連續的空間中,以提高存取效率,所以在記錄可用空
間時,我們也可以只記錄每段可用空間的開頭位置,與
這空間的區塊總數。
Q&A
1.下列何者會利用邏輯記錄中的某個欄位作為索引,建立
指向特定資料區塊的指標,以減少資料搜尋的時間?
(A)循序存取(B)隨機存取(C)索引存取(D)以上皆非
2.下列何者為常用的磁碟空間配置方法?
(A)連續式配置(B)鏈結式配置(C)索引式配置(D)以上皆是
3.下列何者不是常見的檔案運算?
(A)讀取(B)寫入(C)變更存取權限(D)修改

作業系統