Task Description
Currently the scheduler has a static array of 20 pointers to processes. It is necessary to make the number of processes grow for as long as there is free memory. Also task priority should be taken into account.
Goal
Create a data structure holding pointers to existing processes (priority queue). On context switch, make the scheduler choose the process with highest priority, but do not starve processes with smaller priorities. Processes waiting for keyboard/screen should have highest priority.
Related Files
Task Description
Currently the scheduler has a static array of 20 pointers to processes. It is necessary to make the number of processes grow for as long as there is free memory. Also task priority should be taken into account.
Goal
Create a data structure holding pointers to existing processes (priority queue). On context switch, make the scheduler choose the process with highest priority, but do not starve processes with smaller priorities. Processes waiting for keyboard/screen should have highest priority.
Related Files
src/kernel/proc.c