操作系统原理第十一章:大容量存储
目錄
- 1 磁盤(pán)結(jié)構(gòu)
- 2 磁盤(pán)調(diào)度
- 2.1 先來(lái)先服務(wù)(FCFS)
- 2.2 最短尋道時(shí)間優(yōu)先(SSTF)
- 2.3 掃描算法(SCAN)
1 磁盤(pán)結(jié)構(gòu)
文件是放在磁盤(pán)上的,因此磁盤(pán)的性能是對(duì)操作文件有很大的影響。下圖是一個(gè)磁盤(pán)的結(jié)構(gòu)示意圖,很多個(gè)磁盤(pán)platter圍繞著一個(gè)軸spindle旋轉(zhuǎn),磁盤(pán)旁邊有磁柱arm assembly,磁柱上有磁臂arm,磁臂的末端有磁頭read-write head,每個(gè)磁頭就可以訪問(wèn)盤(pán)面上的相關(guān)信息:
對(duì)磁盤(pán)劃分時(shí),我們把磁盤(pán)劃分為很多個(gè)同心的圓環(huán)叫做磁道track,每個(gè)磁道上又劃分了很多等大小的塊叫扇區(qū)sector,在各個(gè)同心圓環(huán)上同一個(gè)磁道上的磁盤(pán)叫做柱面cylinder。
磁盤(pán)儲(chǔ)存數(shù)據(jù)的原理和盒式磁帶類似,只不過(guò)盒式磁帶上存儲(chǔ)是模擬格式的音樂(lè),而硬盤(pán)上存儲(chǔ)的是數(shù)字格式的數(shù)據(jù)。寫(xiě)入時(shí),磁頭線圈上加電,在周圍產(chǎn)生磁場(chǎng),磁化其下的磁性材料;電流的方向不同,所以磁場(chǎng)的方向也不同,可以表示 0 和 1 的區(qū)別。讀取時(shí),磁頭線圈切割磁場(chǎng)線產(chǎn)生感應(yīng)電流,磁性材料的磁場(chǎng)方向不同,所以產(chǎn)生的感應(yīng)電流方向也不同。
磁盤(pán)由若干磁盤(pán)組成,繞樞軸高速旋轉(zhuǎn),目前主流磁盤(pán)轉(zhuǎn)速7200轉(zhuǎn)/分;我們?cè)诙ㄎ淮疟P(pán)上的某個(gè)記錄時(shí),往往需要如下三個(gè)參數(shù):
- 柱面號(hào):各盤(pán)面所有的讀寫(xiě)頭同時(shí)移動(dòng),并定位在同樣的垂直位置的磁道上,這些磁道形成了一個(gè)柱面。由外向內(nèi)是:0,1,2,……,L;
- 磁頭號(hào):磁盤(pán)的全部有效盤(pán)面從上到下依次編號(hào):0,1,2,……,H。磁頭號(hào)與盤(pán)面號(hào)是相對(duì)應(yīng)的;
- 扇區(qū)號(hào):將各盤(pán)面分割成若干大小相等的扇區(qū),編號(hào):0,1,2,3,……,n。
磁盤(pán)設(shè)備是以一種邏輯塊的一維大數(shù)組的形式編址的,這里的邏輯塊是傳輸?shù)淖钚挝?。邏輯塊的一維數(shù)組映射到磁盤(pán)上一些相連的扇區(qū)。0扇區(qū)是最外邊柱面的第一個(gè)磁道的第一個(gè)扇區(qū)。數(shù)據(jù)首先都映射到一個(gè)磁道,其余的數(shù)據(jù)映射到同一柱面的其他磁道,然后按照從外向里的順序映射到其余的柱面。
磁盤(pán)I/O速度的高低,將直接影響文件系統(tǒng)的性能。提高磁盤(pán)I/O速度的主要途徑有:
- 選擇性能好的磁盤(pán);
- 設(shè)置磁盤(pán)高速緩沖區(qū);
- 采用好的磁盤(pán)調(diào)度算法。
前兩種方法都是在硬件上下功夫,最后一種方法是可以由操作系統(tǒng)來(lái)控制的,因此我們主要討論磁盤(pán)調(diào)度算法。
好的磁盤(pán)調(diào)度算法可以縮短磁盤(pán)的訪問(wèn)時(shí)間,磁盤(pán)的訪問(wèn)時(shí)間分為如下三種:
- 尋道時(shí)間Ts:把磁頭從當(dāng)前位置移動(dòng)到指定磁道上所經(jīng)歷的時(shí)間,它與磁盤(pán)轉(zhuǎn)速、移動(dòng)的磁道數(shù)有關(guān);
- 旋轉(zhuǎn)延遲時(shí)間Tr:指定扇區(qū)移動(dòng)到磁頭下面所經(jīng)歷的時(shí)間;
- 傳輸時(shí)間Tt:指把數(shù)據(jù)從磁盤(pán)讀出,或向磁盤(pán)寫(xiě)入數(shù)據(jù)所經(jīng)歷的時(shí)間。
2 磁盤(pán)調(diào)度
在上面提到的磁盤(pán)訪問(wèn)三個(gè)時(shí)間中,操作系統(tǒng)能夠改變的時(shí)間只有尋道時(shí)間,在設(shè)計(jì)磁盤(pán)調(diào)度算法時(shí),目的就是為了減少尋道時(shí)間(尋道距離)。
2.1 先來(lái)先服務(wù)(FCFS)
先來(lái)先服務(wù)調(diào)度算法的思想如字面意思一樣,這里不再解釋,假設(shè)磁盤(pán)的請(qǐng)求序列為 98, 183, 37, 122, 14, 124, 65, 67 ,且磁頭當(dāng)前的位置在53,磁頭移動(dòng)軌跡示意圖如下:
根據(jù)磁頭移動(dòng)的軌跡圖,可以計(jì)算出磁頭總共移動(dòng)了640個(gè)柱面的距離。
2.2 最短尋道時(shí)間優(yōu)先(SSTF)
最短尋道時(shí)間優(yōu)先的思想就是選擇從當(dāng)前磁頭位置所需尋道時(shí)間最短的請(qǐng)求,假設(shè)磁盤(pán)的請(qǐng)求序列為 98, 183, 37, 122, 14, 124, 65, 67 ,且磁頭當(dāng)前的位置在53,磁頭移動(dòng)軌跡示意圖如下:
根據(jù)磁頭移動(dòng)的軌跡圖,可以計(jì)算出磁頭總共移動(dòng)了208個(gè)柱面的距離。最短尋道時(shí)間優(yōu)先算法思想類似于短作業(yè)優(yōu)先算法,有可能引起某些請(qǐng)求的饑餓。
2.3 掃描算法(SCAN)
為了解決最短尋道時(shí)間優(yōu)先算法造成的饑餓問(wèn)題,這里引入了掃描算法,它不僅考慮到欲訪問(wèn)的磁道與磁頭當(dāng)前位置間的距離,更優(yōu)先考慮的是磁頭當(dāng)前的移動(dòng)方向。算法所選擇的訪問(wèn)對(duì)象應(yīng)當(dāng)是與磁頭當(dāng)前的移動(dòng)方向一致且距離最近的。具體來(lái)說(shuō)就是磁頭從磁盤(pán)的一端開(kāi)始向另一端移動(dòng),沿途響應(yīng)訪問(wèn)請(qǐng)求,直到到達(dá)了磁盤(pán)的另一端,此時(shí)磁頭反向移動(dòng)并繼續(xù)響應(yīng)服務(wù)請(qǐng)求。由于掃描算法類似于現(xiàn)實(shí)中的電梯工作過(guò)程,有時(shí)也稱為電梯算法 。
假設(shè)磁盤(pán)的請(qǐng)求序列為 98, 183, 37, 122, 14, 124, 65, 67 ,且磁頭當(dāng)前的位置在53 且朝磁道號(hào)減小的方向移動(dòng),磁頭移動(dòng)軌跡示意圖如下:
根據(jù)磁頭移動(dòng)的軌跡圖,可以計(jì)算出磁頭總共移動(dòng)了236個(gè)柱面的距離。掃描算法存在著等待問(wèn)題,也就是若磁頭朝一個(gè)方向移動(dòng)時(shí),又來(lái)了大量另一方向的請(qǐng)求,那么這些請(qǐng)求就要等待較長(zhǎng)時(shí)間磁頭才能過(guò)來(lái)。
為了解決這個(gè)問(wèn)題,引入了 C-SCAN 算法,C的意思就是循環(huán)的意思,它提供比掃描算法更均衡的等待時(shí)間。它的辦法是磁頭從磁盤(pán)的一段向另一端移動(dòng),沿途響應(yīng)請(qǐng)求。當(dāng)它到了另一端,就立即回到磁盤(pán)的開(kāi)始處,在返回的途中不響應(yīng)任何請(qǐng)求。
假設(shè)磁盤(pán)的請(qǐng)求序列為 98, 183, 37, 122, 14, 124, 65, 67 ,且磁頭當(dāng)前的位置在53 且朝磁道號(hào)增加的方向移動(dòng),磁頭移動(dòng)軌跡示意圖如下:
不管是 SCAN 算法還是 C-SCAN算法,都需要磁頭從一端移到另外一端,如上圖,其實(shí)沒(méi)有必要返回到 0 處,再到 14,為了解決這個(gè)問(wèn)題,引入了 LOOK算法,它的辦法是磁臂在每個(gè)方向上僅僅移動(dòng)到最遠(yuǎn)的請(qǐng)求位置,然后立即反向移動(dòng),而不需要移動(dòng)到磁盤(pán)的一端。
假設(shè)磁盤(pán)的請(qǐng)求序列為 98, 183, 37, 122, 14, 124, 65, 67 ,且磁頭當(dāng)前的位置在53 且朝磁道號(hào)減小的方向移動(dòng),磁頭移動(dòng)軌跡示意圖如下:
根據(jù)磁頭移動(dòng)的軌跡圖,可以計(jì)算出磁頭總共移動(dòng)了198個(gè)柱面的距離。
此外還有 C-LOOK 算法是對(duì) C-SCAN 算法的改進(jìn),C-LOOK 的辦法是讓磁臂在每個(gè)方向上僅僅移動(dòng)到最遠(yuǎn)的請(qǐng)求位置,然后立即反向移動(dòng),而不需要移動(dòng)到磁盤(pán)的一端。
假設(shè)磁盤(pán)的請(qǐng)求序列為 98, 183, 37, 122, 14, 124, 65, 67 ,且磁頭當(dāng)前的位置在53 且朝磁道號(hào)增加的方向移動(dòng),磁頭移動(dòng)軌跡示意圖如下:
總結(jié)
以上是生活随笔為你收集整理的操作系统原理第十一章:大容量存储的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 操作系统原理第十章:文件系统
- 下一篇: POJ2983 查分约束系统