Linux内核实时机制19 - RT调度器4 - 实时就绪队列维护
文章目录
- 1、实时优先级队列维护
- 1.1、进程入调度队列过程
- 任务处于运行队列状态
- 任务出入队操作标志
- 入队函数 activate_task
- 入队核心函数 enqueue_task
- 2、实时任务入队 enqueue_task_rt
- 2.1、实时任务入队核心函数 enqueue_rt_entity
- 2.1.1、dequeue_rt_stack
- 2.1.2、__enqueue_rt_entity
1、实时优先级队列维护
- 所谓优先级队列的维护其实就是:进程的调度实体适时的添加到优先级队列的链表上和从优先级队列的链表上移除的过程。
- 进程描述符task_struct中有一个调度实体:
struct sched_rt_entity {struct list_head run_list;
}
- 如:wake_up系列函数、时间片耗尽,会设置当前进程需重新调度标记(set_tsk_need_resched),其实wake_up系列函数在设置这个标志之前会先把要唤醒的进程添加到优先级队列上,这样在schedule选择下一个进程时,就有可能选择到要唤醒的进程。
1.1、进程入调度队列过程
- 唤醒入队流