Linux内核产生并发的原因

2023-07-06   


Linux内核产生并发的原因主要是中断和睡眠再调度。
   一 :中断,由于中断执行是异步的,而且是在非抢占式内核中打断当前运行内核代码的唯一方法,所以中断是可以和其它内核代码并发执行的。因此如果中断操作和被中断的内核代码访问同样的内核数据,就会发生竞争。
   二 :睡眠和再调度, 处于进程上下文(下面会进行讲述)的内核任务可以睡眠(睡眠意味放弃处理器),这时调度程序会调度其它程序去执行(首先执行调度任务队列中的内核任务,然后执行软中断等,最后从运行队列中选择一个高优先级的用户进程运行)。显然这里也会造成内核并发访问,当睡眠的内核任务和新投入运行的内核任务访问同一共享数据时,就发生了竞争。


相关内容:

  1. Linux内核的同步机制是什么?主要有哪几种内核锁
  2. 介绍一下Linux内核的排队自旋锁
  3. Linux开机引导的步骤是什么
  4. Linux开机引导的步骤是什么
  5. Linux开机引导的步骤是什么