Windows中斷編程

來源:互聯網
上載者:User

一、前 言

Windows提供強大的功能以及友好的圖形化使用者介面(GUI),使得它不僅廣泛的用作管理事務型工作的支援平台,也被工業領域的工程人員所關注。

但Windows3.1並非基於優先順序來調度任務,無法立即響應外來事件中斷,也就不能滿足工業應用環境中即時事件處理和即時控制應用的要求。因此,如何在Windows環境中處理外部即時事件一直是技術人員尤其是即時領域工程人員所關注的問題。目前已有的方法大都採用內掛即時多任務核心的方式,如windows的即時控制軟體包FLX等,而iRMX即時作業系統則把Windows3.1當作它的一個任務來運行。對於大型的工程項目,開發人員可採用購買即時軟體然後整合方式。對中小項目,從投資上考慮就不很經濟。如何尋找一種簡明的方法來處理外部即時事件依然顯得很必要。

本文首先闡述windows的訊息機制及中斷機制,然後結合DPMI介面,給出一種保護模式下中斷程式的設計方法,以處理外部即時事件。經實際運行結果表明,該方法具有簡潔、實用、可靠的特點,並同樣可運行於Win95。

二、Windows的訊息機制

Windows是一訊息驅動式系統,。 Windows訊息提供了應用程式與應用程式之間、應用程式與Windows系統之間進行通訊的於段。應用程式要實現的功能由訊息來觸發,並靠對訊息的響應和處理來完成。

Windows系統中有兩種訊息佇列,一種是系統訊息佇列,另一種是應用程式訊息佇列。電腦的所有輸入裝置由 Windows監控,當一個事件發生時,windows先將輸入的訊息放入系統訊息佇列中,然後再將輸入的訊息拷貝到相應的應用程式隊列中”應用程式中的訊息迴圈從它的訊息佇列中檢索每一個訊息並發送給相應的視窗函數中。一個事件的發生,到達處理它的視窗函數必須經曆上述過程。值得注意的是訊息的非搶先性,即不論事件的急與緩,總是按到達的先後排隊(一些系統訊息除外),這就使得一些外部即時事件可能得不到及時的處理。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.