操作系統筆記------設備管理

I/O系統

硬件基本結構

I/O設備

具體完成數據I/O的設備。
按速率分類:低速設備(鍵盤),中速設備(打印機),高速設備(磁盤)
按信息交換單位分類:字符設備(鍵盤), 塊設備(磁盤)。

設備控制器

負責連接I/O設備和數據總線,完成設備控制和數據格式轉換。
功能:接收和識別命令;數據交換;標誌和報告設備狀態;地址識別;數據緩衝;差錯控制。
編址:端口(I/O端口),獨立編址。

I/O通道

目的:使原來由CPU處理的I/O任務轉由通道來承擔,從而把CPU從繁雜的I/O任務中解脫出來。
I/O通道是—種特殊的處理器,專門負責輸入/輸出。它具有自己的指令系統,但該指令系統比較簡單,一般只有數據傳送指令、設備控制指令等;通道沒有自己的內存,通道所執行的程序(即通道程序)是存放在主機內存中的,它與CPU共享內存
編址:端口(I/O端口)

I/O系統結構

單通路I/O系統


無冗餘設備,容錯性差。

多通路I/O系統


有冗餘設備,容錯性佳。

I/O控制方式

設備管理的主要任務之一,是控制設備和內存或CPU之間的數據傳送,外圍設備和內存之間常用的數據傳送控制方式有四種。
程序I/O方式,中斷驅動I/O控制方式,直接存儲器存取方式-DMA,通道控制方式。

通道控制方式

通道控制方式與DMA方式相類似,也是一種內存和設備直接進行數據交換的方式。與DMA方式不同的是,在通道控制方式中,數據傳送方向存放數據的內存始址及傳送的數據塊長度均由一個專門負責輸入/輸出的硬件–通道來控制。另外,DMA方式每臺設備至少需要一個DMA控制器,而通道控制方式中,一個通道可控制多臺設備與內存進行數據交換。

通道指令包含:
操作碼:它規定指令所執行的操作,如讀、寫等。
內存地址:標明數據傳送時內存的首址。
計數:表示傳送數據的字節數。
通道程序結束位R0,表示通道程序是否結束。
記錄結束標誌R1,表示所處理的記錄是否結束。

緩衝管理

緩和CPU和I/O設備的矛盾;減少CPU中斷的頻率;提高CPU和I/O設備的並行性;
單緩衝

雙緩衝(緩衝對換)

循環緩衝

緩衝池(公用緩衝池)

兩個基本操作:GetBuf()(取);PutBuf(存);
工作方式:收容輸入;提取輸入;收容輸出;提取輸出。

設備分配

獨佔設備:指在一段時間內只允許一個用戶(進程)使用的設備。系統一旦把該設備分配給某進程後,便讓它獨佔直至釋放。注意:獨佔設備的分配可能會引起進程死鎖。
共享設備:指在一段時間內允許多個進程同時訪問的設備。共享設備必須是可尋址的和可隨機訪問的設備。典型的共享設備是磁盤。共享設備不僅能獲得良好的設備利用率,而且是實現文件和數據共享的物質基礎。
虛擬設備:指通過某種技術將一臺獨佔設備變換爲能供若干個用戶共享的設備。可將其同時分配給多個用戶,從而提高設備的利用率。

分配算法:先來先服務、優先級高者優先等。

設備分配的安全性

安全方式:串行分配,一個一個分配。
不安全方式:並行分配,可同時分配多個設備資源。

設備獨立性

設備獨立性定義:用戶程序獨立於具體使用的物理設備。
實現:採用虛擬技術,編寫應用程序時不考慮實際的物理設備。(核心)
物理設備:應用程序實際執行時,使用的特定類型設備
邏輯設備:是對一組具備相同功能物理設備的抽象
編寫程序時,使用邏輯設備名稱訪問設備;程序執行時,使用具體的物理設備完成實際數據操作;

邏輯設備表(LUT)

邏輯設備到物理設備的映射,程序執行時,使用邏輯設備表完成邏輯設備到物理設備的映射。

注意:需要每個用戶一張LUT

設備獨立性優點

設備分配靈活:若進程以物理設備名稱請求使用指定某臺設備,如果該設備已經分配給其他進程或正在檢修,此時儘管還有其它的相同設備空閒,該進程仍會阻塞。但若進程能以邏輯設備名稱來請求某類設備時,系統可立即將該類設備中的任一臺分配給進程。
易於實現I/O重定向:指用於I/O操作的設備可以更換(即重定向),而不必改變應用程序。
例如:調試應用程序時,可將程序的所有輸出送往屏幕顯示;而在程序調試完後,如需正式將程序的運行結果打印出來,此時將I/O重定向的數據結構(邏輯設備表)中的顯示終端改爲打印機,而不必修改應用程序。

SPOOLing技術

爲緩和CPU的高速性與I/O設備低速性之間的矛盾。

組成

輸入井和輸出井,輸入緩衝區和輸出緩衝區,輸入進程和輸出進程。(還有井管理程序)

特點

提高I/O速度;改造獨佔設備爲共享設備;實現虛擬設備。

磁盤存儲管理


硬盤由多個盤片(platters)構成(磁頭選擇),盤片上有多個磁道(磁道號選擇),每個磁道有多個扇區(扇區號選擇)。
磁盤訪問時間:尋道時間Ts+旋轉延遲時間Tr+傳輸時間Tt
尋道時間Ts:8 ~10ms(與磁頭移動的速度有關)
旋轉延遲時間Tr:1/(2r)(r爲轉速,取旋轉半圈的時間)
傳輸時間Tt:b/(rN )(b爲傳輸字節數,r: 爲轉速; N: 每磁道字節數,讀取數據的時間)

磁盤調度算法

磁盤是可供多個進程共享的設備,當有多個進程都要求訪問磁盤時,應採用一種最佳調度算法,以使各進程對磁盤的平均訪問時間最小。
由於在訪問磁盤的時間中,主要是尋道時間,因此,磁盤調度的目標,是使磁盤的平均尋道時間最少。

先來先服務(FCFS)

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

初始時位於100處。

最短尋道時間優先(SSTF)

要求訪問的磁道,與當前磁頭所在的磁道距離最近,以使每次的尋道時間最短。
SSTF的平均每次磁頭移動距離,明顯低於FCFS,因而SSTF較FCFS有更好的尋道性能。「磁臂粘着」現象。(磁臂來回的往返)

掃描算法(SCAN)

在磁頭移動方向上,且要求訪問的磁道,與當前磁頭所在的磁道距離最近,以使每次的尋道時間最短。有效解決磁臂粘着現象。

循環掃描(CSCAN)

即爲單向SCAN。只在一個磁頭移動方向上滿足磁道訪問請求。要求訪問的磁道,與當前磁頭所在的磁道距離最近,以使每次的尋道時間最短。有效降低磁道請求最大延遲。
可以想象將磁盤設置爲內外環狀在訪問到內圈時折返回外圈。