美文网首页
函数调用与系统调用

函数调用与系统调用

作者: 阿杜me | 来源:发表于2018-07-16 20:15 被阅读0次

系统调用就是通过系统api操作由操作系统统一管理的资源,比如设备、文件、内存、进程、进程间通信。系统调用运行在系统的核心态,需要内核上下文环境

从用户态的函数调用切换到核心态的系统调用,需要通过中断实现,当执行系统调用时,先将参数压入栈寄存器,然后通过中断将控制器交给操作系统,操作系统根据系统调用码查找系统调用表得到相应的访问地址,执行系统调用,将结果返回给用户程序。这过程中需要切换两次上下文,第二次是调用开始时从用户地址空间切换到内核地址空间,第二次时系统调用执行返回时,从内核地址空间切换回用户地址空间。

函数调用 系统调用
运行在用户地址空间 运行在内核地址空间
不需要切换上下文,开销小 需要切换到内核上下文,执行结束后需要切换到用户上下文,开销大

相关文章

  • 函数调用与系统调用

    系统调用就是通过系统api操作由操作系统统一管理的资源,比如设备、文件、内存、进程、进程间通信。系统调用运行在系统...

  • Pintos源码学习进度(8)

    1.系统调用的基本过程 ①调用系统调用相关函数,在系统调用函数中调用syscall,在syscall中会调用i...

  • 第十九天--[Linux系统编程概述]

    学习内容:系统编程概述-系统调用收获: 了解了系统调用的相关概念; 了解了系统调用I/O函数; 了解了系统调用与库...

  • ARM实战前的准备 :

    实战前的准备 strace:跟踪程序调用的系统函数 系统调用号:系统函数的调用标号。例如:grep write /...

  • 6.递归、call、apply的用法

    函数的四种调用模式 函数中的this,调用方式不同,指向不同 this与调用有关,与定义无关 函数调用模式 函数名...

  • python 杂记

    进程 fork()函数Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用...

  • hook系统调用

    hook系统调用,意思是用自己的版本的函数覆盖掉系统的版本。 1. 如何hook系统调用? 我们调用系统调用,基本...

  • linux内核

    系统调用 用户进程与内核进行交互的一组接口; 需要C库支持,通过使用C库定义的函数来访问系统调用 系统调用、中断、...

  • 7章 初始函数

    本章大纲 函数定义与调用 参数与返回值 内置函数 函数的定义与调用 函数的定义 函数的调用 参数与返回值 内置函数...

  • Linux内核编译及添加系统调用

    首先让我们脑补一下什么是系统调用,个人理解系统调用就是调用系统函数(内核状态下的函数)。在linux系统中,用户通...

网友评论

      本文标题:函数调用与系统调用

      本文链接:https://www.haomeiwen.com/subject/ldfipftx.html