OK6410A 开发板 (八) 79 linux-5.11 OK6410A schedule总览

  • __schedule 功能描述
__schedule

	1.完成一些必要的检查, 并设置进程状态, 处理进程所在的就绪队列

	2.调度全局的pick_next_task选择抢占的进程

		2.1
			如果当前cpu上所有的进程都是cfs调度的普通非实时进程, 则直接用cfs调度找到进程
		 	如果无程序可调度则找到 idle进程

		2.2
			否则从优先级最高的调度器类sched_class_highest(目前是stop_sched_class)开始依次遍历所有调度器类的pick_next_task函数, 选择最优的那个进程
			//本例有 dl -> rt -> fair -> idle
    		//支持smp 的会有stop_sched_class -> dl_sched_class -> rt_sched_class -> fair_sched_class -> idle_sched_class

	3.context_switch 完成进程上下文切换

		3.1 调用switch_mm_irqs_off,把虚拟内存从一个进程映射切换到新进程中

		3.2 调用switch_to,从上一个进程的处理器状态切换到新进程的处理器状态。
			这包括保存、恢复栈信息和寄存器信息
调度器与调度策略
level1 : 6种调度策略
	SCHED_NORAML
	SCHED_BATCH
	SCHED_IDLE
	SCHED_RR
	SCHED_FIFO
	SCHED_DEADLINE
level2 : 调度器类
	CFS		: 封装了 SCHED_NORAML SCHED_BATCH
	RT		: 封装了 SCHED_RR SCHED_RR
	IDLE	: 封装了 SCHED_IDLE
	STOP	:
	DEADLINE:
调度时机
分两种情况
	1.一般来说,直接调度就行了
	2.但是有的会分为两步,先置位 need_sched , 然后再某个时机判断 need_sched,然后调度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值