linux 调度

normal prio   static_prio 处理关系 
 

信号处理:

1. 为当前进程,中断或系统调用时返回  用户空间
2. 如果进程在没有运行,则需要调用signal_wake_up 函数把目标进程唤醒。  对于smp ,则需要发送一个RESCHEDULE_VECTOR 中断
 
 
 
linux 调度类:
TIF_NEED_RESCHED , 调度器根据此标志来决定是否选择下一个进程运行。
置位地方:
resched_task  set_tsk_need_resched  wake_up_idle_cpu 
 
调度器类函数:  task_tick_rt 调用set_tsk_need_resched 置位
 
 
进程重要性的决定: 进程权重、优先级 
 
调度器
周期性调度器: scheduler_tick  
                              1. 进程调度相关统计量  2. task_tick (cifs 检测线程运行时间是否过长,如是设置TIF_NEED_RESCHED)
 
主调度器: schedule
 
周期性调度器只会置需要调度标志位 
 
如果内核抢占被关闭,则内核进程在不主动让出cpu的情况下,将不能被打断。如jffs2垃圾扫描进程。
 
内核空间抢占:
中断返回内核空间前
 
用户空间抢占:
系统调用返回用户空间前
中断返回用户空间前
 
TIF_NEED_RESCHED,进程表示要抢占其他进程时会置此标志位。 被置位的地方?
cond_resched ()  保证某进程不会占用太多cpu
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值