複製鏈接
請複製以下鏈接發送給好友

陷阱指令

鎖定
陷阱指令是處理陷阱的指令。陷阱是指計算機系統在運行中的一種意外事故,例如電源電壓不穩、存儲器檢驗出錯、存儲器校驗出錯、輸入輸出設備出現故障、用户使用了未定義的指令或特權指令等意外情況,使得計算機系統不能正常工作。一旦出現陷阱,計算機應能暫停當前程序的執行,及時轉入故障處理程序進行相應的處理。在一般的計算機中,陷阱指令作為隱含指令不提供給用户使用,只有在出現故障時,才由CPU自動產生並執行。也有一些計算機設置了可供用户使用的陷阱指令 [1] 
中文名
陷阱指令
外文名
trapped instruction
學    科
計算機組成原理
定    義
處理陷阱的指令
有關術語
陷阱
原    因
存儲器檢驗出錯、存儲器校驗出錯

目錄

陷阱指令簡介

計算機指令是規定計算機操作類型及操作數地址的一組二進制代碼。是控制計算機動作的 “命令”。一條機器指令通常分操作碼與操作數兩部分,是一串若干位的二進制代碼。操作碼使計算機產生不同的動作,操作數指明被操作的對象,可以是操作數本身,也可是被操作數在內存中的地址。陷阱指令是處理計算機系統意外中斷的指令 [1]  ,是由於系統調用引起處理機中斷的指令。陷阱指令可以使執行流程從用户態陷入內核並把控制權轉移給操作系統,使得用户程序可以調用內核函數和使用硬件從而獲得操作系統所提供的服務,比如用視頻軟件放一個電影,視頻軟件就發出陷阱使用顯示器和聲卡從而訪問硬件。

陷阱指令陷阱

陷阱是由於某條指令執行或結果出現異常引起的程序控制權自動轉移,譬如非法指令、非法訪問等異常就會引起陷阱。陷阱表中存放有兩類陷阱,一種是硬件陷阱,另一種是由軟件陷阱指令產生的軟件陷阱。陷阱類似異常的進程調用,需中斷現行程序的進程、保留現場並轉到處理程序中去。的陷阱可分為大類精確型陷阱、延遲型陷阱和中斷。精確型陷阱是由於特殊的指令而產生的,它發生在狀態被產生陷阱的指令改變之前。延遲型陷阱也是由於特殊的指令而產生的,它發生在引起陷阱的指令將程序狀態改變之後。狀態的改變可以是由於執行了陷阱產生指令或是其隨後的某條指令。延遲型陷阱在執行完陷阱產生指令之後會執行一條或多條指令,但是延遲型陷阱必須發生在任何一條依賴於陷阱產生指令的指令被執行之前。也就是説,延遲型陷阱不能被延遲到一條與陷阱產生指令可能會改變的寄存器、條件碼或是其他軟件可見狀態相關的指令執行之後。同時除非是浮點異常或協處理器異常,否則延遲型陷阱也不能被延遲到精確性指令之後。中斷既不是精確型陷阱也不是延遲型陷阱。它由處理器核外部的異步事件產生的中斷請求引起 [2] 

陷阱指令原因

程序錯誤是指在軟件運行中因為程序本身有錯誤而造成的功能不正常、死機、數據丟失、非正常中斷等現象。系統程序錯誤是指系統程序本身有錯誤而造成的功能不正常、死機或中斷等現象。有些系統程序錯誤會造成計算機安全隱患,此時叫做系統漏洞。
硬錯誤是由於硬件的損壞或缺陷造成的,因此數據總是不正確的,此類錯誤是無法糾正的;軟錯誤是隨機出現的,例如在內存附近突然出現電子干擾等因素,可能造成內存軟錯誤的出現。操作系統或程序訪問內存地址不在當前物理內存中,而在磁盤上的頁面文件內的情況。
調用特權指令,所謂特權指令,就是在系統態時運行的指令,是關係到系統全局的指令。其對內存空間的訪問範圍基本不受限制,不僅能訪問用户存儲空間,也能訪問系統存儲空間,如啓動各種外部設備、設置系統時鐘時間、關中斷、清主存、修改存儲器管理寄存器、執行停機指令、轉換執行狀態等。特權指令只允許操作系統使用,不允許應用程序使用,否則會引起系統混亂 [3] 

陷阱指令系統調用

系統調用(system call),又稱為系統調用,指運行在用户空間的程序向操作系統內核請求需要更高權限運行的服務。系統調用提供用户程序與操作系統之間的接口。大多數系統交互式操作需求在內核態運行。如設備IO操作或者進程間通信。操作系統的進程空間可分為用户空間和內核空間,它們需要不同的執行權限。其中系統調用運行在內核空間。系統調用和普通庫函數調用非常相似,只是系統調用由操作系統內核提供,運行於內核核心態,而普通的庫函數調用由函數庫或用户自己提供,運行於用户態。
參考資料
  • 1.    張鈞良.計算機組成原理:清華大學出版社,2003
  • 2.    辛明瑞. 面向空間應用的容錯RISC處理器體系結構研究[D].西北工業大學,2006.
  • 3.    湯小丹.計算機操作系統:西安電子科技大學出版社,2007