09 | 基础篇:怎么理解Linux软中断?
从“取外卖”看中断
软中断
- 上半部用来快速处理中断,它在中断禁止模式下运行,主要处理跟硬件紧密相关的或时间敏感的工作。
- 下半部用来延迟处理上半部未完成的工作,通常以内核线程的方式运行。
- 上半部直接处理硬件请求,也就是我们常说的硬中断,特点是快速执行;
- 而下半部则是由内核触发,也就是我们常说的软中断,特点是延迟执行。
查看软中断和内核线程
- /proc/softirqs 提供了软中断的运行情况;
- /proc/interrupts 提供了硬中断的运行情况。
$ cat /proc/softirqsCPU0 CPU1HI: 0 0TIMER: 811613 1972736NET_TX: 49 7NET_RX: 1136736 1506885BLOCK: 0 0IRQ_POLL: 0 0TASKLET: 304787 3691SCHED: 689718 1897539HRTIMER: 0 0RCU: 1330771 1354737
- 第一,要注意软中断的类型,也就是这个界面中第一列的内容。从第一列你可以看到,软中断包括了 10 个类别,分别对应不同的工作类型。比如 NET_RX 表示网络接收中断,而 NET_TX 表示网络发送中断。
- 第二,要注意同一种软中断在不同 CPU 上的分布情况,也就是同一行的内容。正常情况下,同一种中断在不同 CPU 上的累积次数应该差不多。比如这个界面中,NET_RX 在 CPU0 和 CPU1 上的中断次数基本是同一个数量级,相差不大。
$ ps aux | grep softirq
root 7 0.0 0.0 0 0 ? S Oct10 0:01 [ksoftirqd/0]
root 16 0.0 0.0 0 0 ? S Oct10 0:01 [ksoftirqd/1]
小结
- 上半部对应硬件中断,用来快速处理中断。
- 下半部对应软中断,用来异步处理上半部未完成的工作。
思考
09 | 基础篇:怎么理解Linux软中断?相关推荐
- java基础篇 - HashMap 理解Hash碰撞
HashMap是大家都在用,面试的时候也经常会被考的考点,在这篇文章中说下HashMap的hash碰撞和减轻碰撞的优化. 1.什么是hash碰撞 在解释Hash碰撞之前先说一下hashmap的存储结构 ...
- 【树莓派不吃灰】基础篇⑬ 简要了解Linux文件系统 以及 树莓派debian文件系统
目录 1. 前言 1.1 Linux 的发行版 2. Linux的树状目录结构 2.1 /root 2.1.1 树莓派 /root 2.2 /bin 2.2.1 树莓派 /bin 2.3 /sbin ...
- 软件测试基础篇二之linux
一.linux操作系统介绍 测试需要做的事: 部署测试环境 ---> linux常用命令 通过查看日志定位问题 操作数据库进行数据校验或者数据准备 --->数据库增删改查 监控服务器性能指 ...
- linux基础篇-02,linux时间管理date hwclock cal 简述
################################################ 时间管理 1,date:系统时钟 查看当前系统时间 [root@Jameszhan etc]# dat ...
- java基础篇之理解synchronized的用法
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchronized(this ...
- Linux 快速基础篇__Linux操作系统
Linux 快速基础篇__Linux操作系统 Linux操作系统 文章目录 Linux 快速基础篇__Linux操作系统 Linux操作系统 学习目标 一.操作系统概述 1.计算机分类 2.计算机组成 ...
- python学习历程之----基础篇(五)
去年今日此门中,人面桃花相映红. 人面不知何处去,桃花依旧笑春风. 老铁们,又到见面时间了,不知不觉,Python编程的基础篇已经四篇了,今天是第五篇,根据章节安排,最多再有三次基础文章,我们就会进入 ...
- 鸟哥的Linux私房菜(基础篇)- 第十九章、认识与分析登录文件
第十九章.认识与分析登录文件 最近升级日期:2009/09/14 当你的 Linux 系统出现不明原因的问题时,很多人都告诉你,你要查阅一下登录文件才能够知道系统出了什么问题了,所以说,了解登录文件是 ...
- 鸟哥的Linux私房菜(基础篇)- 第十八章、认识系统服务 (daemons)
第十八章.认识系统服务 (daemons) 最近升级日期:2009/09/14 在 Unix-Like 的系统中,你会常常听到 daemon 这个字眼!那么什么是传说中的 daemon呢?这些 dae ...
最新文章
- windows socket编程入门示例3
- boost::intrusive::get_parent_from_member用法的测试程序
- [数据库] Oracle使用CASE判断解决多值问题
- ux和ui_糟糕的UI与UX番茄酱模因
- 使用runtime 实现weex 跳转原生页面
- 如何确定自己是否适合做程序员?
- 常见错误Delegate already added to touch dispatcher.的解决方案
- FastDFS启动报错
- C++伪(pseudo)随机数生成及简单应用
- 关于unity如何制作mmo
- 对web应用构成安全威胁的错误漏洞
- android nfc贴卡多次读写,Android Studio NFC 读写卡程序 (二)(示例代码)
- 诺基亚 java 软件_初学篇:诺基亚手机软件安装不求人
- 登陆apple pay显示无法登录服务器,apple pay无法添加卡怎么办?未能连接到apple pay的解决方法...
- oracle配置控制文件快照的位置以及名称为,Oracle快照控制文件(snapshotcontrolfile)
- 渲染多层材料的综合框架
- 手写简易版链表及原理分析
- php文件包含漏洞利用
- Jenkins实现微服务自动化部署_Jenkins环境设置完整版 (二)
- 【实验3 循环结构】7-14 循环结构 —— 中国古代著名算题。趣味题目:物不知其数。
热门文章
- 家用笔记本电脑什么牌子好_电烤箱什么牌子好?哪个牌子的烤箱质量好?家用烤箱什么牌子质量好?...
- c语言 在线oj系统,开源的在线评测系统——Vakuum
- java修改hidden_Java ColumnConfig.setHidden方法代码示例
- c ++一行给多个变量赋值_C语言变量
- linux cfs,朴素的UNIX之-Linux CFS一个注释
- influxdb无法实现关联表_双汇:从棘手的InfluxDB+Redis到TDengine
- web文件 群晖_【原创】群晖NAS 上部署静态网站
- centos 8 rpm yum install_关于yum不能正常使用的解决方案
- 自己动手写了个 Web 框架,我膨胀了
- 别人的20几岁 vs 互联网人的20几岁