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
Correct garbage collection and lock breaking requires "liveness management", whereby every process registers an ID used for marking inodes as in-use and holding locks. Every process will increment a counter and set a last updated time at a constant frequency. Every process will watch the PID table and, on spotting a process not updating its entry, "ping" it. Failure to respond to the "ping" within a significant multiple of the update frequency will mean the pinged process is dead, and other processes may remove the dead process' entry from the PID table which will kill it.
The text was updated successfully, but these errors were encountered:
bdb5700 gets the first pass at liveness management into place. Processes put themselves into the table, and keep their entry up to date. If they see their entry has been removed, they self-terminate.
Next step is that processes need to fetch that table occasionally, and keep an in-memory copy. They can then use that to ensure their fellow processes are staying alive, and refer to it for garbage collection. (GC should operate off a fresh copy of the process table, as well as a list of everything which was alive recently. It doesn't need to be in a hurry to clean things up.)
Correct garbage collection and lock breaking requires "liveness management", whereby every process registers an ID used for marking inodes as in-use and holding locks. Every process will increment a counter and set a last updated time at a constant frequency. Every process will watch the PID table and, on spotting a process not updating its entry, "ping" it. Failure to respond to the "ping" within a significant multiple of the update frequency will mean the pinged process is dead, and other processes may remove the dead process' entry from the PID table which will kill it.
The text was updated successfully, but these errors were encountered: