【操作系统】聊聊Linux软中断

什么是中断

中断是系统用来响应硬件设备请求的一种机制,会打断进程的正常调度和执行,转而去执行内核中的中断处理程序。
比如你正在看书,你女朋友叫你出去逛街。你就需要先放下手里的事情,然后逛街。回来之后,在接着看书。

中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力。
因为中断会打断正在运行的进程执行,所以需要非常快的执行。但是在实际中,可能A进程执行,执行一个中断,如果此时有别的中断,就不会被执行,而需要先等第一个中断执行完毕。而第二次的中断就可能丢失。

软中断

为了解决中断执行时间过程和可能丢失中断的问题,将中断分为两阶段。

  • 上半部分快速处理中断。中断模式下运行,一般以硬件相关方式工作。
  • 下半部分处理延迟未处理的工作,通常以内核线程的方式运行

比如我们常说的网络数据包,当服务端发送数据包到客户端,首先会通过硬中断的方式进行通知内核数据到了,然后内核调用中断处理程序响应。将网卡的数据读取到内存中,然后更新硬件寄存器的状态,发送一个软中断的信号。

下半部分就是将软中断信号唤醒后,从内存找到数据进行按照数据逐层解析,发送给应用程序。
上半部分处理硬件请求,也叫硬中断
下半部分处理软请求,也叫软中断

查看软中断和内核线程

proc 是用户空间和内核空间通信的机制,可以通过

  • /proc/softirqs 提供了软中断的运行情况;
  • /proc/interrupts 提供了硬中断的运行情况。
root@qxlxi:/# cat /proc/softirqsCPU0       CPU1       HI:          7          3TIMER:    4857682    4999161NET_TX:     176194      61001NET_RX:     216930     191267BLOCK:     130746     129902IRQ_POLL:          0          0TASKLET:       4041       4238SCHED:    4402511    4539135HRTIMER:          0          0RCU:    4878791    4871501
  • NET_RX 表示网络接收中断
  • NET_TX 表示网络发送中断。

查看

root@qxlxi:/# ps aux | grep softirq
root           9  0.0  0.0      0     0 ?        S    Sep18   0:07 [ksoftirqd/0]
root          18  0.0  0.0      0     0 ?        S    Sep18   0:05 [ksoftirqd/1

小结

本篇主要说了中断的类型,硬件中断和软件中断,分别以及查看对应的命令

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

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

相关文章

Parasoft Jtest 2023.1

Parasoft Jtest 2023.1 2692407267qq.com,更多内容请见http://user.qzone.qq.com/2692407267/

Codeforces Round 848 (Div. 2)C

B. The Forbidden Permutation 一定要注意题目中说的是对于all i满足才算不好的&#xff0c;我们做的时候只要破坏一个i这个a就不算好的了,被这一点坑了&#xff0c;没注意到all。 #include <bits/stdc.h>using namespace std; typedef long long LL; const int N 2e5 …

Linux系统100条命令:关于Ubuntu和 CentOS 7 相同功能的不同的终端操作命令

安装软件包&#xff1a; Ubuntu&#xff1a;apt-get install package_name CentOS 7&#xff1a;yum install package_name 更新软件包列表&#xff1a; Ubuntu&#xff1a;apt-get update CentOS 7&#xff1a;yum update 卸载软件包&#xff1a; Ubuntu&#xff1a;apt-…

制作学生查询小程序

学生个人成绩查询小程序&#xff0c;一款助力教师实时了解学生学习情况的便捷工具。本文将为您揭秘它的制作过程&#xff0c;并提供实用的建议。然而&#xff0c;简便易用的方法莫过于选择现有的工具。 许多教师都偏爱使用易查分来快速创建查分网站。与传统的独立开发方式不同…

kubeadm搭建k8s高可用集群(keepalived+nginx+3master)

目录 前言服务器准备架构讲解环境初始化安装keepalived软件安装nginx软件初始化k8s节点安装docker初始化master01节点的控制面板master02、master03节点加入集群node01、node02节点加入集群检查集群配置docker和kubectl命令补全创建应用验证集群功能验证master节点高可用方式二…

深入解析TI毫米波雷达ROS驱动器的改进:从雷达参数配置、多普勒数据集成,到多雷达协同及传感器融合

第一部分&#xff1a;概述与与原始TI版本的主要区别 1.1 背景简介 毫米波雷达是近年来在汽车、无人机和其他应用中越来越受欢迎的传感器。其优点包括在恶劣天气条件下也能工作、可以提供速度和距离数据、以及不受环境光线影响。Texas Instruments&#xff08;TI&#xff09;是…

QT-day4

画一个时钟 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPaintEvent> #include <QDebug> #include <QPainter> #include <QTimer> #include <QTime>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } Q…

Linux chmod命令——修改权限信息

我们可以使用chmod命令&#xff0c;修改文件、文件夹的权限信息。注意&#xff0c;只有文件、文件夹的所属用户或root用户可以修改。 chmod [-R] 权限 文件或文件夹 -R&#xff0c;对文件夹内的全部内容应用同样的操作 例如&#xff1a; chmod urwx,grx,ox hello.txt &…

100道JVM面试题大全最新版2023版

100道与JVM相关的面试题&#xff0c;包括JVM基本概念、内存管理、垃圾回收、性能调优、JVM内存模型、JVM是什么意思、JVM调优、JVM垃圾回收机制、JVM类加载机制、JVM原理。 1. 什么是JVM&#xff08;Java虚拟机&#xff09;&#xff1f; JVM&#xff08;Java Virtual Machine…

Kafka 笔记 (Non-Root/Container)

目录 1. Kafka 笔记 (Non-Root/Container)1.1. 启动1.2. bitnami/kafka1.2.1. Non-Root Containers 1. Kafka 笔记 (Non-Root/Container) 1.1. 启动 Kafka 需要与 ZooKeeper 一起启动: Kafka with ZooKeeper Run the following commands in order to start all services in…

LeetCode_贪心算法_简单_605.种花问题

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 假设有一个很长的花坛&#xff0c;一部分地块种植了花&#xff0c;另一部分却没有。可是&#xff0c;花不能种植在相邻的地块上&#xff0c;它们会争夺水源&#xff0c;两者都会死去。给你一个整数数组 flowe…

机器学习 day35(决策树)

决策树 上图的数据集是一个特征值X采用分类值&#xff0c;即只取几个离散值&#xff0c;同时也是一个二元分类任务&#xff0c;即标签Y只有两个值 上图为之前数据集对应的决策树&#xff0c;最顶层的节点称为根节点&#xff0c;椭圆形节点称为决策节点&#xff0c;矩形节点称…

PythonWeb服务器(HTTP协议)

一、HTTP协议与实现原理 HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一种用于在网络上传输超文本数据的协议。它是Web应用程序通信的基础&#xff0c;通过客户端和服务器之间的请求和响应来传输数据。在HTTP协议中连接客户与服务器的…

Shel简介入门

Shell编程: 1.了解入门 2.变量 变量子串知识 3.特殊位置变量 4.脚本的执行方式 5.脚本传参 6.数值运算 7.数值比较 8.字符串比较 9.正则比较方式 10.条件控制语句 if while for case break continue exit 11.数组 12.案例 一. Shell介绍 Shell的作用 系统…

计算机视觉: 三维物体生成

三维物体生成与编辑 论文地址: Controllable Mesh Generation Through Sparse Latent Point Diffusion Models 背景 数据是目前数字化和AI领域最宝贵的财富之一&#xff0c;但是对于目前的开发者来说&#xff0c;收集数据都意味着极大的成本。所以建立一个高效的生成模型能极…

关于亚马逊云科技云技能学习

云计算作为当今信息技术领域的热门话题&#xff0c;正以其强大的计算和存储能力&#xff0c;灵活性和可扩展性&#xff0c;逐渐改变着人们的工作方式和生活方式。而其中的一家龙头企业——亚马逊云科技&#xff08;Amazon Web Services&#xff0c;AWS&#xff09;&#xff0c;…

用Bosch Sensortec的BMI08X传感器API在C语言中控制IMU传感器:一个完整的集成指南

介绍 在现代的硬件开发领域&#xff0c;惯性测量单元(IMU)已经成为了一个关键的组件&#xff0c;尤其在运动追踪和定位应用中。Bosch Sensortec 的 BMI08X 是其中的一种高度受欢迎的IMU系列传感器。为了更简单、更快速地在C语言项目中集成和使用这些传感器&#xff0c;Bosch S…

数据结构-----堆(完全二叉树)

目录 前言 一.堆 1.堆的概念 2.堆的存储方式 二.堆的操作方法 1.堆的结构体表示 2.数字交换接口函数 3.向上调整&#xff08;难点&#xff09; 4.向下调整&#xff08;难点&#xff09; 5.创建堆 6.堆的插入 7.判断空 8.堆的删除 9.获取堆的根(顶)元素 10.堆的遍历…

如何看待Unity新的收费模式?

文章目录 背景Unity的论点开发者的担忧如何看待Unity新的收费模式&#xff1f;1. 理解Unity的立场2. 考虑小型开发者3. 探索替代方案4. 对市场变化保持敏感5. 提高游戏质量 结论 &#x1f389; 如何看待Unity新的收费模式&#xff1f; ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1…

Jenkins “Trigger/call builds on other project“用法及携带参数

1.功能 “Trigger/call builds on other project” 功能是 Jenkins 中的一个特性&#xff0c;允许您在某个项目的构建过程中触发或调用另一个项目的构建。 当您在 Jenkins 中启用了 “Trigger/call builds on other project” 功能并配置了相应的触发条件后&#xff0c;当主项…