系统调用的理解

2023-05-16

文章目录

    • 系统调用
      • 什么是系统调用
      • 系统调用的分类
      • 系统调用与库函数的区别

系统调用

什么是系统调用

什么是系统调用?

答:操作系统的接口函数是连接应用软件与操作系统的中间桥梁,系统调用其实就是操作系统提供给应用程序的接口函数,应用程序可以通过这些接口函数来让操作系统执行相关的操作,从而获得操作系统的服务。

系统调用的分类

系统调用(按功能分类):

1.设备管理:完成设备的 请求/释放/启动 等功能

2.文件管理:完成文件的 读/写/创建/删除 等功能

3.进程控制:完成进程的 创建/撤销/阻塞/唤醒 等功能

4.进程通信:完成进程之间的 消息传递/信号传递 等功能

5.内存管理:完成内存的 分配/回收 等功能

系统调用相关处理涉及到对系统资源的管理、对进程的控制,这些功能需要执行一些特权指令才能完成,因此系统调用的相关处理需要在核心态下进行

系统调用与库函数的区别

库函数可以理解成是对系统调用的一层封装,我们把系统调用封装到库函数中,程序员可以通过应用程序调用库函数,然后库函数会进行相关的系统调用,其实也就相当于是程序员可以通过库函数直接系统调用,从而获得操作系统的服务。

一个库函数有可能包含一个系统调用,有可能包含多个系统调用,当然也有可能不包含系统调用;

比如库函数"取绝对值",它就不包含系统调用,而库函数"创建一个新文件",它就包含系统调用。

可以参考下图来理解库函数与系统调用的关系:
库函数与系统调用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统调用的理解 的相关文章

  • Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)

    Qt quick基础2 xff08 包含平移旋转放缩以及qml控件大写开头啊 xff09 目录 Qt quick基础2 xff08 包含平移旋转放缩以及qml控件大写开头啊 xff09 前言简单的平移 旋转和放缩其他元素的一些基本使用qml
  • 虚幻引擎配置物体水面浮力的简便方法

    虚幻引擎配置物体水面浮力的简便方法 目录 虚幻引擎配置物体水面浮力的简便方法前言前期工作配置水面浮力针对一个立方体的水面浮力配置针对船3D模型的水面浮力配置 小结 前言 在使用虚幻引擎配置导入的3D模型时 xff0c 如何快速地将水面浮力配
  • 用栈实现回文字符串的判断

    用栈实现回文字符串的判断 栈是一种后进先出的数据结构 xff0c 它只能在一段进行插入和删除操作 例如一个字符串 34 12321 34 像这种 xff0c 无论正读反读均相同的字符序列 xff0c 就叫做回文字符串 首先 xff0c 我们
  • 安装diffuse 解决dpkg依赖问题

    安装diffuse报错 xff0c 缺少依赖 xff0c 安装地址 flynnsin 64 flynnsin Downloads span class token function sudo span dpkg span class tok
  • 软件工程整理

    软件工程总结 第一章1 软件2 软件工程3 软件工程环境4 三种编程范例 第二章1 软件生存周期2 软件生存周期的主要活动 3 软件过程 第三章1 结构化分析SA2 DFD xff08 数据流 xff09 图3 结构化设计SD xff08
  • TCP客户端增加多线程与TCP服务端增加多线程

    TCP客户端增加多线程 xff08 ps xff1a 仅有代码 xff0c 小伙伴们利用百度 xff0c 冲啊 xff01 xff01 xff01 xff09 span class token comment coding 61 utf 8
  • 梯度下降与矩阵分解

    1 梯度下降 梯度下降属于迭代法的一种 xff0c 所谓迭代法就是不断用变量的旧值得到新值的方法 在求解损失函数最小值的时候 xff0c 可以通过梯度下降法来一步步迭代求出最小化的损失函数和模型参数值 梯度 xff1a 对于一元函数来说 x
  • 求解gcd最大公约数的两种算法

    文章目录 1 更相减损术2 辗转相除法3 两种算法的比较 1 更相减损术 即 xff1a 辗转相减法 是由我国古代 九章算术 提出的一种求解最大公约数 Grand Central Dispatch 的算法 代码示例 xff1a span c
  • 【AWVS】python调AWVS接口 新建扫描并导出扫描报告(一)

    文章目录 前言一 先上完整python代码二 AWVS介绍三 准备工作1 获取 API KEY2 Header 设置1 接口介绍2 python代码 3 屏蔽警告 四 接口验证1 查看Targets扫描队列1 接口介绍2 python代码3
  • Echarts中国地图与世界地图实战

    文章目录 前言一 先上代码1 中国地图2 世界地图 二 图示1 中国地图2 世界地图 二 Echarts简介1 介绍2 实战流程1 引入echarts js2 定义一个图表容器DIV xff0c 定义id 61 xxx3 初始化echart
  • 部署微软的Bringing-Old-Photos-Back-to-Life,实战和踩坑

    在Windows 10上部署 微软的 Bringing Old Photos Back to Life 关于 Bringing Old Photos Back to Life部署的步骤1 下载源代码2 下载组件2 1 下载PyTorch h
  • 【AWVS】python调AWVS接口 新建扫描并导出扫描报告 [自定义扫描报告](三)

    文章目录 前言一 代码二 关键技术2 1 代码2 2 最重要的方法 replace 2 1 1 描述2 1 2 语法2 1 3 参数2 1 4 特别注意 2 3 实现方法2 3 1 修改左上角logo2 3 2 修改文字 三 修改图片的另一
  • 【web】data:image/png;python-base64用法与实现(一)

    文章目录 一 应用场景二 Data URI Scheme三 python base64文件编解码3 1 编码3 1 1 代码3 1 2 输出结果3 1 3 实现步骤 3 2 解码3 2 1 代码 一 应用场景 在html的源码中 xff0c
  • 【python】json.dumps() 与 json.loads() 用法

    文章目录 一 JSON介绍二 Python和Json数据类型的映射三 json load s 与json dump s 区别四 测试4 1 json dumps 4 2 json loads 4 3 json dump 4 4 json l
  • 【信息收集】利用Wappalyzer进行cms指纹识别(十)

    文章目录 一 Wappalyzer介绍二 设计原理三 python实现代码 一 Wappalyzer介绍 Wappalyzer 是一款浏览器插件 xff0c 通过 Wappalyzer 可以识别出网站采用了那种 web 技术 它能够检测出
  • 【word】批量添加图片题注与批量更新图注

    一 批量添加图注 1 选择一张图片插入题注 xff0c 选中题注 xff0c 然后快捷键shift 43 F9切换为域代码 2 CTRL 43 C复制 xff0c 然后CTRL 43 H打开查找和替换对话框 注意只选择 x y 部分 xff
  • 【Ubuntu】Ubuntu20基础配置+go开发配置

    这里写自定义目录标题 1 基础配置1 1 安装ifconfig网络管理工具1 2 初始化root密码1 3 换镜像源1 4 关闭息屏休眠1 5 关闭自动更新 2 开发环境2 1 go2 1 1 建立软件目录并安装软件2 1 2 建立go工作
  • 【git】git的一些基础操作

    文章目录 一 git下载二 git初次操作1 生成公钥2 修改全局用户名和邮箱地址 xff1a 3 本地仓库关联远端仓库4 本地初始化5 将项目上所有的文件添加到本地仓库6 提交到本地仓库7 创建main分支8 推送到main分支9 拉取远
  • 【anaconda】anaconda学习总结

    文章目录 1 anaconda介绍2 anaconda下载3 简单配置3 1 加入环境变量3 2 配置pycharm3 3 换源 4 相关命令 1 anaconda介绍 Anaconda指的是一个开源的Python发行版本 xff0c 其包
  • python项目打包成依赖

    python项目打包成依赖 xff08 可以pip install 安装 xff09 python打包成pip包 用途 xff1a 可以将别人的代码打包成pip包 xff0c 用pip安装到自己的项目中 xff0c 也可以将自己的代码打包

随机推荐