Changes between Version 6 and Version 7 of TME2-2013
- Timestamp:
- Oct 16, 2013, 2:16:56 PM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TME2-2013
v6 v7 20 20 Pour cette expérimentation, nous utilisons une version d'Almix dont la notion de threads et la gestion de l’espace virtuel de processus sont tout à fait similaires à celles de Linux. Cette version d'Almix implémente les trois stratégies First-Touch, Interleave et Auto-Next-Touch. La stratégie Auto-Next-Touch y est appliquée par défaut, mais ce choix peut être désactivé et l’une des deux autres stratégies peut être activée dynamiquement (par une granularité de thread) à deux moments précis : lors de la création d’un thread et lors de la bifurcation d’un processus (appel système ''fork''). Sans indication explicite lors de ces deux appels systèmes, la stratégie du thread créateur est héritée par le nouveau thread et elle est conservée lors de la transformation d’un processus (appel système ''exec''). 21 21 22 Pour permettre au programmeur de choisir l'une des trois stratégies d'affinité mémoire proposées par Almix pour un nouveau processus, la bibliothèque de threads POSIX (libpthread) d'ALMOS a été étendue en ajoutant la fonction ''pthread_attr_setforkinfo_np''. Cette fonction doit être appelée avant la bifurcation d'un nouveau processus. Elle prend en argument un mask représentant une association de plusieurs drapeaux permettant d'exprimer quelle stratégie d'affinité mémoire Almix doit appliquer pour le nouveau processus. En particulier, deux drapeauxsont à utiliser pour cette expérimentation :22 Pour permettre au programmeur de choisir l'une des trois stratégies d'affinité mémoire proposées par Almix pour un nouveau processus, la bibliothèque de threads POSIX (libpthread) d'ALMOS a été étendue en ajoutant la fonction ''pthread_attr_setforkinfo_np''. Cette fonction doit être appelée avant la bifurcation d'un nouveau processus. Elle prend en argument un mask représentant une association de plusieurs drapeaux permettant d'exprimer quelle stratégie d'affinité mémoire Almix doit appliquer pour le nouveau processus. En particulier, les drapeaux suivants sont à utiliser pour cette expérimentation : 23 23 24 24 * ''PT_FORK_SET_AFFINITY'' : ce drapeau permet d'activer le contrôle de l'affinité mémoire. Il doit être positionné quelques soit le choix de la stratégie d'affinité mémoire souhaitée.