田永紅
摘要:在現(xiàn)代計算機系統(tǒng)中,中斷系統(tǒng)不只是I/O系統(tǒng),也是整個計算機系統(tǒng)必不可少的重要組成部分。中斷響應的次序是固定的,中斷處理的次序可以與之保持一致,也可通過修改屏蔽字來靈活地改變,文章針對三種典型的問題,提出解決思路和方法,闡述利用中斷屏蔽技術修改中斷優(yōu)先級。
關鍵詞:中斷級屏蔽位;中斷響應;中斷處理
中圖分類號:TP316文獻標識碼:A文章編號:1006-8937(2011)22-0015-02
當CPU與外設交換信息時,如果采用查詢的方式,則CPU要浪費很多時間去等待外設,為了解決快速CPU與慢速外設之間的矛盾,一方面提高外設的工作速度,另一方面發(fā)展了中斷的概念。中斷概念的出現(xiàn),是計算機系統(tǒng)結(jié)構(gòu)設計中的一個重大變革。中斷是指CPU終止正在執(zhí)行的程序,轉(zhuǎn)去處理隨機提出的請求,待處理完后,再回到原先被打斷的程序繼續(xù)恢復執(zhí)行的過程。響應和處理各種中斷的軟、硬件總體稱為中斷系統(tǒng)。中斷系統(tǒng)是整個計算機系統(tǒng)必不可少的重要組成部分。它對程序的監(jiān)視和跟蹤、人機聯(lián)系、故障處理、多道程序和分時處理、實時處理、目態(tài)程序和操作系統(tǒng)的聯(lián)系、I/O處理以及多處理機系統(tǒng)中各機的聯(lián)系等都起著重要的作用。中斷響應的次序是固定的,中斷處理的次序可以與之保持一致,也可通過修改屏蔽字來靈活地改變,文章針對三種典型的問題,提出解決思路和方法,闡述利用中斷屏蔽技術修改中斷優(yōu)先級。
1確定中斷屏蔽字
引起中斷的各種事件稱為中斷源。在中、大型計算機系統(tǒng)中,中斷源個數(shù)多達幾十甚至幾百個,為每個中斷源單獨形成入口,顯然很困難,也沒有這種必要,為簡化中斷處理程序入口地址形成硬件,將中斷源歸成幾類,每一類中各中斷源性質(zhì)比較接近,對每一類給定一個中斷處理程序入口,再由軟件轉(zhuǎn)入對相應的中斷源進行處理。中斷的特點是具有隨機性,常常會同時發(fā)生多個中斷請求,為解決這個問題,需要根據(jù)中斷的性質(zhì)、緊迫性、重要性以及軟件處理的方便性把中斷分成不同的級別,按照優(yōu)先次序進行響應和處理。在現(xiàn)代計算機系統(tǒng)中,中斷優(yōu)先級一般是由硬件的排隊器實現(xiàn)的,因此,當有多個中斷源同時請求中斷服務時,中斷響應次序的高低是固定死的。處理機在執(zhí)行某一個級別的中斷源的中斷服務程序時,較之同級的或低級的中斷請求不能中斷其處理,只有較之高級的中斷請求可以中斷其處理。為了能由操作系統(tǒng)靈活改變實際的中斷處理次序,設置了中斷級屏蔽位寄存器,以決定某級中斷請求能否進入中斷響應排隊器,只有能進入排隊器的中斷請求,才有機會得到響應,從而就可改變中斷實際處理完的次序,PSW中包含有中斷級屏蔽位字段。因此,引出了第一種典型的問題:給定中斷響應次序和希望的中斷處理次序,怎么確定各級中斷的屏蔽字,方法是:某級中斷的屏蔽字中,自身及處理次序較之低的各級中斷需要屏蔽。需要特別注意的是,有關中斷級屏蔽位“0”、“1”是屏蔽還是“開放”中斷,不同機器有著不同的定義,不要將“0”、“1”的含義搞反了?,F(xiàn)舉例說明,假設機器有5級中斷,中斷響應優(yōu)先次序為1→2→3→4→5,令“0”對應于屏蔽,“1”對應于開放,若希望中斷處理次序也為1→2→3→4→5,則只需將各級中斷處理程序的中斷級屏蔽位設置成如表1所示的即可。
若希望其實際的中斷處理次序為1→4→5→2→3,則只需將各級中斷處理程序的中斷級屏蔽位設置成如表2所示的即可。
2確定中斷處理次序
第二種典型的問題是:給定中斷響應次序和各級中斷的屏蔽字,判斷出實際的中斷處理次序,方法是:中斷屏蔽字中全部都屏蔽的中斷處理次序是最優(yōu)先的,只屏蔽自身的中斷處理次序是最靠后的,任何一級中斷的處理次序處于其中斷屏蔽字中被屏蔽的各級中斷之前和處于未被屏蔽的各級中斷之后。例如可以根據(jù)表2中級屏蔽位的設置,首先判斷出1的處理次序是最優(yōu)先的,3的處理次序是最靠后的,而在2的屏蔽字中,4和5是未被屏蔽的,因此,2的處理次序應在4和5之后,在4的屏蔽字中,5是被屏蔽的,因此,4的處理次序應在5之前,所以,實際的處理次序是1→4→5→2→3。
3CPU程序運行過程圖
中斷的實質(zhì)是程序的切換,通過畫出CPU程序運行過程圖可以比較直觀地了解程序的切換過程,因此,第三種典型的問題是:給定中斷響應次序,各級中斷的處理次序和不同時刻中斷請求情況,要求畫出CPU的程序運行過程圖,要點如下:
①縱向為時間軸,橫向依次為中斷請求,用戶程序,1級中斷處理程序,2級中斷處理程序……。
②用戶程序運行時,其現(xiàn)行PSW的中斷級屏蔽位為全部開放,不能屏蔽任何中斷請求,也就是說所有的中斷請求都能進入排隊器排隊,按中斷響應次序,進入其中級別最高的中斷處理程序執(zhí)行。
③進入某級中斷處理程序后,按照中斷處理次序,中斷屏蔽字被設成該級中斷應有的狀態(tài),如果此時還有未響應的中斷請求且未被屏蔽,則轉(zhuǎn)入到其中最高級的中斷處理程序執(zhí)行。表現(xiàn)在程序運行過程圖上就是經(jīng)過一個短暫的停留后,隨即轉(zhuǎn)入到處理次序高的程序執(zhí)行。正在執(zhí)行某級中斷處理程序時,若有新的中斷請求且未被屏蔽,則轉(zhuǎn)入到其中最高級的中斷處理程序執(zhí)行。
④任何中斷處理程序執(zhí)行完畢后,要返回到被其中斷的程序執(zhí)行。
需要特別注意的是,一旦轉(zhuǎn)入到任何程序執(zhí)行,中斷屏蔽字隨之改變。針對上面所舉的例子,假設在運行用戶程序時,同時出現(xiàn)第2、4級中斷請求,而在處理第2級中斷未完成時,又同時出現(xiàn)第1、3、5級請求,則根據(jù)上面的要點,畫出中斷處理次序為1→4→5→2→3的程序運行過程示意圖如圖1所示。
在圖1中,短橫線為交換PSW的時間段。通過這個圖,可以看出,中斷處理次序是由中斷請求,中斷屏蔽和中斷響應次序三方面綜合決定的。
4結(jié)語
本文闡述了中斷響應的次序是由中斷響應排隊器硬件確定的固定次序,而中斷處理的次序可以與之保持一致,也可通過修改屏蔽字來靈活改變。
參考文獻:
[1] 李學干.計算機系統(tǒng)結(jié)構(gòu)[M].西安:西安電子科技大學出版社,2006.
[2] 鄭緯民,湯志忠.計算機系統(tǒng)結(jié)構(gòu)[M].北京:清華大學出版社,1998.
[3] 李學干.《計算機系統(tǒng)結(jié)構(gòu)》學習指導與題解[M].西安:西安電子科技大學出版社,2001.