* 即每个优先级就有一个对应的链表,为 active->queue[prio].*/structrt_prio_array active;/*FIFO/RR类型task数量*/unsignedintrt_nr_running;/*RR类型task的数量*/unsignedintrr_nr_running;/*curr表示当前队列里面最高优先级的task的优先级(一般为当前正在运行的task), * next表示 pushable_tasks 链表最高...
struct rt_rq *rt_rq = rt_rq_of_se(rt_se); struct rt_prio_array *array = &rt_rq->active; struct rt_rq *group_rq = group_rt_rq(rt_se); //通过rt_se得出当前进程的优先级,进而通过array->queue偏移得到当前优先级所在的链表。 struct list_head *queue = array->queue + rt_se_prio(...
struct rt_prio_array active; //记录优先级队列,100个优先级的链表,并定义了位图 unsigned int rt_nr_running; //在RT运行队列中所有运行态的RT任务数 unsigned int rr_nr_running; //在RT运行队列中所有运行态的RR调度类型的RT任务数 #if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHED struct { ...
其中的rt_rq和my_q字段 , 分别表示一个 " 实时运行队列 " , 是rt_rq结构体类型的 ; rt_rq结构体 , 定义在Linux内核源码linux-5.6.18\kernel\sched\sched.h头文件中 ; 代码语言:javascript 复制 /* Real-Time classes' related field in a runqueue: */struct rt_rq{struct rt_prio_array active;uns...
structrt_prio_arrayactive; unsignedintrt_nr_running; unsignedintrr_nr_running; #if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHED struct{ intcurr;/* highest queued rt task prio */ #ifdef CONFIG_SMP intnext;/* next highest */ ...
struct rt_prio_array active; unsigned int rt_nr_running; unsigned int rr_nr_running; #if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHED struct { int curr; /* highest queued rt task prio */ #ifdef CONFIG_SMP int next; /* next highest */ ...
1328static structsched_rt_entity*pick_next_rt_entity(structrq*rq,1329structrt_rq*rt_rq)1330{1331structrt_prio_array*array= &rt_rq->active; //取出rt_rq的priority数组,一个runqueue数组,每个优先级别有一个。 //struct rt_prio_array active; ...
1、RT-Thread 的架构 下面是官方的架构图:我们现在学习的重点在,内核层之下的RT-Thread 内核这一部分...
*/ static void requeue_rt_entity(struct rt_rq *rt_rq, struct sched_rt_entity *rt_se, int head) { if (on_rt_rq(rt_se)) { struct rt_prio_array *array = &rt_rq->active; struct list_head *queue = array->queue + rt_se_prio(rt_se); if (head) list_move(&rt_se->run_...
Add spo2 sensor support in drivers/include/drivers/sensor.h and drivers/sensors/sensor.c Optimize pin.h, sensor.h, rtdevice.h to avoid reverse inclusion Update usb enlarge uconfig_descriptor's data array space Add security devices[netif] Fix the eth_tx_msg protectionUpdate...