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