系统调用和函数调用的区别
Posted tianzeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统调用和函数调用的区别相关的知识,希望对你有一定的参考价值。
系统调用
操作系统服务的编程接口
通常由高级语言编写(C或C++)
程序访问通常通过高层次 的API接口(C标准库的库函数)而不是直接进行系统调用
每个系统调用对应一个系统调用编号
系统调用与函数调用的区别
系统调用
1.使用INT和IRET指令,内核和应用程序使用的是不同的堆栈,因此存在堆栈的切换,从用户态切换到内核态,从而可以使用特权指令操控设备
2.依赖于内核,不保证移植性
3.在用户空间和内核上下文环境间切换,开销较大
4. 是操作系统的一个入口点
函数调用
1.使用CALL和RET指令,调用时没有堆栈切换
2.平台移植性好
3.属于过程调用,调用开销较小
4.一个普通功能函数的调用
以上是关于系统调用和函数调用的区别的主要内容,如果未能解决你的问题,请参考以下文章