操作系統--課堂問答筆記22--習題答案

課堂筆記學習視頻來自 操作系統
說明:其他”課堂問答筆記“也在”操作系統“專欄

【5-1、5-2、5-3、5-4】

  1. 理解通道的3種類型。
    答:
    1 ) 字節多路通道(Byte Multiplexor Channel):這是一種按字節交叉方式工作的通道。它通常都含有許多非分配型子通道,其數量可從幾十到數百個,每一個子通道連接一臺I/O中低速設備,並控制該設備的I/O操作(字節多路通道不適於連接高速設備,且每個子通道爲某個設備專用)。這些子通道按時間片輪轉方式共享主通道:
    在這裏插入圖片描述
    2 ) 數組選擇通道(Block Selector Channel):選擇通道又稱高速通道,在物理上它可以連接多個設備,但是這些設備不能同時工作,在某一個時間段內通道只能選擇一個設備進行工作。選擇通道很像一個單道程序的處理器,在一段時間內只允許執行一個設備的通道程序,只有當這個設備的通道程序全部執行完畢後,才能執行其他設備的通道程序。想象一下,有一條高速公路連接兩個城市(內存和設備),那麼數組選擇通道就是一條可切換端點的高速公路(設備那一頭可切換,且這樣的高速公路僅有一條)
    3 ) 數組多路通道(Block Multiplexor Channel):數組選擇通道其實是上述兩種通道的組合,是連接控制多個高速外設並以成組交叉方式傳送數據的通道,即不是一條高速公路而是多條,與字節多路通道不同之處在於:數組多路通道允許多個設備同時工作,但只允許一個設備進行傳輸型操作(即任何時刻只有一條高速公路在傳輸數據),其他設備進行控制型操作;而字節多路通道不僅允許多個設備同時操作,而且也允許它們同時進行傳輸型操作(但僅有一個子通道連接到主通道,見上圖);數組多路通道與設備之間進行數據傳送的基本單位是數據塊(多個字節),而字節多路通道與設備之間進行數據傳送的基本單位則是字節。
    字節多路通道:連接低速設備;數組選擇通道:連接高速設備,但任何時刻只有一臺設備可工作;數組多路通道:可連接多個高速設備並同時工作

今天的視頻很好的解釋了4種I/O控制方式,這裏就不再詳細重複敘述了,簡單描述一下:
1)程序直接控制方式:檢查設備狀態(空閒、忙),以及數據的傳輸都由CPU完成(傳輸數據的單位是字節或字);
2)中斷I/O控制方式:中斷處理程序檢查設備狀態,數據的傳輸由CPU完成(傳輸數據的單位是字節或字);
3)DMA控制方式: 有專門的硬件機構DMA控制器,數據傳輸前,CPU向DMA控制器發出指令;數據傳輸完成後,DMA控制器向CPU報告,整個數據傳輸過程中CPU僅僅在開始和結束兩個節點參與,且傳輸數據的單位是數據塊(多個字節)。
4)I/O通道控制方式:在DMA方式中,數據的傳送方向、存放數據的內存始址以及傳送的數據塊長度等都由CPU控制(這些要求都是數據傳輸前由CPU發給DMA控制器的,一個數據塊傳輸完成後,CPU再把下一個數據塊的傳輸要求發給DMA控制器。相對於DMA,通道方式CPU對於數據的傳輸干預更少),而在通道方式中,這些都由通道來進行控制(通道本質上是一個簡單的處理器,它獨立於CPU,有運算和邏輯,有自己的指令系統:一般只有數據傳送指令、設備控制指令等)。另外,DMA方式每臺設備至少需要一個DMA控制器,一個通道控制器可以控制多臺設備。

  1. 描述緩衝的引入的原因
    答:
    引入緩衝區的原因有很多,可歸結爲以下幾點:
    1 ) 緩和CPU與I/O設備間速度不匹配的矛盾:例如一個程序,它時而進行長時間的計算而沒有輸出,時而又陣發性把輸出送到打印機。由於打印機的速度跟不上CPU,而使得CPU長時間的等待。如果設置了緩衝區,程序輸出的數據先送到緩衝區暫存,然後由打印機慢慢地輸出。這時,CPU不必等待,可以繼續執行程序。實現了CPU與I/O設備之間的並行工作。事實上,凡在數據的到達速率與其離去速率不同的地方,都可設置緩衝,以緩和它們之間速度不匹配的矛盾。
    2 ) 減少對CPU的中斷頻率,放寬對CPU中斷響應時間的限制:如果I/O操作每傳送一個字節就要產生一次中斷,那麼設置了n個字節的緩衝區後,則可以等到緩衝區滿才產生中斷,這樣中斷次數就減少到1/n,而且中斷響應的時間也可以相應的放寬。
    3 ) 解決數據粒度(數據單元的大小)不匹配的問題:比如生產者消費者問題中,生產者單位數據小於消費者單位數據時,生產者爲了滿足消費者需求可以連續生產好幾個單位;而大於的話,消費者可以分幾次取一個單位。
    4 ) 提高CPU和I/O設備之間的並行性:比如,CPU向塊設備輸出數據時,可以先將數據存放在緩衝區中(這一步會比較快),然後返回,接下來由緩衝區慢慢向塊設備寫數據,而不是由CPU直接向慢速的塊設備直接輸出。
  2. 理解單緩衝區和雙緩衝區
    答:
    在單緩衝情況下,每當用戶進程發出一個I/O請求時,操作系統便在主存中爲之分配一各緩衝區:
    在這裏插入圖片描述
    在生產者消費者問題中,由於緩衝區是共享資源,生產者與消費者在使用緩衝區時必須互斥。如果消費者尚未取走緩衝區中的數據,即使生產者又生產出新的數據,也無法將它送入緩衝區,生產者只能等待。如果爲生產者與消費者設置了兩個緩衝區,便能解決這一問題:
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章