• 库调用 系统调用


    系统调用产生中断。也有函数调用部分。在内核空间执行。调用了系统内核的服务,引起从用户到内核再到用户的 两次上下文切换(保存现场恢复现场)。慢。

    库调用是函数调用。在用户空间执行。调用了库里的一段程序,是过程调用(没有保存恢复)。快。

    ※函数库调用 VS 系统调用

    函数库调用

    系统调用

    在所有的ANSI C编译器版本中,C库函数是相同的

    各个操作系统的系统调用是不同的

    它调用函数库中的一段程序(或函数)

    它调用系统内核的服务

    与用户程序相联系

    是操作系统的一个入口点

    在用户地址空间执行

    在内核地址空间执行

    它的运行时间属于“用户时间”

    它的运行时间属于“系统”时间

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

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

    在C函数库libc中有大约300个函数

    在UNIX中大约有90个系统调用

    典型的C函数库调用:system fprintf malloc

    典型的系统调用:chdir fork write brk;

    库函数调用通常比行内展开的代码慢,因为它需要付出函数调用的开销。但系统调用比库函数调用还要慢很多,因为它需要把上下文环境切换到内核模式。
  • 相关阅读:
    B-Tree和B+Tree的区别
    b树和hash树的应用场景
    比较顺序表和链表的优缺点,说说它们分别在什么场景下使用?
    5V与3.3V电平互转
    100M双绞线接头的标准接法
    解决openwrt中文界面异常
    刚刚开通了博客
    openwrt挂载摄像头及视频保存
    mwan3多wan叠加成功
    贝尔金(Belkin)7231-4P tftp救砖
  • 原文地址:https://www.cnblogs.com/flowerslip/p/5998178.html
Copyright © 2020-2023  润新知