kong 34205659b5
Patch isolate sched_cfs (#62)
* 独立cfs到新的文件

* update

* bugfix: 解决调度器卡住的问题

Co-authored-by: longjin <longjin@RinGoTek.cn>
2022-10-17 18:04:41 +08:00

46 lines
872 B
C

#pragma once
#include <common/glib.h>
#include <process/process.h>
// @todo: 用红黑树重写cfs的队列
struct sched_queue_t
{
long count; // 当前队列中的数量
long cpu_exec_proc_jiffies; // 进程可执行的时间片数量
struct process_control_block proc_queue;
};
extern struct sched_queue_t sched_cfs_ready_queue[MAX_CPU_NUM]; // 就绪队列
/**
* @brief 调度函数
*
*/
void sched_cfs();
/**
* @brief 将PCB加入就绪队列
*
* @param pcb
*/
void sched_cfs_enqueue(struct process_control_block *pcb);
/**
* @brief 从就绪队列中取出PCB
*
* @return struct process_control_block*
*/
struct process_control_block *sched_cfs_dequeue();
/**
* @brief 初始化CFS进程调度器
*
*/
void sched_cfs_init();
/**
* @brief 当时钟中断到达时,更新时间片
*
*/
void sched_update_jiffies();