当前位置: 首页 > news >正文

操作系统——6.系统调用

目录

1.概述

2.系统调用的定义和作用

2.1 定义

2.2 功能

2.3 分类

3.系统调用和库函数的区别

4.系统调用背后的过程

5.小结 


1.概述

这篇文章我们主要来介绍一下操作系统中的系统调用,下面来看一下具体的框架图:

2.系统调用的定义和作用

2.1 定义

知识点回顾:

定义:

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

2.2 功能

 为什么要有系统调用?

解决方法: 

操作系统提供系统调用功能,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统发出请求,操作系统会对各个请求进行协调管理。

功能:

应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一管理,因此在操作系统中,凡是与资源有关的操作(如存储分配,I/O操作,文件管理等),都必须由系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证操作系统的稳定性和安全性,防止用户进行非法操作。

2.3 分类

3.系统调用和库函数的区别

有些应用程序是可以直接进行系统调用的,但是许多应用程序是用高级语言写的,比如java,python等,这些语言会先封装一些库函数,当应用程序需要使用时,会先调用库函数,然后再由库函数进行系统调用。 

4.系统调用背后的过程

 

这两张图片解释了高级执行系统调用时的具体过程,首先是会被编译成汇编语言,然后执行汇编语言中的一系列指令来完成系统调用。

需要注意执行这些指令时,操作系统的状态是否会被切换。 

5.小结 

 

http://www.lryc.cn/news/19640.html

相关文章:

  • JavaScript DOM操作
  • 【数据结构】顺序表
  • 【人工智能 AI 】RPA 架构师需要具备的技能有哪些?RPA Solution Architect
  • 【模拟集成电路】鉴频鉴相器设计(Phase Frequency Detector,PFD)
  • 【Linux】进程间通信介绍 | 管道
  • 这次说说腾讯的一场 35K—55K 的 Android 高工面试
  • Jenkins第一讲
  • 变分推断 | MATLAB实现VBMC变分贝叶斯蒙特卡洛模拟的贝叶斯推断
  • 代码随想录【Day25】| 216. 组合总和 III、17. 电话号码的字母组合
  • web中git漏洞的形成的原理及使用
  • 【SPSS】单样本T检验分析详细操作教程(附案例实战)
  • 计算机网络笔记、面试八股(三)—— HTTPS协议
  • 浅谈liunx init.d 和 rc.local 两种起动方式
  • 元宇宙+教育,正在引发哪些剧烈变革?机会在哪里?丨圆桌实录
  • 追梦之旅【数据结构篇】——详解C语言实现顺序队列
  • 使用自己的数据集Fine-tune PaddleHub预训练模型
  • 带组态物联网平台源码 代码开源可二次开发 web MQTT Modbus
  • 计算机网络的发展历程
  • 【华为OD机试模拟题】用 C++ 实现 - 不含 101 的数(2023.Q1)
  • 面试题-下单后位置信息上报的方案
  • 视觉人培训团队把它称之为,工业领域人类最伟大的软件创造,它的名字叫Halcon
  • 干了2年的手工点点点,感觉每天浑浑噩噩,我的自动化测试之路...
  • 嵌入式系统硬件设计与实践(学习方法)
  • 如何拥有自己的Gitee代码仓库
  • 通用信息抽取技术UIE产业案例解析,Prompt 范式落地经验分享!
  • integrationobjects/OPC AE Client ActiveX Crack
  • JavaScript HTML DOM 简介
  • interrupt多线程设计模式
  • Spring IoC 和 Spring AOP
  • taobao.top.oaid.merge( OAID订单合并 )