什么是系统调用?

系统调用时操作系统提供给应用程序(编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。

有何作用?

系统中的共享资源都由操作系统统一掌管。

操作系统提供系统调用的功能,用户进程想要使用系统资源的操作(如储存分配,IO操作,文件管理等),只能通过系统调用向操作系统发出请求。

操作系统会对各个请求进行协调管理。

这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

系统调用分类:

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

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

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

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


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

库函数有时将系统调用封装起来,以隐藏系统调用的一些细节,使上层进行系统调用更加方便

普通应用程序可以直接进行系统调用,也可以使用库函数,有的库函数涉及系统调用,有的不涉及。


系统调用背后的过程:

传递系统调用参数->执行陷入指令->执行系统调用相应服务程序(核心态)->返回用户程序

注意:

1、陷入指令时在用户态执行的,执行陷入指令之后立即引发一个内中断,从而CPU进入核心态

2、发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行。

3、陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令


【王道操作系统笔记】系统调用相关推荐

  1. 【王道操作系统笔记】操作系统的概念,功能和目标

    操作系统概念: 控制和管理整个计算机系统的硬件和软件资源,并合理组织调度计算机工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件. 计算机系统 的层次结构: 操 ...

  2. 【王道操作系统笔记】进程的状态与转换

    进程是程序的一次执行,在执行的过程中,有时进程正在被CPU处理,有时需要等待CPU服务,可见,进程的状态是会有变化的. 进程的状态: 运行态:占有CPU,已经在CPU上运行 在单核处理机环境下,每一时 ...

  3. 【王道操作系统笔记】进程定义组成组织方式特征

    进程定义 程序:指令序列 内存中同时放入多道程序,各个程序的代码,运算数据存放的位置不同. 系统在每个程序执行之间,会在内存创建一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代 ...

  4. 【王道操作系统笔记】操作系统的运行机制和体系结构

    指令:CPU能够识别和执行的最基本的命令(加减乘除,内存) 特权指令:不允许用户程序使用,如内存清理指令 非特权指令:如运算指令 CPU如何判断当前是否可以执行特权指令? 两种处理器状态: 用户态(目 ...

  5. 【王道操作系统笔记】操作系统的发展和分类

    重点理解各阶段的优点和缺点.各阶段的主要优点都是解决了上一阶段的主要缺点. 手工操作系统: 主要缺点:用户独占全机,人机速度矛盾导致资源利用率极低. 批处理阶段: 单道批处理系统 引入脱机输入/输出的 ...

  6. 【王道操作系统笔记】操作系统的四个特征

    并发 指两个或多个事件在同一时间间隔发生.这些事件宏观上是同时发生的,微观上是交替发生的. 区别并行:并行指两个或多个事件同一时刻同时发生 操作系统的并发性:计算机系统同时存在着多个运行着的程序 一个 ...

  7. 王道操作系统考研笔记——1.1.6 系统调用

    如果这篇博客对您有用的话,可以给我点个赞吗,这对我很重要,谢谢!❤️ 文章目录 1.1.6 系统调用 1.1.6.1 系统调用和作用 1.1.6.2 系统调用和库函数 1.1.6.3 系统调用背后的过 ...

  8. 《王道操作系统》学习笔记总目录+思维导图

    本篇文章是对<2021王道操作系统>所有知识点的笔记总结归档,虽说是2021年的,但是这些都是最核心的底层基础知识,过多少年都不会有很大的变化,核心都差不多. 我的武功秘籍:note.bi ...

  9. 【王道考研】操作系统 笔记 第一章

    特此鸣谢王道考研 本文参考王道考研的相关课程 若有侵权请联系,立删 其余笔记链接: [王道考研]操作系统笔记 第一章_才疏学浅743的博客-CSDN博客 [王道考研]操作系统 笔记 第二章上 进程调度 ...

最新文章

  1. java 排队任务_android实现排队任务
  2. 事务457——事务的七个传播行为
  3. python语言支持函数式编程_python是函数式语言么
  4. linux php7 安装redis扩展(php7可以使用自测)
  5. 有python基础先学c还是c+-初学者学python好还是c
  6. [MyBatisPlus]MyBatisX插件
  7. kali 切换图形界面_kali Linux 文本图形界面切换遇到的怪问题
  8. C结构和C++结构之间的区别是什么?
  9. 使用jquery为table动态添加行的实现代码
  10. 白话算法:时间复杂度和大O表示法
  11. springboot配置微信公众号获取openid
  12. 一篇文章让小白了解什么是软件测试
  13. 雨点效果——HTML5之特效
  14. 两组的数据平均值合并_数据平均值合并计算 合并计算求平均值
  15. 共享单车背后还隐藏着多少惊天秘密?
  16. 修改数据表之添加主键约束
  17. C语言递归算法——汉诺塔问题(河内塔)
  18. uni-app直播实例|仿抖音小视频|uniapp仿陌陌直播
  19. android app锁屏后定位,如何能让app在锁屏后还继续发送定位请求继续运行程序
  20. 教你剪辑处理分割视频简单的方法

热门文章

  1. memcached +mysql+php 测试例子
  2. HDU1597 find the nth digit【模拟】
  3. HDU2544 最短路【Dijkstra算法】
  4. 【概率证明】—— sum and product rules of probability
  5. TensorFlow 学习(一)—— tf.get_variable() vs tf.Variable(),tf.name_scope() vs tf.variable_scope()
  6. 作为电磁波的 Wi-Fi 信号
  7. 斐波那契数列的量化分析
  8. 使用异或解题 —— 序列中仅出现一次的两个数
  9. #ifdef 的使用
  10. 强悍的 Linux —— 文件解压与解压