sched.h 738 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include <common/glib.h>
  3. #include <process/process.h>
  4. struct sched_queue_t
  5. {
  6. long count; // 当前队列中的数量
  7. long cpu_exec_proc_jiffies; // 进程可执行的时间片数量
  8. struct process_control_block proc_queue;
  9. };
  10. // @todo: 用红黑树重写cfs的队列
  11. struct sched_queue_t sched_cfs_ready_queue; // 就绪队列
  12. /**
  13. * @brief 调度函数
  14. *
  15. */
  16. void sched_cfs();
  17. /**
  18. * @brief 将PCB加入就绪队列
  19. *
  20. * @param pcb
  21. */
  22. void sched_cfs_enqueue(struct process_control_block *pcb);
  23. /**
  24. * @brief 从就绪队列中取出PCB
  25. *
  26. * @return struct process_control_block*
  27. */
  28. struct process_control_block *sched_cfs_dequeue();
  29. /**
  30. * @brief 初始化进程调度器
  31. *
  32. */
  33. void sched_init();