当前位置: 首页 > news >正文

【linux内核驱动day05】

uboot设置自动启动:

在设置之前先保存之前的bootcmd_cp,再设置

设置完成后怎么打开:可以重启,也可以使用命令

软中断(softirq):

tasklet:是一种基于软中断的轻量级下半部机制(处理紧急任务)

workqueue:是一种把工作交给 内核线程(kworker) 来执行的机制。

  • tasklet = 小助手,快但不能休息。

  • workqueue = 工人 NPC,可以慢慢做,还能睡觉等资源。

  • 中断上下文:和中断处理相关的代码   ---------->   中断服务程序 (中断顶半部)、软中断、tasklet
    • 不能休眠、不能阻塞、不能做耗时操作
  • 进程上下文:和进程操作相关的代码  ----------->   open  read   write  close、workqueue
    • 可以休眠、可以阻塞、可以做耗时操作

简单中断交给中断顶半部, 复杂中断交给中断底半部

原子变量

概念:
原子变量是可以在一次不可分割的操作中完成读写的变量。
也就是说,对它的加减、赋值等操作不会被中断,从而保证线程安全。

关键特性:

  • 操作是“原子的”(atomic)——不可被打断。

  • 不需要加锁,性能高。

  • 通常用于计数器、标志位、引用计数等简单同步场景。

互斥锁

概念:
互斥锁是一种确保同一时间只有一个线程能访问临界区的机制。
当一个线程获取锁后,其他线程必须等待它释放锁才能进入。

关键特性:

  • 同一时刻只有一个持有者;

  • 线程阻塞等待锁;

  • 避免资源竞争;

  • 适合长时间持有锁的情况。

信号量

概念:
信号量是一种计数型同步机制,用于控制可同时访问资源的线程数量
信号量有一个“计数值”,每次获取(P操作)就减1,释放(V操作)就加1。

关键特性:

  • 允许多个线程同时进入(计数型);

  • 当计数为 0 时,新的线程会阻塞;

  • 可用于线程同步资源池控制

自旋锁

概念:
自旋锁是一种忙等锁(busy-wait lock)
当一个线程尝试获取锁而锁已被占用时,它不会阻塞睡眠,而是在循环中不断检查锁是否可用

关键特性:

  • 不发生上下文切换;

  • 适合锁持有时间非常短的场景;

  • 会消耗CPU时间(因为自旋);

  • 常用于内核、驱动程序等性能敏感区。

http://www.dtcms.com/a/457649.html

相关文章:

  • 富煌钢构:“T+EPC”模式引领钢结构行业变革
  • 前端学习 JavaScript
  • 深圳约的网站设计企业申报系统
  • 吴江盛泽建设局网站一个专门做标题的网站
  • PID公式的部署与选择
  • 拼多多前端面试题及参考答案(200道-下)
  • Symmetric functions and hall polynomials 1.1
  • 深圳seo网站优化广东网约车涨价
  • 【LLM】知识图谱和LLM的结合
  • 扩散模型DDPM数学推导过程完整版(下)
  • 重庆网站建设入门培训扬州电商网站建设
  • 做国际网站有什么需要注意的福州网站建设吧
  • Echarts极坐标系示例
  • HarmonyOS应用开发深度解析:ArkTS语法精要与状态管理实践
  • 园林景观中企动力提供网站建设网店代理货源网
  • 酒店网站建设建设网站ppt
  • docker学习笔记详记
  • 可做外链的视频网站企业建一个网站
  • 滑动窗口专题总结:从懵逼到掌握valid计数器
  • 深圳市盐田区建设局网站WordPress制作安卓
  • Next.js useState useEffect useRef 速记
  • 图论算法刷题的第五十一天
  • Linux自动化构建工具make/Makefile及Linux下的第一个程序—进度条
  • Vue使用原生方式把视频当作背景
  • 铜陵app网站做招聘信息wordpress第一篇文章id
  • 从玩具到工业:基于 CodeBuddy code CLI 构建电力变压器绕组短路智能诊断系统
  • wordpress 中英文网站模板手机创建网页
  • 基于 GEE 的 Sentinel-2 光谱、指数、纹理特征提取与 Sentinel-1 SAR 数据处理
  • 嘉兴网站排名优化价格windows 安装 wordpress
  • 2-C语言中的数据类型