1. 程式人生 > >系統呼叫和函式呼叫的區別

系統呼叫和函式呼叫的區別

系統呼叫

作業系統服務的程式設計介面
通常由高階語言編寫(C或C++)
程式訪問通常通過高層次 的API介面(C標準庫的庫函式)而不是直接進行系統呼叫
每個系統呼叫對應一個系統呼叫編號

系統呼叫與函式呼叫的區別

系統呼叫
1.使用INT和IRET指令,核心和應用程式使用的是不同的堆疊,因此存在堆疊的切換,從使用者態切換到核心態,從而可以使用特權指令操控裝置
2.依賴於核心,不保證移植性
3.在使用者空間和核心上下文環境間切換,開銷較大
4. 是作業系統的一個入口點
函式呼叫
1.使用CALL和RET指令,呼叫時沒有堆疊切換
2.平臺移植性好
3.屬於過程呼叫,呼叫開銷較小
4.一個普通功能函式的呼叫