【正文】
ceptions and interrupts are both protected control transfers, which cause the processor to switch from user to kernel mode (CPL=0) without giving the usermode code any opportunity to interfere with the functioning of the kernel or other environments. In Intel39。 中斷 是指某個(gè)事件(例如鍵盤輸入、 I/O傳輸結(jié)束等)發(fā)生時(shí),系統(tǒng)中止現(xiàn)行程序的運(yùn)行、引出處理事件程序?qū)υ撌录M(jìn)行處理, 處理完畢后返回現(xiàn)行程序的下一條指令,繼續(xù)執(zhí)行 。例如,某程序正在執(zhí)行 0200地址的指令被中斷,那么, 0200地址就是斷點(diǎn), 在中斷返回時(shí)就執(zhí)行 0200的下一條指令。 如:訪管中斷 操作系統(tǒng)的結(jié)構(gòu)和硬件支持 —— 中斷及其處理 (3) 按中斷是否可屏蔽 ① 不可屏蔽中斷( NMI) ② 可屏蔽中斷 17 ① 中斷 由處理機(jī)外部事件引起的中斷 ② 俘獲 由處理機(jī)內(nèi)部事件引起的中斷 ③ 中斷與俘獲的例子 ? trap 指令 俘點(diǎn) 溢出 地址 越界 非法 指令 exit fork read ? clock 時(shí)鐘 rk 磁盤 tty 終端 ? 中斷與俘獲 中斷 俘獲 中斷與俘獲示意圖 (4) 按中斷來源分類 操作系統(tǒng)的結(jié)構(gòu)和硬件支持 —— 中斷及其處理 18 繼續(xù)執(zhí)行 中斷進(jìn)入 中斷 返回 中斷信號(hào) 正在執(zhí)行 的程序 中斷處 理程序 中斷概念示意圖 3. 中斷響應(yīng) (中斷進(jìn)入 ) 操作系統(tǒng)的結(jié)構(gòu)和硬件支持 —— 中斷及其處理 19 在中斷的那一時(shí)刻能確保程序繼續(xù)運(yùn)行的有關(guān)信息。 ③ 恢復(fù)現(xiàn)場(chǎng) 操作系統(tǒng)的結(jié)構(gòu)和硬件支持 —— 中斷及其處理 21 指令地址、指令執(zhí)行情況、處理機(jī)狀態(tài)、應(yīng)屏蔽的中斷等。 軟件的中斷處理過程如圖所示。 存儲(chǔ)器 DMA(Direct Memory Access) ? Operation of a DMA transfer Clocks Clock Hardware 時(shí)鐘硬件 實(shí)時(shí)時(shí)鐘( Real Time Clock, RTC) 可編程間隔定時(shí)器( Programmable Interval Timer, PIT) 時(shí)間戳計(jì)數(shù)器( Time Stamp Counter, TSC) 。 只讀存儲(chǔ)器 ROM(Readonly memory): ROM稱為 BIOS,用來存放基本的 I/O程序。 ② 內(nèi)容 ③ 程序狀態(tài)字的例 操作系統(tǒng)的結(jié)構(gòu)和硬件支持 —— 中斷及其處理 22 中斷響應(yīng)是當(dāng)中央處理機(jī)發(fā)現(xiàn)已有中斷請(qǐng)求時(shí),中止現(xiàn)行 程序執(zhí)行,并自動(dòng)引出中斷處理程序的過程。 ② 保護(hù)現(xiàn)場(chǎng) 程序重新運(yùn)行之前,把保留的該程序現(xiàn)場(chǎng)信息從主存中送 至相應(yīng)的指令計(jì)數(shù)器、通用寄存器或一些特殊的寄存器中。 中斷由軟硬件協(xié)同處理 中斷裝置 :指發(fā)現(xiàn)中斷,響應(yīng)中斷的硬件 中斷處理程序 :由軟件來完成 中斷系統(tǒng) = 中斷裝置 + 中斷處理程序 15 2. 中斷類型 (1) 按中斷功能分類 ① 輸入輸出中斷 I/O傳輸結(jié)束或出錯(cuò)中斷 ② 外中斷 時(shí)鐘中斷、操作員控制臺(tái)中斷、通信中斷等 ③ 機(jī)器故障中斷 電源故障、主存取指令錯(cuò)等 ④ 程序性中斷 定點(diǎn)溢出、用戶態(tài)下用核態(tài)指令、非法操作 ⑤ 訪管中斷 對(duì)操作系統(tǒng)提出某種需求時(shí)所發(fā)出的中斷 操作系統(tǒng)的結(jié)構(gòu)和硬件支持 —— 中斷及其處理 16 (2) 按中斷方式分類 ① 強(qiáng)迫性中斷 不是正在運(yùn)行的程序所期待的中斷。 異常和中斷(續(xù)) i386的異常 /中斷表 異常和中斷(續(xù)) V e c t