[OS复习]设备管理3
生活随笔
收集整理的這篇文章主要介紹了
[OS复习]设备管理3
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.磁盤設備的管理
1.1磁盤的性能和安全性
磁盤是計算機系統最重要的外部存儲設備之一 。影響磁盤性能和數據安全性的主要因素:1.磁盤性能參數:轉速、尋道時間、磁盤緩存;
2.磁盤控制器:IDE、SCSI磁盤控制器;
3.RAID等磁盤容錯技術;
4.磁盤管理算法:磁盤調度算法、磁盤高速緩存、高性能的文件系統;
1.2磁盤設備的物理特性
磁盤由若干張圓形的盤片組成,每張盤片上都涂有磁層,用于記錄數據;各盤片的圓心固定在一個旋轉軸上,該軸沿固定方向等速地轉動,并帶動磁盤組不停地旋轉。硬盤的轉速比軟盤快幾十倍,并在開機后一直高速旋轉,隨時準備就緒;而軟盤則需要I/O時才旋轉,否則停止旋轉。軟盤使用前必須等待轉速從0加速,并穩定到額定轉速,故工作效率較低。每張盤片分為上、下兩個盤面,每個盤面有若干磁道,同一盤面上的所有磁道是繞旋轉軸的一組同心圓,所有磁道由外向內依次由0開始編號,稱為磁道號。磁盤組中各盤面上序號相同的磁道構成一個柱面,由外向內依次編號,若磁盤組有l個柱面,則編號為0,1,2,…,l-1,稱為柱面號。若磁盤組共有s個盤片,則共有2s個盤面,但通常最上面和最下面的兩個盤面作為伺服面,用以進行控制磁頭定位等操作,并不存放數據,因而實際可用盤面數為m=2(s-1),由下至下依次編號為0,1,2,…,m-1,稱為盤面號。
整個盤面被劃分為若干大小相同的扇面,它把一個磁道等分為若干個區域,一個區域稱為一個扇區。數據保存在各個扇區中,每個扇區內保存的數據量相同,為2的冪次,例如512字節、1024字節甚至2048字節。扇區是磁盤進行I/O傳輸的基本單位,也是磁盤空間分配的基本單位。若扇區的數量為n,則每條磁道上的扇區被依次編號為0,1, 2,…,n-1,稱為扇區號。
磁盤的基本存儲單元(扇區)的尋址方式為三維地址:柱面號、盤面號、扇區號。為了方便管理及屏蔽存儲設備的物理細節,操作系統向上層軟件提供統一的接口,常使用一維地址,即只有邏輯磁盤塊號(邏輯扇區號),將磁盤組中所有的扇區從0開始編號。顯然,這里就存在著一維地址與三維地址間相互轉換的問題。為了提高效率,對于移動磁頭式磁盤機來說,磁頭引臂的機械運動(尋道)速度最慢,其次才是盤片轉動的速度,因此,編排邏輯塊號時,扇區號先變化,其次是盤面號,最后才是柱面號。?
1.3磁盤的磁頭工作方式
磁盤:固定頭磁盤和移動頭磁盤。固定頭磁盤的每一條磁道上都有一個讀/寫磁頭,所有的磁頭都被安裝在一剛性磁臂中,通過磁頭訪問磁道,可以并行讀/寫,磁盤的I/O速度很快。固定頭磁盤的優點是訪問速度快,其缺點是成本較高、容量受磁頭數量限制。移動頭磁盤為每一個盤面配置一個磁頭,所有盤面的磁頭被裝入磁臂中,磁盤I/O時,必須移動磁頭(尋道)。因此,移動頭磁盤只能進行串行讀/寫,I/O速度相對較慢,但由于其具有結構簡單、成本較低、容量不受磁頭數量限制等優點,因而被廣泛使用。
1.4影響磁盤I/O性能的技術指標
從磁盤讀數據的過程:1.磁盤接收到讀指令后,磁頭從當前位置移到目標磁道位置,所需的時間稱為尋道時間;
2.旋轉磁盤,定位數據所在的扇區,所需的時間稱為旋轉延遲;
3.從磁盤上讀取數據,所需的時間稱為數據傳輸時間。
訪問時間=尋道時間+旋轉延遲+傳輸時間?。
#尋道時間: 尋道時間:把磁頭從當前位置移動到指定磁道所需要的時間。是影響磁盤數據傳輸率的重要參數,與磁頭移過的磁道數量成正比。衡量磁盤的尋道性能時,通常使用平均尋道時間。
#旋轉延遲: 旋轉延遲與磁盤轉速直接相關,是指旋轉磁盤,將指定扇區移動到磁頭下面所需要的時間。假設Tr為旋轉延遲,r為磁盤轉速(轉數/單位時間)那么,Tr = 1/(2r)。例:
對于一個轉速為3600rpm的硬盤而言,其每旋轉一周的時間為 16.7ms,其平均旋轉延遲為8.3ms。
對于一個轉速為300rpm的軟盤而言,其每旋轉一周的時間為 200ms,其平均旋轉延遲為100ms。
#傳輸時間:
傳輸時間是指把數據從硬盤讀出或向磁盤寫入數據所經歷的時間。傳輸時間與硬盤的轉速和所讀/寫的數據長度有關,當一次讀/寫的數據長度相當于半條磁道上的字節數時,傳輸時間與平均旋轉延遲相同。?
1.5緩存
當緩存足夠大時,對于寫操作,盡管數據并未真正寫到磁盤上,但它給主機的印象就是寫操作已“非常快”地完成(延后寫);對于讀操作,盡管是讀一扇區,但磁盤卻將整條磁道的數據都讀入緩存中(提前讀),當下一次需要再讀數據時,就顯得非常快了——前提是下一次讀的數據還位于同一條磁道。由于緩存不可能很大,因此對于密集訪問磁盤的系統而言,緩存并不能發揮多大的作用,但由于多數系統是間歇地訪問磁盤,因而緩存在很多時候還是能發揮較大的作用。綜上所述,傳統上影響磁盤I/O性能的主要技術指標是平均尋道時間和轉速,轉速則影響平均旋轉延遲和數據傳輸時間。對于實際的系統而言,較大緩存也對硬盤的I/O性能有較大的影響,但不是決定性的。
1.6如何調整磁盤I/O性能 ?
磁盤的平均尋道時間和轉速是固定不變的。為了提高磁盤的I/O性能,只能從磁盤調度的方式和訪問數據的組織形式上入手,即縮短尋道時間和旋轉延遲。?磁盤調度算法:
當有多個進程都請求訪問磁盤時,他們訪問的位置(這里主要關心磁道)各不一樣,磁頭需要來回頻繁移動進行尋道操作。磁頭的尋道操作屬于機械運動,花費的時間較長,而且過度的尋道操作會大大縮短磁盤的壽命。因此,必須采用適當的磁盤調度算法,使得在盡可能公平的情況下,縮短平均尋道時間,并使磁頭移動距離最小。
先到先服務算法FCFS (First Come First Serve)?:
FCFS算法按照輸入/輸出請求的先后次序為各個進程服務。這是最公平、最簡單的算法,但是效率非常低。
例如,一個有100條磁道的磁盤,磁道依次編號為0~99,磁頭當前位于第20磁道,對于如下的訪問請求:
請求次序: ?1 ? ? ?2 ? ?3 ? ? 4 ? ? ?5 ? ?……
訪問磁道: 99 ? ? 2 ? 97 ? 10 ? 26 ? ?……
若按FCFS算法,則磁頭移動的磁道數為79+97+95+87+16=374
磁頭在磁道之間來回頻繁移動,不但造成較大的時間開銷,影響效率,而且容易使磁頭臂疲勞,磁盤很容易損壞。因此,這種簡單的算法只適合于負載很輕的系統。
最短尋道時間優先算法SSTF (Shortest Seek Time First)?:
為了克服FCFS算法之缺點,人們提出了SSTF算法,即優先為距離磁頭當前所在位置最近的磁道服務。
例如,對于上述服務請求,按照SSTF算法,則系統將按如下次序為進程提供服務,磁頭移動的磁道數為6+16+8+95+2=127,效率比FCFS高了許多。
服務次序: ?1 ? ? 2 ? ? 3 ? ?4 ? ?5 ? ? ……
訪問磁道: 26 ? 10 ? ?2 ? 97 ?99 ? ?……
掃描算法Scan?:
也稱電梯算法,其基本思想類似電梯的工作原理。其具體過程為:假定開始時磁頭處于最外磁道,并向內磁道方向移動。在磁頭移動過程中,如果經過的磁道有訪問請求,則為其服務。然后判斷當前磁道以內的磁道是否還有訪問請求,如果有,則磁頭繼續向內磁道方向移動;否則,判斷當前磁道以外的磁道是否有訪問請求,若有,則磁頭掉轉方向朝外移動。若此時當前磁道內外均無訪問請求,則磁頭引臂停止不動。
這種算法比較公平,效率很高;但是,若在某一段時間內某一磁道的訪問請求不斷,則磁頭引臂將停留在該磁道上不動(稱為磁臂粘著),磁盤被相應的進程壟斷,所有其他磁道上的請求將在較長時間內得不到服務。
N步掃描算法N-Scan?:
N步掃描算法將磁盤請求隊列分成若干個長度為N的子隊列,磁盤調度程序按照FCFS算法依次處理這些子隊列,而處理每一個子隊列時,則按照SCAN算法。當N值取得很大時,N步掃描算法的性能與SCAN算法的性能相當;當N取值為1時,N步掃描算法退化為FCFS算法。在實際應用中,N步掃描算法被簡化為:只為一次特定的掃描開始前已經等待的訪問請求服務,以防止發生掃描算法中存在的不公平現象,盡管這種不公平的現象對磁頭有利。在一次掃描期間內新到達的訪問請求將只能放在下一次掃描期間完成處理,無論這些新的請求是否處于一次掃描的服務途中。
1.7磁盤高速緩存?
指,操作系統利用內存實現的、專門針對磁盤I/O操作的緩沖區。 與磁盤機本身所帶的緩存以及磁盤控制器所帶的緩存相比,磁盤機和磁盤控制器上的緩存的特點:1.容量較小2.利用此類緩存進行數據提前讀和延后寫操作能與主機并行工作。 磁盤高速緩存(非自身)的特點:1.容量較大;2.常存儲全局范圍、經常訪問的重要數據:文件系統的目錄、文件分配表、索引塊等;3.缺點:利用該緩存進行數據提前讀和延后寫操作需要主機的管理,增加了主機的負擔。4.對于高檔的服務器而言,大的硬件緩存更能提高磁盤I/O的性能。但是,若磁盤機和磁盤控制器上沒有緩存,那么,就需要依靠磁盤高速緩存的作用。 磁盤高速緩存的實現形式:在內存中單獨開辟一個大小固定的存儲空間作為磁盤高速緩存區。有的操作系統允許用戶指定或調整此空間的大小;另一種方法是把系統中所有未使用的內存空間變為一個緩沖池,供請求分頁系統和磁盤高速緩存共享,其大小不固定,當磁盤I/O操作頻率時,磁盤高速緩存區可能較大。
2.優化數據的物理存儲結構
磁盤I/O常針對整個文件進行,如果一個文件被分散存儲到多個柱面上,則讀/寫這樣的文件時,需要進行多次尋道操作和旋轉延遲。為什么把文件分散存儲呢?在系統建立的初期,文件都是連續存儲的。但隨著系統使用時間的積累,文件會不斷被用戶刪除或新建。為了充分利用存儲空間,新建文件常分散存儲。磁盤高速緩存的效率,取決于其命中率。使用緩存需要基于兩個要素:一是訪問頻率,二是基于局部性原理的提前讀技術。提前讀技術是使用緩存的關鍵,當讀入進程申請的數據時,將其空間局部存儲的數據一起提前讀,以期在后面的操作中得到回報而在總體上節約時間。如果一個文件在物理上存儲得較分散,盡管不影響系統的正確性,但卻使提前讀操作失效,反而降低系統效率。若將分散到多個柱面或磁道上的文件進行類似內存分配過程中的碎片整理(緊湊),使這些文件在物理上連續存儲,則不僅能提高文件的讀/寫性能,減少尋道時間和平均旋轉延遲,而且能提高磁盤高速緩存的命中率,從而提高整個系統效的效率,減少磁盤的機械損耗。因此,人們經常使用MS-DOS、Windows等操作系統提供的磁盤碎片整理功能,以提高系統工作效率。
總結
以上是生活随笔為你收集整理的[OS复习]设备管理3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FEIM Studios 团队欢迎您加入
- 下一篇: [OS复习]设备管理4