,时间片到点,会重新移动当前进程requeue_task_rt,进程会被加到队列尾,接下来set_tsk_need_resched触发调度,进程被抢占进入schedule
问题1 : 为什么要多此一举判断所有的进程是否全是...这包括保存、恢复栈信息和寄存器信息
由于不同架构下地址映射的机制有所区别, 而寄存器等信息弊病也是依赖于架构的, 因此switch_mm和switch_to两个函数均是体系结构相关的
1.4.3 switch_mm...1.4.4 switch_to切换进程堆栈和寄存器
执行环境的切换是在switch_to()中完成的, switch_to完成最终的进程切换,它保存原进程的所有寄存器信息,恢复新进程的所有寄存器信息,并执行新的进程...因此switch_to函数通过3个参数提供2个变量,
在新进程被选中时, 底层的进程切换冽程必须将此前执行的进程提供给context_switch, 由于控制流会回到陔函数的中间, 这无法用普通的函数返回值来做到...中执行如下操作
进程切换, 即esp的切换, 由于从esp可以找到进程的描述符
硬件上下文切换, 设置ip寄存器的值, 并jmp到__switch_to函数
1.5 need_resched, TIF_NEED_RESCHED