爲什麼說多道程序概念得到了中斷和通道技術的支持?

多道程序設計的概念

多道程序設計是在計算機內存中同時存放幾道相互獨立的程序,使它們在管理程序控制之下,相互穿插的運行。 兩個或兩個以上程序在計算機系統中同處於開始或結束之間的狀態。這就稱爲多道程序技術運行的特徵:多道、宏觀上並行、微觀上串行。

爲什麼說多道程序概念得到了中斷和通道技術的支持?

採用多道程序設計減少了CPU時間的浪費,增加了系統吞吐量,提高了系統的效率。爲什麼引入多道程序呢?說白了就是爲了提高系統的吞吐量和效率。 在多道程序系統中,能做到單處理機多程序併發,但是,當存在I/O任務時,CPU要去處理I/O任務,此時就沒空來處理多道程序的執行了,所以就要想辦法使I/O的處理儘可能少影響到CPU(也就是說讓別的東西來處理I/O,而讓CPU專心處理多程序併發),此時CPU處理多道程序可以與I/O操作併發,即通過CPU操作與外設傳輸在時間上的重疊減少CPU時間的浪費,並提高了系統的效率。實現CPU操作與外設傳輸在時間上的重疊必須有中斷和通道技術支持,其原因如下:
(1) 通道是一種控制一臺或多臺外部設備的硬件機構,它一旦被啓動就獨立與CPU運行,因而做到了輸入輸出操作與CPU並行工作。但早期CPU與通道的聯絡方法是由CPU向通道發出詢問指令來了解通道工作是否完成(中間過程還是需要CPU參與)。若未完成,則主機就循環詢問直到通道工作結束爲止。因此,這種詢問方式是無法真正做到CPU與I/O設備並行工作的。
(2) 在硬件上引入了中斷技術。所謂中斷,就是在輸入輸出結束時,或硬件發生某種故障時,由相應硬件(即中斷機構)向CPU發出信號(解決了上面的問題:通道工作完成時由中斷向CPU發出信號,而不需要CPU不斷髮信號給通道去詢問工作是否完成)。這時CPU立即停下手頭的工作而轉向處理中斷請求,道處理完中斷後再繼續原來手頭的工作。 因此,通道技術和中斷技術結合起來就可實現CPU與I/O設備並行工作,即CPU啓動通道傳輸數據後便去執行其他程序的計算工作,而通道則進行輸入輸出操作;當通道工作結束時,再通過中斷機構向CPU發出中斷請求,CPU則暫停正在執行的操作,對出現的中斷進行處理,處理完後則繼續原來的工作。這樣,就真正做到了CPU與I/O設備並行工作。此時,多道程序的概念才變爲現實。

總而言之,通道 代替了CPU管理I/O的工作,中斷 會在I/O工作完成時通知CPU。



參考資料:
什麼是多道程序設計?多道程序設計的特點是什麼?
爲什麼說直到出現中斷和通道技術後,多道程序概念才變爲有用的?

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