码迷,mamicode.com
首页 > 其他好文 > 详细

系统调用和函数调用的区别

时间:2018-09-23 15:11:58      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:调用   堆栈切换   空间   int   语言   函数调用   系统服务   的区别   内核和   

系统调用

  操作系统服务的编程接口

  通常由高级语言编写(C或C++)

  程序访问通常通过高层次 的API接口(C标准库的库函数)而不是直接进行系统调用

  每个系统调用对应一个系统调用编号

系统调用与函数调用的区别

系统调用

  1.使用INT和IRET指令,内核和应用程序使用的是不同的堆栈,因此存在堆栈的切换,从用户态切换到内核态,从而可以使用特权指令操控设备

  2.依赖于内核,不保证移植性

  3.在用户空间和内核上下文环境间切换,开销较大

  4. 是操作系统的一个入口点

函数调用

  1.使用CALL和RET指令,调用时没有堆栈切换

  2.平台移植性好

  3.属于过程调用,调用开销较小

  4.一个普通功能函数的调用

系统调用和函数调用的区别

标签:调用   堆栈切换   空间   int   语言   函数调用   系统服务   的区别   内核和   

原文地址:https://www.cnblogs.com/tianzeng/p/9692418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!