feat: implement Multilevel Queue (MLQ) scheduling algorithm

- Added MLQ scheduling logic in multilevel.ts, including queue selection, preemption rules, and quantum expiration checks.
- Updated SchedulerConfig to include mlqQueues for MLQ configuration.
- Created default MLQ queue definitions for use in presets and process store.
- Modified process store to auto-increment process IDs.
- Enhanced tests for MLQ scheduling, covering selection, preemption, quantum expiration, and integration scenarios.
- Updated existing presets to support MLQ and adjusted process definitions to include auto-incremented IDs.
This commit is contained in:
Lucas Guerra committed 2026-03-19 18:28:04 -03:00
1 parent 64bbc4ca27
commit 9c552e53fa
12 files changed
+550 -67

No files matched your search

@@ -65,10 +65,10 @@ describe('SchedulerConfig', () => {
expect(screen.getByLabelText('Quantum do Round Robin')).toBeInTheDocument();
});
it('shows Quantum field when algorithm is MULTILEVEL', () => {
it('shows MLQ queue config panel when algorithm is MULTILEVEL', () => {
setAlgorithm('MULTILEVEL');
render(<SchedulerConfig />);
expect(screen.getByTestId('quantum-field')).toBeInTheDocument();
expect(screen.getByTestId('mlq-queues-config')).toBeInTheDocument();
});
it('does NOT show Quantum field for SJF_NP', () => {