中斷方式與輪詢方式比較

來源:互聯網
上載者:User
中斷的基本概念

程式中斷通常簡稱中斷,是指CPU在正常運行程式的過程中,由於預選安排或發生了各種隨機的內部或外來事件,使CPU中斷正在啟動並執行程式,而轉到為相應的服務程式去處理,這個過程稱為程式中斷。

二、80x86微處理器的中斷 80x86微處理器的中斷類型一般分為2類,即由於執行某些指令引起的非強制中斷和由處理器以外其他控制電路發出插斷要求訊號引起的硬中斷。
CPU要從主程式轉入中斷服務程式,必須知道該中斷服務程式的入口地址,即中斷向量。80x86為CPU的PC機共有256個中斷向量。

中斷的一般過程:

主程式只是在裝置A,B,C資料準備就緒時,才去處理A,B
,C,進行資料交換。在速度較慢的外圍裝置準備自己的資料時,CPU照常執行自己的主程式。在這個意義上說,CPU和外圍裝置的一些操作是並行地進行的,因而同串列進行的程式查詢方式相比,電腦系統的效率是大大提高了。如:

實際的中斷過程還要複雜一些,示出了中斷處理過程的詳細流程圖.當CPU執行完—條現行指令時,如果外設向CPU發出插斷要求、那麼CPU在滿足響應條件的情況下,將發出中斷響應訊號,與此同時關閉中斷(“中斷屏蔽”觸發器置“1”),表示CPU不再受理另外—個裝置的中斷。這時、CPU將尋找插斷要求源是哪個裝置。並儲存CPU自己的程式計數器(Pc)的內容.然後,它將轉移到處理該中斷源的中斷服務程式.CPU在儲存現場資訊,裝置(如文換資料)以後.將恢複現場資訊.在這些動作完成以後,開放中斷(“中斷屏蔽”觸發器置‘o”),並返網到原來被中斷的主程式的下一條指令。

(1) 儘管外界插斷要求是隨機的,但CPU只有在當前一條指令執行完畢後,即轉入公操作時才受理裝置的插斷要求,這樣才不致於使當前指令的執行受到幹擾。公操作是指一條指令執行結束後CPU所進行的操作,如中斷處理、直接記憶體傳送、取下條指令等。外界插斷要求訊號通常存放在介面中的中斷源鎖存器裡,並通過插斷要求線連至CPU,每當一條指令執行到末尾,CPU便檢查插斷要求訊號。若插斷要求訊號為“1”,則CPU轉入“
中斷周期”,受理外界中斷。(2)
為了在中斷服務程式執行完畢以後正確地返回到原來主程式被中斷的斷點(PC內容)而繼續執行主程式,必須把程式計數器PC的內容,以及當前指令執行結束後CPU的狀態(包括寄存器的內容和一些狀態標誌位)都儲存到堆棧中去。這些操作叫做儲存現場。(3)
當CPU響應中斷後,正要去執行中斷服務程式時,可能有另一個新的中斷源向它發出插斷要求。為了不致造成混亂,在CPU的中斷管理組件中必須有一個中斷屏蔽觸發器,它可以在程式的控制下置“1”(設定屏蔽),或置“0”(取掉屏蔽)。只有在中斷屏蔽標誌為“0”時,CPU才可以受理中斷。當一條指令執行完畢CPU接受插斷要求並作出響應時,它一方面發出中斷響應訊號INTA,另一方面把中斷屏蔽標誌置“1”,即關閉中斷。這樣,CPU不能再受理另外的新的中斷源發來的插斷要求。只有在CPU把中斷服務程式執行完畢以後,它才重新使中斷屏蔽標誌置“0”,即開放中斷,並返回主程式。因此,中斷服務程式的最後必須有兩條指令,即開中斷指令和返主指令,同時在硬體上要保證返主指令執行以後才受理新的插斷要求。(4)
中斷處理過程是由硬體和軟體結合來完成的。如在前圖中,中斷周期由硬體實現,而中斷服務程式由機器指令序列實現。後者除執行儲存現場、恢複現場、開放中斷並返回主程式任務外,對要求中斷的裝置進行服務,使其同CPU交換一個字的資料,或作其他服務。

輪詢方式的基本概念

輪詢(Polling)I/O方式或程式控制I/O方式,是讓CPU以一定的周期按次序查詢每一個外設,看它是否有資料輸入或輸出的要求,若有,則進行相應的輸入/輸出服務;若無,或I/O處理完畢柏,CPU就接著查詢下一個外設。

所需硬體:外設介面提供狀態連接埠、資料連接埠

軟體機制:應用程式必須定時查詢各個介面的狀態連接埠,判斷是否需要輸入、輸出資料,如果需要,則通過資料連接埠進行資料操作。

特點:CPU通過執行指令主動對外部裝置進行查詢,外部裝置處於被動地位。

為一般過程。

輪詢方式與中斷方式的比較速度

程式控制方式:

硬體的速度指標:由於“程式控制方式”完全採用軟體的方式對外設介面進行控制,所以它的硬體操作只是普通的連接埠讀寫,並無特別之處,其速度指標由匯流排傳輸速度、連接埠的響應速度共同決定。

對於這種外設控制方式,速度指標關鍵在於軟體。

中斷處理方式:

中斷處理方式本身所作的原子操作解釋和程式控制方式是一致的。

只不過因為加入了插斷要求和響應機制,對狀態連接埠的讀取變成了在中斷響應過程中對中斷號的讀取,對狀態連接埠的判斷變成了對中斷入口地址的確定。

從本質上來說,中斷處理方式和程式控制方式本身的速度指標一致,沒有大的差別。

可靠性

程式控制方式:

由於硬體不支援中斷方式,因此作業系統把CPU控制權交給應用程式後,只要應用程式不交還CPU控制權,作業系統就始終不能恢複對CPU的控制(無定時中斷)。應用程式與作業系統都是軟體模組,作業系統屬於核心模組,它們之間存在交接CPU控制權的關係。正是由於這樣的關係,一旦使用對外設的“程式控制方式”時,應用程式出現死結,則作業系統永遠無法恢複對系統的控制。應用程式的故障通過外設控制方式波及到作為核心模組的作業系統,因此,根據關聯可靠性指標的計算可知,“程式控制方式”的關聯可靠性指標很低。

中斷處理方式:

由於提供定時中斷,作業系統可以在應用程式目前時間片結束後通過中斷服務程式重新獲得對CPU的控制權。應用程式的故障不會波及到作業系統,因此,中斷處理方式的關聯可靠性指標高。

可擴充性

程式控制方式:

由於所有應用程式中都包含對連接埠的操作,一旦硬體介面的設計發生變化,則所有應用程式都必須進行修改,這會使修改費用升高很多倍。因此,程式控制方式會使相關硬體模組的局部修改指標相對較低。

中斷處理方式:

應用程式不直接操作連接埠,對連接埠的操作是由中斷服務程式來完成的。如果某個硬體介面的設計發生了變化,只需要修改它相關的中斷服務程式即可。因此,中斷處理方式使得相關硬體模組的局部修改指標較高。

生命期

“程式控制方式”(CPU查詢方式)在早期的電腦系統中能夠滿足應用需求;但是隨著外部裝置種類的增多、速度差異的加大,這種方式逐漸成為系統效能提高的障礙。它的生命期只限於早期電腦階段,因為當時外部裝置少,且都是低速裝置,到8位機出現以後,這種外設控制方式(體繫結構)被淘汰。

“中斷處理方式”(外設請求方式)能夠協調CPU與外設間的速度差異,能夠協調各種外設間的速度差異,提高系統的工作效率(速度指標)。使應用程式與外設操作基本脫離開來,降低了程式的裝置相關性(關聯可靠性指標、局部修改指標)。雖然目前某些快速裝置相互間的通訊沒有通過CPU,也沒有使用中斷處理方式,但是對於慢速裝置、裝置故障的處理來說,中斷處理方式仍然是最有效。無論將來電腦系統中的元件怎樣變化,只要存在慢速裝置與快速CPU之間的矛盾,使用中斷處理方式都是適合的。即便不使用中斷服務程式,中斷的概念也會保持很久。在短時期內,電腦系統還無法在所有領域離開人工互動操作,人的操作速度一定比機器的處理速度慢,因此慢速裝置將仍然保持存在(但這不是慢速裝置存在的唯一原因)。正因為存在這樣的需求,中斷處理方式具有較長的生命期。

原文地址:http://shaodasheng10.blog.163.com/blog/static/487310642008316102834928/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.