考研OR工作----計算機操作系統簡答題及疑難知識點總結(第六章 輸入輸出系統)

  在第六章的學習中,主要理解操作系統處理用戶I/O請求的基本過程,當然也需要朋友們對I/O控制方式、設備獨立性、虛擬設備和SPOOLing技術、設備處理、磁盤調度等有所熟悉和掌握,看這篇文章的時候,會更加能夠吸收相應的“簡答”題型或者是會“計算”相應的題型。本章的內容參考《計算機操作系統》(第四版 湯子瀛)的書籍相應章節。阿婆主只是知識的搬運工~

  目錄(檢索你需要知道的知識點)

  第六章操作系統的基礎知識點

  6.1 I/O控制方式中的典型問題分析
  6.1.1 試說明I/O控制發展的主要推動因素是什麼?
  6.1.2 請說明什麼是中斷,並給出CPU響應中斷並進行中斷處理的一般過程。
  6.1.3 請說明中斷驅動I/O方式和DMA方式有什麼不同。
  6.2 緩衝管理中的典型問題分析
  6.2.1 爲什麼要引入緩衝區?
  6.2.2 假設T是從磁盤輸入一塊數據的時間,C是CPU對一塊數據進行處理的時間,M是將一塊數據從緩衝區傳送到用戶區的時間。當一用戶進程要按順序訪問的方式處理大量數據時,請問在單緩衝和雙緩衝的情況下,系統對一塊數據的處理時間分別是多少?
  6.3 I/O軟件中的典型問題分析
  6.3.1 I/O軟件一般分爲用戶層軟件、設備獨立性軟件、設備驅動程序和中斷處理程序這四個層次。請說明下列工作分別是在哪一層完成的?
  6.3.2 爲什麼要引入設備獨立性?如何實現設備獨立性?
  6.3.3 設備驅動程序具有哪些功能?
  6.4 虛擬設備中的典型問題分析
  6.4.1 什麼是虛擬設備?實現虛擬設備的關鍵技術是什麼?
  6.4.2 SPOOLing系統由哪幾部分組成?以打印機爲例說明如何利用SPOOLing技術實現多個進程對打印機的共享?
  6.5 磁盤存儲器管理中的典型問題分析
  6.5.1 假設磁盤有200個磁道,磁盤請求隊列中是一些隨機請求,它們按照到達的次序分別處於190、10、160、80、90、125、30、20、140、25號磁道上,當前磁頭在100號磁道上,並正由外向裏移動。請給出按FCFS、SSTF、SCAN及CSCAN算法進行磁盤調度時滿足請求的次序,並計算出它們的平均尋道長度。
  6.5.2 假定磁盤轉速爲20ms/圈,磁盤格式化時每個磁道被劃分成10個扇區,現在有10個邏輯記錄(每個記錄的大小剛好與扇區大小相等)存放在同一磁道上,處理程序每次從磁盤讀出一個記錄後要花4ms進行處理,現要求順序處理這10個記錄,若磁頭現在正處於首個邏輯記錄的始點位置。

 

  第六章操作系統的基礎知識點

  6.1 I/O控制方式中的典型問題分析

  6.1.1 試說明I/O控制發展的主要推動因素是什麼?

  答:促使I/O控制不斷髮展的幾個主要因素如下:

  (1)力圖減少CPU對I/O設備的干預,把CPU從繁雜的I/O控制中解脫出來,以充分發揮CPU數據處理的能力。

  (2)緩和CPU的高速性和I/O設備的低速性之間速度不匹配的矛盾,以提高CPU的利用率和系統的吞吐量。

  (3)提高CPU和I/O設備操作的並行程度,使CPU和I/O設備都處於忙碌狀態,從而提高整個系統的資源利用率和系統吞吐量。

  事實上,I/O的控制系統由兩級(CPU--I/O設備)發展到三級(CPU--控制器--I/O設備),進而發展到四級(CPU--I/O通道--控制器--I/O設備),都是上述三種因素促進的結果。

 

  6.1.2 請說明什麼是中斷,並給出CPU響應中斷並進行中斷處理的一般過程。

  答:中斷是指計算機在執行期間,系統內部或外部設備發生了某一急需處理的事件,使得CPU暫時停止當前正在執行的程序而轉去執行相應的事件處理程序,待處理完畢後又返回原來被中斷處,繼續執行被中斷的程序的過程。

  CPU響應中斷並進行中斷處理的一般過程如下:

  (1)保存現場。CPU收到中斷信號後,通常由硬件自動將處理機狀態字PSW和程序計數器PC中的內容,保存到終端保留區(棧)中。

  (2)轉中斷處理程序進行中斷處理。由硬件分析中斷的原因,並從相應的中斷向量中獲得中斷處理程序的入口地址,裝入CPU的程序計數器中,從而使處理機轉向相應的中斷處理程序。

  (3)中斷返回。中斷處理完成後通過中斷返回指令,將保存在中斷棧中的被中斷進程的現場信息取出,並裝入到相應的寄存器中,從而使處理機返回到被中斷程序的斷點執行。

 

  6.1.3 請說明中斷驅動I/O方式和DMA方式有什麼不同。

  答:它們的不同之處主要有:

  (1)I/O中斷頻率。在中斷方式中,每當輸入數據緩衝寄存器中裝滿輸入數據或將輸出數據緩衝寄存器中的數據輸出之後,設備控制器便發生一次中斷,由於設備控制器中配置的數據緩衝寄存器通常較小,如1個字節或1個字,因此中斷比較頻繁。而在DMA方式中,在DMA控制器的控制下,一次能完成一批連續數據的傳輸,並在整批數據傳送完後才發生一次中斷,因此可大大減少CPU處理I/O中斷的時間。

  (2)數據的傳送方式。在中斷方式中,由CPU直接將輸出數據寫入控制器的數據緩衝寄存器供設備輸出,或在中斷髮生後直接從數據緩衝寄存器中取出輸入數據供進程處理,即數據傳送必須經過CPU;而DMA方式中,數據的傳輸在DMA控制器的控制下直接在內存和I/O設備間進行,CPU只需將數據傳輸的磁盤地址、內存地址和字節數傳給DMA控制器即可。

 

  6.2 緩衝管理中的典型問題分析

  6.2.1 爲什麼要引入緩衝區?

  答:在設備管理中,引入緩衝區的主要原因有以下幾點:

  (1)緩和CPU與I/O設備速度不匹配的矛盾。通常,I/O設備的速率遠遠低於CPU的運算速率。如在輸出數據時,如果沒有緩衝區,則必然會由於I/O設備的速度跟不上CPU的速度,而使CPU停下來等待;而引入緩衝區後,CPU將輸出數據寫入緩衝區後,無需等待輸出完成,便能繼續執行下面的程序,而同時輸出設備可慢慢地進行數據的輸出。

  (2)減少對CPU的中斷頻率,放寬CPU響應中斷的時間。例如,在遠程通信系統中,如果從遠程終端發來的數據僅用一位緩衝區來接收,則必須在每收到一位數據時便中斷一次CPU,並在下一位數據到來之前要求CPU進行中斷處理以取走輸入數據;若設置一個8位緩衝區,則可每收8位數據中斷一次CPU,但在第9位數據到來之前仍必須完成中斷處理;若再增設一個8位的緩衝區,則可每收8位數據中斷一次CPU,並允許CPU在後續8位數據到來期間處理前8位數據的中斷。

  (3)提高CPU和I/O設備之間的並行性。如(1)所述,引入緩衝區後CPU和I/O設備可並行地工作,而I/O設備對CPU中斷頻率的降低,則可進一步提高CPU和I/O設備之間的並行操作程度,提高系統的吞吐量和設備的利用率。

 

  6.2.2 假設T是從磁盤輸入一塊數據的時間,C是CPU對一塊數據進行處理的時間,M是將一塊數據從緩衝區傳送到用戶區的時間。當一用戶進程要按順序訪問的方式處理大量數據時,請問在單緩衝和雙緩衝的情況下,系統對一塊數據的處理時間分別是多少?

  答:單緩衝的工作示意圖和時序圖如下圖。從圖中可以看出:數據由I/O控制器到緩衝區和數據由緩衝區到工作區,必須串行操作;同樣,數據從緩衝區到工作區和CPU從工作區中取出數據進行處理,也需串行進行;但由於在順序訪問時可採用預先讀的方式,即CPU在處理一塊數據的同時,可從磁盤輸入下一塊數據,因此,系統對一塊數據的處理時間位max(C,T)+M。

                                                                             圖1 單緩衝工作示意圖

                                                                                       圖2 單緩衝時序圖

  雙緩衝的工作示意圖和時序圖如下圖。由此可見,數據由I/O控制器到雙緩衝區,以及數據由雙緩衝區到工作區,可以並行工作,因此,系統對一塊數據的處理時間爲max(T,M+C)。如果T>C,由於M遠小於T,此時,系統對一塊數據的處理時間約等於MAX(T,C),即T。

                                                                                      圖3 雙緩衝工作示意圖

                                                                                     圖4 雙緩衝時序圖

 

  6.3 I/O軟件中的典型問題分析

  6.3.1 I/O軟件一般分爲用戶層軟件、設備獨立性軟件、設備驅動程序和中斷處理程序這四個層次。請說明下列工作分別是在哪一層完成的?

  (1)向設備寄存器寫命令。

  (2)檢查用戶是否有權使用設備。

  (3)將二進制整數轉換成ASCII碼的格式打印。

  (4)緩衝管理。

  答:(1)向設備寄存器寫命令是在設備驅動程序中完成的。

  (2)檢查用戶是否有權使用設備屬於設備保護,因此是在設備獨立性軟件中完成的。

  (3)將二進制整數轉換成ASCII碼的格式打印是通過I/O庫函數(如C的庫函數printf()中就有打印格式的控制字符串)完成的,因此屬於用戶層軟件。

  (4)緩衝管理屬於I/O的公有操作,是在設備獨立性軟件中完成的。

 

  6.3.2 爲什麼要引入設備獨立性?如何實現設備獨立性?

  答:引入設備獨立性,可使應用程序獨立於具體的物理設備。此時,用戶用邏輯設備名來申請使用某類物理設備,當系統中有多臺該類型的設備時,系統可將其中的任一臺分配給請求進程,而不必侷限於某一臺指定的設備,這樣,可顯著地改善資源的利用率及可適應性。獨立性還可以使用用戶程序獨立於設備的類型,如:進行輸出時,既可以用顯示終端,也可以用打印機,有了這種適應性,就可以很方便地進行輸入輸出重定向。

  爲了實現設備獨立性,必須在設備驅動程序之上設置一層設備獨立性軟件,用來執行所有I/O設備的公用操作,並向用戶層軟件提供統一接口。關鍵是系統中必須設置一張邏輯設備表LUT用來進行邏輯設備到物理設備的映射,其中每個表目中包含了邏輯設備名、物理設備名和設備驅動程序入口地址三項;當應用程序用邏輯設備名請求分配I/O設備時,系統必須爲它分配相應的物理設備,並在LUT中建立一個表目,以後進程利用該邏輯設備名請求I/O操作時,便可從LUT中得到物理設備名和驅動程序入口地址。

 

  6.3.3 設備驅動程序具有哪些功能?

  答:設備驅動程序應具有以下功能:

  (1)接收由I/O進程發來的I/O命令和參數,並將命令中的抽象要求轉換爲具有要求,如將磁盤盤塊號轉換爲磁盤的盤面、磁道和扇區號。

  (2)檢查用戶I/O請求的合法性,如果請求不合法,則拒絕接收I/O請求並向用戶進程彙報。

  (3)瞭解I/O設備的狀態,如果設備準備就緒,則可向設備控制器設置設備的工作方式、傳遞有關參數;否則,將請求者的請求塊掛到設備請求隊列上等待。

  (4)發出I/O命令。如果設備空閒,便立即啓動I/O設備,完成指定的I/O操作。

  (5)及時響應由設備控制器發來的中斷請求,並根據其中斷類型,調用相應的中斷處理程序進行處理。

 

  6.4 虛擬設備中的典型問題分析

  6.4.1 什麼是虛擬設備?實現虛擬設備的關鍵技術是什麼?

  答:虛擬設備是指通過某種虛擬技術,將一臺物理設備變換成若干臺邏輯設備,從而實現多個用戶對物理設備的同時共享。由於多臺邏輯設備實際上並不存在,而只是給用戶的一種感覺,因此被稱作虛擬設備。

  虛擬設備技術常通過在可共享的、高速的磁盤上開闢兩個大的存儲空間(即輸入井和輸出井)以及預輸入、緩輸出技術來實現。如對一個獨佔的輸入設備,可預先將數據輸入到磁盤輸入井的一個緩衝區中,而在進程要求輸入時,可將磁盤輸入井中的對應緩衝區分配給它,供它從中讀取數據;在用戶進程要求輸出時,系統可將磁盤輸出井中的一個緩衝區分配給它,當將輸出數據寫入其中之後,用戶進程彷彿覺得輸出已完成並繼續執行下面的程序,而在輸出設備空閒時,再由輸出設備將井中的數據慢慢輸出。由於磁盤是一個共享設備,因此便將獨佔的物理設備改造成爲多個共享的虛擬設備(相當於輸入井或輸出井中的一個緩衝區)。預輸入和緩輸出可通過脫機和假脫機技術實現,而假脫機(即SPOOLing技術)是目前使用最廣泛的虛擬設備技術。

 

  6.4.2 SPOOLing系統由哪幾部分組成?以打印機爲例說明如何利用SPOOLing技術實現多個進程對打印機的共享?

  答:SPOOLing系統由磁盤上的輸入井和輸出井,內存中的輸入緩衝區和輸出緩衝區,輸入進程和輸出進程以及井管理程序夠成。

  在用SPOOLing技術共享打印機時,對所有提出輸出請求的用戶進程,系統接受它們的請求時,並不真正把打印機分配給它們,而是由假脫機管理進程爲每個進程做兩件事:

  (1)在輸出井中爲它申請一空閒緩衝區,並將要打印的數據送入其中;

  (2)爲用戶進程申請一張空白的用戶打印請求表,並將用戶的打印請求填入表中,再將該表掛到假脫機文件隊列上。

  至此,用戶進程覺得它的打印過程已經完成,而不必等待真正的慢速的打印過程的完成。當打印機空閒時,假脫機打印進程將從假脫機文件隊列隊首取出一張打印請求表,根據表中的要求將要打印的數據從輸出井傳送到內存輸出緩衝區,再由打印機進行輸出打印。打印完後,再處理假脫機文件隊列中的下一個打印請求表,直至隊列爲空。這樣,雖然系統中只有一臺打印機,但系統並未將它分配給任何進程,而只是爲每個提出打印請求的進程在輸出井中分配一個存儲區(相當於一個邏輯設備),使每個用戶進程都覺得自己在獨佔一臺打印機,從而實現了對打印機的共享。

 

  6.5 磁盤存儲器管理中的典型問題分析

  6.5.1 假設磁盤有200個磁道,磁盤請求隊列中是一些隨機請求,它們按照到達的次序分別處於190、10、160、80、90、125、30、20、140、25號磁道上,當前磁頭在100號磁道上,並正由外向裏移動。請給出按FCFS、SSTF、SCAN及CSCAN算法進行磁盤調度時滿足請求的次序,並計算出它們的平均尋道長度。

  分析:(1)FCFS算法按進程請求訪問磁盤的先後次序進行服務;SSTF算法優先爲距離當前磁頭所在磁道最近的請求進行服務;SCAN算法則優先爲在磁頭當前移動方向上、與當前磁頭所在磁道最近的請求進行服務;CSCAN算法類似於SCAN算法,但它規定只能作單向服務。

  (2)磁盤的磁道號是由外向裏一次編號的,因此由外向裏是朝着磁道號增加的方向移動。

  答:磁盤調度的次序以及它們的平均尋道長度如下表。

                                                                     表 磁盤調度的次序以及平均尋道時間

 

  6.5.2 假定磁盤轉速爲20ms/圈,磁盤格式化時每個磁道被劃分成10個扇區,現在有10個邏輯記錄(每個記錄的大小剛好與扇區大小相等)存放在同一磁道上,處理程序每次從磁盤讀出一個記錄後要花4ms進行處理,現要求順序處理這10個記錄,若磁頭現在正處於首個邏輯記錄的始點位置。請問:

  (1)按逆時針方向安排10個邏輯記錄(磁盤逆時針方向轉),處理程序處理完這10個記錄所花費的時間是多少?

  (2)按最優化分佈重新安排這10個邏輯記錄,寫出記錄的安排,並計算出所需要處理的時間。

  分析:數據處理時間 = 磁盤訪問時間 + 數據實際處理時間,而磁盤訪問時間 = 尋道時間 + 旋轉延遲時間 + 數據傳輸時間。本題通過對旋轉延遲時間的優化來提高訪問磁盤數據的速度。

  答:(1)由題意可知,讀一個邏輯記錄需2ms時間,讀出記錄後還需要4ms時間進行處理,故當磁頭處於某記錄的始點時,處理它共需6ms時間。而邏輯記錄是按逆時針方向安排的,因此係統處理完一個邏輯記錄後將磁頭轉到下一個邏輯記錄的始點需要12ms時間。從而可以計算出處理程序順序處理完這10個邏輯記錄所需的時間爲:6 + 9 *(12 + 6) = 168ms

  (2)按最優化分佈重新安排這10個邏輯記錄,可使處理程序處理完一個邏輯記錄後,磁頭剛好轉到下一個邏輯記錄的始點,此時,按順時針方向安排的邏輯記錄順序分別爲:記錄1、記錄8、記錄5、記錄2、記錄9、記錄6、記錄3、記錄10、記錄7、記錄4,所需要的處理時間爲6*10,即60ms。

 

 

 

言必信,行必果。--《論語  子路》

 

 

 

 

 

 

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