提示:枕上詩書閑處好,門前風(fēng)景雨來佳。
5.3.1 磁盤的結(jié)構(gòu)
知識總覽
磁盤 磁道 扇區(qū)
如何從磁盤中讀/寫數(shù)據(jù)
盤面 柱面
所以比如這里下圖中,黃色的地方組成了一個柱面,
磁盤的物理地址
磁盤的分類
知識回顧
磁盤調(diào)度算法
知識總覽
磁盤的讀寫操作需要的時間
尋道:也就是尋找對應(yīng)的磁道,
延遲時間:定位到磁道上特定的扇區(qū),所以說磁盤的轉(zhuǎn)速越快延遲時間越短,
每一個磁道可存N字節(jié)的數(shù)據(jù),因此b字節(jié)的數(shù)據(jù)需要b/N個磁道才能存儲,而讀/寫一個磁道所需要的時間剛好又是轉(zhuǎn)一圈所需要的時間1/r,所以傳輸時間等于(1/r)* (b/N)
影響不了延遲時間和傳輸時間所以我們能進(jìn)行優(yōu)化的只有尋道時間,
先來先服務(wù)算法FCFS
最短尋找時間優(yōu)先SSTF
掃描算法SCAN
注意掃描算法是有一個邊界的(不管邊界有沒有數(shù)據(jù)都要道邊界),下面兩個算法就是對上面掃描算法的優(yōu)化,
改進(jìn)1(LOOK 調(diào)度算法)
改進(jìn)2(循環(huán)掃描算法CSCAN)
注意這里只是單純的對scan的第二個缺點確定進(jìn)行優(yōu)化,還有有邊界的,無論邊界有沒有都是需要移動的邊界的,所以下面第三種優(yōu)化方式就是對兩種方式同時優(yōu)化
改進(jìn)三(C-LOOK調(diào)度算法)
其實就是對上面兩種改進(jìn)方式的結(jié)合
知識回顧
就是若是某個方向上沒有磁道請求了,就直接返回即可不需要到邊界,
對比以上幾種磁盤調(diào)度算法,F(xiàn)CFS 算法太過簡單,性能較差,僅在請求隊列長度接近于1時才較為理想:SSTF算法較為通用和自然:SCAN算法和C-SCAN算法在磁盤負(fù)載較大時比較占優(yōu)勢。
5.3.3 減少磁盤延遲時間的方法
前情回顧
縮短延遲時間的方法:交替編號
磁盤地址結(jié)構(gòu)的設(shè)計
(00,000,000)~(00,000,111)也就是0號盤面,0號柱面的八個扇區(qū),由于是采用交替編址,也就是需要兩圈,第一圈0,1,2,3四個扇區(qū) 第二圈,4,5,6,7四個扇區(qū),然后讀?。?0,001,000) ~ (00,001,111)盤面號為0柱面號為1,所以也就需要移動磁頭到外面一個磁道,啟動磁頭臂,移動磁頭所需要的時間較長,
若是柱面號再去,磁盤號在后,前面讀?。?00,00,000)~ (000,01,111)是和之前是相同的,當(dāng)盤面轉(zhuǎn)完兩圈之后,就可以讀完了,
然后讀?。?00,01,000)~(000,01,111)也就是對應(yīng)的一號盤面的最內(nèi)磁道,此時也就不需要移動磁臂,直接激活對應(yīng)的磁面即可,
答:讀取地址連續(xù)的磁盤塊時,采用(柱面號,盤面號,扇區(qū)號)的地址結(jié)構(gòu)可以減少磁頭移動消耗的時間
縮短延遲時間的方法:錯位命名
若是相鄰的盤面相對位置相同處扇區(qū)編號相同也就是可能會增加延遲時間,
知識回顧
5.3.4 磁盤的管理
磁盤初始化
C盤是屬于同一同一個柱面不同盤面的,可能是含有多個柱面,這樣分的原因自然是為了減少尋道時間,只需要激活對應(yīng)的磁盤即可
在可以使用磁盤存儲文件之前,操作系統(tǒng)還要將自己的數(shù)據(jù)結(jié)構(gòu)記錄到磁盤上,分為兩步:第一步是,將磁盤分為由一個或多個柱面組成的分區(qū)(即我們熟悉的C盤、D盤等形式的分區(qū)),每個分區(qū)的起始扇區(qū)和大小都記錄在磁盤主引導(dǎo)記錄的分區(qū)表中;第二步是,對物理分區(qū)進(jìn)行邏輯格式化(創(chuàng)建文件系統(tǒng)),操作系統(tǒng)將初始的文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)存儲到磁盤上,這些數(shù)據(jù)結(jié)構(gòu)包括空閑空間和已分配的空間以及一個初始為空的目錄。
因扇區(qū)的單位太小,為了提高效率,操作系統(tǒng)將多個相鄰的扇區(qū)組合在一起,形成一簇(在Linux中稱為塊)。為了更高效地管理磁盤,一簇只能存放一個文件的內(nèi)容,文件所占用的空間只能是簇的整數(shù)倍;如果文件大小小于一簇(甚至是0字節(jié)),也要占用一簇的空間。
引導(dǎo)快
當(dāng)我們完成物理格式化邏輯格式化之后,就可以將操作系統(tǒng)安裝到磁盤中了,計算機開機要運行一個自舉程序進(jìn)行初始化CPU,初始化內(nèi)存,以及寄存器等硬件部件等,
計算機開機時需要進(jìn)行一系列初始化的工作,這些初始化工作是通過執(zhí)行初始化程序(自舉程序)完成的,存放于ROM只讀存儲器中,ROM中的數(shù)據(jù)在出廠時就寫入了,并且以后不能進(jìn)行修改,
所以自舉裝入程序很小,所以是可以保證不會改變的,若是自舉程序需要改變,則可以通過修改引導(dǎo)快中的數(shù)據(jù)便可,這種方案的特點就是自舉程序的修改會很方便,
壞塊的管理
壞了、無法正常使,的扇區(qū)就是“壞塊”。這屬于硬件故障,操作系統(tǒng)是無法修復(fù)的。應(yīng)該將壞塊標(biāo)記出來,以免錯誤地使用到它
知識回顧
啟動系統(tǒng)時,首先運行 ROM 中的引導(dǎo)代碼 (bootstrap)。為執(zhí)行某個分區(qū)的操作系統(tǒng)的初始化程序,需要先執(zhí)行磁盤引導(dǎo)程序以指示引導(dǎo)到哪個分區(qū),然后執(zhí)行該分區(qū)的引導(dǎo)程序,用于引導(dǎo)該分區(qū)的操作系統(tǒng)。
物理格式化(又稱低級格式化,通常出廠時就已完成)的作用是為每個磁道劃分扇區(qū),安排扇區(qū)在磁道中的排列順序,并對已損壞的磁道和扇區(qū)做“壞”標(biāo)記等。隨后將磁盤的整體存儲空間劃分為相互獨立的多個分區(qū) (如 Windows 中劃分 C 盤、D 盤等),這些分區(qū)可以用作多種用途,如安裝不同的操作系統(tǒng)和應(yīng)用程序、存儲文件等。然后進(jìn)行邏輯格式化(又稱高級格式化),其作用是對扇區(qū)進(jìn)行邏輯編號、建立邏輯盤的引導(dǎo)記錄、文件分配表、文件目錄表和數(shù)據(jù)區(qū)等。最后才是操作系統(tǒng)的安裝。
5.3.5 固態(tài)硬盤SSD
固態(tài)硬盤就是通過這些黑色的小芯片來存儲數(shù)據(jù)的,而機械硬盤則是通過磁性物質(zhì)來存儲數(shù)據(jù)的,固態(tài)硬盤是基于閃存技術(shù),大家熟悉的U盤也是基于閃存技術(shù),本質(zhì)上閃存屬于一個電可擦除的ROM,也就是EEPROM,
固態(tài)硬盤的結(jié)構(gòu)
固態(tài)硬盤(SSD)是一種基于閃存技術(shù)的存儲器。它與U盤并無本質(zhì)差別,只是容量更大,存取性能更好。一個 SSD由一個或多個閃存芯片和閃存翻譯層組成,閃存芯片替代傳統(tǒng)旋轉(zhuǎn)磁盤中的機械驅(qū)動器,而閃存翻譯層將來自CPU的邏輯塊讀寫請求翻譯成對底層物理設(shè)備的讀寫控制信號,因此閃存翻譯層相當(dāng)于扮演了磁盤控制器的角色。
系統(tǒng)通過系統(tǒng)總線向這個SSD指明一個邏輯塊號,這個邏輯地址經(jīng)過這個閃存翻譯層翻譯之后,會映射到一個具體的物理地址,所以閃存翻譯層就是一個地址變換的工作,一個固態(tài)硬盤中可能包括多個閃存芯片,每個閃存芯片包含多個塊,而每個塊包含多個頁,系統(tǒng)對固態(tài)硬盤的讀寫是以頁為單位的,若是使用磁盤作為存儲介質(zhì)則是以塊或者扇區(qū)為單位的,所以磁盤的一個塊或者扇區(qū)對應(yīng)的是固態(tài)硬盤的一個頁,所以這里固態(tài)硬盤中的塊相當(dāng)于一個磁道,
若是其中某一塊的某一頁已經(jīng)有數(shù)據(jù)了,則需要將這一整塊擦除已才能往里面某一頁寫數(shù)據(jù),這也就會導(dǎo)致其他的頁也會消失,所以需要將這個要擦除的頁的信息的數(shù)據(jù)換到其他塊中,也就需要修改邏輯塊號和對應(yīng)的物理頁號之間的映射關(guān)系,所以固態(tài)硬盤的讀比寫要快得多,固態(tài)硬盤是通過電路直接定位到物理地址,而機械硬盤是通過移動磁臂,所以固態(tài)硬盤更快讀,
靜態(tài)磨損均衡是指在沒有寫入數(shù)據(jù)時,SSD監(jiān)測并自動進(jìn)行數(shù)據(jù)分配,從而使得各塊的擦寫更加均衡,并不是說寫入時每次都選擇存放老數(shù)據(jù)的塊。文章來源:http://www.zghlxwxcb.cn/news/detail-464925.html
固態(tài)硬盤的壽命
文章來源地址http://www.zghlxwxcb.cn/news/detail-464925.html
到了這里,關(guān)于操作系統(tǒng)第五章——輸入輸出管理(下)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!