字體:小 中 大 | |
|
|
2020/11/18 17:10:47瀏覽5336|回應0|推薦0 | |
第八章學習目標 1. 認識作業系統中的儲存裝置 2. 學習磁碟排程的原理與方法 3. 學習磁碟儲存空間的管理 4. 認識儲存裝置的管理 主要內容摘要: 儲存裝置(磁碟簡介、磁碟機由來、硬碟的組織、硬碟的檔案系統、磁碟裝置的連接與運作) 磁碟排程的原理與方法(SSTF, FCFS, SCAN, LOOK, 排程方法的選擇) 磁碟儲存空間的管理(磁碟的格式化,開機BOOT磁區) 儲存裝置的管理(切換空間的管理,磁碟穩定性的管理,儲存媒體的分級,可抽換式儲存媒體的處理) 8.1.1 磁碟簡介
當硬碟在使用的時候,磁頭會移到某個磁軌(track)上,透過磁碟盤的轉動讀寫連續磁區(sector)的資料。這就是硬碟工作的基本原理,至於磁碟盤該如何轉或是磁頭要怎麼移動就決定於來自作業系統的指令。
硬碟是電腦系統中最常用到的儲存裝置,一個硬碟中有數個圓盤狀的磁盤(Platter),上頭塗有磁性物質,可用來儲存資料。使用時磁盤可以看成是磁軌(track)的組合,磁軌看起來像同心圓,外圍的磁軌占的區域比內圍的磁軌大,每個磁軌又分成一塊一塊的磁區(Sector),習慣上我們把同樣位置上的磁軌所形成的柱狀體稱為磁柱(Cylinder)。一般的硬碟裡有數千個磁柱,每個磁軌上則有數百個磁區。軟式磁碟則只有一片磁盤,例如 3.5 吋的 1.44MBs 磁片,也叫做可抽換式的儲存裝置。現代的磁碟提供了相當龐大的儲存空間,使用的時候必須對這樣的空間做適當的組織,以磁盤(platter)來說,最上頭的磁盤朝上的是第 0 面、朝下的是第 1 面,由最上頭算下來第 2 個磁盤朝上的是第 2 面、朝下的是第 3 面,依此類推,每一面上都有一個讀寫資料的磁頭,一樣由 0 開始編號,這樣就可以很清楚地以編號來指出某一個磁碟表面,至於每一面的空間則同樣有組織與編號
電腦系統中常含有好幾種儲存裝置,以磁碟來說,使用者可以把它看成是一大群資料方塊的組合,排列在磁區中,這種資料方塊約含有 512bytes 的資料,經過對應之後儲在磁碟中,從磁柱號碼、磁軌號碼和磁區號碼,我們可以訂出資料方塊在磁碟上的位址,對於作業系統來說,最重要的工作就在於有效率地存取這些磁碟方塊。磁碟在上面的組織規則下形成了實體結構,對於電腦系統來說,這種組織的好處是可以對磁碟上任意一個儲存區域定址,做為使用時指定位址的依據。這就是CHS(cylinder-head-sector)與 LBA(logical block address)兩種定址方式的由來。通常在電腦系統的 BIOS 中都會記載每個磁碟的磁柱數目、磁頭數目與磁區數目。 CHS 以磁柱編號、磁頭編號再加上磁區編號來定址,LBA 採用簡化的方式直接給每個磁區一個序號。 硬碟的格式化(hard disk formatting)是將磁碟分成磁軌與磁區,這是低階的格式化(low-level formatting),通常硬碟出廠的時候就已經做好低階的格式化。 磁碟完成低階的格式化以後可以透過作業系統進行分割(partition),然後再進行高階的格式化(high-level formatting)。 硬碟在分割時產生的主要分割(primary partition)可以儲存所謂的主要開機紀錄(MBR,Master Boot Record),以及其他分割的資訊。在高階格式化的過程中則建立了檔案配置表(FAT,file allocation table)以及根目錄(root directory),這時候相當於為磁碟的儲存空間建立了邏輯結構(logical structure)。 作業系統對磁碟進行高階格式化的方式決定於所採用的檔案系統(file system),個人電腦上常見的檔案系統有早期 DOS 與 Windows 3.X 使用的 FAT16、 Windows 95 等使用的 FAT 32,以及 Windows NT 與後來的 Windows 版本使用的NTFS。 Linux 的檔案系統格式。
8.2 磁碟排程的原理與方法 磁碟使用的效率決定於資料存取的速度和所花費的時間,由於作業系統中同時有許多程序在執行,磁碟的使用很頻繁,當磁碟資料的請求增加以後,作業系統就面臨了排程(scheduling)的問題,也就是決定處理請求的順序,使系統的效率保持在最佳的狀況。 SSTF(shortest-seek-time-first)的排程法以目前的磁碟磁頭位置來決定排程,原則是讓所存取的資料位置最接近目前磁頭位置的工作先進行,用一個磁碟存取的例子來說明這個方法,請求佇列(request queue)以資料方塊所在的磁柱位置來標示,磁頭一開始位於磁柱60的地方,依照SSTF的排程原則,而磁頭經歷的磁柱共302個。由於磁頭旅行可大幅減少,SSTF的排程是有效率的,但是有兩個問題: 1. 飢餓(starvation)問題:假如不斷有請求進入佇列,可能先到的請求會因為資料離磁頭較遠,一直等待。對於這樣的請求而言,等於產生了所謂「飢餓」的現象。 2. 最佳化(Optimization)的問題:SSTF的排程並未保証能達到存取效率的最佳狀態。
最簡單的排程方式是讓先到的先執行,也就是所謂的FCFS(first-come, first-served),這種方法很公平,不會有飢餓的情況,但計算圖8-11中磁頭經歷的磁柱數目高達671個,可見資料存取的時間拖長了,和SSTF比較起來,雖然公平,但在資源的運用上缺乏效率。
SCAN演算法讓磁臂(disk arm)先往一個方向移動,到達邊緣以後,再向另外一個方向移動,目的在於減少磁頭移動的距離 圖用同樣的例子來說明SCAN的排程方式,在SCAN的排程下,磁頭經歷的磁柱數目有244個,雖然數目很小,但是對於佇列裡的請求來說,等待的時間不一 假如對於磁碟資料的存取請求是平均分佈的,也就是說需要存取的資料平均分佈在磁碟上,則當磁頭走完一個方向往另一個方向走時,遇到的請求會很少,因為才剛走過,為了讓請求的等待時間更平均 有另一種和SCAN類似但經過改良的排程方法,叫做C-SCAN(Circular SCAN), 這種排程是讓磁頭在一個方向從頭走到尾,然後馬上再從頭開始。
SCAN和C-SCAN的排程法中,磁頭都是走到末端後才會往另一個方向走,或是從頭開始,LOOK排程法和C-LOOK排程法分別對應於SCAN和C-SCAN兩種方法,主要的差異在於LOOK和C-LOOK會在到達末端前先判定是否中間還有請求,假如沒有的話,就立刻往另一個方向走(或從另一端的第一個請求開始),節省了最後一個請求和末端之間的旅行距離。 從上面的介紹中,我們可以發現磁碟排程的方法有很多種,一般說來,SSTF比較常用,但是有飢餓的問題,SCAN和C-SCAN在系統負荷大的時候可能表現的比較好,因為沒有SSTF的飢餓問題。在實際的使用狀況中,請求的數目和型式是決定效能的主要因素。 檔案在磁碟上的配置也會影響I/O的效率,存放在連續位置的檔案通常有比較快的存取速度,使用索引的檔案可能會因為資料的分散而使磁頭移動的距離加長。排程演算法(Scheduling algorithm)在作業系統中會寫成獨立的模組,讓系統能有彈性地切換使用不同的排程方法。 前述的排程演算法只考慮磁頭的移動距離,事實上,磁碟轉動延遲的時間(rotational delay)也會產生不小的影響,但是由於作業系統無法得知邏輯資料方塊在磁碟上的實體位置,要用排程來改善轉動時間是有困難的,所以有些磁碟製造商把排程法內建在磁碟控制器中,不過,如此一來,作業系統也失去了一些控制的權力,所以,作業系統不見得會用到磁碟控制器中的排程功能。 作業系統必須對資料的儲存空間做適當的規劃與管理,電腦系統在使用的過程中,有很多問題是來自於儲存空間的,其中又以磁碟為最主要的儲存媒體 在低階格式化的過程中,磁碟會被分割成磁區(sector) 每個磁區包含的資料結構由頭部的資料包括磁區號碼和錯誤修正碼(ECC, Error-correcting Code),直接由磁碟控制器使用 當資料寫入時,由資料區計算得到的ECC會存在同一個磁區中 下回磁區被讀取時,讀入的資料所算出來的ECC應該要和原先存在於磁區中的ECC一致,否則表示磁區的資料錯誤。 通常硬碟在出廠時就巳經低階格式化過了。 先將磁碟分割(partition)成幾個由磁柱組成的區域, 然後針對每個區域進行邏輯格式化(logical formatting),也就是在上頭建立檔案系統(file system)。完成這兩個驟以後,分割的區域可以當做一個獨立的磁碟一樣來使用。 電腦剛開機的時候會執行第一個程式,這個開機程式(bootstrap program)對電腦的各成分做初始化(initialization)的處理,然後從磁碟上找到作業系統核心,載入記憶體中執行。 開機程式也可以放在唯讀記憶體(ROM, read-only memory)中,如此一來將可省略一些初始化的步驟,而且程式本身不受電腦病毒的影響。 虛擬記憶體(virtual memory)把磁碟空間的一部分當成主記憶體來用,由於磁碟存取的速度比記憶體要慢很多,虛擬記憶體會消耗一些CPU的工作時間,切換空間是用來改善虛擬記憶體技術的效率。 切換空間的用法有很多種,有些切換空間把整個程序內含(process image)都儲存起來,有的則是以資料頁的方式,把從主記憶體中移出的資料暫存在資料頁中。 至於切換空間到底要多大?主要決定於主記憶體的大小、虛擬記憶體的大小,以及虛擬記憶體使用的方式。 電腦裡的磁碟發生問題的機率很高,一旦有嚴重的損壞發生,往往需要一段時間來復原和補救,因此,有各種和磁碟穩定性相關的技術,希望能在磁碟損壞時馬上恢復操作,不致發生資料遺失的現象。其中最著名的方法是磁碟陣列(RAID, Redundant Array of Independent Disks),將資料同時儲存在好幾個磁碟上
RAID的等級:
儲存媒體的分級 有很多儲存媒體屬於可抽換的型式,我們這些儲存媒體歸類成「第三級的儲存裝置」(tertiary-storage device),下面介紹的是幾種常見的這一類裝置: 1. 軟性磁碟(floppy disk):例如1.44MBs的3.5吋磁片,雖然容量不大,卻常用於一般的個人電腦。近年來有較大容量的磁片,像ZIP就可儲存100 MBs或230 MBs的資料。 2. 光碟(optical disk):光碟可分成唯讀式的(read-only)光碟、寫一次讀多次(WORM, write-once, read-many-times)的光碟和可重覆讀寫的光碟。容量可達數個GBs以上或更高,成本非常低廉。 3. 磁帶(tape):磁帶的容量更大,而且更便宜,但是資料存取時必須轉動磁帶,隨機存取的效率很差。所以磁帶的用途多半集中在備存資料方面。 藍光光碟(BD,Blu-ray Disk)是一種高密度的光學磁片格式(high-density optical disk format),一般的DVD光碟機使用的是波長為650奈米(nm)的紅光雷射,藍光光碟機足是使用波長為405奈米(nm)的藍紫光雷射(blue-violet laser),由於這種技術上的差異,使得藍光光碟的儲存容量大增,單層的藍光光碟儲存容量達到25 GB,雙層的藍光光碟儲存容量則達到50 GB。 跟藍光光碟儲存格式競爭的標準是HD DVD(high definition DVD),使用藍色雷射(blue laser),波長也比較短,儲存容量達到30GB。通常會大量使用這一類光碟的是影片的市場 所謂的「可抽換式儲存媒體」是指儲存媒體本身可以在儲存裝置中抽換,例如3.5吋的磁碟、ZIP與MO光碟等都算是這一類的儲存媒體。作業系統是應用程式跟儲存裝置之間的橋樑,所以作業系統必須管理各種儲存裝置,同時對應用系統提供存取的介面
|
|
( 知識學習|隨堂筆記 ) |