日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

17 操作系统第四章 磁盘管理 磁盘的结构 磁盘调度算法 减少磁盘延迟时间的方法

發布時間:2024/7/5 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 17 操作系统第四章 磁盘管理 磁盘的结构 磁盘调度算法 减少磁盘延迟时间的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 1 磁盤的結構
        • 1.1 磁盤、磁道、扇區
        • 1.2 磁盤如何讀取數據
        • 1.4 盤面、柱面、磁盤的物理地址
        • 1.5 磁盤的分類
        • 1.6 磁盤的結構小結
      • 2 磁盤調度算法
        • 2.1 一次磁盤讀/寫操作需要的時間
        • 2.2 先來先服務算法(`FCFS`)
        • 2.3 最短尋找時間優先(`SSTF`)
        • 2.4 掃描算法(`SCAN`)
        • 2.5 `LOOK` 調度算法
        • 2.6 循環掃描算法(`C-SCAN`)
        • 2.7 `C-LOOK` 調度算法
        • 2.8 磁盤調度算法小結
      • 3 減少磁盤延遲時間的方法
        • 3.1 交替編號
        • 3.2 錯位命名
        • 3.3 減少磁盤延遲方法小結
      • 4 磁盤管理
        • 4.1 磁盤初始化
        • 4.2 引導快
        • 4.3 壞塊的管理
        • 4.4 磁盤管理小結

1 磁盤的結構

1.1 磁盤、磁道、扇區

磁盤的表面由一些磁性物質組成,可以用這些磁性物質來記錄二進制數據

磁盤介紹

1.2 磁盤如何讀取數據

需要把“磁頭”移動到想要讀/寫的扇區所在的磁道。磁盤會轉起來,讓目標扇區從磁頭下面劃過,才能完成對扇區的讀/寫操作。

1.4 盤面、柱面、磁盤的物理地址


可用(柱面號,盤面號,扇區號)來定位任意一個“磁盤塊”。在“文件的物理結構”小節中,我們經常提到文件數據存放在外存中的幾號塊,這個塊號就可以轉換成(柱面號,盤面號,扇區號)的地址形式。

可根據該地址讀取一個“塊”

  • 根據“柱面號”移動磁臂,讓磁頭指向指定柱面;
  • 激活指定盤面對應的磁頭;
  • 磁盤旋轉的過程中,指定的扇區會從磁頭下面劃過,這樣就完成了對指定扇區的讀/寫。
  • 1.5 磁盤的分類

    1.6 磁盤的結構小結

    2 磁盤調度算法

    2.1 一次磁盤讀/寫操作需要的時間

  • 尋找時間(尋道時間)Ts:在讀/寫數據前,將磁頭移動到指定磁道所花的時間。
    啟動磁頭臂
    是需要時間的。假設耗時為s;
    移動磁頭也是需要時間的。假設磁頭勻速移動,每跨越一個磁道耗時為m,總共需要跨越n條磁道。則:
    尋道時間Ts=s+m*n
  • 現在的硬盤移動一個磁道大約需要0.2ms,磁臂啟動時間約為2ms

  • 延遲時間TR:通過旋轉磁盤,使磁頭定位到目標扇區所需要的時間。設磁盤轉速為r(單位:轉/秒,或轉/分),則平均所需的延遲時間TR=(1/2)*(1/r)=1/2r
    1/r就是轉一圈需要的時間。找到目標扇區平均需要轉半圈,因此再乘以1/2
  • 硬盤的典型轉速為5400轉/分,或7200轉/分,磁盤轉速越高,延遲時間越小,讀寫速度越快

  • 傳輸時間T:從磁盤讀出或向磁盤寫入數據所經歷的時間,假設磁盤轉速為r,此次讀/寫的字節數為b,每個磁道上的字節數為N。則:
    傳輸時間Tt=(1/r)*(b/N)=b/(rN)
  • 每個磁道要可存N字節的數據,因此b字節的數據需要b/N個磁道才能存儲。而讀/寫一個磁道所需的時間剛好又是轉一圈所需要的時間1/r

  • 總的平均存取時間Tt=Ts+1/2r+b/(rN)

  • 延遲時間和傳輸時間都與磁盤轉速相關,且為線性相關。而轉速是硬件的固有屬性,因此操作系統也無法優化延遲時間和傳輸時間,但是操作系統的磁盤調度算法會直接影響尋道時間

  • 2.2 先來先服務算法(FCFS)

    算法思想:根據進程請求訪問磁盤的先后順序進行調度。

    手動模擬

    假設磁頭的初始位置是100號磁道,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道
    按照FCFS的規則,按照請求到達的順序,磁頭需要依次移動到55、58、39、18、90、160、150、38、184號磁道

    磁頭總共移動了(100-55)+(58-55)+19+21+72+70+10+112+146=498個磁道
    響應一個請求平均需要移動498/9=55.3個磁道(平均尋找長度)

    優缺點分析:

    優點:公平;如果請求訪問的磁道比較集中的話,算法性能還算過的去
    缺點:如果有大量進程競爭使用磁盤,請求訪問的磁道很分散,則FCFS在性能上很差,尋道時間長。

    2.3 最短尋找時間優先(SSTF)

    算法思想:SSTF算法會優先處理的磁道是與當前磁頭最近的磁道。可以保證每次的尋道時間最短,但是并不能保證總的尋道時間最短。(其實就是貪心算法的思想,只是選擇眼前最優,但是總體未必最優)

    手動模擬

    假設磁頭的初始位置是100號磁道,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道

    磁頭總共移動了(100-18)+(184-18)=248個磁道
    響應一個請求平均需要移動248/9=27.5個磁道(平均尋找長度)

    優缺點分析:

    優點:性能較好,平均尋道時間短
    缺點:可能產生“饑餓”現象

    產生饑餓的原因在于:磁頭在一個小區域內來回來去地移動

    Eg:本例中,如果在處理18號磁道的訪問請求時又來了一個38號磁道的訪問請求,處理38號磁道的訪問請求時又來了一個18號磁道的訪問請求。如果有源源不斷的18號、38號磁道的訪問請求到來的話,150、160、184號磁道的訪問請求就永遠得不到滿足,從而產生“饑餓”現象。

    2.4 掃描算法(SCAN)

    算法思想:SSTF算法會產生饑餓的原因在于:磁頭有可能在一個小區域內來回來去地移動。為了防止這個問題,可以規定,只有磁頭移動到最外側磁道的時候才能往內移動,移動到最內側磁道的時候才能往外移動。這就是掃描算法(SCAN)的思想。由于磁頭移動的方式很像電梯,因此也叫電梯算法。

    手動模擬

    假設某磁盤的磁道為0~200號,磁頭的初始位置是100號磁道,且此時磁頭正在往磁道號增大的方向移動,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道

    磁頭總共移動了(200-100)+(200-18)=282個磁道
    響應一個請求平均需要移動282/9=31.3個磁道(平均尋找長度)

    優缺點分析:

    優點:性能較好,平均尋道時間較短,不會產生饑餓現象
    缺點

  • 只有到達最邊上的磁道時才能改變磁頭移動萬問,事實上,處理184號磁道的訪問請求之后就不需要再往右移動磁頭了。
  • SCAN算法對于各個位置磁道的響應頻率不平均(如:假設此時磁頭正在往右移動,且剛處理過90號磁道,那么下次處理90號磁道的請求就需要等磁頭移動很長一段距離;而響應了184號磁道的請求之后,很快又可以再次響應184號磁道的請求了)
  • 2.5 LOOK 調度算法

    算法思想:掃描算法(SCAN)中,只有到達最邊上的磁道時才能改變磁頭移動方向,事實上,處理了184號磁道的訪問請求之后就不需要再往右移動磁頭了。LOOK調度算法就是為了解決這個問題,如果在磁頭移動方向上已經沒有別的請求,就可以立即改變磁頭移動方向。(邊移動邊觀察,因此叫LOOK)

    手動模擬

    假設某磁盤的磁道為0~200號,磁頭的初始位置是100號磁道,且此時磁頭正在往磁道號增大的方向移動,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道

    磁頭總共移動了(184-100)+(184-18)=250個磁道
    響應一個請求平均需要移動250/9=27.5個磁道(平均尋找長度)

    優缺點分析:
    優點:比起SCAN算法來,不需要每次都移動到最外側或最內側才改變磁頭萬問,使尋道時間進一步縮短

    2.6 循環掃描算法(C-SCAN)

    算法思想:SCAN算法對于各個位置磁道的響應頻率不平均,而C-SCAN算法就是為了解決這個問題。規定只有磁頭朝某個特定方向移動時才處理磁道訪問請求,而返回時直接快速移動至起始端而不處理任何請求。

    手動模擬

    假設某磁盤的磁道為0~200號,磁頭的初始位置是100號磁道,且此時磁頭正在往磁道號增大的方向移動,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道

    磁頭總共移動了(200-100)+(200-0)+(90-0)=390個磁道
    響應一個請求平均需要移動390/9=43.3個磁道(平均尋找長度)

    優缺點分析:

    優點:比起SCAN來,對于各個位置磁道的響應頻率很平均。
    缺點:只有到達最邊上的磁道時才能改變磁頭移動方向,事實上,處理了184號磁道的訪問請求之后就不需要再往右移動磁頭了;并且,磁頭返回時其實只需要返回到18號磁道即可,不需要返回到最邊緣的磁道。另外,比起SCAN算法來,平均尋道時間更長。

    2.7 C-LOOK 調度算法

    算法思想:C-SCAN算法的主要缺點是只有到達最邊上的磁道時才能改變磁頭移動方向,并且磁頭返回時不一定需要返回到最邊緣的磁道上。C-LOOK算法就是為了解決這個問題。如果磁頭移動的方向上已經沒有磁道訪問請求了,就可以立即讓磁頭返回,并且磁頭只需要返回到有磁道訪問請求的位置即可。

    手動模擬

    假設某磁盤的磁道為0~200號,磁頭的初始位置是100號磁道,且此時磁頭正在往磁道號增大的方向移動,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道

    磁頭總共移動了(184-100)+(184-18)+(90-18)=322個磁道
    響應一個請求平均需要移動322/9=35.8個磁道(平均尋找長度)

    優缺點分析:

    優點:比起C-SCAN算法來,不需要每次都移動到最外側或最內側才改變磁頭方向,使尋道時間進一步縮短

    2.8 磁盤調度算法小結

    3 減少磁盤延遲時間的方法

    問題:磁頭讀入一個扇區數據后需要一小段時間處理,如果邏輯上相鄰的扇區在物理上也相鄰,則讀入幾個連續的邏輯扇區,可能需要很長的“延遲時間”
    簡言之就是讀完一個扇區,不能立刻讀下一個,而磁盤在旋轉,要讀相鄰的扇區,就是等這一轉轉完

    3.1 交替編號

    若采用交替編號的策略,即讓邏輯上相鄰的扇區在物理上有一定的間隔,可以使讀取連續的邏輯扇區所需要的延遲時間更小。

    思考:為什么?磁盤的物理地址是(柱面號,盤面號,扇區號)而不是(盤面號,柱面號,扇區號)

  • (盤面號,柱面號,扇區號)讀完本轉區域再讀相鄰區域時,需要啟動磁頭臂,將磁頭移動到下一個磁道;
  • (柱面號,盤面號,扇區號)讀完本轉區域再讀相鄰區域時,由于柱面號/磁道號相同,只是盤面號不同,因此不需要移動磁頭臂。只需要激活相鄰盤面的磁頭即可
  • 答:讀取地址連續的磁盤塊時,采用(柱面號,盤面號,扇區號)的地址結構可以減少磁頭移動消耗的時間

    3.2 錯位命名

  • 未采用錯位命名
  • 采用錯位命名
  • 3.3 減少磁盤延遲方法小結

    4 磁盤管理

    4.1 磁盤初始化

  • 進行低級格式化(物理格式化),將磁盤的各個磁道劃分為扇區。一個扇區通常可分為頭、數據區域(如512B大小)、尾三個部分組成。管理扇區所需要的各種數據結構一般存放在頭、尾兩個部分,包括扇區校驗碼(如奇偶校驗、CRC循環冗余校驗碼等,校驗碼用于校驗扇區中的數據是否發生錯誤
  • 將磁盤分區,每個分區由若干柱面組成(即分為我們熟悉的C盤、D盤、E盤)
  • 進行邏輯格式化,創建文件系統。包括創建文件系統的根目錄、初始化存儲空間管理所用的數據結構(如位示圖、空閑分區表)
  • 4.2 引導快

    計算機開機時需要進行一系列初始化的工作,這些初始化工作是通過執行初始化程序(自舉程序)完成的

    初始化程序可以放在ROM(只讀存儲器)中。ROM中的數據在出廠時就寫入了,并且以后不能再修改
    ROM一般在出廠時就集成到了主板之上

    以前的操作系統:計算機開機時,先讀取ROM中程序并執行,完成初始化工作

    初始化程序程序(自舉程序)放在ROM中存在什么問題?
    萬一需要更新自舉程序,將會很不方便,因為ROM中的數據無法更改。如何解決呢?

    現在的操作系統:ROM中只存放很小的“自舉裝入程序”,完整的自舉程序放在磁盤的啟動塊(即引導塊
    /啟動分區)上,啟動塊位于磁盤的固定位置。
    擁有啟動分區的磁盤稱為啟動磁盤或系統磁盤(C盤)

    4.3 壞塊的管理

    壞了、無法正常使用的扇區就是“壞塊”。這屬于硬件故障,操作系統是無法修復的。應該將壞塊標記出來,以免錯誤地使用到它

  • 對于簡單的磁盤,可以在邏輯格式化時(建立文件系統時)對整個磁盤進行壞塊檢查,標明哪些扇區是壞扇區,比如:在FAT表上標明。(在這種方式中,壞塊對操作系統不透明)
  • 對于復雜的磁盤,磁盤控制器(磁盤設備內部的一個硬件部件)會維護一個壞塊鏈表。
    在磁盤出廠前進行低級格式化(物理格式化)時就將壞塊鏈進行初始化。
    會保留一些“備用扇區”,用于替換壞塊。這種方案稱為扇區備用。且這種處理方式中,壞塊對操作系統透明。
  • 4.4 磁盤管理小結

    總結

    以上是生活随笔為你收集整理的17 操作系统第四章 磁盘管理 磁盘的结构 磁盘调度算法 减少磁盘延迟时间的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。