From 54a0f4c49d9bfb955174c87dae2f442d7f5a8b25 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Fri, 23 May 2025 11:12:31 +0200 Subject: feat!(Kernel): Improvements on the BitMapMgr, HTS, and UPS. other: - Add ZXD header file. - Reworking AMD64 interrupts. - Improved HTS's design implementation. - Improved UPS's balancing implementation. breaking changes: - Rename MemoryMgr to HeapMgr. Signed-off-by: Amlal El Mahrouss --- dev/kernel/src/UserProcessScheduler.cc | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'dev/kernel/src/UserProcessScheduler.cc') diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index 0a26938a..3251e0dc 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -15,9 +15,9 @@ #include #include +#include #include #include -#include #include #include #include @@ -487,13 +487,6 @@ SizeT UserProcessScheduler::Run() noexcept { return 0UL; } - auto& process = this->TheCurrentProcess().Leak(); - - //! Increase the usage time of the process. - if (process.UTime < process.PTime) { - ++process.UTime; - } - SizeT process_index = 0UL; //! we store this guy to tell the scheduler how many //! things we have scheduled. @@ -502,7 +495,12 @@ SizeT UserProcessScheduler::Run() noexcept { //! Check if the process needs to be run. if (UserProcessHelper::CanBeScheduled(process)) { - kout << process.Name << " will be scheduled...\r"; + kout << process.Name << " will be run...\r"; + + //! Increase the usage time of the process. + if (process.UTime < process.PTime) { + ++process.UTime; + } this->TheCurrentProcess() = process; @@ -622,6 +620,9 @@ Bool UserProcessHelper::Switch(HAL::StackFramePtr frame_ptr, PID new_pid) { continue; } + (Void)(kout << "AP_" << hex_number(index)); + kout << " is now trying to run a new task!\r"; + //////////////////////////////////////////////////////////// /// Prepare task switch. /// //////////////////////////////////////////////////////////// @@ -641,6 +642,9 @@ Bool UserProcessHelper::Switch(HAL::StackFramePtr frame_ptr, PID new_pid) { HardwareThreadScheduler::The()[index].Leak()->fPTime = UserProcessScheduler::The().TheCurrentTeam().AsArray()[new_pid].PTime; + (Void)(kout << "AP_" << hex_number(index)); + kout << " is now running a new task!\r"; + return YES; } -- cgit v1.2.3