操作系统(六)系统调用
1.6 系統調用
在前幾篇文章中曾經提到過系統調用程序接口,并提到系統調用使應用程序請求操作系統服務的唯一方式。下面再來更進一步地學習一下。
目錄
1.6 系統調用
1.6.1 系統調用
1.6.2 系統調用的具體使用場景
1.6.3 系統調用的過程
1.6.1 系統調用
??系統調用:是操作系統提供給應用程序(程序員/編程人員)使用的接口,可以理解為一種可供應用程序調用的特殊函數,應用程序可以通過系統調用來請求獲得操作系統內核的服務。比如說我們使用printf這個標準庫函數的時候其實也使用了系統調用這個功能,那系統調用跟庫函數調用有什么區別呢?
? 其實系統調用是比庫函數調用更加底層的調用,很多庫函數也是需要系統調用的比如“創建新文件”;但是像“取絕對值”這種與底層硬件無關的功能就不涉及系統調用。
? 因為系統調用的出現,并發的程序并不可以隨意地訪問硬件系統,而是由操作系統內核對共享資源進行統一的管理,并向上提供“系統調用” ,用戶進程想要使用打印機這種共享資源,只能通過系統調用向操作系統內核發出請求。內核會對各個請求進行協調處理。
1.6.2 系統調用的具體使用場景
??應用程序通過系統調用請求操作系統的服務。而系統中的各種共享資源都由操作系統內核統一掌管,因此凡是與共享資源有關的操作(如存儲分配、I/O操作、文件管理等),都必須通過系統調用的方式向操作系統內核提出服務請求,由操作系統內核代為完成。這樣可以保證系統的穩定性和安全性,防止用戶進行非法操作。
1.6.3 系統調用的過程
??傳遞系統調用參數-->執行陷入指令(用戶態)-->?執行相應的請求,內核程序處理系統調用(核心態)-->?返回應用程序
??
需要注意的是:
1. 陷入指令是在用戶態執行的,執行陷入指令之后立即引發一個內中斷,使CPU進入核心態。 2. 發出系統調用請求是在用戶態,而對系統調用的相應處理在核心態下進行。總結
以上是生活随笔為你收集整理的操作系统(六)系统调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: O2O休闲零食品类白皮书
- 下一篇: 操作系统(七)进程的概念、组成、特征