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