一個非常基本的問題。我瞭解到設備驅動程序和中斷服務例程只是一些程序或代碼。無論何時需要他們被執行。執行意味着CPU正在執行指令集ISA以外的某些指令。那麼這是否意味着設備驅動程序和ISR也是機器指令來生成所需的結果?設備驅動程序和中斷服務程序
這些程序究竟如何喜歡設備驅動程序和中斷例程?這樣的程序是否也有數據段,代碼段和堆棧段?
我正在學習x86彙編語言和C。
一個非常基本的問題。我瞭解到設備驅動程序和中斷服務例程只是一些程序或代碼。無論何時需要他們被執行。執行意味着CPU正在執行指令集ISA以外的某些指令。那麼這是否意味着設備驅動程序和ISR也是機器指令來生成所需的結果?設備驅動程序和中斷服務程序
這些程序究竟如何喜歡設備驅動程序和中斷例程?這樣的程序是否也有數據段,代碼段和堆棧段?
我正在學習x86彙編語言和C。
這是一個準確的評估。足夠複雜的設備驅動程序具有數據段,代碼段和堆棧段。
請考慮如何從設備獲取數據。有兩種方式:
根據您的操作系統(或無OS,只是裸機)的設備驅動程序可以是程序,也可以是你的操作系統內核的一個組成部分,...
典型的設備驅動程序會做幾件事情:識別設備,初始化設備,處理來自設備的中斷,處理寫入/讀取/配置設備的請求,...
當然,現代CPU傾向於提供保護功能,允許任意進程訪問設備。因此,設備驅動程序將以高權限級別運行,通常作爲操作系統內核的一部分運行,或者如果用戶空間設備驅動程序將使用內核提供的一些定義良好的界面。
一臺計算機從一個程序運行到另一個程序運行到另一個程序或返回到舊程序,從打開它一直到它關閉的時間。這是否也是如此? – KawaiKx 2011-05-25 15:39:24
@沙拉布:一般來說是。在邊緣情況下,您的主應用程序可以是一個循環中的HLT命令。那麼只有在處理硬件中斷請求時纔會發生實際執行。 – Olaf 2011-05-25 15:43:44
o.k.罰款..所以例程,驅動程序,過程,子程序只是一個指令塊(只有來自ISA)的花哨名稱,執行時會產生所需的結果。除了他們不同的結果之外,他們沒有什麼特別的。我說得對嗎? – KawaiKx 2011-05-25 15:48:01