陷阱[計算機術語]

指的是當異常或者中斷髮生時,處理器捕捉到一個執行執行緒,並且將控制權轉移到作業系統中某一個固定地址的機制。

基本介紹

陷阱指的是當異常或者中斷髮生時,處理器捕捉到一個執行執行緒,並且將控制權轉移到作業系統中某一個固定地址的機制。現代作業系統是由中斷驅動的,中斷分為硬體中斷和軟體中斷。而陷阱屬於一種軟體中斷。如果計算機沒有進程要執行,沒有用戶回響請求,作業系統將等待某個事件的發生。而事件總是由中斷或者陷阱引起的。

在“簡單網路管理協定”(SNMP) 中,代理髮送給管理系統的訊息,表示在運行代理的主機上有事件發生

操作方法

大家都知道,現代的CPU都是有優先權概念的,用戶程式運行在低優先權,作業系統運行在高優先權。高優先權的一些指令低優先權無法執行。有一些操作只能由作業系統來執行,用戶想要執行這些操作的時候就要通知作業系統,讓作業系統來執行。用戶態的程式就是用這種方法來通知作業系統的。

具體怎樣做的呢?作業系統會把這些功能編號,比如向一個連線埠寫一個字元的功能調用編號 12,有兩個參數,連線埠號 port 和寫入的字元 bytevalue。我們可以如下實現:

int outb(int port, int bytevalue)

{

__asm mov r0, 12; /* 功能號 */

__asm mov r1, port; /* 參數 port */

__asm mov r2, bytevalue; /* 參數 bytevalue */

__asm trap /* 陷入核心 */

return r0; /* 返回值 */

}

在作業系統的 trap 處理的 handler 裡面,相信大家已經知道怎么辦了。有些敏感的讀者可能已經明白了,原來一部分 C 的庫函式是用這種方法實現的。

相關詞條

熱門詞條

聯絡我們