进程和内存管理堪称内核的任督二脉,是最重要的两部分,也是最难的两部分,这两部弄清楚了,主体架构也就确立,其它都是支脉
(1)基本部分:进程。
start_kernel-->sched_init
start_kernel-->fork_init
start_kernel-->rest_init-->kernel_thread-->_do_fork
切换:
总是通过schedule进入切换进程。
切换的时机有两种:
1.tick时钟中断,会调用 scheduler_tick,该函数再调用schedule。
2.当前进程运行完毕,主动调用schedule函数。
(2)扩展部分:互锁和进程间通信。