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

View File

@ -578,7 +578,7 @@ uint64_t sys_nanosleep(struct pt_regs *regs)
ul sys_ahci_end_req(struct pt_regs *regs)
{
ahci_end_request();
// ahci_end_request();
return 0;
}
@ -619,6 +619,5 @@ system_call_t system_call_table[MAX_SYSTEM_CALL_NUM] = {
[25] = sys_rt_sigreturn,
[26] = sys_getpid,
[27] = sys_sched,
[28 ... 254] = system_call_not_exists,
[255] = sys_ahci_end_req,
[28 ... 255] = system_call_not_exists,
};