Linux内核-内核同步

1、内核

看做是不断对请求进行响应的服务器

内核服务

2 内核抢占

内核抢占特点:一个内核态运行的进程,可能在执行内核函数期间被另外一个进程取代

用户抢占:内核即将返回用户空间的时候,如果need resched标志被设置,会导致schedule()被调用,此时就会发生用户抢占。在内核返回用户空间的时候,它知道自己是安全的。所以,内核无论是在从中断处理程序还是在系统调用后返回,都会检查need resched标志。如果它被设置了,那么,内核会选择一个其他(更合适的)进程投入运行。

简而言之,用户抢占在以下情况时产生

1从系统调返回用户空间

2从中断处理程序返回用户空间

内核抢占目的:

       减少用户态进程的分派延迟diapatch tatency,即从进程变为可执行状态到它实际开始运行之间的时间间隔。

什么情况不允许内核抢占:当被current_thread_info()宏所引用的thread_info描述符的preempt_count字段大于0时,就禁止内核抢占。

 

 

内核抢占时机:只有当内核正在执行异常处理程序(尤其是系统调用),而且内核抢占没有被显式的禁用时(即preempt_count=0),才可能抢占内核。本地CPU必须打开本地中断,否则无法完成内核抢占。 

 

 3 同步原语

 

                     

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值