




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2025/4/1812.2 中斷技術
主要內容:2.2.1中斷概念2.2.2中斷源分類2.2.3中斷和異常的響應及服務2.2.4中斷事件處理2.2.5中斷優先級和多重中斷2025/4/1822.2.1中斷的概念目的:請求系統服務,實現并行工作,處理突發事件,滿足實時要求,都需要打斷處理器正常的工作過程:中斷是指程序執行過程中,當發生某個事件時,中止CPU上現行程序的運行,引出處理該事件的程序執行的過程實現方式:在提供中斷裝置的計算機系統中,在每兩條指令之間或某些特殊指令執行期間都檢查是否有中斷事件發生,若無則立即執行下一條或繼續執行,否則響應該事件并轉去處理中斷事件
中斷的概念(續)中斷源是引起中斷的事件中斷裝置是發現中斷源并產生中斷的硬件中斷機制的共性:當中斷事件發生后,它能改變處理器內操作執行的順序可見中斷是現代操作系統實現并發性的基礎之一2025/4/183中斷的概念(續)中斷的作用主機與外部設備并行工作實現實時處理硬件故障處理實現多道程序和分時操作2025/4/1842025/4/1852.2.2中斷源分類1、按中斷事件的性質和激活方式劃分自愿性中斷強迫性中斷2、中斷事件的來源和實現手段劃分硬中斷軟中斷2025/4/186自愿性中斷事件自愿性中斷事件是正在運行的程序所期待的事件比如請求分配外設請求I/O這種事件是由于執行了一條訪管指令而引起的,它表示正在運行的程序對操作系統有某種需求,一旦機器執行到一條訪管指令時,便自愿停止現行程序的執行而轉入訪管中斷處理程序處理強迫性中斷事件強迫性中斷事件不是正在運行的程序所期待的,而是由于隨機發生的某種事故或外部請求信息所引起的這類中斷事件大致有:機器故障中斷事件:如電源故障、主存儲器出錯等程序性中斷事件(異常):定點溢出、除數為0、地址越界等外部中斷事件:如時鐘的定時中斷、控制臺發控制信息等輸入輸出中斷事件:如設備出錯、傳輸結束等2025/4/1872025/4/188中斷源分類(續)運行程序中斷處理程序中斷裝置中斷處理程序中斷裝置機器故障中斷事件程序性中斷事件外部中斷事件輸入輸出中斷事件運行程序訪管指令兩類中斷事件
硬中斷硬中斷外中斷內中斷2025/4/1892025/4/1810外中斷外中斷(又稱中斷)指來自處理器和主存之外的中斷外中斷包括:電源故障中斷時鐘中斷控制臺中斷它機中斷I/O中斷等不同的中斷具有不同的中斷優先級,處理高一級中斷時,往往會屏蔽部分或全部低級中斷內中斷內中斷(又稱異常)指來自處理器和主存內部的中斷通常是由程序執行過程中,發現與當前指令關聯的、不正常的或錯誤的事件異常(內中斷)是不能被屏蔽的,一旦出現應立即響應并加以處理2025/4/1811內中斷(續)內中斷通常分為三類:訪管中斷:系統調用硬件故障中斷:協處理器錯誤奇偶校驗錯總線超時程序性異常:非法操作碼地址越界頁面失效調試指令除數為0浮點溢出2025/4/18122025/4/1813中斷和異常的區別中斷和異常的區別如下:中斷是由與現行指令無關的中斷信號觸發的(異步的)系統不能確定中斷事件的發生時間中斷與CPU是異步的CPU對中斷的響應完全是被動的中斷的發生于CPU模式無關通常在兩條指令之間才能響應中斷通常中斷處理程序所提供的服務不是當前進程所需要的時鐘中斷硬盤中斷2025/4/1814中斷和異常的區別中斷和異常的區別如下(續):異常是由處理器控制單元產生,源于現行程序執行指令過程中檢測到例外異常與CPU是同步的一條指令執行期間允許響應異常,而且允許多次響應異常大部分異常發生在用戶態異常處理程序提供的服務是為當前進程所用的異常處理過程中可能會產生中斷,但中斷處理過程中不會產生異常異常包括很多方面,比如在Linux中,分為四類:故障(fault)陷阱(trap)終止(Abort)編程異常(Programmedexception)2025/4/1815中斷和異常的區別Linux中使用的部分異常除法溢出錯:0號,故障(fault)調試異常:1號,故障或陷阱斷點中斷:3號,陷阱算術溢出:4號,陷阱邊界異常:5號,故障無效操作:6號,故障設備不可用:7號,故障雙異常:8號,故障協處理器段溢出:9號,故障任務狀態段異常:10號,故障段不存在:11號,故障堆棧溢出:12號,故障一般性保護:13號,故障頁故障:14號,故障浮點數錯:16號,故障邊界異常:17號,故障各種異常的區別編程異常用于實現系統調用故障是指程序運行中系統捕獲的潛在不可恢復的錯誤頁面故障終止是指致命的不可恢復的錯誤主存芯片發生奇偶校驗錯誤通常不會返回原來的程序而轉向內核例程有時甚至需要重新啟動計算機系統陷阱是在執行特定的調試指令時觸發的被調試的進程遇到所設置的斷點時會暫停等待2025/4/1816中斷源分類(續)IBM中大型機操作系統使用了上述第一種分類方法Intelx86機上則采用了上述第二種分類方法2025/4/1817軟中斷軟中斷:不必由硬件發信號而能引發的中斷稱軟中斷軟中斷是利用硬件中斷的概念,用軟件方式進行模擬,實現宏觀上的異步執行效果2025/4/1818軟中斷(續)軟中斷信號:信號的發送者相當于中斷源,信號的接收者是另一個進程軟件中斷Linux中bottomhalfWindows中由內核發出的Dispatch/DPC和APC等中斷2025/4/1819硬中斷與軟中斷的類比中斷用于外部設備對CPU的中斷,轉向中斷處理程序執行異常因指令執行不正確而中斷,轉向異常處理程序執行信號用于內核或進程對某個進程的重點,向進程同時某個特定事件發生或迫使進程執行信號處理程序2025/4/1820中斷機制與信號機制的類比相同之處:兩者在概念上是一致的兩者都是異步的兩者在實現上均采用“向量表”兩者均有“屏蔽”設施不同之處:前者由硬件和軟件結合來實現后者則完全靠軟件來實現中斷向量表和中斷處理程序均位于系統空間信號處理程序往往由應用程序提供,并在用戶空間執行2025/4/18212025/4/18222.2.3中斷和異常的響應及服務中斷裝置:發現中斷源并產生中斷的硬件,這些硬件包括中斷邏輯線路中斷寄存器所有計算機系統都采用硬件和軟件(硬件中斷裝置和軟件中斷處理程序)結合的方法實現中斷處理2025/4/1823中斷和異常的響應及服務(續)無論任何中斷CPU的響應過程基本上是一致的:執行完當前指令或者是執行當前指令的中途根據中斷源所提供的“中斷向量”,找到相應服務程序的入口地址并調用此服務程序中斷向量由硬件或操作系統內核預先分配和設置系統調用所對用的向量在訪管指令中給出各種異常的向量在CPU的硬件結構中預先規定2025/4/1824中斷和異常的響應及服務(續)CPU如何區分中斷和異常:對于中斷,指令執行結束后CPU會檢查中斷寄存器是否有中斷事件發生若無或者中斷被屏蔽,繼續執行程序的后續指令若有則暫停當前程序的執行,轉向內核的中斷處理程序對于異常,它是在執行指令時由指令本身發生的,指令的實現或執行邏輯一旦發生異常情況,立即轉向內核的異常處理程序中斷和異常的響應及服務(續)中斷/異常的響應需要做四件事發現中斷源,響應中斷請求保護現場將運行程序中斷點在處理器中某些寄存器內的現場信息(又稱運行程序的執行上下文)存放于內存儲器啟動處理中斷事件的程序恢復現場2025/4/18252025/4/1826中斷和異常的響應及服務(續)中斷寄存器用來記錄中斷事件,中斷寄存器的內容稱中斷字,中斷字的每一位對應一個中斷事件。每當一條機器指令執行結束的時刻,中斷控制部件掃描中斷字,查看是否有中斷事件發生,若有則處理器便響應這個中斷請求中斷發生后,中斷字的相應位會被置位。由于同一時刻可能有多個中斷事件發生,中斷裝置將根據中斷屏蔽要求和中斷優先級選取一個,然后把中斷寄存器的內容送入程序狀態字寄存器的中斷碼字段,且把中斷寄存器相應位清“0”
中斷和異常的響應及服務(續)被中斷的程序的程序狀態字稱為舊程序狀態字,中斷處理程序的程序狀態字稱為新程序狀態字,如何實現新舊程序狀態字的交換?通常,系統為每一種中斷都開辟了主存的固定單元存放新的和舊的程序狀態字2025/4/18272025/4/1828在IBMPC機上,通常在計算機內存的低地址處開辟了一個稱為中斷向量表的區域,表中每一項稱為一個中斷向量,其中存放了一個中斷處理程序的入口地址及相關信息當發現中斷源并響應中斷時,中斷裝置將把先行PSW內容壓進堆棧,接著再把指令指針IP和代碼段基地址內容也壓入堆棧,這樣就保存了原運行程序的狀態處理器根據硬件中斷裝置提供的中斷向量號,獲得被接受的中斷請求的中斷向量地址,再按照中斷向量地址把中斷處理程序的PSW送入現行程序狀態字寄存器,加載新的程序狀態字返回原程序時,把棧頂內容送入現行IP、CS和PSW中
中斷和異常的響應及服務(續)2025/4/1829外中斷舊PSW訪管中斷舊PSW程序中斷舊PSW機器故障中斷舊PSWI/O中斷舊PSW外中斷新PSW訪管中斷新PSW程序中斷新PSW機器故障中斷新PSWI/O中斷新PSW18202830385860687078現行PSW②中斷時保存舊的PSW③中斷時裝入新的PSW④中斷后恢復PSW主存專用雙字單元(16進制)①裝配中斷碼IBM中大型機中斷響應過程2025/4/1830IPCSPSW現行PSW寄存器新IP新CS老IP老CS老PSW新棧頂主存新PSW中斷向量表中斷堆棧IBMPC機中斷的響應過程2025/4/18312.2.4中斷事件處理1.中斷和異常的一般處理過程2.硬件故障中斷3.程序性中斷4.I/O中斷5.訪管中斷6.時鐘中斷中斷和異常的一般處理過程內核處理所有中斷的大致過程:
設備發出中斷請求時,中斷信號由設備發送到中斷控制器中斷控制器將IRQ號轉換成中斷向量號并傳送給CPUCPU響應中斷后,自動保護現場,開始執行中斷處理程序進入中斷公共代碼段對中斷控制器進行確認,設置中斷源狀態等調用服務程序執行相關的中斷處理任務恢復發生中斷之前的現場2025/4/1832中斷和異常的一般處理過程(續)內核處理所有異常的大致過程:
當前進程執行指令產生異常進入異常處理程序并執行之從異常處理程序返回有些異常的處理很復雜頁面故障異常2025/4/1833中斷和異常的一般處理過程(續)中斷和異常的處理過程大致一樣,但是:產生異常時,硬件并不清除中斷標志位,此時還允許外部硬件中斷產生中斷時,硬件將立即清除中斷標志位,以禁止其他硬件中斷2025/4/18342025/4/1835硬件故障中斷硬件故障中斷事件的處理
這種事件是由硬件故障產生的,排除故障須進行人工干預中斷處理能做的工作是:保護現場防止故障蔓延報告給操作員并提供故障信息以便維修和校正對程序中所造成的破壞進行估價和恢復程序性中斷程序性中斷事件的處理應用程序的錯誤一般有以下幾類:語法錯誤,可由編譯程序發現并報錯邏輯錯誤,可由測試程序發現并報錯程序運行過程中所產生的異常定點溢出階碼下溢除數為零2025/4/18362025/4/1837I/O中斷I/O中斷處理原則:
I/O操作正常結束I/O操作發生故障I/O操作發生異常設備報到或設備結束2025/4/1838訪管中斷訪管中斷是由程序執行訪管指令引起的:
表示當前運行程序對操作系統功能的調用可看作是機器指令的一種擴充包括操作碼和訪管參數兩部分操作碼表示此指令為訪管指令訪管參數表示具體的訪管要求2025/4/1839訪管中斷(續)訪管中斷的大致處理原則:
程序執行訪管指令,并通過適當方式指名系統調用號通過中斷機制進入訪管中斷處理程序,現場保護到核心棧通過系統調用入口表找到相應功能服務程序的入口地址執行相應的服務程序,正常情況下載結束后返回系統調用的下一條指令繼續執行時鐘中斷時鐘是操作系統進行調度工作的重要工具:維護系統的絕對日期和時間分時進程按時間片輪轉實時進程定時發送或接收控制信號系統定時喚醒或阻塞進程對用戶進程記帳測量系統性能等利用定時器能夠確保操作系統在必要時獲得控制權陷入死循環的進程最終會因時間片耗盡而被迫讓出處理器2025/4/1840時鐘中斷時鐘可以分為絕對時鐘系統設置絕對時鐘寄存器,定時地把該寄存器的內容加1。如果開始時這個寄存器的內容為0,那么,只要操作員告訴系統開機時的年、月、日、時、分、秒,以后就可推算出當前的年、月、日、時、分、秒計算當前時間時,只要按時鐘中斷的次數和絕對時鐘寄存器的內容推算就可得到間隔時鐘間隔時鐘是定時將一個間隔時鐘寄存器的內容減1,當間隔時鐘寄存器的內容為0時,產生一個間隔時鐘中斷,起到鬧鐘的作用,意味著預定的時間到了。操作系統經常利用間隔時鐘作控制調度2025/4/18412025/4/1842時鐘中斷(續)在Intel
x86/Pentium微機中,Linux利用CMOS中記錄的時間作為系統啟動時的基準時間Linux系統時間的測量基準是jiffies(瞬時)(一個全局變量)。系統啟動時,CMOS中記錄的時間轉化從1970年1月1日0時0分0秒(UNIX紀元)算起的jiffies值(累積秒數)時鐘中斷(續)Linux中兩種類型系統定時器:老的定時器機制和新的定時器機制,兩種定時器都有對應的處理例程,必須在到達給定的系統時間時被進程調用?老的定時器機制:有一個32個指針的數組定義的定時器。每個指針指向一個timer-struct結構,timer-active是活動定時器掩碼?新的定時器機制:突破了32個定時器的限制,使用一個timer-list數據結構的鏈表,按定時器到期時間的升序排列2025/4/18432025/4/1844時鐘中斷(續)兩類定時器中expires給出該定時器被激活的時間,*fn()指出定時器被激活后的處理函數。兩類定時器都使用jiffies值作為到期比較時間。例如,某個定時器要在2s之后到期,則必須將2s轉換成對應的jiffies值,加上當前的系統時間(也是以jiffies為單位)后,得到的便是該定時器到期的系統時間expires
定時器bottom
half處理過程處理兩種類型的系統定時器。對于老的系統定時器,檢查timer-active中被置位的位掩碼,以便確定活動的定時器。如果一個活動的定時器到期,便調用對應的定時器例程,timer-active對應位被清除。對于新的系統定時器,檢查鏈表中的timer-list數據結構,每個到期的定時器將被從鏈表中移出,對應的定時器例程被調用2.2.5中斷優先級和多重中斷1.中斷的優先級中斷是隨機發生的,在計算機的每一瞬間,都可能有多個中斷事件發生中斷裝置如何響應這些同時發生的中斷哪?通常設置中斷優先級緊迫程度相當的歸為同一級別緊迫程度差別大的歸為不同級別2025/4/1845中斷的優先級(續)中斷優先級:按中斷請求的輕重緩急的程度預定的順序稱為中斷的優先級優先順序原則:根據某個中斷源或中斷級若得不到及時響應,造成計算機出錯的嚴重性程度來定中斷的優先級是預先排定的中斷優先級的實現由軟硬件結合:硬件:根據排定的優先次序做一個硬件鏈式排定器,當有高一級的中斷事件產生時,封住比它優先級低的所有中斷源軟件:編寫一個查詢程序,依據優先級次序自高到低進行查詢2025/4/1846中斷的優先級(續)設置優先級的重要性:如果系統正在處理某優先級的中斷服務程序更高優先級的中斷可以打斷當前的中斷比如機器故障中斷優先級最高設備中斷事件優先級可以降低同樣是設備,高速設備的優先級高于低速設備的優先級2025/4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綠蓮蓬創意畫課件
- 我的學校繪畫課件
- 經濟法概論考試高效復習寶典試題及答案
- 創意斑馬美術課件
- 酒店餐飲服務質量試卷
- 4S店新車銷售和售后維修合同
- 經濟師考試復習指導手冊試題及答案
- 眼睛管理知識培訓課件
- 語言學語法結構分析試卷
- 行政管理專科公共關系案例分析題目及試題及答案
- 2024年山東職業學院高職單招語文歷年參考題庫含答案解析
- 2024認定實際施工人法律風險防范與合同完善服務合同3篇
- 2025年度會計人員繼續教育會計法律法規答題活動測試100題答案
- 農貿批發市場管理制度(3篇)
- 2022年新高考全國Ⅱ卷英語高考真題試卷(含詳解)
- 《糖尿病監測及意義》課件
- 4.1.2-元素周期表-課件 高一上學期化學人教版(2019)必修第一冊
- 跨學科實踐活動5基于碳中和理念設計低碳行動方案(教學課件)九年級化學上冊(人教版2024)
- 舞蹈演出編導排練合同模板
- 【MOOC】遙感原理與應用-西北大學 中國大學慕課MOOC答案
- 2.1 電和我們的生活 教案
評論
0/150
提交評論