6 系統呼叫

2021-10-12 11:47:10 字數 1097 閱讀 8546

系統呼叫

如果使用者程式可以隨意的訪問共享資源,那麼便有可能造成不可預知的錯誤。作業系統提供「系統呼叫」功能,使用者程序想要使用印表機這種共享資源,只能通過系統呼叫向作業系統發出請求。作業系統會對各個請求進行協調管理。

概念和作用

「系統呼叫」是作業系統提供給應用程式(程式設計師/程式設計人員)使用的介面,可以理解為一種可**用程式呼叫的特殊函式,應用程式可以發出系統呼叫請求來獲得作業系統的服務。

應用程式通過系統呼叫請求作業系統的服務。系統中的各種共享資源都由作業系統統一掌管,因此在使用者程式中,凡是與資源有關的操作(如儲存分配、/o操作、檔案管理等),都必須通過系統呼叫的方式向作業系統提出服務請求,由作業系統代為完成。這樣可以保證系統的穩定性和安全性,防止使用者進行非法操作。

分類

應用程式是可以通過組合語言直接使用系統呼叫介面的,現在的軟體工程開發幾乎都使用的是高階語言,會直接去呼叫庫函式,而庫函式底層也是封裝了系統呼叫,對使用者來說底層實現細節是透明的

高階語言通過編譯形成組合語言,作業系統相關系統呼叫程式根據使用者提供的引數進行系統呼叫的處理

注意:1.陷入指令是在使用者態執行的,執行陷入指令之後立即引發乙個內中斷,從而cpu進入核心態

2.發出系統呼叫請求是在使用者態,而對系統呼叫的相應處理在核心態下進行

3.陷入指令是唯一乙個只能在使用者態執行,而不可在核心態執行的指令 2

比如linux之下的系統呼叫號:

換言之,核心態既可以執行特權指令又可以執行非特權指令,但核心態唯一不能執行的非特權指令就是陷入指令 ↩︎

Linux系統程式設計6 常見的系統呼叫

介紹系統呼叫前,介紹乙個標頭檔案unistd.h unistd.h為linux unix系統中內建標頭檔案,包含了許多系統呼叫的函式原型,例如read函式 write函式和getpid函式等。系統呼叫主要分為6大類 1 程序控制 fork 建立乙個新程序 2 檔案系統控制 3 系統控制 4 記憶體管...

read系統呼叫,mmap系統呼叫

read系統呼叫,mmap系統呼叫 2012 07 23 09 54 28 分類 linux 標籤 linux 檔案系統 虛擬記憶體 儲存系統 字型大小 訂閱 一般情況下,操作檔案既可以使用標準i o,也可直接使用系統呼叫。兩者有何區別呢?在輸入輸出中,直接使用底層的系統呼叫效率是非常低的,為什麼?...

庫呼叫,系統呼叫

通過這個問題,可以判斷候選人是否具有豐富的程式設計經驗以及是否具有找出這類問題答案的敏銳感覺。簡明的回答是 函式庫呼叫是語言或應用程式的一部分,而系統呼叫是作業系統 的一部分。你要確保弄懂 trap 自陷 這個關鍵字的含義。系統呼叫是在作業系統核心發現乙個 trap 或中斷後進行的。函式庫呼叫 vs...