4
1
mirror of https://github.com/DragonOS-Community/DragonOS.git synced 2025-06-19 21:36:30 +00:00

Block IO Scheduler (#158)

* Block io调度器
* process_wakeup时,对cfs的进程,重设虚拟运行时间。解决由于休眠的进程,其虚拟运行时间过小,导致其他进程饥饿的问题

* 1、为AP核启动apic_timer,使其能够运行调度
2、增加kick_cpu功能,支持让某个特定核心立即运行调度器
3、wait_queue的唤醒,改为立即唤醒。
4、增加进程在核心间迁移的功能
5、CFS调度器为每个核心设置单独的IDLE进程pcb(pid均为0)
6、pcb中增加migrate_to字段
7、当具有多核时,io调度器在核心1上运行。

* io调度器文件位置修改

* 修改io的makefile

* 更新makefile中的变量名

* 修改io调度器函数名

---------

Co-authored-by: login <longjin@ringotek.cn>
This commit is contained in:
houmkh
2023-02-04 12:31:15 +08:00
committed by GitHub
parent 151251b50b
commit f6ba114bb0
38 changed files with 831 additions and 264 deletions

@ -56,8 +56,9 @@ pub extern "C" fn process_try_to_wake_up(
// 可以wakeup
unsafe {
write_volatile(&mut pcb.state, PROC_RUNNING as u64);
sched_enqueue(pcb);
}
sched_enqueue(pcb, true);
retval = true;
}
// todo: 对pcb的pi_lock放锁