8259A究竟是做什麼的?

2021-10-20 02:53:11 字數 694 閱讀 3215

這類中斷有兩個特點,第一是數量很多,畢竟有很多外部裝置;第二是它們可以被遮蔽,這樣處理器就像是沒聽見、沒看見一樣,不會對它們進行處理。所以,這類硬體中斷稱為可遮蔽中斷。儘管不處理中斷就會把零件銑壞,但是否允許處理器看見該中斷,是你自己的事,這是處理器賦予你的權利。可遮蔽中斷是通過intr引腳進入處理器內部的, 像nmi一樣, 不可能為每乙個中斷源都提供乙個引腳。而且,處理器每次只能處理乙個中斷。在這種情況下,需要乙個**,來接受外部裝置發出的中斷訊號。還有,多個裝置同時發出中斷請求的機率也是很高的,所以該**的任務還包括對它們進行仲裁,以決定讓它們中的哪乙個優先向處理器提出服務請求。

在個人計算機中,用得最多的中斷**就是8259晶元,它就是通常所說的中斷控制器,從8086處理器開始,它就一直提供著這種服務。即使是現在,在絕大多數單處理器的計算機中,也依然有它的存在。

intel處理器允許256個中斷, 中斷號的範圍是0~255, 8259負責提供其中的15個, 但中斷號並不固定。之所以不固定,是因為當初設計的時候,允許軟體根據自己的需要靈活設定中斷號,以防止發生衝突。該中斷控制器晶元有自己的埠號,可以像訪問其他外部裝置一樣用in和

out指令來改變它的狀態, 包括各引腳的中斷號。正是因為這樣, 它又叫可程式設計中斷控制器(programmable interrupt controller,pic) 。

總結 :乙個用於給不同的中斷劃分優先順序的晶元。

pyc檔案究竟是用來幹什麼的?

project pycache main.cpython 37.pyc main.py run.py那麼有人就有疑問了,pyc檔案到底是用來幹什麼的?今天我們就來給大家解密。我們所看到的pyc檔案,其實是pycodeobject,是python編譯後的結果。當python程式執行時,編譯的結果是儲存...

Bundle 究竟是什麼?

bundle用於場景 在我印象中比較深刻的是,一般用於activity之間傳遞數值,也用於handler傳送訊息,如下 intent intent new intent bundle bundle new bundle bundle.putstring key value intent.putext...

分析EOF究竟是什麼

eof僅僅是一種狀態或者說條件,需要觸發。read呼叫遇到檔案結尾,觸發該條件,結果將返回0。針對eof,對於標準輸入裝置,普通檔案,管道檔案,網路套接字檔案是read如何觸發呢?下面程式將說明 server.c 是socket套接字服務端,目的為了網路套接字檔案是read如何觸發測試用的。serv...