当前位置: 技术问答>linux和unix
进程切换后schedule所执行的操作
来源: 互联网 发布时间:2017-04-20
本文导语: schedule( )函数中在switch_to宏之后紧接着的指令并不由next进程立即执行,而是稍后当调度程序又选择prev执行时由prev执行。然而,在那个时刻,prev局部变量并不指向我们开始描述schedule( )时所替换出去的原来那个进程...
schedule( )函数中在switch_to宏之后紧接着的指令并不由next进程立即执行,而是稍后当调度程序又选择prev执行时由prev执行。然而,在那个时刻,prev局部变量并不指向我们开始描述schedule( )时所替换出去的原来那个进程,而是指向prev被调度时由prev替换出的原来那个进程。
如果现在由进程A切换为进程B,
那么上面的“而是稍后当调度程序又选择prev执行时由prev执行”是什么意思呢?
对于“prev局部变量并不指向我们开始描述schedule( )时所替换出去的原来那个进程,而是指向prev被调度时由prev替换出的原来那个进程”其中prev到底指向A还是B呢?
如果现在由进程A切换为进程B,
那么上面的“而是稍后当调度程序又选择prev执行时由prev执行”是什么意思呢?
对于“prev局部变量并不指向我们开始描述schedule( )时所替换出去的原来那个进程,而是指向prev被调度时由prev替换出的原来那个进程”其中prev到底指向A还是B呢?
|
《深入Linux内核架构》一书的第2章有解
|
进程切换实际上涉及3个进程,《深入理解linux内核》中有详细介绍,且那段代码也较好理解。