
【計】 supervisor call instruction
訪管指令(Supervisor Call Instruction,簡稱SVC 或System Call)是計算機操作系統中的核心機制,指用戶程式通過特定指令主動請求操作系統内核(Supervisor)提供服務或資源的一種交互方式。其本質是用戶态(User Mode)向内核态(Kernel Mode)的安全切換橋梁。
中英文術語對照
syscall
指令)。作用機制
用戶程式執行訪管指令時,CPU自動觸發以下流程:
示例:Linux系統中 int 0x80
(x86)或 svc #0
(ARM)指令觸發系統調用。
設計目的
《計算機操作系統(第四版)》(湯小丹等編著)
“訪管指令是一種在用戶程式中使用的、引起處理器從目态(用戶态)轉換到管态(内核态)的特殊指令,用于請求操作系統服務。”
來源:第2章 進程管理,2.3節 中斷與系統調用
IEEE Standard Glossary(IEEE Std 610.12-1990)
“Supervisor call (SVC): An instruction that interrupts the program being executed and passes control to the supervisor so that it can perform a specific service requested by the program.”
來源:IEEE計算機術語标準
ARM Architecture Reference Manual
“TheSVC instruction is used to enter Supervisor mode to request privileged operations or access to system resources from an operating system.”
來源:ARMv8-A架構文檔,Chapter B1.3.3
open
函數 → 觸發 sys_open
系統調用。fork
函數通過訪管指令創建新進程。此機制是操作系統實現“保護環”(Protection Rings)模型的基礎,确保系統穩定性與多任務安全隔離。
訪管指令是操作系統中的關鍵機制,用于用戶程式與系統服務的安全交互。以下是詳細解釋:
1. 定義與作用
訪管指令(Supervisor Call Instruction)是用戶态(目态)下可執行的指令,允許程式主動請求操作系統服務(如文件操作、設備訪問等)。當用戶程式需要執行特權功能時,編譯程式會在目标代碼中插入訪管指令,并設置參數。執行該指令會觸發自願中斷,使CPU從用戶态切換為核心态(管态),由操作系統處理請求。
2. 與特權指令的區别
3. 工作流程
SVC n
,n為服務類型編號);n
,調用對應的系統服務程式;4. 引入原因
用戶程式在目态下無法直接執行特權操作(如硬件訪問)。訪管指令作為“橋梁”,既滿足功能需求,又通過中斷機制隔離用戶與内核,避免非法操作。
示例場景
當程式調用printf()
時,編譯器生成包含訪管指令的代碼,觸發中斷後由操作系統處理輸出請求,完成後返回用戶态繼續執行。
【别人正在浏覽】