spinlock与linux内核调度的关系
竞争.
五、linux抢占发生的时间 在了解下linux抢占发生的时间,抢占分为用户抢占和内核抢占. 用户抢占在以下情况下产生: ● 从系统调用返回用户空间 ● 从中断处理程序返回用户空间 内核抢占会发生在: ● 当从中断处理程序返回内核空间的时候,且当时内核具有可抢占性; ● 当内核代码再一次具有可抢占性的时候.(如:spin_unlock时) ● 如果内核中的任务显式的调用schedule() ● 如果内核中的任务阻塞. 基本的进程调度就是发生在时钟中断后,并且发现进程的时间片已经使用完了,则发生进程抢占.通常我们会利用中断处理程序返回内核空间的时候可以进行内核抢占这个特性来提高一些I/O操作的实时性,如:当I/O事件发生的是时候,对应的中断处理程序被激活,当它发现有进程在等待这个I/O事件的时候,它会激活等待进程,并且设置当前正在执行进程的need_resched标志,这样在中断处理程序返回的时候,调度程序被激活,原来在等待I/O事件的进程(很可能)获得执行权,从而保证了对I/O事件的相对快速响应(毫秒级).可以看出,在I/O事件发生的时候,I/O事件的处理进程会抢占当前进程,系统的响应速度与调度时间片的长度无关. |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |