操作系統8-磁盤

磁盤及設備

一、磁盤的結構

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

磁盤的表面被劃分爲了一個個磁道,一個小圈就是一個磁道。
一個磁道又被劃分成了一個個扇區,每個扇區就是一個個磁盤塊,各個扇區存放的數據量相同

最內側的磁道上的扇區面積最小,因此數據密度最大。
在這裏插入圖片描述

1、如何在磁盤中讀/寫數據

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

一個磁盤有很多盤面,每個盤面有一個磁頭,這些磁頭由磁頭臂 統一帶動往裏或者往外移動。

可以使用(柱面號,盤面號,扇區號)來定位任意一個“磁盤塊”

在這裏插入圖片描述

2、磁盤的分類

磁頭是否可以移動分爲:

  • 活動頭磁盤
  • 固定頭磁盤

在這裏插入圖片描述
盤片是否可以更換,劃分爲:

  • 可更換的稱爲可還盤磁盤
  • 固定盤磁盤

總結

在這裏插入圖片描述

二、磁盤調度算法

在這裏插入圖片描述

1、一次磁盤讀/寫需要的時間

尋找時間(尋道時間):在讀/寫數據前,將磁頭移動到指定磁道所花的時間,時間包括

  • 1、啓動刺頭臂所需的時間,假設耗時爲s
  • 2、移動磁頭也是需要花時間的,假設磁頭是勻速移動的,每跨越一個磁道耗時爲m,總共需要跨越n條磁道,

尋道時間T = s+m*n;

延遲時間TR:通過旋轉磁盤,使得磁頭定位到目標扇區所需要的時間,設磁盤轉速爲r,則平均所需的延遲時間TR = (1/2)*(1/r) = 1/2r。
1/r就是轉一圈所需的時間,找到目標扇區平均需要轉半圈,因此再乘以1/2.

所以買磁盤的時候要看轉速,速度越快,讀寫越快

傳輸時間:從磁盤讀出或者向磁盤寫入數據所需的時間,假設磁盤轉速爲r,此次讀/寫的字節數爲b,每個磁道上的字節數爲N。則:傳輸時間 = (1/r)*(b/N)=b/(rN)

每個磁道可以存N字節數據,因此b字節的數據需要b/N個磁道才能存儲,而讀寫一個磁道所需的時間剛好又是一轉所需的時間1/r。

延遲時間和傳輸時間都與磁盤轉速有關,而轉速是硬件的固有熟悉,因此操作系統無法優化延遲時間和傳輸時間。

2、先來先服務算法

根據進程請求訪問磁盤的先後順序進行調度。

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

通過計算得到磁頭總共移動了45+3+19+21+72+70+10+112+146=498個磁道

3、最短尋找時間優先(SSTF)

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

假設磁頭的初始位置在100磁道,有多個進程新後陸續在請求訪問55、58、39、18、90、160、150、38、184磁道
總共移動了248個磁道

4、掃描算法

只有磁頭移動到最外側磁道才能往內移動,移動到最內側磁道才能往外側移動。

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

在這裏插入圖片描述總共移動了282個磁道

5、LOOK調度算法

如果在磁頭移動方向上沒有其他請求,可以立即改變磁頭移動方向。

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

在這裏插入圖片描述

6、循環掃描算法(c-scan)

規定磁頭朝某個特定方向移動的時候才處理磁道上面的請求,而返回的時候直接快速到起始端而不處理任何請求。

假設磁頭的初始位置在100磁道,有多個進程新後陸續在請求訪問55、58、39、18、90、160、150、38、184磁道
在這裏插入圖片描述
總共移動(200-100+200+90-0)=390個磁道

7、C-Look調度算法

如果磁頭移動方向上已經沒有磁到訪問請求了,就可以立即讓磁頭返回,並且只需返回到有磁道訪問請求的位置即可

在這裏插入圖片描述

總結

在這裏插入圖片描述

三、減少磁盤延遲時間的方法

在這裏插入圖片描述
磁盤讀入一個扇區數據之後需要一小段時間進行處理,如果邏輯上相鄰的扇區在物理上也相鄰,則讀入幾個連續的邏輯扇區,可能需要很長的“延遲時間”

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

在這裏插入圖片描述在這裏插入圖片描述

爲什麼柱面號要在盤面號之前?

  • 因爲讀取地址連續的磁盤塊的時候,使用(柱面號,盤面號,扇區號)的地址結構可以減少磁頭移動消耗的時間,因爲如果柱面號相同,扇區號相同,那麼只需要激活不同盤面的磁頭即可。

在這裏插入圖片描述

總結

在這裏插入圖片描述

四、磁盤管理

1、磁盤初始化

  • 1、低級格式化(物理格式化),將磁盤的各個磁道劃分爲扇區,一個扇區可以分爲頭、數據區域、尾三個部分組成,管理扇區所需要的各種數據結構一般存放在頭、尾兩個部分,包括扇區校驗碼等,校驗碼用於校驗扇區中的數據是否發生了錯誤。
  • 2、將磁盤進行分區,每個分區由若干柱面組成(即分爲我們熟悉的C、D、E盤)
  • 3、進行邏輯格式化,創建文件系統,包括創建文件系統根目錄、初始化存儲空間管理所用的數據結構(如位示圖、空閒分區表)
    -4、 引導塊,計算機開機的時候需要進行一系列初始化的工作,這些初始化工作是通過執行初始化程序(自舉程序)完成的。
    初始化程序可以放在ROM(只讀存儲器)中,ROM中的數據在出廠的時候就寫入了,並且以後不能再修改。
    在這裏插入圖片描述

2、壞塊的管理

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

對於簡單的磁盤,可以在邏輯格式化的時候(建立文件系統的時候)對整個磁盤進行壞塊檢查,標明哪些扇區是壞扇區。比如:在FAT表上標明。

對於複雜的磁盤,磁盤控制器會維護一個壞塊鏈表。
在磁盤出廠前進行低級格式化時就將壞塊鏈進行初始化。
會保留一些“備用“扇區”,用於替換壞塊,這種方案稱爲扇區備用。

總結

在這裏插入圖片描述

設備

1、I/O設備的概念和分類

什麼是IO設備

”IO“設備就是“輸入/輸出”
IO設備就是可以將數據輸入(如鼠標、鍵盤就是典型的輸入型設備)到計算機或者接收計算機輸出數據的外部設備(顯示器-輸出型設備),屬於計算機的硬件部件。

在這裏插入圖片描述
UNIX系統將外部設備抽象成一種特殊的文件,用戶可以使用與文件操作相同的方式對外部設備進行操作。

  • write操作:向外部設備寫出數據
  • read操作:從外部設備讀入數據

I/O設備的分類-按使用特性

  • 1、人機交互類外部設備
  • 2、存儲設備
  • 3、網絡通信設備

在這裏插入圖片描述

IO設備的分類-按傳輸速率分類

  • 1、低速設備
  • 2、中速設備
  • 3、高速設備

在這裏插入圖片描述

IO設備的分類-按信息交換的單位分類

  • 塊設備(傳輸速率較高,可尋址,即對它可隨機的讀/寫任一塊。)
  • 字符設備
    在這裏插入圖片描述

總結

在這裏插入圖片描述

IO控制器

IO設備的組成:

  • 機械部件
  • 電子部件(IO控制器、設備控制器)

IO設備的機械部件主要用來執行具體的IO操作
比如我們看得見摸得着的鼠標/鍵盤的按鈕,顯示屏的LED,移動硬盤的磁臂、磁盤盤面。

IO設備的電子部件通常是一塊插入主板擴充槽的印刷電路板。

IO設備的電子部件

CPU無法直接控制IO設備的機械部件,因此IO設備還需要一個電子部件作爲CPU和IO設備機械部件之間的中介,用於實現CPU隊設備的控制。

這個電子部件就是IO控制器,又稱爲設備控制器,CPU可以控制IO控制器,又由IO控制器來控制設備的機械部件。

IO控制器的功能:

  • 接受和識別CPU發出的命令
    如CPU發來的read/write命令,IO控制器中會有相應的控制寄存器來存放命令和參數。

  • 向CPU報告設備的狀態

  • 數據交換

  • 地址識別

在這裏插入圖片描述

IO控制器的組成

  • CPU與控制器之間的接口
  • IO邏輯
  • 控制器與設備的藉口

在這裏插入圖片描述
在這裏插入圖片描述

總結

在這裏插入圖片描述

IO控制方式

  • 1、程序直接控制方式
  • 2、中斷驅動方式
  • 3、DMA方式
  • 4、通道控制方式

學習的時候需要考慮的問題有:

  • 1、完成一次讀/寫操作的流程
  • 2、CPU干預的頻率
  • 3、數據傳送的單位
  • 4、數據的流向
  • 5、主要缺點和主要優點

1、程序直接控制方式

  • 完成一次讀/寫操作的流程
  • CPU干預很頻繁,IO操作開始之前,完成之後需要CPU介入,並且在等待IO完成的過程中CPU需要不斷的輪詢檢查。
  • 數據傳送的單位,每次讀/寫是一個字
  • 數據流向
    讀操作(數據輸入):IO設備-》CPU寄存器-〉內存
    寫操作(數據輸出):內存-》CPU寄存器-〉IO設備
  • 優點:實現簡單,
  • 缺點:CPU和IO設備只能串行工作,CPU需要一直輪詢檢查,長期處於忙等狀態,CPU利用率低。
    在這裏插入圖片描述完成一次讀/寫操作的流程

在這裏插入圖片描述
在這裏插入圖片描述

2、中斷驅動方式

引入中斷機制,由於IO設備速度很慢,因此在CPU發出讀/寫命令之後,可將等待IO的進程阻塞,先切換到別的進行運行,當IO結束之後,控制器會向CPU發出一箇中斷信號,CPU檢測到中斷信號後,會保存當前進程的運行環境信息,轉去執行中斷處理程序處理該中斷。

在這裏插入圖片描述

3、DMA方式(傳送單位是塊)

在這裏插入圖片描述

之前的讀/寫操作都必須經過CPU,DMA不再經過CPU

  • 1、數據的傳送單位是“塊”,不再是一個字、一個字傳送
  • 2、數據的流向是從設備直接放入內存,或者從內存直接到設備,不需要CPU作爲”快遞小哥“

在這裏插入圖片描述

在這裏插入圖片描述

4、通道控制方式

通道:一種硬件,可以理解爲弱雞版的CPU,通道可以識別並執行一系列通道指令

在這裏插入圖片描述

在這裏插入圖片描述

總結

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章