Changes between Version 30 and Version 31 of processus_thread


Ignore:
Timestamp:
Sep 15, 2016, 1:19:23 PM (6 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • processus_thread

    v30 v31  
    143143In each cluster, a dedicated kernel thread is in charge of housekeeping: This thread releases the memory allocated to all DEAD threads.
    144144
    145 == __5) Process destruction__ ==
     145== __6) Process destruction__ ==
    146146
    147147The process destruction can be caused by an exit() system call, or by asignal send by another process.
    148148In both case, the owner cluster is in charge of the destruction.
    149149
    150 === 5.1) phase 1 ===
     150=== 6.1) phase 1 ===
    151151
    152152If the exit() system call is executed by a thread running in a cluster K different from the owner cluster Z, the kernel K send a RPC_PROCESS_REQ_EXIT to cluster Z. The argument is the PID.
    153153
    154 === 5.2) phase 2 ===
     154=== 6.2) phase 2 ===
    155155
    156156To execute this RPC, the owner kernel Z send a multi-cast  RPC_PROCESS_EXIT to all clusters X that contain a copy of the process descriptor, using its COPIES_LIST. The argument of this RPC is the PID.
    157157
    158 === 5.3) phase 3 ===
     158=== 6.3) phase 3 ===
    159159
    160160In each cluster X, the kernel receiving a RPC_PROCESS_EXIT register the kill signal in all threads descriptors associated to the PID process. and polls the local TH_TBL(X,P). When it detects that the TH_TBL(X,P) is empty, it releases the memory allocated to process descriptor, and acknowledges the RPC to cluster Z.
    161161
    162 === 5.4) phase 4 ===
     162=== 6.4) phase 4 ===
    163163
    164164When the kernel Z has received all expected responses to the multi-cast RPC, it releases all memory located to process PID in cluster Z, and this completes the process destruction.