陷阱(計算機術語)

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

基本介紹

  • 中文名:陷阱
  • 外文名:trap 
  • 類型:軟體中斷
  • 緣由: 出錯或者用戶程式
  • 其他意義:主要是指某些錯誤
基本介紹,操作方法,

基本介紹

陷阱指的是當異常或者中斷髮生時,處理器捕捉到一個執行執行緒,並且將控制權轉移到作業系統中某一個固定地址的機制。現代作業系統是由中斷驅動的,中斷分為硬體中斷和軟體中斷。而陷阱屬於一種軟體中斷。如果計算機沒有進程要執行,沒有用戶回響請求,作業系統將等待某個事件的發生。而事件總是由中斷或者陷阱引起的。
在“簡單網路管理協定”(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 的庫函式是用這種方法實現的。

相關詞條

熱門詞條

聯絡我們