Changes between Version 122 and Version 123 of processus_thread


Ignore:
Timestamp:
Jan 19, 2020, 11:54:02 PM (2 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • processus_thread

    v122 v123  
    1515
    1616In each cluster K, the local cluster manager ( [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/cluster.h#L97 cluster_t] type in ALMOS-MKH ) contains a process manager ( [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/cluster.h#L75 pmgr_t]  type in ALMOS-MKH ) that maintains three structures for all processes owned by K :
    17  * The [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/cluster.h#L77 pref_tbl[lpid]] is an array indexed by the local process index. Each entry contains an extended pointer on the reference process descriptor.
     17 * The [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/cluster.h#L77 pref_tbl[lpid]] is an array indexed by the local process index. Each entry contains an extended pointer on the reference process descriptor for each process owned by cluster K.
    1818 * The [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/cluster.h#L85 copies_root[lpid]] array is also indexed by the local process index. Each entry contains the root of the global list of copies for each process owned by cluster K.   
    1919 * The [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/cluster.h#L81 local_root] is the local list of all process descriptors in cluster K. A process descriptor copy of P is present in K, as soon as P has a thread in cluster K.
     
    2626
    2727You can find below a partial list of information stored in a process descriptor ( [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/process.h#L111 process_t] in ALMOS-MKH ):
    28 - '''PID''' :  proces identifier.
    29 - '''PPID''' : parent process identifier,
    30 - '''PREF''' : extended pointer on the reference process descriptor.
    31 - '''STATE''': current process state.
    32 - '''VSL''' : root of the local list of virtual segments defining the memory image.
    33 - '''GPT''' : generic page table defining the physical memory mapping.
    34 - '''FDT''' : open file descriptors table.
    35 - '''TH_TBL''' : local table of threads owned by this process in this cluster.
    36 - '''LOCAL_LIST''' : member of local list of all process descriptors in same cluster.
    37 - '''COPIES_LIST''' : member of global list of all descriptors of same process.
    38 - '''CHILDREN_LIST''' : member of global list of all children of same parent process.
    39 - '''CHILDREN_ROOT''' : root of global list of children process.
    40 
    41 All elements of a ''local'' list are in the same cluster, so ALMOS-MKH uses local pointers. Elements of a ''global'' list can be distributed on all clusters, so ALMOS-MKH uses extended pointers.
     28- '''pid''' :  proces identifier.
     29- '''parent_xp''' : extended pointer on parent process identifier,
     30- '''owner_xp''' : extended pointer on the owner process descriptor.
     31- '''ref_xp''' : extended pointer on the reference process descriptor.
     32- '''vmm.vsl''' : root of the local list of vsegs defining the process memory image.
     33- '''vmm.gpt''' : generic page table defining the mapping of the process vsegs.
     34- '''fd_array'' : open file descriptors table.
     35- '''th_tbl''' : local table of threads owned by this process in this cluster.
     36- '''local_list''' : member of local list of all process descriptors in same cluster.
     37- '''copies_list''' : member of global list of all descriptors of same process.
     38- '''children_list''' : member of global list of all children of same parent process.
     39- '''children_root''' : root of global list of children process.
     40- etc.
     41
     42All elements of a ''local'' list are in the same cluster, so ALMOS-MKH uses local pointers. The elements of a ''global'' list can be distributed on all clusters, so ALMOS-MKH uses extended pointers.
    4243
    4344== __2) Thread definition__ ==
     
    5960
    6061You can find below a partial list of information stored in a thread descriptor ([https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/thread.h#L134 thread_t] in ALMOS-MKH):
    61  * '''TRDID''' : thread identifier
    62  * '''TYPE''' : KERNEL / USER / IDLE / RPC
    63  * '''FLAGS''' : bit_vector of thread attributes.
    64  * '''BLOCKED''' : bit_vector of blocking causes.
    65  * '''PROCESS''' : pointer on the local process descriptor
    66  * '''SCHED''' : pointer on the scheduler in charge of this thread.
    67  * '''CORE''' : pointer on the owner processor core.
    68  * '''LOCKS_COUNT''' : current number of locks taken by this thread
    69  * '''CPU_CONTEXT''' : save the CPU registers when descheduled.
    70  * '''FPU_CONTEXT''' : save the FPU registers when descheduled.
    71  * '''XLIST''' : member of the global list of threads waiting on the same resource.
    72  * '''CHILDREN_ROOT''' : root of the global list of children threads.
    73  * '''CHILDREN_LIST''' : member of the global list of all children of same parent.
     62 * '''trdid''' : thread identifier
     63 * '''type''' : KERNEL / USER / IDLE / RPC
     64 * '''flags''' : bit_vector of thread attributes.
     65 * '''blocked''' : bit_vector of blocking causes.
     66 * '''process''' : pointer on the local process descriptor
     67 * '''parent''' : extended pointer on the parent thread descriptor.
     68 * '''sched''' : pointer on the scheduler in charge of this thread.
     69 * '''core''' : pointer on the owner core descriptor.
     70 * '''cpu_context''' : save the CPU registers when descheduled.
     71 * '''fpu_context''' : save the FPU registers when descheduled.
     72 * '''wait_xlist''' : member of a global list of threads waiting on the same resource.
     73 * '''wait_list''' : member of a local list of threads waiting on the same resource.
     74 * '''sched_list''' : member of the local list of threads running on the same core.
    7475- etc.
    7576