跳轉至

磁盤管理

磁碟組織與管理

磁碟是現代電腦系統中常用的高速、大容量儲存設備。以下是磁碟組織與管理的關鍵點:

磁碟結構

  • 磁碟由多個磁碟片組成,每個磁碟片有多個磁碟面,每個碟面上都有多個磁軌。磁軌進一步劃分為扇區。
  • 磁碟空間的位址由三個參數決定:柱面號、磁頭號和磁區號,表示特定的實體位置。
  • 計算公式
  • 區塊號 \( b = k + s \times (j + i \times t) \)
  • 其中\( k \) 是磁區號,\( s \) 是每個磁軌的磁區數,\( j \) 是磁頭號,\( i \) 是柱面號,\( t \) 是每個柱面的磁軌數。

磁碟空間管理

  • 空閒區塊表法:記錄所有空閒區塊的位址。
  • 空閒區塊鏈法:使用鍊錶將所有空閒區塊連接。
  • 位元示圖法:使用位圖表示磁碟的使用情況,位元值為0表示空閒,並為1表示已佔用。
  • 成組連結法:以成組的方式連結空閒區塊,適用於大容量磁碟。

磁碟調度演算法

磁碟調度演算法用於最佳化磁碟存取時間,減少尋道時間。常見的調度演算法有:

先來先服務(FCFS)

  • 依照請求到達的順序依序處理,演算法簡單且公平。
  • 缺點:尋道時間可能較長,適合請求數目較少的場合。

最短尋道時間優先(SSTF)

  • 優先選擇距離目前磁頭最近的請求。
  • 優點:減少總尋道時間,提高效率。
  • 缺點:可能導致距離遠的請求長時間無法處理,出現「飢餓」現象。

電梯調度演算法(SCAN)

  • 類似電梯的運作模式,磁頭在兩個方向來回移動,處理沿途的請求。
  • 優點:減少了磁頭來回移動的次數,避免了飢餓現象。
  • 變種
  • 單向掃描(LOOK):只在一個方向上掃描到最後一個請求,返回時不處理請求。
  • 雙向掃描(C-SCAN):在掃描結束時從另一端開始新一輪掃描,避免了某一方向的等待時間過長。

循環掃描(C-LOOK)

  • 在單向掃描的基礎上最佳化,只掃描到最遠的請求,然後從起始位置重新開始,減少無效掃描。

虛擬設備的實現思想

虛擬設備技術透過軟體模擬多個實體設備,使共享型設備看起來像多個獨佔設備,以提高設備利用率和系統的平行處理能力。

虛擬設備的實現

  • 實作方式:透過裝置管理程式(如裝置驅動程式)對裝置進行抽象,使其在作業系統中表現為獨立的邏輯裝置。
  • 應用場景:印表機共用、磁碟分割、虛擬記憶體等。

假脫機技術(SPOOLing)

SPOOLing(Simultaneous Peripheral Operations On-Line,假脫機)系統是透過模擬獨佔型裝置為多個使用者服務的技術,它的核心是利用磁碟作為中介緩衝,解決獨佔型裝置在多使用者環境下的並發使用問題。 SPOOLing系統主要由以下三個部分組成:

預輸入程式(Input Spooler)

  • 功能
  • 負責將輸入裝置的資料(如鍵盤、終端機等)從外部裝置讀取並儲存到磁碟的輸入緩衝區。
  • 在多用戶系統中,每個用戶的輸入請求透過預先輸入程式重定向到磁碟的輸入區域,避免了直接存取實際輸入裝置的資源競爭問題。
  • 工作流程
  • 接收到使用者輸入的資料請求後,預輸入程式將資料寫入磁碟的輸入緩衝區(稱為「井」)。
  • 將輸入的資料進行排隊,等待後續的「井管理」程序處理。

井管理程序(Well Management Program)

  • 功能
  • 作為SPOOLing系統的核心部分,負責管理儲存在磁碟緩衝區(井)中的資料。
  • 處理輸入資料的組織、排序和調度,決定哪些資料應該傳遞給處理程序,以及何時執行。
  • 工作流程
  • 根據優先順序或到達順序從井中提取輸入緩衝區的資料。
  • 調度和分配資料處理任務,將使用者輸入的資料傳遞給對應的處理程序進行執行。
  • 將處理完成的輸出資料交給「緩輸出」程序處理。

緩輸出程式(Output Spooler)

  • 功能
  • 負責將處理程序產生的輸出資料暫時儲存在磁碟的輸出緩衝區中,並在裝置空閒時將這些資料傳輸到實際的輸出裝置(如印表機、顯示器等)。
  • 緩輸出程序可以有效減少使用者等待時間,提高設備的使用率。
  • 工作流程
  • 將使用者處理程序的輸出結果寫入磁碟的輸出緩衝區。
  • 根據輸出設備的狀態(如空閒或忙碌)決定何時將資料從緩衝區傳送至實際設備。
  • 依序將輸出資料傳送至設備,完成輸出作業。

SPOOLing系統的工作流程

  1. 預輸入階段:使用者輸入的請求透過「預先輸入」程序儲存到磁碟的輸入緩衝區。
  2. 井管理階段:系統根據調度策略,從輸入緩衝區中取出請求進行處理,完成後將結果放入輸出緩衝區。
  3. 緩輸出階段:當輸出裝置空閒時,「緩輸出」程式將緩衝區中的資料依序輸出到實際裝置。

SPOOLing系統的優勢

  • 裝置共用:多個使用者可同時使用專屬裝置(如印表機),提高裝置使用率。
  • 並行處理:利用磁碟作為中介,能夠並行處理輸入和輸出請求,減少裝置等待時間。
  • 減少阻塞:使用者不必等待裝置完成目前任務即可繼續工作,提升系統回應速度。

應用場景

  • 列印服務:在印表機共用的環境中,使用者的列印請求先存入磁碟緩衝區,然後由SPOOLing系統統一調度,逐一傳送給印表機輸出。
  • 輸入/輸出設備管理:適用於需要緩解輸入/輸出設備與CPU速度不符的場景,提高系統的整體吞吐量。

總結

  • 磁碟管理透過結構化的組織和高效的空間管理策略,實現磁碟的高效利用。
  • 磁碟調度演算法透過不同的調度策略,減少磁碟的尋道時間,提升系統效能。
  • 虛擬設備SPOOLing技術使獨佔型設備能夠被多個進程並發使用,提高了系統的資源利用率和處理效率。