In the MMU implementation we handle permission faults by killing the current process. However, we do not explicitly run the next process which may lead to an inconsistent behavior of the OS. In cases of a NPE we have implemented the explicit switch to the next process, so I suggest we should also implement it this way if a permission fault occurs. Concretly, we should call SchedulerRunNextProcess(context) after killing the current process.
See line 208 and 211 in mmu.c, i.e. FIRST_LEVEL_PERMISSION_FAULT and FIRST_LEVEL_PERMISSION_FAULT.
In the MMU implementation we handle permission faults by killing the current process. However, we do not explicitly run the next process which may lead to an inconsistent behavior of the OS. In cases of a NPE we have implemented the explicit switch to the next process, so I suggest we should also implement it this way if a permission fault occurs. Concretly, we should call
SchedulerRunNextProcess(context)
after killing the current process.See line 208 and 211 in
mmu.c
, i.e.FIRST_LEVEL_PERMISSION_FAULT
andFIRST_LEVEL_PERMISSION_FAULT
.