linux之schedule流程图2
2015-11-15 20:28:23 0 举报
登录查看完整内容
在Linux的schedule流程图中,首先,系统会将进程分为不同的优先级,然后根据优先级选择一个进程进行运行。接着,CPU会执行该进程的指令,同时监控系统的各种事件,如中断、信号等。当事件发生时,CPU会暂停当前进程的执行,处理相应的事件。处理完事件后,CPU会根据进程的状态决定是否继续执行该进程。如果进程处于就绪状态,且具有最高优先级,则CPU会继续执行该进程;否则,CPU会选择其他就绪进程执行。这个过程会不断重复,直到所有进程都完成执行或者系统关闭。
作者其他创作
大纲/内容
准备工作之后,切换进程
还没有
设置进程状态为TASK_RUNING
调用schedule()
是
没有
有
检查prev进程状态是否可以运行
1.禁止抢占2.把current给prev3.取得当前运行队列
next指向idle
否
当前进程是否是idle?
平衡当前处理器上的负载,并再次检查有无
交换活动队列和耗尽队列
查看是否为实时进程,再处理
当前运行队列有可以运行的吗?
检查是否在中断上下文中或者当前进程的状态是否为退出
是否可中断并且有未处理的信号?
为不可中断,把prev当前运行队列中去掉
有活动的吗
打印错误调试信息
计算prev进程的运行时间
根据位图从运行队列中选出要切换的进程next
0 条评论
回复 删除
下一页