-
陷阱指令
鎖定
- 中文名
- 陷阱指令
- 外文名
- trapped instruction
- 學 科
- 計算機組成原理
- 定 義
- 處理陷阱的指令
- 有關術語
- 陷阱
- 原 因
- 存儲器檢驗出錯、存儲器校驗出錯
陷阱指令簡介
計算機指令是規定計算機操作類型及操作數地址的一組二進制代碼。是控制計算機動作的 “命令”。一條機器指令通常分操作碼與操作數兩部分,是一串若干位的二進制代碼。操作碼使計算機產生不同的動作,操作數指明被操作的對象,可以是操作數本身,也可是被操作數在內存中的地址。陷阱指令是處理計算機系統意外中斷的指令
[1]
,是由於系統調用引起處理機中斷的指令。陷阱指令可以使執行流程從用户態陷入內核並把控制權轉移給操作系統,使得用户程序可以調用內核函數和使用硬件從而獲得操作系統所提供的服務,比如用視頻軟件放一個電影,視頻軟件就發出陷阱使用顯示器和聲卡從而訪問硬件。
陷阱指令陷阱
陷阱是由於某條指令執行或結果出現異常引起的程序控制權自動轉移,譬如非法指令、非法訪問等異常就會引起陷阱。陷阱表中存放有兩類陷阱,一種是硬件陷阱,另一種是由軟件陷阱指令產生的軟件陷阱。陷阱類似異常的進程調用,需中斷現行程序的進程、保留現場並轉到處理程序中去。的陷阱可分為大類精確型陷阱、延遲型陷阱和中斷。精確型陷阱是由於特殊的指令而產生的,它發生在狀態被產生陷阱的指令改變之前。延遲型陷阱也是由於特殊的指令而產生的,它發生在引起陷阱的指令將程序狀態改變之後。狀態的改變可以是由於執行了陷阱產生指令或是其隨後的某條指令。延遲型陷阱在執行完陷阱產生指令之後會執行一條或多條指令,但是延遲型陷阱必須發生在任何一條依賴於陷阱產生指令的指令被執行之前。也就是説,延遲型陷阱不能被延遲到一條與陷阱產生指令可能會改變的寄存器、條件碼或是其他軟件可見狀態相關的指令執行之後。同時除非是浮點異常或協處理器異常,否則延遲型陷阱也不能被延遲到精確性指令之後。中斷既不是精確型陷阱也不是延遲型陷阱。它由處理器核外部的異步事件產生的中斷請求引起
[2]
。
陷阱指令原因
程序錯誤是指在軟件運行中因為程序本身有錯誤而造成的功能不正常、死機、數據丟失、非正常中斷等現象。系統程序錯誤是指系統程序本身有錯誤而造成的功能不正常、死機或中斷等現象。有些系統程序錯誤會造成計算機安全隱患,此時叫做系統漏洞。
硬錯誤是由於硬件的損壞或缺陷造成的,因此數據總是不正確的,此類錯誤是無法糾正的;軟錯誤是隨機出現的,例如在內存附近突然出現電子干擾等因素,可能造成內存軟錯誤的出現。操作系統或程序訪問內存地址不在當前物理內存中,而在磁盤上的頁面文件內的情況。
調用特權指令,所謂特權指令,就是在系統態時運行的指令,是關係到系統全局的指令。其對內存空間的訪問範圍基本不受限制,不僅能訪問用户存儲空間,也能訪問系統存儲空間,如啓動各種外部設備、設置系統時鐘時間、關中斷、清主存、修改存儲器管理寄存器、執行停機指令、轉換執行狀態等。特權指令只允許操作系統使用,不允許應用程序使用,否則會引起系統混亂
[3]
。