Changes between Version 10 and Version 11 of processus_thread


Ignore:
Timestamp:
Jul 3, 2016, 6:13:36 PM (6 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • processus_thread

    v10 v11  
    2121- VSL : liste des vsegs du processus,
    2222- FDT : table des fichiers ouverts du processus,
    23 - THTBL : liste des threads du processus,
     23- TH_TBL : liste des threads du processus,
    2424- ENV : variables d’environnement du processus,
    2525
     
    8282
    8383N’importe quel thread T de n’importe quel processus P s’exécutant sur n’importe quel cluster K peut créer un nouveau thread T’
    84 dans n’importe quel cluster M. Ce thread T’ sera attaché  à l’ordonnanceur de l’un des coeurs du cluster M. Le choix de ce coeur
    85 est effectué par l’instance du noyau du cluster M. Le cluster propriétaire du processus P peut être un troisième cluster Z.
     84dans n’importe quel cluster M. Ce thread T’ sera attaché  à l’ordonnanceur de l’un des coeurs du cluster M. Le cluster propriétaire du processus P peut être un troisième cluster Z.
     85 * Le choix du cluster cible M peut être imposé par l'utilisateur (grâce au champs CXY de la structure pthread_attr_t passée en argument). Si le cluster cible n'est pas spécifié, le choix est effectué par le kernel du cluster client grâce à la DQDT.
     86 * Le choix du coeur cible dans le cluster cible peut être imposé par l'utilisateur (grâce au champs CORE_LID de la structure pthread_attr_t passée en argument). Si le coeur cible n'est pas spécifié, le choix est effectué par le kernel du cluster cible, grâce
     87à la DQDT.
    8688
    87 Seul le noyau du cluster propriétaire du processus P peut créer ou détruire un thread  appartenant au processus P (i.e. modifier la Liste des threads TRDL appartenant au processus P)
    88 Ceci simplifie les problèmes de concurrence, et permet de simplifier les copies des descripteurs de processus dans les clusters autres que le propriétaire de P. 
    89 La copie de la liste des threads TRDL(P,M) dans un cluster M autre que  le cluster propriétaire de P ne contient que les descripteurs de thread qui s’exécutent localement sur un coeur de M,
    90 alors que la TRDL(P,Z) du cluster Z propriétaire de P doit contenir tous les threads de P.
     89Seul le noyau du cluster propriétaire du processus P peut créer ou détruire un thread  appartenant au processus P (i.e. modifier la Liste des threads TRDL appartenant au processus P). Ceci simplifie les problèmes de concurrence, et permet de simplifier les copies des descripteurs de processus dans les clusters autres que le propriétaire de P. 
     90La copie de la liste des threads TH_TBL(P,M) dans un cluster M autre que  le cluster Z propriétaire de P ne contient que les descripteurs de thread qui s’exécutent localement sur un coeur de M, alors que la TH_TBL(P,Z) du cluster Z propriétaire de P doit contenir tous les threads de P.
    9191
    9292=== 4.1) phase 1 ===
    9393
    94 Le noyau du cluster K envoie une THREAD_CREATE_RPC au cluster Z propriétaire. Les arguments sont le PID du processus, le cluster cible M, la fonction à exécuter et ses arguments.
    95 Le noyau du cluster Z propriétaire de P, ne répond pas immédiatement au cluster demandeur K, mais envoie au cluster cible M une THREAD_CREATE_RPC, avec les mêmes arguments.
     94Le noyau du cluster K connait l'identifiant du cluster Z propriétaire de P, puisque cet identifiant est contenu dans le PID.  le noyau de K envoie une RPC_THREAD_USER_CREATE au cluster Z propriétaire. L'argument est une structure pthread_attr_t contenant le PID, le TRDID, la fonction à exécuter et ses arguments, et optionnellement le cluster cible et le core cible.
     95Le noyau du cluster Z propriétaire de P, ne répond pas immédiatement au cluster demandeur K, mais envoie au cluster cible M une RPC_THREAD_USER_CREATE, avec les mêmes arguments.
    9696
    9797=== 4.2) phase 2 ===