5 – PARALLELISME , ORDONNANCEMENT UNIX AVANCE 5 – PARALLELISME , ORDONNANCEMENT Yves PAGNOTTE – Janvier 2011
PROCESSUS ET TACHES tâche : unité élémentaire de traitement ayant une cohérence logique relation de précédence entre deux tâches Ti et Tk : Ti < Tk si date de fin de Ti < date de début de Tk relation d ’ordre et graphe de précédence
PARALLELISATION DE TACHES notation symbolique : parbegin entre ces deux mots clés d’algorithmie tout s’exécute en parallèle en C : traduction avec utilisation de fork parend
PROBLEME ... Comment paralléliser une chaîne de tâches ? proposer un nouveau système de tâches : - équivalent = produisant le même résultat - et déterminé = produisant la même séquence d’informations dans toutes les cellules mémoires (i.e. les variables) utilisées
INTERFÉRENCE DE DEUX TÂCHES Def. : 2 tâches T1 et T2 sont non interférentes si : - T1 prédécesseur de T2 ou T2 prédécesseur de T1 ou LT1 ET2 = LT2 ET1 = ET1 ET2 = avec LT1 : espace de lecture de T1 ET1 : espace d’écriture de T1
INTERFÉRENCE DE TÂCHES Théorème de Bernstein : un système de tâches 2 à 2 non interférentes est déterminé si un système est déterminé et si les domaines d ’écriture de toutes les tâches sont non vides, les tâches sont 2 à 2 non interférentes
REFORMULATION DU PROBLÈME Comment paralléliser une chaîne de tâches ? proposer un nouveau système de tâches : - équivalent = produisant le même résultat (assez facile à vérifier) - non interférentes (Comment le vérifier ? Comment optimiser la parallélisation ?)
PARALLÉLISME MAXIMAL (OPTIMAL) - 1 Def.: un sytème de tâches est de parallélisme maximal si : - il est déterminé (= les tâches sont 2 à 2 non interférentes) - dans son graphe de précédence, la suppression de tout arc tel que (T1, T2) entraîne l’interférence de T1 et T2
PARALLÉLISME MAXIMAL (OPTIMAL) - 2 Théorème : Etant donné un système de tâches, il existe un unique système de tâches équivalent et de parallélisme maximal. Son graphe de précédence est la fermeture transitive de la relation : R = { (T1, T2) | T1 < T2 et (LT1 ET2 ou LT2 ET1 ou ET1 ET2 ) et ET1 et ET2 }
PARALLÉLISME MAXIMAL (OPTIMAL) - 3 Algorithme découlant du théorème : construire le graphe du système de tâches supprimer tous les arcs redondants tels que (A , B), c’est-à-dire tels qu’il existe un chemin de A à B comportant plus d’un arc
Donc 2 et 4 ne deviennent pas interférentes. Exemple : soit le système S Exemple : soit le système S Exemple : soit le système S Exemple : soit le système S 1 3 4 5 6 M = ( M1, M2, M3, M4, M5) L1 = { M1 } E1 = { M4 } L2 = { M3, M4 } E2 = { M1 } L3 = { M3, M4 } E3 = { M5 } L4 = { M4 } E4 = { M2 } L5 = { M5 } E5 = { M5 } L6 = { M1, M2 } E6 = { M4 } Si l'on supprime l'arc (2 , 4), 2 n'est ni prédécesseur, ni successeur de 4, mais L2 E4 = L4 E2 = E4 E2 = . Donc 2 et 4 ne deviennent pas interférentes. Donc le système S n'est pas de parallélisme maximal. On démontre qu’il est déterminé (démonstration à faire). M = ( M1, M2, M3, M4, M5) L1 = { M1 } E1 = { M4 } L2 = { M3, M4 } E2 = { M1 } L3 = { M3, M4 } E3 = { M5 } L4 = { M4 } E4 = { M2 } L5 = { M5 } E5 = { M5 } L6 = { M1, M2 } E6 = { M4 } Si l'on supprime l'arc (2 , 4), 2 n'est ni prédécesseur, ni successeur de 4, mais L2 E4 = L4 E2 = E4 E2 = . Donc 2 et 4 ne deviennent pas interférentes. Donc le système S n'est pas de parallélisme maximal. On démontre qu’il est déterminé (démonstration à faire).
On construit le graphe de R : il comporte nécessairement les arcs : Exemple : soit le système S Exemple : soit le système S Exemple : soit le système S On construit le graphe de R : il comporte nécessairement les arcs : (1 , 2) car L1 E2 = { M1 } (1 , 3) L3 E1 = { M4 } (1 , 4) L4 E1 = { M4 } (1 , 6) E6 E1 = { M4 } (2 , 6) L2 E6 = { M4 } (3 , 5) E3 E5 = { M5 } (3 , 6) L3 E6 = { M4 } (4 , 6) L4 E6 = { M4 } Les arcs (1,5) , (2,4) , (3,4) et (5,6) ont été supprimés. L'arc (1 , 6), redondant, peut être supprimé. D'où le système de parallélisme maximal équivalent à S : 1 2 4 3 5 6 M = ( M1, M2, M3, M4, M5) L1 = { M1 } E1 = { M4 } L2 = { M3, M4 } E2 = { M1 } L3 = { M3, M4 } E3 = { M5 } L4 = { M4 } E4 = { M2 } L5 = { M5 } E5 = { M5 } L6 = { M1, M2 } E6 = { M4 } Si l'on supprime l'arc (2 , 4), 2 n'est ni prédécesseur, ni successeur de 4, mais L2 E4 = L4 E2 = E4 E2 = . Donc 2 et 4 ne deviennent pas interférentes. Donc le système S n'est pas de parallélisme maximal. On démontre qu’il est déterminé (démonstration à faire).
ORDONNANCEMENT (1) critères d’une méthode d’ordonnancement de processus : équité répartition du temps processeur, mais aussi des autres ressources (mémoires, périphériques,…) pas de « famine » efficacité le processeur travaille si possible à 100 % temps d’attente à minimiser temps de réponse à minimiser
ORDONNANCEMENT (2) 2 familles de méthodes : sans réquisition ou non préemptif un nouveau processus désigné après blocage ou fin du processus en cours avec réquisition ou préemptif à intervalle régulier, l ’ordonnanceur désigne un nouveau processus
ORDONNANCEMENT SANS RÉQUISITION premier entré, premier sorti (first come-firts served, FCFS) privilégie les processus consommateurs de l’UC dégrade l’utilisation des E/S plus court d’abord (shortest job first, SJF) basé sur une estimation du nombre de cycles processeurs (FCFS pour départager les ex-aequo) favorise les travaux courts (héritage de l’époque batch)
ORDONNANCEMENT AVEC RÉQUISITION tourniquet (round robin, RR) quel quantum de temps ? liste circulaire PCTER (shortest remaining time, SRT) - désigner la tâche dont le temps d ’exécution restant est le plus faible minimise l’attente moyenne - privilégie les travaux courts
ORDONNANCEMENT AVEC RÉQUISITION variante : les processus ont chacun une priorité et on gère un tourniquet par niveau de priorité avec priorités recalculées périodiquement (allocation dynamique de priorité) il existe des algorithmes plus sophistiqués pour prendre en compte les échanges mémoire-disque et le parallélisme