1.中斷的概念
中斷對于操作系統(tǒng)非常重要,它就好像機(jī)器中的齒輪,驅(qū)動(dòng)各部件的動(dòng)作。所以,許多人稱操作系統(tǒng)是由“中斷驅(qū)動(dòng)”的。
所謂中斷是指CPU對系統(tǒng)發(fā)生的某個(gè)事件做出的一種反應(yīng),它使CPU暫停正在執(zhí)行的程序,保留現(xiàn)場后自動(dòng)執(zhí)行相應(yīng)的處理程序,處理該事件后,如被中斷進(jìn)程的優(yōu)先級最高,則返回?cái)帱c(diǎn)繼續(xù)執(zhí)行被“打斷”的程序。
引起中斷的事件或發(fā)出中斷請求的來源稱為中斷源。中斷源向CPU提出的處理請求稱為中斷請求。發(fā)生中斷時(shí),被打斷程序的暫停點(diǎn)稱為斷點(diǎn)。
前面講過,中斷最初是作為通道(或設(shè)備)與CPU之間進(jìn)行通信的工具。通道和CPU并行工作,各自負(fù)責(zé)自己的任務(wù)。當(dāng)通道完成某項(xiàng)預(yù)定的I/O請求或數(shù)據(jù)傳輸過程中發(fā)生故障時(shí),就用中斷方式向CPU“報(bào)告情況”,請求處理。
中斷的概念后來得到進(jìn)一步擴(kuò)展。在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,不僅通道或設(shè)備控制器可向CPU發(fā)送中斷信號,其他部件也可以造成中斷。例如,程序在CPU上運(yùn)行時(shí)出現(xiàn)運(yùn)算溢出、取數(shù)時(shí)奇偶錯(cuò)、電源故障、時(shí)鐘計(jì)數(shù)到時(shí)等,都可成為中斷源。
中斷概念的另一個(gè)發(fā)展是訪管(即訪問管理)指令(或系統(tǒng)調(diào)用)的使用。用戶程序中可以使用操作系統(tǒng)對外界提供的系統(tǒng)調(diào)用,得到系統(tǒng)內(nèi)部服務(wù)。當(dāng)用戶程序執(zhí)行到系統(tǒng)調(diào)用時(shí),進(jìn)程狀態(tài)從用戶態(tài)變?yōu)楹诵膽B(tài)。核心根據(jù)系統(tǒng)調(diào)用的編號,轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,如對文件的讀/寫、對進(jìn)程的控制等。硬件保證用戶態(tài)下運(yùn)行的程序不得訪問核心空間中的數(shù)據(jù),從而保護(hù)了操作系統(tǒng)。系統(tǒng)調(diào)用的出現(xiàn)為用戶編制程序提供了方便和可靠性保證。
2.中斷類型
按功能劃分
這種分類法類似于IBM360/370系統(tǒng)的分類法,所有中斷源分為5類。
(1)機(jī)器故障中斷。它是機(jī)器發(fā)生錯(cuò)誤時(shí)產(chǎn)生的中斷,用來反映硬件在執(zhí)行過程中出現(xiàn)的故障,以便進(jìn)入診斷程序,做出處理。例如,機(jī)器電路檢驗(yàn)錯(cuò)、電源故障和內(nèi)存讀數(shù)錯(cuò),等等。
(2)I/O中斷。這是來自通道或各種外部設(shè)備的中斷,用于反映通道或設(shè)備的工作情況。例如,打印機(jī)打印結(jié)束、磁盤傳輸完成、利用終端進(jìn)行輸入/輸出等。
(3)外部中斷。它是來自計(jì)算機(jī)系統(tǒng)外部裝置的中斷,用來反映外界對本系統(tǒng)的要求。例如,計(jì)時(shí)器到時(shí)溢出,操作員操縱控制臺按鈕,在多機(jī)系統(tǒng)中它機(jī)送來信號,等等。
(4)程序性中斷。這是因錯(cuò)誤地使用指令或數(shù)據(jù)而引起的中斷,用于反映程序執(zhí)行過程中發(fā)現(xiàn)的例外情況,例如,非法操作碼,無效地址和運(yùn)算溢出,等等。
(5)訪管中斷。由于執(zhí)行“訪問管理程序”指令而產(chǎn)生的中斷,用來使CPU的狀態(tài)從用戶態(tài)轉(zhuǎn)入管理態(tài),由操作系統(tǒng)根據(jù)不同的編號引進(jìn)不同的處理。這樣,操作系統(tǒng)為用戶態(tài)程序提供對系統(tǒng)資源使用請求的服務(wù)。
按產(chǎn)生中斷的方式劃分
(1)強(qiáng)迫中斷。在程序運(yùn)行過程中,發(fā)生某些(個(gè))隨機(jī)性事件,如外設(shè)工作結(jié)束和程序運(yùn)行出錯(cuò)等,需要及時(shí)進(jìn)行處理的一種中斷。程序設(shè)計(jì)人員在編制程序時(shí)并不知道它何時(shí)出現(xiàn),也并不期望它出現(xiàn)。上述按功能劃分的機(jī)器故障中斷、I/O中斷、外部中斷和程序性中斷都可算做強(qiáng)迫中斷。
(2)自愿中斷。程序員在編制程序時(shí)因需要系統(tǒng)提供某些服務(wù)而有意使用訪管指令或系統(tǒng)調(diào)用,從而導(dǎo)致執(zhí)行程序的中斷。這是程序員事先安排好的,其出現(xiàn)時(shí)機(jī)是可知的。上述按功能劃分的訪管中斷就屬于這一類。
按中斷事件來源劃分
目前,很多小型機(jī)系統(tǒng)和微型機(jī)系統(tǒng)都采用這種分類方式。
(1)中斷。它是由CPU以外的事件引起的,如I/O中斷、時(shí)鐘中斷、控制臺中斷等。利用中斷實(shí)現(xiàn)設(shè)備與CPU的通信。中斷是異步的,因?yàn)閺倪壿嬌现v,中斷的產(chǎn)生與當(dāng)前正在執(zhí)行的進(jìn)程無關(guān)。
(2)異常(Exception)。它是來自CPU內(nèi)部的事件或程序執(zhí)行中的事件引起的過程。如CPU本身故障(電源電壓低于105V,或頻率在47~63Hz之外)、程序故障(非法操作碼、地址越界、浮點(diǎn)溢出等)和請求系統(tǒng)服務(wù)的指令(即訪管指令)引起的事件等??梢姡惓0ê芏喾矫?,主要有出錯(cuò)、陷入和可編程異常。出錯(cuò)和陷入之間最重要的區(qū)別是處理完異常事件返回時(shí),出錯(cuò)事件會重新執(zhí)行導(dǎo)致異常的那條指令,如缺頁故障處理完之后還會嘗試重新執(zhí)行那條觸發(fā)異常的指令(通常不會再缺頁);而陷入事件則不會重新執(zhí)行那條指令。陷入主要用于程序調(diào)試,被調(diào)試的進(jìn)程遇到用戶設(shè)置的斷點(diǎn)會停下來等待你的處理,當(dāng)你讓它重新運(yùn)行時(shí),它就執(zhí)行下面的指令。
可編程異常是由于用戶在C程序中使用了系統(tǒng)調(diào)用而引發(fā)的過程。系統(tǒng)調(diào)用也稱軟件中斷(或陷入)。應(yīng)用程序使用系統(tǒng)調(diào)用就可由用戶模式轉(zhuǎn)入核心模式,在核心模式下完成相應(yīng)的服務(wù)之后再返回用戶模式。所以系統(tǒng)調(diào)用是用戶程序與內(nèi)核的接口。硬件對可編程異常的處理與對陷入的處理是一致的,即從這類異常返回時(shí),也返回產(chǎn)生異常的下一條指令。
3.中斷系統(tǒng)的作用
中斷系統(tǒng)是當(dāng)代計(jì)算機(jī)必不可少的組成部分之一。中斷系統(tǒng)的作用主要有以下5點(diǎn)。
(1)提高主機(jī)的利用率,使高速CPU可以和低速的外部設(shè)備并行工作。
(2)及時(shí)進(jìn)行事故處理。當(dāng)計(jì)算機(jī)發(fā)生硬件故障或出現(xiàn)程序性錯(cuò)誤(如運(yùn)算結(jié)果溢出、除數(shù)為0、地址錯(cuò)、非法操作碼等)時(shí),可以通過中斷系統(tǒng)進(jìn)行處理。操作系統(tǒng)通過程序復(fù)執(zhí)來排除偶然性錯(cuò)誤,或?qū)⒐收吓c錯(cuò)誤記錄下來,為故障診斷和機(jī)器恢復(fù)做好準(zhǔn)備。
(3)實(shí)現(xiàn)分時(shí)操作。如前所述,在分時(shí)系統(tǒng)中正在運(yùn)行的進(jìn)程用完所分到的時(shí)間片后,就要讓出CPU,排到相應(yīng)的就緒隊(duì)列中。在這里,依靠定時(shí)時(shí)鐘對時(shí)間片進(jìn)行計(jì)時(shí),到達(dá)預(yù)定值時(shí)就產(chǎn)生時(shí)鐘中斷,調(diào)用進(jìn)程調(diào)度程序進(jìn)行相應(yīng)處理。就是說,通過中斷系統(tǒng)將CPU的時(shí)間分配給各個(gè)進(jìn)程使用。
(4)實(shí)現(xiàn)實(shí)時(shí)操作。在實(shí)時(shí)控制系統(tǒng)中,很多信號是隨機(jī)產(chǎn)生的,只有通過中斷系統(tǒng)才能對它進(jìn)行及時(shí)處理,避免信息的丟失。
(5)方便程序調(diào)試。利用中斷可以方便地調(diào)試程序,可人為設(shè)置斷點(diǎn),隨時(shí)中斷程序的執(zhí)行,查看中間結(jié)果,了解機(jī)器的工作狀態(tài),輸入臨時(shí)命令等。
責(zé)任編輯人:CC
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6609瀏覽量
123026 -
中斷
+關(guān)注
關(guān)注
5文章
894瀏覽量
41321
發(fā)布評論請先 登錄
相關(guān)推薦
評論