From 111c5407ccb7774695c8047cf895481d3387fda9 Mon Sep 17 00:00:00 2001 From: LoGin Date: Sun, 17 Dec 2023 21:08:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AEidle=E8=BF=9B=E7=A8=8B?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E9=97=B4=E7=89=87=E4=B8=BA0=EF=BC=8C?= =?UTF-8?q?=E9=99=8D=E4=BD=8E=E8=B0=83=E5=BA=A6=E5=BB=B6=E8=BF=9F=20(#469)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/src/sched/cfs.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/src/sched/cfs.rs b/kernel/src/sched/cfs.rs index da9dc6fe..b70ebf1e 100644 --- a/kernel/src/sched/cfs.rs +++ b/kernel/src/sched/cfs.rs @@ -137,9 +137,14 @@ impl SchedulerCFS { fn update_cpu_exec_proc_jiffies( _priority: SchedPriority, cfs_queue: &mut CFSQueue, + is_idle: bool, ) -> &mut CFSQueue { // todo: 引入调度周期以及所有进程的优先权进行计算,然后设置分配给进程的可执行时间 - cfs_queue.cpu_exec_proc_jiffies = 10; + if !is_idle { + cfs_queue.cpu_exec_proc_jiffies = 10; + } else { + cfs_queue.cpu_exec_proc_jiffies = 0; + } return cfs_queue; } @@ -236,6 +241,7 @@ impl Scheduler for SchedulerCFS { SchedulerCFS::update_cpu_exec_proc_jiffies( proc.sched_info().priority(), current_cpu_queue, + Arc::ptr_eq(&proc, ¤t_cpu_queue.idle_pcb), ); } @@ -251,6 +257,7 @@ impl Scheduler for SchedulerCFS { SchedulerCFS::update_cpu_exec_proc_jiffies( ProcessManager::current_pcb().sched_info().priority(), current_cpu_queue, + Arc::ptr_eq(&proc, ¤t_cpu_queue.idle_pcb), ); // kdebug!("cpu:{:?}",current_cpu_id); }