Changes between Version 75 and Version 76 of processus_thread


Ignore:
Timestamp:
Feb 12, 2018, 11:58:33 AM (7 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • processus_thread

    v75 v76  
    159159But the reference process destruction is more complex, because the child process destruction must be reported to the parent process when the parent process executes the blocking sys_wait() system call. Therefore, the child process destruction cannot be done before the parent calls the sys_wait() function. As the '''sys_wait()''' function, and the '''sys_kill() / sys_exit()''' function are executed by different threads running in different clusters, this requires a parent/child synchronization.
    160160 
    161 After a sys-kill() or sys_exit(), all child process threads and all process copies are immediately destroyed, but the reference child process must be kept in ''zombi'' state if the sys_wait() syscall has not been executed.  The synchronization uses three specific flags in the reference child process descriptor : the PROCESS_FLAG_KILL flag indicates that a ''kill'' request has been received by the child;  the PROCESS_FLAG_EXIT flag indicates that an ''exit'' request has been received by the child;  the PROCESS_FLAG_WAIT flag indicates that a ''wait''  request has been received.  Moreover the sys_exit() argument of is registered in the ''exit_status'' field of the process descriptor.
     161After a sys-kill() or sys_exit(), all child process threads and all process copies are immediately destroyed, but the reference child process must be kept in ''zombi'' state if the sys_wait() syscall has not been executed.  The synchronization uses the '''term_state'''  field in the reference child process descriptor :
     162 * the PROCESS_FLAG_KILL flag indicates that a KILL request has been received by the child; 
     163 * the PROCESS_FLAG_EXIT flag indicates that an EXIT  request has been made by the child; 
     164 * the PROCESS_FLAG_BLOCK flag indicates that a SIGSTOP signal has been received by the child;
     165 * the PROCESS_FLAG_WAIT flag indicates that a WAIT  request from parent has been received by the chid and reported to parent.
     166 * moreover the sys_exit() argument  is registered in the ''term_state'' field of the process descriptor.
    162167
    163168The actual deletion of the reference process is always caused by the sys_wait() function, using generally a RPC: