Disk System 組成與size計算
(一)Disk system由多片Disks組成,每片Disk通常雙面可存Data,每一面(surface)被劃分成多個同心圓的軌道,稱為track(磁軌),每一條track再切分成多個sector(磁區)(block),不同面的相同track no所形成之集合,稱為cylinder(磁柱)
Disk Access Time
(一)def:主要由三個時間組成
=seek time+latency time+transfer time
1. seek time
def:磁頭移到欲存取的track上方所花得時間
2. latency time
def:將欲存取之sector 旋轉到磁頭下方所花之時間
3.transfer time
def:data在disk與memory 之間的傳輸時間
Disk scheduling algo
FCFS
(一)def:最早到達的track request,優先服務
(二)分析:
- 簡單,易於實施
- 公平,no starvation
- 排班效能不佳,軌道移動較多,seek time較長
SSTF
(一)def:距離目前磁頭最近的track request優先服務
(二)分析:
- 排班效能不錯,但並非一定最佳
- 不公平,可能有starvation
SCAN
(一)def:磁頭來回雙向移動,遇到track request即行服務,當磁頭遇到軌道盡頭或開端,才折返提供服務
(二)分析:
- 排班效果不錯
- 在某些時刻,對於某些track request似乎不太公平
- 磁頭必須遇到track的盡頭或開端才折返,此舉浪費不必要的seek time
C-SCAN
(一)def:類似scan,差別:只提供單項服務,回程不提供任何服務
LOOK
(一)def:類似scan,差別:磁頭服務完該方向之最後一個請求後,即可折返提供盧物,無須碰到盡頭or開端才折返
C-LOOK
(一)類似Look,差別:只提供單向服務
Formatting(格式化)
- physical formatting
- logical formatting
user(os)使用disk之前,仍須做兩件事:
- partition
- logical format
os 建立File mgt system 所需之data structure
eg. free space mgt,FAT,I-Node,empty physical directory ,etc
Raw-I/O
- 將Disk 視為大型Array使用
- 無任何File sys支援
- 存取速度快
- 但不易使用
Bootstrap Loader
目的:開機後,將os(kernel)object code 自disk載入至RAM中
Ⅰ.早期
缺點:
- boostrap Loader不易更改(因為要換ROM)
- 有時,boostrap Loader size 過大,無法置入ROM中
II.現代
放在DISK固定section(Blocks)稱為Boot Blocks(sectors),而擁有Boot Blocks 之partiton 之Disk,稱為Boot Disk(or system Disk)
Bad sectors之處理
(一)sector 為何BAD?何時BAD?
- 生產時,就BAD
- 正常使用一段時間後BAD
(二)方法:
- mark bad sector
- spare sectors (備份)forwarding
- sector slipping
mark bad sector
例:IDE Disk controller 採用
spare sectors
spare sectors:在low-level formatting 已做好,os看不到無法運用, SCSI controller 看的到,不用
缺點:SCSI這種轉向的動作,可能破壞掉Disk scheduling之效能
解決方法:應把spare sector 分散放到每一條track(or cylinder)上,所以當某sector BAD,儘量利用同一個track (CYLINDER)的spare sector
sector slipping(滑動)
swap space Mgt
(一)swap space空間size宜超估,比低估來的安全
優:提供virtual memory system最佳之throughput
缺:降低性能
(二)swap space管理方式
Ⅰfile system
優:easy implementation
缺:沒有效率
- search directory
- 多餘的disk I/O
- externel fragmentation
II.Independent partition
優:access/swapping speed 快(因無file system)
缺:
- internel fragmentation
- swap space 固定,要增加只能重新partition
RAID介紹(Redundant Array of Independent Disk)
(分為RAID 0~6,RAID 0+1,RAID 1+0)
(1)RAID-0
只提供Block-level striping,沒有mirror 及parity 技術提供,適用於高速存取效能之需求,而可靠度較不重要之應用
eg. VOD(video on Demand)DB(database)
(2)RAID-1
def:就是mirror
可靠度高,但cost貴
(3)RAID-2
採用ECC技術,企圖降低mirror成本,但cost降低有限(少一部disk而已)另外,可靠度與RAID-3一樣,但成本高於RAID-3
(4)RAID-3
def:提供bit-level striping 與parity-check技術
(5)RAID-4
def:提供Block-level striping 與parity-check
(6)RAID-5
def:提供Block-level striping 與parity-check,不同於RAID-3與RAID-4,其parity check Block是分散存放,非集中存放
(7)RAID-6
採用類似Read-Solomon技術(P+Q技術)重複存放parity之技術,可防止多部Disk之bad,仍可回復,但cost太高
(8)RAID-0與RAID-1之組合
- 用在高效能及高可靠度要求之環境中
- 組合方式有二:
- RAID 0+1
- RAID 1+0
(1)RAID 0+1 (先striping,再整體mirror)
(2)RAID 1+0(先個別mirror,再striping)
優於0+1(因為單一disk bad可拿 its mirror與其他striping)
若single disk failure in 0+1,entire stripe is inaccessable,只剩其他stripe可使用