MINIX Programming Modify the MINIX 3 scheduler to keep track of how much CPU time each user process has had recently. When no task or server wants to run, pick the user process that has had the smallest share of CPU. I have this assignment and I understand multiple different minix files need to be modifie/updated, but I don't know what to add to make this happen. Please help
MINIX
Modify the MINIX 3 scheduler to keep track of how much CPU time each user process has had recently. When no task or server wants to run, pick the user process that has had the smallest share of CPU.
I have this assignment and I understand multiple different minix files need to be modifie/updated, but I don't know what to add to make this happen. Please help
Modifying the MINIX 3 scheduler to keep track of how much CPU time each user process has had recently can be achieved by updating several files in the MINIX source code.
Here are some steps that can help you get started:
- Update the process table structure: In the /usr/src/servers/pm/table.c file, add a new field to the process table structure to keep track of the recent CPU time for each process.
CODE:
struct proc {
...
clock_t p_user_time; // recent CPU time for user process
};
- Update the process accounting: In the /usr/src/servers/pm/forkexit.c file, update the account_user_time() function to increment the recent CPU time for the current process.
CODE:
void account_user_time(struct proc *pp, clock_t user_time)
{
pp->p_user_time += user_time;
}
Step by step
Solved in 2 steps