Ch9_Disk_Management

Disk system 組成

(一)Disk Component : Sector ⇒ Track ⇒ Cylinder

(二)描述磁碟幾何狀況 (C, H, S)

  • C (cylinder) : 幾圈
  • H (head) : 幾面(一片有兩面、最上最下面不算。)
  • S (sector) : 一圈幾格

(三)Disk Access Time Element

  • Seek Time : Move Head to Track
    • 純機械移動 ⇒ 最耗時間
  • Latency Time : Move Sector to Head
    • 又稱rotation/revolution time : rpm = rotations per minute
    • avg. latency = 1/[(rpm/60)×2]
  • Transfer Time : Disk to Memory time (與傳輸量成正比)

Disk Free Space Management 4 種方法

Disk allocation/free space 單位是以 block 為主。

(一)Bit Vector (Bit Map)

  • 定義:用一組 bits 來代表 blocks 配置與否,一個 bit 對應一個Block。
  • 優點:Simple,且易於找到連續可用空間 (即找到連續的 0)。
  • 缺點:bit vector 儲存佔用 memory 空間,所以此法不適用於大型 disk。

(二)Link list

  • 定義:用 link list 將 free block 串接,形成一個 AV List。
  • 優點:加入/刪除 block 容易,大型disk較適合
  • 缺點
    1.不容易找到連續的free blocks
    2.效率不佳。因為在找尋可用區塊時,需從頭檢視此串列,I/O time 過長 (檢視一個 block 就須做一次 I/O) 。
    3.Risk高(萬一list斷掉)

(三)Combination

  • 定義:link list進化版,1個block除了利用pointer指向下個free block,自己還會記錄free block no.,以方便快速找到大量free blocks
  • 優點::加入/刪除 block 容易,可迅速取得大量可用區塊。
  • 缺點:效率不佳,I/O time 過長。

(四)Counter

  • 定義:適用於連續區塊較多之情況。在一個 free block 中,記錄其後的連續可用區塊數目 (含自已)。
  • 補充:如果連續區塊數目夠多,則 link list 長度可大幅縮短。

File Allocation 3 Methods

(一)Contiguous Allocation

  • 定義:若檔案大小為 n 個 blocks,則 OS 必須在 disk 上找到 >= n 個連續 free blocks 才能配置。
  • 記錄方式:File Name,Starting Block No,Size
  • 優點
    1.平均seek time較短 (檔案所佔的連續區塊大都會落在同一個 track 上)
    2.可支援 sequential access 及 random(direct) access
  • 缺點
    1.external fragmentation
    補充:每種 file allocation methods 均有 internal fragmentation
    2.檔案大小擴充不易(因為要連續)
    3.建檔時須事先宣告大小 (宣告要多少block)

(二)Linked Allocation → FAT

  • 定義:若檔案大小為 n 個區塊,則 OS 必須在 disk 上找到 >= n 個可用區塊即可配置 (不一定要連續)。各配置區塊之間以 link list 做串連。
  • 記錄方式:File Name, Start Block #, End Block #
  • 優點
    1.沒有 external fragmentation
    2.檔案可動態擴充
    3.建檔之前不用事先宣告
  • 缺點
    1.不支援 random access :要讀某個檔案的某個區塊時需從頭找起,只支援 sequential access。
    2.squential access 速度己較慢(因為disk上reading lunk資訊,需要大量I/O) -> FAT解決
    3.seek time比 contiguous 配置方式長,非連續性 blocks 可能散落在不同的 track。
    4.Reliability 差,若連結斷裂則會資料丟失。

FAT(File Allocation Table)Method

  • 定義:是linked Allocation的變形,差別將所有配置區塊之間的 link 及 free block 資訊全部記錄在一個Table(FAT)。FAT集中在磁碟某一個固定位置,或可以將它載入主記憶體內,因此雖然在找尋指標時是循序找尋,但速度相對快很多。若 disk 有 n 個 blocks,則 FAT 有 n 個項目 (不論是Free的還是使用中的Block皆需記錄)。
  • FAT中的項目資訊
    1.空白 : 表示 free block。
    2.block # : 有 link 指向此 block,即使用中的 block。
  • 優點:加速R/W i’th block of a file之進行(只要在FAT table中就可以找到i’th block,不需要在disk上讀取link info

(三)Index Allocation → UNIX の I-Node

  • 定義:每個檔案皆會多配置一些額外的 blocks 作為 index blocks,內含各配置的 data block 編號。採非連續性配置方式。
  • 記錄方式:File Name, Index Block #
  • 優點
    1.沒有 external fragmentation:linked list 的優點
    2.支援 random access 及 sequential access:contiguous 的優點
    3.可以動態增加大小
    4.建檔時無需事先宣告大小
  • 缺點
    1.index blocks 佔用額外空間:索引區塊佔用 free block 的空間。
    2.一般而言,Indexed Allocation 浪費的 linking space 多於 linked Allocation
    3.index block 太小不夠存放一個檔案的所有 block 編號,太大又形成浪費(此問題必須解決)。

解決 index block 不夠大的三個方法

  • [法一]使用多個Index Blocks且彼此用linking方式串聯

    • 缺點
      1.存取i’th block I/O次數線性成長
      2.喪失 "Random Access"意義
  • [法二]階層式之Index Structure

    • 優點
      1.適用大檔案
      2.平均 I/O 次數 for access i’th block 是相同的 (較少)
    • 缺點:小檔案不適合,index blocks 很浪費時間
  • [法三]混和方法UNIX的I-Node Structure

    if(file.size < 12 blocks)
      用前12格blcoks就好
    else if(file.size > 12 blocks)
      用前12+ n + n^2 + n^3 個 blcoks 
    
    • 優點:大小型皆適用

Disk Sceduling Algo

Disk Sceduling 沒有最好跟最差

  • FCFS
  • SSTF
  • SCAN
  • C-SCAN
  • LOOK
  • C-LOOK

(一) FCFS 演算法 (first-come, first-serve)

  • 定義:先到達的請求優先服務。
  • 分析
    1.容易製作
    2.公平,no starvation
    3.排班效果不好,即平均 seek time 長

(二) SSTF 演算法 (short-seek time first)

  • 定義:距離目前 R/W Head 最近的 track 優先服務。
  • 分析
    1.排班效果不錯,但並非是最佳的 (平均移動的 track 總數量無法保証為最少)。
    2.不公平,可能會發生 starvation。

(三) SCAN 演算法

  • 定義:讀寫頭來回雙向移動,不停地掃描,若有 track 請求則服務,當磁頭遇到 track 開端或尾端才會折返。
  • 分析
    1.排班效果尚可,適用大量負載(disk request 大量,heavy loading)的情況(因為可提供較均勻 uniform 的等待時間)(Look/C-Look/C-SCAN也是)
    2.在某些時間點,對某些 track request,似乎不盡公平。→ C-SCAN 解決
    3.磁碟必須碰到 track 開端或盡頭才折返,此舉浪費不必要的 seek time → Look 解決

(四) C-SCAN 演算法

  • 定義:SCAN變形,只提供單向服務
  • 爭議:計算拉回的 track 數要 列入/不列入 計算

(五) LOOK 演算法

  • 定義:SCAN變形,不同在於處理完某方向的最後一個 track 請求即折返,不需遇到 track 起頭與尾端才折返。

(六) C-LOOK 演算法

  • 定義:Look變形,只提供單向服務

disk scheduling algorithm 常識

  • Either SSTF or LOOK is a reasonable choice for the default algorithm.
  • Disk scheduling problem is inherently NP-hard. There is no optimal solution! Heuristics may be taken.
  • Modern disks impose nearly the same overheads on seek and rotation.

名詞解釋

(一) Formating格式化

  • Physical(Low-level formatting)
    • Dividing a disk into sectors that the disk controller can read and write.
    • Remapping bad tracks
    • Zoned-bit encoding
    • 原廠或完整格式化時使用 (防老化)。
  • Logical
    • user 開始使用 disk 前,O.S 必須作 2 個工作
      1.Partition 劃分:O.S 視每個 Partition 為一個分離的 Disk
      2.Logical format:O.S 要建立 File management system 所需的 data structure , physical directory , etc 並存於 disk。
      3.快速格式化,通常使用者格式化為此類,只寫掉檔案系統要用的表格。

(二) Raw-I/O (原始的 I/O)

  • 定義:將 disk 視為一個大型 array 用,沒有任何 File system 支援
  • 優點:速度快 (e.g. DBMS之內層)

(三) Boot block initializes system

  • The bootstrap is stored in ROM.
  • Bootstrap loader program
    • 傳統:bootstrap loader (ROM),找 OS object code 載入 memory。
    • 現在:simple bootstrap (ROM) => 完整 bootstrap (Disk) => OS object code (Disk) => 開機完成。
    • 完整的 bootstrap loader 是存放在 Disk 中固定位置,稱為 boot blocks。
    • 擁有 boot blocks 之 disk 稱為 boot disk 或 system disk。

(四) Bad Sectors 之處理方法

Sector 在工廠製造時或是正常使用一段時間後可能會損毀

  • Mark Bad Sector 告訴 O.S 以後不用
  • Sector Sparing (備料)
    • sector 分為 2 大部分
      • 正常 sector 可管理/配置的 sector
      • spare sector
        1.low-level formatting 完成
        2.O.S 看不到、O.S 無法管理
        3.供 SCSI Disk Controller 管理
    • 功能:SCSI 轉向將 spare sector 代替 bad sector 並告訴 O.S 已修復。
    • 缺點:SCSI 的轉向動作,可能會破壞掉 Disk scheduling 的效能。
    • 解此缺點:會將這些 spare sector 散落在同一條/鄰近的 track 上,不要集中。
  • Sector Slipping
    • 功能:避免 spare sector 的轉向破壞 disk scheduling performance。

(五) Swap Space Management

  • Disk 中用來儲存 swap out 的 process 或 page 的空間 (from virtual memory or medium term scheduler)
  • 一般而言,預留的 swap space 大一點比較好,不要太小,以增加安全性。
  • 如何管理存放在 swap space 中的資料?
    • [法一] 利用 file system 管理
      • 優點:容易實施、製作
      • 缺點
        1.比較耗時,performance 差 (因為需要找配置空間,在 physical directory 搜尋/紀錄)
        2.若採 Contiguous Allocation,則可能有外碎
    • [法二] 利用獨立的"Partition"來保存,使用 RAW-I/O,無 File system support
      • 優點:速度快 (accessing or swapping)
      • 缺點
        1.有內碎
        2.萬一 partition size 不夠,則需要重新 partition

(六) Disk performance 的改善/提升方法

  • Data Striping
    • 定義:利用多部 physical disks 作為單一的 logical disk 使用,運用 data 平行寫入/讀取方式,提升 disk access performance
    • 分為兩種
      1.bit-level striping
      2.block-level striping
    • 注意:只有提高 performance,但不能提高 reliability

(七) Disk Reliability 的提升方法

當 Disk 某些 Block BAD,則 Data 如何 Recovery?

  • [法一] 使用 mirror (or shadowing)
    • 定義:每一部正常(作業中)的 disk,均會有一個對應的"mirror disk"
    • 功能:萬一作業中的 disk BAD,則直接用 its mirror disk 取代。
    • 優點
      1.可靠度最高
      2.data recovery 速度最快
    • 缺點:cost 相當高
  • [法二]利用 parity check
    • 優點:cost 較 mirror 低
    • 缺點
      1.data recovery 速度慢
      2.data 寫入也較慢 (要算出parity bit)
      3.可靠度較低 (若多個 blocks 同時 bad 就無法 recovery)

RAID(Redundant Array of Independent Disks)

簡稱磁碟陣列,由多顆磁碟機組成一個陣列,將資料以分段 (striping) 的方式同時對不同的磁碟做讀寫的動作。 使用 RAID 有以下目的:

  • 提升可靠度:provides reliability via redundancy.
  • 增進效能:improving performance by means of parallelism.

RAID 把多個硬碟組合成為一個邏輯磁區,因此 OS 只會把它當作一個硬碟。RAID Level 高低不完全代表系統效能或可靠度的高低,端視管理員的需求。

RAID 0:Striping/Span

將資料切割存放到多部硬碟中且不會重複存放。

  • 優點:效能改善,可進行平行讀寫,適用於具有高效能需求的系統。理論上,硬碟越多效能就等於[單一硬碟效能]×[硬碟數]。事實上受限於匯流排I/O瓶頸及其它硬體因素的影響,RAID 效能會隨邊際遞減。
  • 缺點:完全沒有容錯能力

RAID 1:Mirroring

必須由 2 個以上的硬碟所組成,有資料寫入時,直接同時寫入兩個硬碟,故內部資料是完全一樣的。

  • 優點:系統可靠度很高,極佳的資料安全性,實作容易。
  • 缺點:效率最差,且需花費兩倍的成本。

RAID 0+1:Mirror + Striping

結合了 RAID 0 與 RAID 1 兩種模式。至少要 4 顆以上的磁碟,且硬碟總數需為偶數。

  • 優點:擁有 RAID 1 容錯力,以及 RAID 0 整體讀寫速度。
  • 缺點:一次最少要用上 4 顆硬碟,且也要浪費一半的總容量,成本很高。

RAID 2:Hamming Code [無實質產品]

加入了錯誤修正碼 (ECC, Error Correction Code),不同的位元儲存在不同的硬碟中,具錯誤檢查與更正能力,當一部硬碟壞掉時,可由其它硬碟的內容來更正。例如:4 個 Bits 的資料需要 7 部硬碟來儲存,4 部存資料,3 部存Hamming Code。

  • 缺點
    1.成本下降有限(只比 mirror 少一部)
    2.可靠度與 RAID 3 相同,但成本比 RAID 3 高

RAID 3:Parallel with Parity

多利用一顆磁碟儲存同位元資訊達到容錯功能。當硬碟有問題,可由同位元檢測得知。所需的硬碟數較 RAID 2 節省。不是個好方法,因為全部的 disk 都不斷被寫 (Bit-interleaving),效能低落。

[感覺] 同位元 Ap = A1 XOR A2 XOR A3,同位元 (parity) 是效能瓶頸所在。

RAID 4:Parallel with Parity (block)

跟 RAID 3 相同,不過其支援的資料交插是以 block 為單位計算的。P-disk 不斷被寫,效能瓶頸。

RAID 5:Striping with Rotating Parity

RAID 5 是一種儲存效能、資料安全和儲存成本兼顧的儲存解決方案,有較多的商業應用。與 RAID 4 雷同,但是 RAID 5 把同位元分散依序儲存於陣列中的每顆磁碟內,改善了 P-disk 不斷被寫的效能瓶頸。

RAID 6:Read Solomon Code [無實質產品]

RAID 6 增加第 2 個獨立的奇偶校驗資訊塊。容許 2 個硬碟同時損壞,至少必須具備 4 或 4 個以上硬碟才能生效。RAID 6 在硬體磁碟陣列卡的功能中,也是最常見的磁碟陣列等級。

筆記:採取 P + Q 錯誤偵測/更正技術,可防止多部 Disk (2 部)同時 BAD,但 Cost 極度昂貴 (more than mirror)

File Mangement (看筆記)

(一) File open/close

  • 緣由:要對 file 進行人和運作前,O.S需先到 Disk 的 physical directory 搜尋已取得 file 的 allocation info,才可以對 file 進行運作
    • 缺點
      1.search time 耗時 (因為 physical directory 中的 file 數目眾多)
      2.過多 I/O 運作 (因為經常去 disk access physical directory)

(二)Consistency Semantic

  • UNIX Semantic
  • Session Semantic
  • Immutable Semantic

(三) File Protection

  • Physical
  • Logical
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值