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

Linux内核调试 - Hung_task机制分析上

TASK_UNINTERRUPTIBLE

  • 在一个任务的整个生命周期中,它可能会在多种状态之间切换,比如当它正在运行时会处于TASK-RUNNING状态,又比如当它在等待mutex锁时会处于TASK_UNINTERRUPTIBLE
  • TASK_UNINTERRUPTIBLE 状态为不可中断的睡眠状态,即所谓的D状态,当一个任务处于D状态时,该任务不占用CPU,但是该任务也不能接受响应信号,所以我们不能kill一个处于D状态的任务,只能等其他任务唤醒它才能继续运行。
  • 任务处于D状态的常见场景:
    • 任务申请IO读写,等待IO操作完成,将内存高速缓存中数据回写到磁盘过长。
    • 任务调用mutex_lockdown等待访问某个共享资源;
    • 任务调用wait_eventio_wait_eventait_for_completion等待某个事件发生;
    • 内核中其他设置任务状态为TASK_UNTERRUPTIBLE的场景;
  • 正常情况下,一个任务处于D状态的时间不会太久ÿ

相关文章:

  • 语言模型理论基础-持续更新-思路清晰
  • 无人机螺旋桨平衡标准
  • LangChain开发(二)LangChain提示词模板Template使用
  • 2.7 进度控制习题-2
  • 【JS】反转字符串中的单词
  • 计算机网络基础:WiFi 与蓝牙的原理与应用
  • JavaScript中的继承有哪些方式?各有什么优缺点
  • 强化学习与神经网络结合(以 DQN 展开)
  • STL之空间配置器
  • 【深度学习与实战】2.1、线性回归模型与梯度下降法先导
  • 数据结构:利用递推式计算next表
  • PostgreSQL详解
  • SiLU与GeLU激活函数:现代大模型的选择
  • WindowsPowerShell、CMD Linux Bash对比分析
  • 工作中遇到的spark SQL小问题:包含某个或某些字符的条件
  • uniapp + Axios + 小程序封装网络请求
  • 力扣HOT100之子串:76. 最小覆盖子串
  • mock.js模拟数据
  • 在linux部署网站
  • Rust vs. Go: 在仅使用标准库时的性能测试
  • 阿曼宣布美国与胡塞武装达成停火协议
  • 怎样正确看待体脂率数据?或许并不需要太“执着”
  • 马克思主义理论研究教学名师系列访谈|王公龙:做好马克思主义研究,既要“钻进去”又要“跳出来”
  • 谢承祥已任自然资源部总工程师
  • 巴菲特股东大会4.5万字问答实录:股神60年穿越牛熊的最新心得和人生思考
  • 中南财经政法大学法学院党委副书记易育去世,终年45岁