linux 定时器

Linux 系统实现底半部的机制主要有tasklet,工作队列和软中断。

tasklet 和工作队列都是调度中断底半部的良好机制,tasklet 基于软中断实现。

内核定时器也依靠软中断实现;内核中的延时是忙等待或者睡眠等待,为了充分利用CPU资源,使系统有更好的吞吐性能,在对延迟时间的要求并不是很精确的情况下,睡眠等待通常是值得推荐的。

kernel/time/timer.c

start_kernel 时,会调用init_timer 初始化timer 并注册软中断

raise_softirq(TIMER_SOFTIRQ)

timer 中断处理函数中,更新处理器timer 并实时触发软中断

不同类型定时器,不同的回调函数里面会调用  update_process_times

参考

https://www.cnblogs.com/lingjiajun/p/11944753.html

https://www.cnblogs.com/hellokitty2/p/15666357.html

kernel/time/tick-sched.h  

tick_device  不同模式

 

周期模式:

scheduler_tick()具体被调用流程:tick中断->

tick_handle_periodic(tick_periodic())->update_process_times()->scheduler_tick()

oneshot 模式或者nohz

tick中断->tick_sched_timer(tick_sched_handle())->update_process_times()->scheduler_tick()。

设置timer 到期回调函数

fs/timerfd.c

设置timer 到期回调函数

tick_sched_timer 回调函数太耗时,导致timerfd_tmrproc 回调函数滞后

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

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

相关文章

docker 搭建 Elasticsearch和Kibana 8.x版本

参考: docker入门:单机elasticsearch安装记录,保证无坑_8月日更_小鲍侃java_InfoQ写作社区 新建文件夹 同上文所述相同,需要在宿主机上挂载配置文件与数据文件。 mkdir -p /Users/louye/data/learn-data/elastic/config mkdir -p /Users/lo…

从地方旅游的宣传谈起:如何吸引主流媒体报道,强势刷屏?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 五一小长假已经过去好几天了,大家渐渐的从假期舒适的闲暇转到正常的工作生活中了,但利用五一热点宣传的余温还在继续,今天胡老师就i注意到一篇题为&am…

华为nqa实验拓扑案例

nqa是一种实时的网络性能探测和统计技术,可以对响应时间、网络抖动、丢包率等网络信息进行统计。如图1所示,接口备份与NQA联动功能配置相对简单,只需在本端RouterA上配置NQA测试例,并在RouterA的备份接口上配置接口备份与NQA联动&…

重写Properties类,实现对properties文件的有序读写,数据追加,解决中文乱码

前言 *.properties文件,是 Java 支持的一种配置文件类型,并且 Java 提供了 properties 类来读取 properties 文件中的信息。文件中以键值对 "键值"的形式,存储工程中会多次重复使用的配置信息,通过“Properties”类来读…

4.Redis10大数据类型

Redis10大数据类型 Which 101.String(字符串)2.List(列表)3.hash (哈希)4.Set(集合)5.zset(sorted set:有序集合)6.Redis GEO (地理空间)7.HyperL…

Linux最常用的15个基本命令

目录 Linux基本命令 命令1:ls (查看指定目录中有哪些内容) ls / 相当于查看根目录中的内容,相当于查看我的电脑 ls -l(小写l,或者使用ll)详细查看目录下所有内容 ls /usr/lib&#xff08…

“AI代劳”,跨域赋能“智慧企业”

随着全球数字信息化的到来,各大新兴行业企业也逐渐意识到“智慧化”转型的重要性,但目前仍有不少企业在面临着人力成本高、运营管理效率低、营销获客效果差、数据分析能力薄弱等瓶颈,那么,处于这些瓶颈期的企业该如何实现“智慧化…

【Java零基础入门篇】第 ④ 期 - 继承(二)

博主:命运之光 专栏:JAVA入门 学习目标 1.掌握继承性的主要作用、实现、使用限制; 2.掌握this和super的含义及其用法; 3.掌握方法覆写的操作; 4.掌握final关键字的使用; 5.掌握类变量、实例变量和局部变量的…

数据库创建与管理

目录 一、创建数据库 1.准备创建数据库 2.创建数据库实例分析 方法一:使用对象资源或企业管理器创建数据库 方法二:使用Transact-SQL命令创建数据库 二、管理数据库 1.修改数据库 使用SQL命令修改数据库 2&…

如何将ChatGPT训练成某个领域的专家!附完整示例!

背景 最近听了 八叉的一个ChatGPT讲座,讲的是如何将ChatGPT训练成领域专家,这样我们就可以用它来解决该领域的各种问题。 整个讲座中最让我印象深刻的就是训练方法,它是通过让ChatGPT向我们提问,然后由我们给出答案的方式进行训…

自学Java怎么找工作?好程序员学员大厂面试经验分享!

简历要详细: 简历中的项目用到的技术点和个人负责的模块尽量写详细一些。其次,根据自己项目中用到的熟悉的技术点,在个人技能介绍模块去突出,面试官基本会根据你简历上写的去提问的,这样我们回答起来就会更加得心应手。…

Web3中文|乱花渐欲meme人眼,BRC-20总市值逼近10亿美元

现在的Web3加密市场,用“乱花渐欲meme人眼”来形容再合适不过了。 何为meme? “meme”这个词大概很多人都不知道如何正确发音,并且一看到它就会和狗狗币Dogecoin等联系在一起。那它究竟从何而来呢? Meme:[mi:m]&#x…

【C++初阶】C++模版(初阶)

文章目录 前言泛型编程函数模版函数模板概念函数模板格式函数模板的原理函数模板的实例化1.隐式实例化2.显式实例化 函数模版的匹配规则 类模版类模板的定义格式类模板的实例化 总结 前言 C的模版也是相较于C语言更有优势的地方,正是有了模版,才让C真正…

Python基础入门(3)—— 什么是函数递归、字典、集合、文件操作、异常处理?

文章目录 01 | 🚘函数 && 递归🚔函数🚔递归 02 | 🚘字典03 | 🚘集合04 | 🚘文件05 | 🚘异常处理06 | 🚘习题 Better late than never. 迟做总比不做好;晚来总比不来好。 01 …

2023年湖北省建设厅特种作业操作证报名条件是什么?

建筑施工特种作业人员是指在房屋建筑和市政工程施工活动中,从事可能对本人、他人及周围设备设施的安全造成重大危害作业的人员。建筑施工特种作业人员必须经建设主管部门考核合格,取得建筑施工特种作业人员操作资格证书(以下简称“资格证书”…

常用数据处理方式

文章目录 缺失值处理删除法填充法基于统计学变量填充基于插值填充基于模型填充基于预测填充 不处理 异常值处理基于统计分析的方法基于聚类的方法基于树的方法基于预测的方法 数据重采样标准化min-max标准化(归一化)z-score标准化(规范化&…

CSS var()的使用

最近在做流量对比的功能,有如下的效果图,当某个节点失败的时候,点击能够弹出对应的提示信息。 这个库使用的是jenkins-pipeline 的库, 但是由于它原本的提示框比较糟糕,所以我们想结合antd的tooltip进行展示&#xff0…

WhatsApp 营销:获得更多潜在客户和销售(一)

你需要了解客户的世界观才能进行有效的营销,你应该投入时间和精力来学习和实施你的业务WhatsApp营销 -因为你的客户出现在WhatsApp上,他们希望在那里联系,而不是在他们讨厌被打断的电子邮件或电话中。 SaleSmartly(ss客服&#x…

商户查询的缓存——添加redis缓存

1.什么是缓存 缓存就是数据交换的缓冲区(Cache),是存储数据的临时地方,一般读写性能较高 2.添加redis缓存 Autowired private StringRedisTemplate stringRedisTemplate; /*** 通过id查询商户信息* param id* return*/ Override public Resu…

首发 | 人工智能赋能的未来作战构想(上): 海上作战篇

源自:中国指挥与控制学会 ▲图1:报告封面和封底 一、人工智能赋能改变战争形态 ▲图2:以AI赋能万物互联 二、人工智能赋能的海上作战 ▲图3:海上作战要保持持续有效的火力输出 (一)海上防御作战构想 ▲图4&…