Sched rt doc (#163)

* update

* 完善调度器文档

* 更新RT调度器文档

* 更新实时调度文档
This commit is contained in:
kong
2023-02-09 15:24:37 +08:00
committed by GitHub
parent 009f92d50f
commit 90b077f9d3
4 changed files with 100 additions and 0 deletions

24
docs/kernel/sched/cfs.md Normal file
View File

@ -0,0 +1,24 @@
# 完全公平调度器相关的api
   CFSCompletely Fair Scheduler顾名思义完全公平调度器。CFS作为主线调度器之一也是最典型的O(1)调度器之一
## 1. CFSQueue 介绍
   CFSQueue是用来存放普通进程的调度队列每个CPU维护一个RTQueue主要使用Vec作为主要存储结构来实现。
### 1.1 主要函数
1. enqueue(): 将pcb入队列
2. dequeue(): 将pcb从调度队列中弹出,若队列为空则返回IDLE进程的pcb
3. sort(): 将进程按照虚拟运行时间的升序进行排列
## 2. SchedulerCFS 介绍
   CFS调度器类主要实现了CFS调度器类的初始化以及调度功能函数。
### 2.1 主要函数
1. sched(): 是对于Scheduler trait的sched()实现是实时进程进行调度时的逻辑处理该函数会返回接下来要执行的pcb若没有符合要求的pcb返回None
2. enqueue(): 同样是对于Scheduler trait的sched()实现将一个pcb加入调度器的调度队列
3. update_cpu_exec_proc_jiffies(): 更新这个cpu上这个进程的可执行时间。
4. timer_update_jiffies(): 时钟中断到来时由sched的core模块中的函数调用本函数更新CFS进程的可执行时间