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

news2024/10/1 12:20:56

目录

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.coloradmin.cn/o/370200.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql索引学习

1. 索引 1.1 索引概述 MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引…

Linux->进程优先级

目录 1. 优先级的概念 2. 优先级的运作方式 3. Linux下查看进程优先级以及调整 3.1 查看进程优先级 3.2 修改进程优先级 1. 优先级的概念 1. cpu资源分配的先后顺序,就是指进程的优先权(priority)。 2. 优先权高的进程有优先执行权利。配…

数据结构:二叉树概念篇(算法基础)

目录 一.有向树的图论基础 1.有向树的相关基本概念 有向树的基本定义: 有向树的结点的度: 有向树的度: 有向树的根结点,分枝结点,叶结点: 树的子树: 树结点的层次: 树的高度: 2.一个基本的数学结论 3.有序有向树 二.数据结构中树的顺序存储结构与链式存…

【华为OD机试模拟题】用 C++ 实现 - 星际篮球争霸赛(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

【log】操作类日志处理 与 报错类日志处理logback

文章目录一、操作类日志处理【环绕增强】aop环绕增强导包第一步:自定义注解interface第二步:在Controller写一个测试的方法:第三步:编写LogAspect增强类与增强方法日志写入数据库(使用mybatis)第一步&#…

C/C++每日一练(20230225)

目录 1. 工龄问题求解 ★ 2. 字符图形输出 ★★ 3. LRU 缓存机制 ★★★ 1. 工龄问题求解 给定公司N名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。输入首先给出正整数N,即员工总人数; 随后给出N个整数,即每个员工…

图像分割评价指标:Dice和MIoU

目录Dice理论代码MIou理论查准率 precison查全率 recallMIoU 平均交并比代码高效的矩阵运算低效的好理解的计算混淆矩阵Dice和MIoU两者的关系参考链接Dice 理论 Dice用来衡量预测结果pred和标签label的相似度,公式如下图所示,即两个集合的交集/并集。 …

Java-多线程-增强篇-锁强化第3篇

Java集合框架中的锁 今天我们继续来学习锁 字符串操作中的锁 String是线程安全的,因为使用final修饰Stringbuilder 是线程不安全的,其方法没有使用synchronized修饰StringBuffer 是线程安全的,其方法使用synchronized修饰 List集合中的锁 …

【人工智能 AI】可以从 RPA 中受益的 10 个行业 10 Industries That Can Benefit From RPA

目录 RPA技术介绍 Which industries can use robotic process automation?哪些行业可以使用机器人过程自动化? Robotic process automation in the retail industry零售业中的机器人过程自动化 Robotic process automation in the construction industry建筑行业的机器人…

RebbitMQ 消息队列(高级应用)

RabbitMQ 高级特性 消息可靠性投递,consumer ACK,消费端限流,TTL,死信队列,延迟队列,日志与监控,消息可靠性与追踪,管理 RabbitMQ 应用问题 消息可靠性保障,消息幂等性…

JavaScript 基础【快速掌握知识点】

目录 为什么要学JavaScript? 什么是JavaScript 特点: 组成: JavaScript的基本结构 基本结构 内部引用 外部引用 console对象进行输出 JavaScript核心语法 1、变量声明 2、数据类型 3、运算符 4、条件语句 5、循环语句 6、数组 7…

【shell】for while 循环的例子,快速了解

for 循环读一个文件的每一行 for i in cat temp.list;do echo $i;done for ip in $(cat ip.list);do ping -c 2 $ip;done循环打印数字 for a in {1…5};do echo $a;done for a in {1…5…2};do echo $a;done #等差 for a in $(seq 1 5);do echo $a;done for a in $(seq 1 2 5)…

内网穿透常用方法系列总结

前言在内网渗透时,一个WebShell或CobaltStrike、Metasploit上线等,只是开端,更多是要内网横向移动,扩大战果,打到核心区域。但后渗透的前提是需要搭建一条通向内网的“专属通道”,才能进一步攻击。可实战中…

【华为OD机试模拟题】用 C++ 实现 - 找出重复代码(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

C语言static关键字

目录static修饰局部变量static修饰全局变量static修饰函数static是C语言的关键字,它有静态的意思static的三种用法:修饰局部变量修饰全局变量修饰函数 static修饰局部变量 我们先看一个程序: void print() {int a 0;a;printf("%d\n&…

【华为OD机试模拟题】用 C++ 实现 - 数组组成的最小数字(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

更改tomcat访问端口()

1Centos7开启端口 查看防火墙状态命令: systemctl status firewalld 启动防火墙命令: systemctl start firewalld 关闭防火墙命令: systemctl stop firewalld 开放端口命令: firewall-cmd --zonepublic --add-port5011/tcp --pe…

23、高自由度下的E类波形理论计算(附Matlab代码)

23、高自由度下的E类波形理论计算(附Matlab代码) 0、代码 任意占空比、电压导数条件下的E类波形与阻抗条件计算Matlab 注意修改路径,我这边是:!!!!!!&#…

自适应池化、最大值池化和均值池化效率的比较分析

1 问题我们在深度学习的过程中,我们学到了自适应池化、最大值池化和均值池化。那么,我们想要探究一下自适应池化、最大值池化和均值池化效率,哪一个更高?2 方法在之前的学习中,我们学到了自适应池化、最大值池化和均值…

c++11 标准模板(STL)(std::unordered_set)(八)

定义于头文件 <unordered_set> template< class Key, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator<Key> > class unordered_set;(1)(C11 起)namespace pmr { templ…