0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

中斷的類型和作用是什么

h1654155282.3538 ? 來源:Linux云計(jì)算架構(gòu) ? 作者:Linux云計(jì)算架構(gòu) ? 2020-11-15 10:14 ? 次閱讀

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6609

    瀏覽量

    123026
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    894

    瀏覽量

    41321
收藏 人收藏

    評論

    相關(guān)推薦

    晶振的作用是什么?

    `晶振的作用是什么?在機(jī)電行業(yè)中,有一個(gè)特殊的器件它叫做晶振,可以將它理解為晶體諧振器。其實(shí)它屬于一個(gè)由石英晶體切割制成的引線,其具備一個(gè)非常顯著的功能,那就是在通電的時(shí)候,能夠發(fā)生機(jī)械震蕩,當(dāng)然是
    發(fā)表于 08-08 11:29

    緩沖電路的作用是什么?有什么類型?

    緩沖電路的作用與基本類型緩沖電路的基本結(jié)構(gòu)
    發(fā)表于 04-06 07:03

    單片機(jī)中斷作用是什么?單片機(jī)中斷處理過程是怎樣運(yùn)行的?

    單片機(jī)中斷作用是什么?單片機(jī)中斷處理過程是怎樣運(yùn)行的?中斷優(yōu)先級是什么意思?單片機(jī)中斷響應(yīng)條件有哪些?
    發(fā)表于 07-08 06:21

    static的作用是什么

    文章目錄關(guān)鍵字static的作用是什么?“引用”與指針的區(qū)別是什么?.h頭文件中的ifndef/define/endif 的作用?描述實(shí)時(shí)系統(tǒng)的基本特性全局變量和局部變量在內(nèi)存中是否有區(qū)別?如果有
    發(fā)表于 10-27 06:22

    單片機(jī)中斷作用是什么?處理過程是怎樣的?

    單片機(jī)中斷作用是什么?處理過程是怎樣的?
    發(fā)表于 11-01 07:07

    中斷與函數(shù)調(diào)用的作用是什么?他們之間有什么聯(lián)系區(qū)別?

    中斷與函數(shù)調(diào)用的作用是什么?他們之間有什么聯(lián)系區(qū)別?
    發(fā)表于 11-16 07:37

    STM32F4定時(shí)器中斷作用是什么?

    STM32F4定時(shí)器中斷作用是什么?
    發(fā)表于 11-24 07:50

    C++中的四種類型轉(zhuǎn)換分別是哪些?C++中析構(gòu)函數(shù)的作用是什么

    C++中的四種類型轉(zhuǎn)換分別是哪些?C++中析構(gòu)函數(shù)的作用是什么?在C語言中關(guān)鍵字static主要有何作用
    發(fā)表于 12-24 06:57

    施密特的作用是什么?

    施密特的作用是什么?開漏的作用是什么?
    發(fā)表于 01-20 06:18

    IN4007的作用是什么

    問題:1.IN4007的作用是什么???不是直流電源嗎????(二極管)2.復(fù)位操作????3.開關(guān)這一段是怎么連接的,沒有網(wǎng)絡(luò)標(biāo)號4.為什么一段VCC還搞一個(gè)+5V電源???5.原理圖里面的時(shí)鐘電路在哪里????(那個(gè)YYYYY)6.紅外接外部中斷,使用10K電阻,上拉
    發(fā)表于 01-21 07:51

    定時(shí)器中斷作用是什么?怎樣去使用定時(shí)器中斷

    中斷是什么意思?定時(shí)器中斷作用是什么?怎樣去使用定時(shí)器中斷呢?
    發(fā)表于 01-24 06:52

    中斷相關(guān)寄存器EA的作用是什么

    :CPU的總中斷允許位,EA=1,CPU開放中斷,EA=0,CPU屏蔽所有的中斷申請。EA的作用是使中斷允許形成多級控制。即各
    發(fā)表于 02-18 07:51

    不同類型電抗器的作用是什么

    由于其類型較多并且作用都各不相同,所以在這里從電路原理上來講電抗器可分為兩種大類都有串聯(lián)與并聯(lián),而它們的主要作用就是可實(shí)現(xiàn)限流與濾波。接下來我們就詳細(xì)的講講不同類型電抗器的
    發(fā)表于 06-25 17:51 ?2612次閱讀

    減速器的作用是什么,有哪些類型

    減速器的作用是什么,有哪些類型?
    的頭像 發(fā)表于 09-19 09:02 ?9514次閱讀

    電抗器的作用是什么

    電抗器由于種類多,作用不同,從電路原理上可以分為串聯(lián)和并聯(lián)兩大類,主要作用是實(shí)現(xiàn)限流和濾波。接下來,我們將詳細(xì)討論不同類型電抗器的功能。
    的頭像 發(fā)表于 06-29 15:54 ?7840次閱讀