1.3.3系统调用

news/2024/4/28 1:07:41/文章来源:https://blog.csdn.net/qq_50985215/article/details/127523863

文章目录

  • 为什么引入系统调用
  • 什么是系统调用
  • 系统调用和库函数的区别
  • 系统调用的背后

为什么引入系统调用

image-20221025222630937

  • 为了防止这样情况的发生,就是防止进程能够随意的去调用我们的系统资源,操作系统提供了系统调用的功能,用户进程想要使用打印机这种共享资源,只能通过向操作系统发出请求,然后操作系统会对各个请求进行协调管理
  • 类似我们Java中的封装思想,把属性进行封装,然后提供对应的公共方法进行操作,为了保证安全性

什么是系统调用

  • 系统调用是操作系统提供给应用程序的接口
  • 作用:应用程序可以通过系统调用(程序接口)来获得操作系统的服务
  • 系统调用会从用户态切换道核心态
  • 分类(都是涉及到对系统资源的管理,对进程的控制这些功能需要执行一些特权指令才能完成)
    • 设备管理 完成设备的请求,释放,启动等
    • 文件管理 完成文件的读 写 创建 删除 等
    • 进程通信 完成进程之间的消息传递,信号传递等
    • 进程控制 完成进程的创建 撤销 阻塞 唤醒等
    • 内存管理 完成内存的分配 回收 获取作业占有内存大小及地址等

系统调用和库函数的区别

image-20221025223842832

  • 系统调用是操作系统向上提供的接口
  • 有的库函数是对系统调用的进一步封装
  • 当今编写的应用程序大多是通过高级语言提供的库函数间接的进行系统调用
  • 应用程序可以直接进行系统调用,也可以使用库函数,有的库函数涉及系统调用,有的库函数不涉及

系统调用的背后

image-20221025225025038

  • 执行过程

    • 传递系统调用的参数

    • 执行陷入指令(用户态)

    • 执行系统调用响应的服务程序(核心态)

    • 返回用户程序 处理完成之后,操作系统内核程序会将CPU使用权还给用户

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

  • 发出系统调用的是在用户态,但是对系统调用进行相关处理是在核心态下进行

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_218402.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12_Vue事件总结

事件总结 事件修饰符连携 准备工作 html <!-- 定义一个容器 --><div class="app"><!-- 事件修饰符连携 --><div class="box" @click="toBaidu"><a href="https://www.baidu.com" @click.stop="toBaid…

Java代码审计前置知识——SpringMVC基础

目录 (一&#xff09;回顾MVC 1.1 什么是MVC Model&#xff08;模型&#xff09; View&#xff08;视图&#xff09; Controller&#xff08;控制器&#xff09; 1.2 Model1时代 1.3 Model2时代 总结 1.4 回顾Servlet 0x01 新建一个Maven工程当做父工程,pom依赖 0x0…

1.1.2操作系统的特征

操作系统是一个系统软件&#xff0c;但与其他系统软件和应用软件有很大的不同&#xff0c;就是它拥有自己的特殊性&#xff0c;及基本特征 首先共享和并发是相互存在的条件共享和并发是虚拟和异步的前提&#xff0c;是操作系统的两个最基本的特征 1并发 拿餐厅吃饭举例子&…

3.3.3JavaScript网页编程——WebAPI(JS之BOM含正则)

目录BOMwindow对象定时器-延时函数setTimeoutJS执行机制&#xff08;执行栈、任务队列&#xff09;面试要问location对象location.href (获取完整url或者赋值)location.search (获取?后面的)location.hash(获取#号后面的)location.reloadnavigator对象&#xff08;检测浏览器移…

10_事件处理阶段

v-on指令 语法 v-on:xxx 这里的xxx指代的是各类事件类型,例如单击,双击,鼠标悬停,键盘监听等等...... 准备工作 准备一个容器,两个按钮,一个按钮不传递参数,另一个按钮传递参数 <body><!-- 创建一个容器 --><div class="subject"><!-- 标…

having where的区别,SQL70 返回更多的产品

返回更多的产品_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/dc91b7d2de3c4603a55995e83210f605?tpId298&tqId2368029&ru/exam/oj&qru/ta/sql-teach-yourself/question-ranking&sourceUrl%2Fexam%2Foj%3Fpage%3D1%26tab%3DSQL%25E7%25A…

MMSegmentation V0.27.0训练与推理自己的数据集(二)

1、官方模型转换MMSegmentation风格 如果你想自己转换关键字使用官方存储库的预训练模型&#xff0c;我们还提供了一个脚本swin2mmseg.py在tools directory &#xff0c;将模型的关键字从官方的repo转换为MMSegmentation风格。 python tools/model_converters/swin2mmseg.py …

一篇文章带你了解服务器操作系统——Linux简单入门

一篇文章带你了解服务器操作系统——Linux简单入门 Linux作为服务器的常用操作系统,身为工作人员自然是要有所了解的 在本篇中我们会简单介绍Linux的特点,安装,相关指令使用以及内部程序的安装等本篇内容属于《瑞吉外卖》的知识科普部分,有兴趣可以查看一下《瑞吉外卖》的相…

欧拉路径(欧拉环游、欧拉回路)

一个流行的游戏是用铅笔画这些图&#xff0c;但是图中的每一条边都只能被画一次&#xff0c;在画图过程中铅笔不能离开纸面。难度更高的问题是&#xff0c;不光要一笔画完图&#xff0c;并且起点和终点还要落在同一处。如果我们将上面的三个图形都看作图数据结构&#xff0c;那…

flash动画设计并发布、嵌入到网页

【创意内容】 Flash动画设计,二维动画自己选择了动画主题,有三个板块:bubbles动画、蝴蝶飞动画、全球游线图动画,都是自己做的,使用了场景运用动画、图片的滚动、形状遮罩等功能。 【程序运行截图】 bubbles butterflies global

ICCV 2021 | Y-Net:轨迹-场景信息的真正融合

今天没有多余的解释&#xff0c;直接开始吧~ 1. Y-Net网络结构 Y-Net的网络结构长什么样子呢&#xff1f;Y-Net的网络结构就长下图这样子。看上去我好像在自言自语&#xff0c;其实你仔细揣摩就会发现&#xff0c;我真的是在自言自语。可以看到说&#xff0c;Y-Net网络输入的是…

TPH-YOLOv5: 基于Transformer预测头的改进YOLOv5用于无人机捕获场景目标检测

代码链接&#xff1a;GitHub - cv516Buaa/tph-yolov5 这是一篇针对无人机小目标算法比赛后写的论文&#xff0c;无人机捕获场景下的目标检测是近年来的热门课题。由于无人机总是在不同的高度上飞行&#xff0c;目标尺度变化剧烈&#xff0c;给网络优化带来了负担。此外&#xf…

buu [NPUCTF2020]认清形势,建立信心

题目&#xff1a; from Crypto.Util.number import * from gmpy2 import * from secret import flagp getPrime(25) e # Hidden q getPrime(25) n p * q m bytes_to_long(flag.strip(b"npuctf{").strip(b"}"))c pow(m, e, n) print(c) print(pow(2,…

hadoop至MapReduce-004

MapReduce定义 MapReduce是一个分布式运算程序的编程框架&#xff0c;核心功能是将用户编写的业务逻辑代码和自带默认组件组合成一个完整的分布式运算程序&#xff0c;并发运行在hadoop集群上 MapReduce的优缺点 优点 易于编程&#xff1a;用户只关心业务逻辑代码扩展性&am…

webpack 异步import生成代码解析

文章目录原文件内容文件目录打包前打包后入口文件生成代码生成的一些辅助方法__webpack_require__.m__webpack_require__.d__webpack_require__.o__webpack_require__.u__webpack_require__.g__webpack_require__.r导入文件通用方法__webpack_require__异步文件引入获取下载文件…

AntDB-M设计之CheckPoint

1.引 言 数据库服务能力提升是一项系统性的工程&#xff0c;在不同的应用场景下&#xff0c;用户对于数据库各项能力的关注点也不同&#xff0c;如&#xff1a;读写延迟、吞吐量、扩展性、可靠性、可用性等等。国内不少数据库系统通过系统架构优化、硬件设备升级等方式&…

教程:使用Jmeter对带token的接口进行压测

最近在研究并发&#xff0c;用到了Jmeter对接口进行压力测试&#xff0c;记录下使用过程 一. 配置/bin下的Jmeter.properties&#xff0c;打开以下两项配置&#xff0c;一个是默认的编码&#xff0c;一个是默认的语言 二. 打开jmeter.bat运行&#xff0c;新建线程组&#xff0…

qt学习笔记6:ui实例 登录窗口布局

首先从ui布局界面去进行大致布局&#xff0c; 可以先把默认的一些移除掉&#xff0c;变成一个大的空窗口 用户窗口&#xff0c;一般都得有一个用户名和密码&#xff08;用label&#xff09;输入用Line edit&#xff0c; 再来俩按钮pushButton&#xff0c; 但仅仅这样是没有意义…

kafka学习(四):生产者发送消息的分区策略

Kafka为了增加系统的伸缩性(Scalability)&#xff0c;引入了分区(Partitioning)的概念。 Kafka 中的分区机制指的是将每个主题划分成多个分区&#xff08;Partition&#xff09;&#xff0c;每个分区是一组有序的消息日志。主题下的每条消息只会保存在某一个分区中&#xff0c;…

python 基于PHP在线音乐网站

随着时代的发展,人们的生活水平越来越高,相对应的对精神世界的追求也越来越多,而音乐一直以来一直是人们追求美好生活的象征,它不仅可以陶冶人们的情操还可以美化人们的灵魂,音乐也一直是千百年来人们不断追求的一个精神文明的产物,为了能够让更多的人找到自己喜欢的音乐,我开发…