mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-07-11 07:03:23 +00:00
使用Rust重构CFS调度器 (#131)
* 新建调度器的文件 * 把softirq vector移动到c文件中(原来在.h) * 将进程切换方式改为“中断返回时切换” * new:使用rust重构CFS * 删除已经在smp中废弃的HPET中断转发函数 * 代码格式化 * 删除多余的dunce依赖
This commit is contained in:
Makefile
kernel
@ -3,9 +3,9 @@ use core::ptr::{read_volatile, write_volatile};
|
||||
use crate::{
|
||||
arch::asm::current::current_pcb,
|
||||
include::bindings::bindings::{
|
||||
process_control_block, sched_enqueue, PROC_RUNNING, PROC_STOPPED,
|
||||
process_control_block, PROC_RUNNING, PROC_STOPPED,
|
||||
},
|
||||
sched::core::cpu_executing,
|
||||
sched::core::{cpu_executing, sched_enqueue},
|
||||
smp::core::{smp_get_processor_id, smp_send_reschedule},
|
||||
};
|
||||
|
||||
@ -76,7 +76,6 @@ pub extern "C" fn process_wake_up_state(pcb: *mut process_control_block, state:
|
||||
return process_try_to_wake_up(pcb, state, 0);
|
||||
}
|
||||
|
||||
|
||||
/// @brief 让一个正在cpu上运行的进程陷入内核
|
||||
pub fn process_kick(pcb: *mut process_control_block) {
|
||||
preempt_disable();
|
||||
@ -99,5 +98,5 @@ pub fn process_cpu(pcb: *const process_control_block) -> u32 {
|
||||
/// @param pcb 进程的pcb
|
||||
#[inline]
|
||||
pub fn process_is_executing(pcb: *const process_control_block) -> bool {
|
||||
return cpu_executing(process_cpu(pcb)) == pcb;
|
||||
return cpu_executing(process_cpu(pcb)) as *const process_control_block == pcb;
|
||||
}
|
||||
|
Reference in New Issue
Block a user