執行程式控制

執行程式控制

程式控制指令用於控制程式運行的順序和選擇選擇的運行方向。這類指令是指令系統中一組非常重要的指令,它可以使程式具有測試、分析和判斷能力。執行程式控制是指當系統中出現中斷或需要調度時,通過程式控制指令來實現程式控制功能。

基本介紹

  • 中文名:執行程式控制
  • 外文名:executive program control
  • 學科:計算機
  • 定義:通過控制指令來實現程式控制功能
  • 目的:使系統正常運行
  • 領域:計算機系統
定義,程式控制,應用程式控制,中斷處理,

定義

執行程式控制是指通過程式控制指令來實現程式控制功能。在計算機系統有很多地方都需要執行程式控制,例如,記憶體與外存之間的數據傳送;計算機中的中斷處理過程;應用程式執行過程的控制。

程式控制

由於CPU與外部設備的速度不匹配,在早期的計算機系統中,沒有中斷機構,一般採取程式控制方式控制數據傳送。程式控制方式是指在程式控制下進行的數據傳遞方式。在完成外設數據的輸入輸出中,整個輸入輸出過程是在CPU執行程式的控制下完成的。這種方式分為以下兩種情況:
無條件傳送方式
無條件傳送方式是在假定外設已經準備好的情況下,直接利用輸入指令(IN指令)或輸出指令(OUT指令)與外設傳送數據,而不去檢查(查詢)外設的工作狀態。這種傳送方式的優點是控制程式簡單。但它必須是在外設已經準備好的情況下才能使用,否則傳送就會出錯。所以在實際套用中無條件傳送方式使用較少,只用於一些較簡單外設的操作,如對開關信號的輸入,對LED顯示器的輸出等。
在此情況下,外設總是準備好的,它可以無條件地隨時接收CPU發來的輸出數據,也能夠無條件地隨時向CPU提供需要輸入 的數據。
程式查詢傳送方式
程式查詢傳送方式也稱為條件傳送方式。[2]在這種方式下,利用查詢方式進行輸入輸出,就是CPU通過執行程式查詢外設的狀態,判斷外設是否準備好接收數據或準備好了向CPU輸入的數據。根據這種狀態,CPU有針對性地為外設的輸入輸出服務。
一個用戶程式的執行自始至終是在作業系統控制下進行的。一個用戶將他要解決的問題用某一種程式設計語言編寫了一個程式後就將該程式連同對它執行的要求輸入到計算機內,作業系統就根據要求控制這個用戶程式的執行直到結束。作業系統控制用戶的執行主要有以下一些內容:調入相應的編譯程式,將用某種程式設計語言編寫的源程式編譯成計算機可執行的目標程式,分配記憶體儲等資源將程式調入記憶體並啟動,按用戶指定的要求處理執行中出現的各種事件以及與操作員聯繫請示有關意外事件的處理等。
對於程式查詢傳送方式來說,一個數據傳送可由3步完成:
(1)CPU從接口中讀取狀態信息;
(2)CPU檢測狀態字的對應位是否滿足“就緒”條件,如果不滿足,則回到前一步繼續讀取狀態信息;
(3)如果狀態字表明外設已處於“就緒”狀態,則傳送數據。

應用程式控制

應用程式控制功能主要是控制用戶程式的執行。一個用戶將他要解決的問題用某一種程式設計語言編寫成一個程式後就連同對程式的執行的要求輸入到計算機內,作業系統就根據要求控制用戶程式的執行直到結束。作業系統控制用戶程式的執行主要有以下一些內容:調入相應的編譯程式將某種設計語言編寫的源程式編譯成計算機可執行的目標程式,分配記憶體資源將程式調入到記憶體並啟動,按用戶指定的要求處理執行中出現的各種事件以及操作員聯繫的請示有關意外事件的處理等。

中斷處理

喚醒被阻塞的驅動(程式)進程
當中斷處理程式開始執行時,首先去喚醒處於阻塞狀態的驅動(程式)進程。如果是採用了信號量機制,則可通過執行 signal 操作,將處於阻塞狀態的驅動(程式)進程喚醒;在採用信號機制時,將傳送一信號給阻塞進程。
保護被中斷進程的 CPU 環境
通常由硬體自動將處理機狀態字 PSW 和程式計數器(PC)中的內容,保存在中斷保留區(棧)中,然後把被中斷進程的 CPU 現場信息(即包括所有的 CPU 暫存器,如通用暫存器、段暫存器等內容)都壓入中斷棧中,因為在中
執行程式控制
斷處理時可能會用到這些暫存器。圖 給出了一個簡單的保護中斷現場的示意圖。該程式是指令在 N 位置時被中斷的,程式計數器中的內容為 N+1,所有暫存器的內容都被保留在棧中。
轉入相應的設備處理程式
由處理機對各個中斷源進行測試, 以確定引起本次中斷的 I/O 設備, 並傳送一應答信號給發出中斷請求的進程,使之消除該中斷請求信號,然後將相應的設備中斷處理程式的入口地址裝入到程式計數器中,使處理機轉向中斷處理程式。
中斷處理
對於不同的設備,有不同的中斷處理程式。該程式首先從設備控制器中讀出設備狀態,以判別本次中斷是正常完成中斷,還是異常結束中斷。若是前者,中斷程式便進行結束處理;若還有命令,可再向控制器傳送新的命令,進行新一輪的數據傳送。若是異常結束中斷,則根據發生異常的原因做相應的處理。[1]
恢復被中斷進程的現場
當中斷處理完成以後,便可將保存在中斷棧中的被中斷進程的現場信息取出,並裝入到相應的暫存器中, 其中包括該程式下一次要執行的指令的地址 N+1、 處理機狀態字 PSW,以及各通用暫存器和段暫存器的內容。這樣,當處理機再執行本程式時,便從 N+1 處開始,最終返回到被中斷的程式。
執行程式控制
I/O 操作完成後,驅動程式必須檢查本次 I/O 操作中是否發生了錯誤,並向上層軟體報告,最終向調用者報告本次 I/O 的執行情況。除了上述的第 4 步外,其它各步驟對所有 I/O設備都是相同的,因而對於某種作業系統,例如 UNIX 系統,是把這些共同的部分集中起來,形成中斷總控程式。每當要進行中斷處理時,都要首先進入中斷總控程式。而對於第 4 步,則對不同設備須採用不同的設備中斷處理程式繼續執行。圖示出了中斷處理流程。

相關詞條

熱門詞條

聯絡我們