内核并发与同步

1. 并发访问

编写内核代码或驱动代码时需要留意共享资源的保护,防止共享资源被并发访问。所谓并发访问,是指多个内核路径同时访问和操作数据,就有可能发生相互覆盖共享数据的情况,造成被访问数据的不一致。内核路径可以是-一个内核执行路径、中断处理程序或者内核线程等。并发访问可能会造成系统不稳定或产生错误,且很难跟踪和调试。

有一个原则要记住:是保护资源或者数据,而不是保护代码。

内核中产生并发访问的并发源主要有如下4种:

  • 中断和异常:中断发生后,中断处理程序和被中断的进程之间有可能产生并发访问。

  • 软中断和tasklet:软中断或者tasklet 随时可能会被调度执行,从而打断当前正在执行的进程上下文。

  • 内核抢占:调度器支持可抢占特性,会导致进程和进程之间的并发访问。

  • 多处理器并发执行:多处理器上可以同时运行多个进程。

2. 使用内存屏障的原因

睡眠者: CPU1在更改当前进程current->state 后,插入一个内存屏障指令,保证加载唤醒标记load event_indicated 不会出现在修改curren

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值