切换前:
schedule函数首先检查本地运行队列是否为空,运行队列为空,执行idle进程。
运行队列不为空,检查可运行进行中是否存在活动进程,如果不存在,交换活动进程和过期进程。
假定已经选中了一个活动进程列表,从最高优先级的活动进程队列中选择第一个执行。
执行切换:
建立目标进程的地址空间。此处需要注意的是如果目标是一个内核线程,由于内核线程没有自己的地址空间,它任然沿用前面进程的地址空间。
切换后:
减少前面进程的内存描述符的引用计数。特别是前面进程是僵死进程时,释放这片内存。