日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【OS学习笔记】十一 实模式:中断-软中断和硬中断基本原理

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【OS学习笔记】十一 实模式:中断-软中断和硬中断基本原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一篇文章我們模擬操作系統的加載器程序,使用匯編語言實現了一個程序加載器:點擊鏈接查看上一篇文章:程序加載器的實現原理

本篇文章,是實模式學習的結尾。在經過了那么多坎坷,終于學完了8086的實模式!!!最重要的是本篇文章沒有匯編代碼,只講原理~~ 今天的內容比較簡單,學習一下中斷的原理-包括硬中斷和軟中斷。主要理解以下內容:

  • 硬中斷的工作原理
  • 軟中斷的工作原理
  • 中斷向量表

1、硬中斷

硬中斷一般是外部硬件中斷-就是從處理器外部來的中斷信號。

當外部設備發生錯誤或者有數據要傳送時,或者處理器交給它的任務處理完了,它都會向處理器發送信號,高速處理器。

如下圖,外部硬件中斷是通過兩個信號線引入處理器內部的。這兩根線的名字恩別叫做NMI和INTR

當一個中斷發生時,處理器將會通過中斷引腳NMI和INTR得到通知。除此之外,處理器還需要知道發生了什么,以便采取適當的處理措施。

每種類型的中斷都被統一編號,這稱為中斷類型號、中斷向量或者中斷號。

1.1 非屏蔽中斷(不可屏蔽中斷)

NMI接收的是不可屏蔽中斷。

不可屏蔽中斷的中斷號統一為2(因為所有不可屏蔽中斷都幾乎是致命的無法解決,所以處理器干脆不處理的,統一將他們的中斷號令為2,處理器接收到2號中斷時直接放棄繼續正常工作,也不會試圖糾正已經發生的錯誤。)。

1.2 可屏蔽中斷

和NMI不同,INTR一般接收的是可屏蔽中斷。大多數的中斷也是可屏蔽中斷。

INTR接收可屏蔽中斷。

Intel處理器允許有256個中斷。中斷號是0~255。如下圖是一個中斷控制器,它管理傳送來的中斷信號,決定是否將中斷傳送給CPU。

以上兩個8259芯片負責15個中斷號的管理。注意這里為什么是15個而不是256個呢?其實是每次它管理的中斷號不一樣的,這一次可能管理的是10-25號,下次可能管理的是其他的號。

那么在哪里屏蔽中斷或者不屏蔽中斷呢?實際上有兩個位置,一個是8259內部,一個是處理器內部。

**8259內部:**在8259內部有一個中斷屏蔽寄存器,這是個8位寄存器,對應著該芯片的8個輸入引腳,對應的位是0還是1決定了該引腳輸入的中斷是否能通過8259芯片。0表示允許 1表示阻斷

**處理器內部:**除了要看8259內部,最終還要看處理器。處理器內部的標志寄存器FLAGS有一個標志IF。這是中斷標志。當IF為0時所有從INTR來的中斷都被忽略。當IF為1時處理器可以接收和相應中斷。

1.3、實模式下中斷向量表

所謂中斷處理,就是處理器要執行一段與該中斷有關系的程序(指令)。處理器可以識別256個中斷,那么理論上就需要256個中斷程序。

這些程序的實際位置并不重要,重要的是,在實模式中,處理器要求將它們的入口點(還記得程序的入口點么?不記得話看上一篇文章)集中存放到內存中的從物理地址0x00000處(0x0000:0x0000)到0x003ff處(0x0000:0x03ff)。共1KB的內存空間。這就是所謂的中斷向量表。

如下圖是實模式下的中斷向量表:

中斷信號來自哪個引腳,8259芯片是最清楚的,所以他會把相應的中斷號告訴處理器,處理器拿著這個中斷號,要順序做以下幾件事:

  • 保護斷點的現場

    • 首先將FLAGS寄存器壓棧,然后清楚它的IF位(防止在中斷的時候被打斷,如果想要有嵌套中斷,可以在編寫中斷處理程序時適時使用sti指令開放中斷)
    • 然后依次將CS于IP寄存器壓棧
  • 執行中斷處理程序

    • 由于處理器已經拿到了中斷號,它用中斷號乘以4(見上圖)就得到了該中斷的入口點的偏移地址和段地址
    • 接著將得到的段地址與偏移地址傳送給CS和IP
  • 返回到斷點接著執行

    • 所有中斷的程序的最后是一條iret指令。這將導致處理器一次從棧中彈出IP CS FLAGS的原始內容,于是轉到主程序繼續執行
    • 由于中斷處理程序返回時已經將FLAGS內容恢復,所以IF標志位也恢復。也就是說可以接收新的中斷

2、軟中斷

和硬件中斷不同,軟中斷是處理器內部產生的。是由執行指令引起的。

軟中斷是由int指令引起的。這類中斷不需要中斷識別總線周期,中斷號在指令中給出。

更詳細的內容,可以見我另一篇博客:中斷的概念與意義

3、總結

今天學會了以下內容:

  • 硬中斷
  • 軟中斷
  • 中斷向量表的概念與意義

筆記記得不是很全,如果有不懂的可以加我聯系方式一起交流。

學習探討加個人:
qq:1126137994
微信:liu1126137994

總結

以上是生活随笔為你收集整理的【OS学习笔记】十一 实模式:中断-软中断和硬中断基本原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。