You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
syscall_exec() waits a new process to be loaded by calling thread_yield() repetitively. While this waiting, a new process would be executed to load its data on the memory. But, it is also possible to happen that the new process terminates (after loaded and executed) before the parent wakes up. If so, child process was freed, so we can not deal with child process' information during the parent's last of syscall_exec() executions:
Fortunately, Bochs does not involve this situation, but Qemu does (in such as wait-simple test, etc.)
We can avoid the situation in general making child process' information in another struct so the parent can manage it even if the child process is terminated and freed.
The text was updated successfully, but these errors were encountered:
syscall_exec()
waits a new process to be loaded by callingthread_yield()
repetitively. While this waiting, a new process would be executed to load its data on the memory. But, it is also possible to happen that the new process terminates (after loaded and executed) before the parent wakes up. If so, child process was freed, so we can not deal with child process' information during the parent's last ofsyscall_exec()
executions:Fortunately,
Bochs
does not involve this situation, butQemu
does (in such aswait-simple
test, etc.)We can avoid the situation in general making child process' information in another struct so the parent can manage it even if the child process is terminated and freed.
The text was updated successfully, but these errors were encountered: