Linux中断(栈、上下部)

news2024/12/23 19:09:30

进程线程中断的核心:栈

进程切换时,需要将当前进程的寄存器参数保存在当前进程的栈中。要再次执行此进程时需要先从栈中恢复此进程的寄存器参数。

对于同个进程的不同线程,代码和数据是所有线程共享的,所以线程间可以通过全局变量来传递数据。

Linuxs系统对中断处理的演进

Linux中的中断处理两个原则:1、原则上中断不能嵌套  2、中断处理越快越好

但当一个中断要耗费很多时间来处理时,它的坏处是:在这段时间内,其他中断无法被处理。换句话说,在这段时间内,系统是关中断的。 如果某个中断就是要做那么多事,我们能不能把它拆分成两部分:紧急的、 不紧急的?
       所以可以将耗时分为上下半部,上半部处理紧急事件,系统关中断,不可被打断。下半部系统开中断可被打断。

 

下半部的实现方法很多,重要两种:1、tasklet(小任务)2、work  queue(工作队列)

1、下半部要做的事情耗时不是太长:tasklet

当下半部比较耗时但是能忍受,并且它的处理比较简单时,可以用 tasklet 来处理下半部。tasklet 是使用软件中断来实现。
总结
  • 中断的处理可以分为上半部,下半部
  • 中断上半部,用来处理紧急的事,它是在关中断的状态下执行的
  • 中断下半部,用来处理耗时的、不那么紧急的事,它是在开中断的状态下执行的
  • 中断下半部执行时,有可能会被多次打断,有可能会再次发生同一个中断
  • 中断上半部执行完后,触发中断下半部的处理
  • 中断上半部、下半部的执行过程中,不能休眠:中断休眠的话,以后谁来调度进程啊?

2、下半部要做的事情太多并且很复杂:工作队列

在中断下半部的执行过程中,虽然是开中断的,期间可以处理各类中断。但是毕竟整个中断的处理还没走完,这期间 APP 是无法执行的。 假设下半部要执行 1 2 分钟,在这 1 2 分钟里 APP 都是无法响应的。
        这谁受得了?所以,如果中断要做的事情实在太耗时,那就不能用软件中断来做,而应该用内核线程来做:在中断上半部唤醒内核线程。内核线程和 APP 都 一样竞争执行,APP 有机会执行,系统不会卡顿。
        这个内核线程是系统帮我们创建的,一般是 kworker 线程,内核中有很多这样的线程:
kworker 线程要去“工作队列” (work queue) 上取出一个一个“工作” (work) ,来执行它里面的函数。
总结
很耗时的中断处理,应该放到线程里去
可以使用 work work queue
在中断上半部调用 schedule_work 函数,触发 work 的处理
既然是在线程中运行,那对应的函数可以休眠。

3、新技术:threaded irq

只提供 thread_fn ,系统会为这个函数创建一个内核线程。发生中断 时,内核线程就会执行这个函数。
新技术 threaded irq ,为每一个中断都创建一个内核线程;多个中断的内核线程可以分配到多个 CPU 上执行,这提高了效率。

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

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

相关文章

白盒测试详解

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号:互联网杂货铺,回复1 ,免费获取软件测试全套资料,资料在手,涨薪更快 概念与定义 白盒测试:侧重于系统或部件内部机…

ASUS华硕ROG幻13笔记本电脑GV301R工厂模式原厂OEM预装Windows11系统,恢复出厂开箱状态

适用于型号:GV301RC、GV301RE、GV301RA 工厂模式安装包:https://pan.baidu.com/s/1gLme1VqidpUjCLocgm5ajQ?pwddnbk 提取码:dnbk 工厂模式Win11安装包带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系统属性专属联机支持标志…

Matlab|基于广义Benders分解法的综合能源系统优化规划

目录 1 主要内容 广义benders分解法流程图: 优化目标: 约束条件: 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现文章《综合能源系统协同运行策略与规划研究》第四章内容基于广义Benders分解法的综合能源系统优化规划&…

Python基于flask的豆瓣电影分析可视化系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

Nacos快速入门(windows)

Nacos是 Dynamic Naming and Configuration Service的简称。Nacos能快速实现动态服务发现、服务配置、服务元数据及流量管理 下载启动Nacos Nacos下载启动(windows) 以下两种随意选择一种即可从github上下载源码方式启动 git clone https://github.com…

业务与数据的终极对决:如何让大数据成为企业的超能力?

在数字化转型的浪潮中,企业如同在茫茫数据海洋中航行的船只,而数据资产管理就是指引航向的罗盘。但是,当业务需求与数据脱节、数据孤岛林立、业务流程与数据流程不同步、以及业务增长带来的数据管理挑战成为阻碍,我们该如何突破重…

c++取经之路(其五)——类和对象拷贝构造函数

概念:拷贝构造函数,只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。 特征: 1. 拷贝构造函数是构造函数的一个重载形式 如: 2. 拷贝…

springboot+Vue项目部署到云服务器上

一、下载配置ngnix 1.压缩包下载并上传 链接: https://pan.baidu.com/s/1m2LKV8ci4WXkAWdJXIeUFQ 提取码: 0415 2.解压 tar -xzvf 压缩包名 3.编译nginx 在解压好的文件夹下,依次执行: ./configure 来到nginx默认安装路径/usr/local/nginx 依次执行命令 mak…

【企业动态】瑞芯微高级业务总监来访东胜物联,共探新能源汽车市场合作

近日,瑞芯微高级业务总监阙金珍一行来访东胜物联参观交流,并就深化合作进行讨论。 东胜物联与瑞芯微建有长期稳固的合作关系,基于RK3588、RK3399、RK3568等处理器,推出了多款嵌入式核心硬件产品,包括核心板、网关等&a…

一文详解MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系

经常遇到很多系统,比如:MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM,这些都是什么系统?有什么功能和作用?它们之间的关系是怎样的? 今天就一文详细分享给大家。 10大系统之间的关系 ERP 和其他…

知名度最高的免费SSL证书

一、选证书类型 根据网站性质与安全需求,选定合适的SSL证书: - 域名验证证书(DV):快速验证域名所有权,适用于个人网站、博客,申请简便。 - 组织验证证书(OV):…

东方博宜 1152. 求n个数的最大值和最小值

东方博宜 1152. 求n个数的最大值和最小值 思路:贼拉简单,就是用排序函数sort()函数,注意点,一个是头文件,一个是for循环里面的起始值 sort(a,an) 从小到大排序,sort(a,an,greater()) 从大到小排序 #incl…

爬虫 | 垃圾处理设施数据的获取与保存

Hi,大家好,我是半亩花海。本项目通过发送网络请求(requests),从指定的 URL 获取垃圾处理设施的相关数据,并将数据保存到 CSV 文件中,以供后续分析和利用。 目录 一、项目结构 二、详细说明 三…

wangzherongyao 2024.04.15

第一局:百里陪那只重置技能CD的辅助,对面有兰陵王,妲己,然后我补位廉颇被自己人和对面一阵嘲讽,真的不想说啥,对面盾山和妲己估计都没明白,我一只就能破他们队伍,所以看到没先出魔抗…

【拦截器Interceptor】springboot拦截器的使用和原理

【拦截器Interceptor】springboot拦截器的使用和原理 【一】拦截器简介(1)简介【2】作用 【二】实现步骤【1】自定义拦截器,实现拦截器接口HandlerInterceptor【2】将拦截器添加到容器当中【3】配置拦截器的拦截规则【4】拦截器的执行顺序 【…

HCIP-Datacom(H12-821)111-120题

111、地址转换技术的优点不包括()? A.地址转换可以使内部网络用户(私有IP地址)方便地访问Internet B.地址转换可以屏蔽内部网络的用户提高内部网络的安全性 C.地址转换可以使内部局城网的许多主机共享一个IP地址上网D.地址转换能够处理IP报头加密的情况 解析:地址转换只处理…

Python远程创建docker容器

1.安装docker yum install dockerdocker -v 2.拉取一个测试镜像,比如tomcat,默认是最新版本的 docker pull tomcat 使用 docker images可以看到该镜像 3.使用Python创建容器 import docker# 连接到远程Docker守护进程 client docker.DockerClient(…

今年消费新潮流:零元购商业模式

今天给大家推荐一种极具创新的电子商务模式:零元购商业模式 这个模式支持消费者以零成本或极低成本购买商品。这种模式主要通过返现、积分、优惠券等方式来减少支付金额,使消费者实现“零成本”购物的目标。 人民网在去年发表了一篇文章。 总结了一下&a…

麒麟服务器操作系统安装HTTP服务

往期好文:麒麟服务器操作系统安装TFTP服务 Hello,大家好啊!今天我们将探讨如何在麒麟服务器操作系统上安装和配置HTTP服务,这是任何网络服务或应用的基础。无论你是想建立一个简单的网站,还是需要一个全功能的Web服务器…

基于微信小程序【原生】+ssm+mysql+jsp消防知识学习平台(含论文)

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…