C01: Traitement concourant et ordonnancement traitement concourant processus: types, états ordonnancement et ordonnanceur SO préemptive contraintes temporelles contraintes binaires mesures de performance: Ri, TL O: problème PO et solution SPO gestionnaire cyclique SVPO et SO
Traitement concourant Plusieurs processus pour réaliser une application: Coopération (partage des tâches); Compétition (partage des ressources). Potentiellement un traitement parallèle (P > 1).
SPTR C01: Traitement concourant et ordonnancement Application continue (durée indéfinie). Contraintes temporelles pour les processus concourants. Architecture matérielle variable: nombre de processeurs; topologie du réseau d interconnexion.
Besoins en gestion logicielle des SPTR Prévisibilité. Supervision des processus. Synchronisation et communication. Évitement des impasses. Détection et traitement des surcharges. Modifiabilité. Fiabilité.
Définition du processus Un processus est: un traitement séquentiel (défini par un programme); les données qu il utilise; les ressources qu il utilise. Les ressources peuvent être matérielles ou logicielles.
Périodique versus sporadique Processus périodique: s exécute à fréquence régulière; augmente la prévisibilité des STR. Processus sporadique: s exécute seulement au besoin. Mélange de processus périodiques et sporadiques: rend l analyse des STR plus complexe.
Partitionnement en processus Un processus dédié pour: contrôle d un périphérique lent; fonction critique et de grande priorité; fonction demandant de longs calculs; fonctions interdépendantes; modules mis en action par les mêmes événements; module qui s exécute périodiquement.
État d un processus C01: Traitement concourant et ordonnancement Quatre états possibles: en exécution; suspendu; bloqué; en veilleuse. L état peut changer à chaque unité de temps (u.t.).
Transitions entre les états C01: Traitement concourant et ordonnancement en exécution bloqué suspendu en veilleuse
C05: Processus indépendants Transitions entre les états u.t. i u.t. i + 1 Exécution Exécution Suspendu Bloqué Veilleuse le plus prioritaire ressource libérée et le plus prioritaire réactivé (début d une nouvelle période ou sporadique) et le plus prioritaire Suspendu pas le plus prioritaire ressource libérée mais pas le plus prioritaire réactivé mais pas le plus prioritaire Bloqué Veilleuse le plus prioritaire et ressource occupée ou attend le deuxième processus pour une communication traitement terminé ou échéance ratée échéance ratée réactivé et le plus prioritaire mais ressource occupée ou attend le deuxième processus pour une communication pas réactivé
Ordonnancement Objectif: Déterminer, pour chaque processeur, quel processus doit être dans l état «en exécution» à chaque u.t. Contrainte: Assurer que les contraintes temporelles des différents processus du SPTR sont respectées. L ordonnanceur a la charge de faire l ordonnancement.
Difficulté croissante (processus périodiques) 1 processus sur 1 processeur. 1 processus par processeur. N processus indépendants sur 1 processeur. N processus indépendants sur M processeurs. N processus interdépendants sur 1 processeur. N processus interdépendants sur M processeurs.
Ordonnanceur C01: Traitement concourant et ordonnancement Rôle: reçoit les demandes d interruption; reçoit les messages d un processus en exécution; maintient les listes des états des processus; effectue les changements d état des processus.
Ordonnanceur Ressource? Processus sporadique
Ordonnanceur L ordonnanceur change le processus en exécution si: ce dernier a terminé son traitement; ce dernier a raté son échéance (STR sévère); ce dernier est en attente d un événement; ce dernier est bloqué (ressource requise non disponible); un autre processus prêt est plus prioritaire.
Descripteur de processus Un descripteur de processus contient: l état actuel du processus; sa priorité; la liste des événements et ressources qu il attend; l adresse de départ de son code programme; ses variables locales; son contexte.
Ordonnancement basé sur les priorités Exécution du processus prêt le plus prioritaire.
Stratégie «round-robin»
Stratégies avec préemption But: respecter les contraintes temporelles des processus. Moyen: un processus en exécution peut être suspendu à n importe quelle u.t. en fonction de sa priorité relative déterminée par la stratégie d ordonnancement. Nécessaire dans les SPTR. Deux types de stratégies: statiques: priorités fixées au départ. dynamiques: priorités réévaluées à chaque u.t.
Problèmes possibles Processus indépendants: chargement temporel trop élevé sur un des processeurs. Processus interdépendants: blocage d un processus par un autre moins prioritaire; inversion des priorités; impasse. Explications et exemples à venir
Contraintes temporelles d un processus Paramètres discrets (u.t.): p i : nom du processus; b i : contrainte de début; c i : temps de calcul; T i : période d exécution; d i : contrainte de fin; f i : fréquence d exécution (= 1/ T i ); e i : temps maximum écoulé.
Contraintes temporelles d un processus ci < di bi < Ti < bi préemption ei période de l ordonnanceur (unité de temps: u.t). > di = ci
Allocation et ordonnancement Dans le cadre du cours SPTR, on supposera: une allocation statique d un sous-ensemble des processus sur chacun des processeurs disponibles; un ordonnancement indépendant sur chaque processeur; la résolution des conflits entre les ordonnancements individuels résultant du partage des ressources (projet).
Échelle de temps discrète O 1 1 2 1 2 1 1 2 2 X 1 2 1 2 3 4 5 6 7 8 9 10 11 12 N p1 p2 E E C R E 1 2 3 4 5 E C R E 1 2 3 4
Il ne faut pas confondre: Contrainte de début b i C01: Traitement concourant et ordonnancement début de la période du processus: tous les processus périodiques débuteront leur première période à la première unité de temps (déphasage nul). début possible du calcul du processus dans sa période: paramètre b i. Exemple: P 1 avec T 1 =20 et b 1 =2. début de la deuxième période de P 1 1 2 20 22
Contraintes binaires entre les processus égalité bi di t précédence rencontre recouvrement début inclusion terminaison
Mesures de performance Les stratégies d ordonnancement des SPTR peuvent être évaluées selon trois mesures globales de performance: temps de réponse (R): délai entre un événement et la fin de son traitement; chargement temporel (TL): taux d utilisation ou d occupation d un processeur; chargement de la mémoire: pourcentage de la mémoire qui est utilisé.
Problème C01: Traitement concourant et ordonnancement Problème d ordonnancement (PO): Ensemble de spécifications sur les processus d un SPTR et leurs contraintes temporelles ainsi que sur leurs interdépendances dans l accès aux ressources. Catégorie de PO (CPO): Ensemble de PO dont les spécifications respectent des contraintes générales. Par exemple, tous les PO pour lesquelles les processus sont périodiques et ont des échéances égales à leur périodes.
Solution C01: Traitement concourant et ordonnancement Solution d un PO (SPO): Ordonnancement (O) ou ordre temporel d exécution des processus du PO. Stratégie d ordonnancement (SO): Une SO est un algorithme générant une SPO pour chaque PO d une CPO. Solution valide d un PO (SVPO): SPO pour laquelle O respecte les contraintes temporelles et autres du PO, de façon continue.
Analyse C01: Traitement concourant et ordonnancement Réalisabilité d un PO: Un PO est réalisable s il est possible de trouver une SVPO pour ce PO. Optimalité d une SO: Une SO est optimale, pour une CPO donnée, si son application génère une SVPO pour chaque PO de cette CPO qui est réalisable.
Gestionnaire cyclique C01: Traitement concourant et ordonnancement Ce qui est fixé: CPO: processus périodiques avec contraintes; un seul processeur; format de la SPO. Ce qui n est pas fixé: SO.
Gestionnaire cyclique Longueur des périodes: multiple de la plus courte période. Période la plus longue: cycle majeur. Période la plus courte: cycle mineur. Cycle majeur = PPCM des périodes.
Gestionnaire cyclique Chaque processus est divisé en un ou plusieurs blocs. Chaque bloc dure une ou plusieurs unités de temps. Chaque bloc s exécute sans préemption.
Gestionnaire cyclique Le gestionnaire boucle sur la durée du cycle majeur. Chaque itération comporte un nombre fixe de cycles mineurs. Un ou plusieurs blocs sont exécutés durant chaque cycle mineur. Ordre d exécution fixe des blocs doit être choisi. L objectif est que la SPO résultante soit une SVPO.
Gestionnaire cyclique Avantages: plus simple et efficace qu un ordonnanceur général; changements de contexte choisis et rapides; partage des ressources facilité.
Gestionnaire cyclique Inconvénients: ne peut pas traiter les processus sporadiques; impose des périodes multiples aux processus; impose des cycles mineur et majeur; cycle mineur inférieur ou égal à chaque échéance.
Gestionnaire cyclique Inconvénients (suite): pas de SO générale assurant ou favorisant une SVPO; division en blocs pas toujours facile; difficile de bien choisir la SPO s il y a plusieurs processus; difficile de bien choisir la SPO si le cycle majeur est long.
Gestionnaire cyclique Exemple (pi:ci,ti,di): PO: (p1:1,10,10), (p2:3,10,10), (p3:2,20,20), (p4:8,20,20) Cycle majeur: 20 u.t Cycle mineur: 10 u.t. SPO arbitraire: 1111111111111111111111 SPO arbitraire: 12341234123412341234 Nombre de SPOs sur 20 u.t. = 4 20 = 1 099 511 627 776
C01: Traitement concourant et ordonnancement Gestionnaire cyclique Un bloc pour p1,p2,p3. Deux blocs pour p4 (2 u.t et 6 u.t.) b1 = 1; b2 = 222; b3 = 33; b4.1 = 44; b4.2 = 444444. SPO gestionnaire cyclique: b1b1b1b1b1xxxxxb2b2b2x Nombre de SPOs pour gestionnaire cyclique avec ces blocs? Nombre de SVPOs pour gestionnaire cyclique avec ces blocs? Chacun des deux cycles mineurs comprend b1 et b2 (4 u.t.). Chaque cycle majeur comprend b3, b4.1, b4.2, x.1, x.2 (12 u.t.). Nombre de possibilités pour chaque cycle mineur? Nombre de possibilités résultantes pour cycle majeur?
Gestionnaire cyclique SVPO gestionnaire cyclique: 1 er cycle mineur = b1b2b3b4.1xx = 12223344xx 2 ième cycle mineur = b1b2b4.2 = 1222444444 O = 12223344xx1222444444 États p1 = EVVVVVVVVVEVVVVVVVVV États p2 = SEEEVVVVVVSEEEVVVVVV États p3 = SSSSEEVVVVVVVVVVVVVV États p4 = SSSSSSEESSSSSSEEEEEE
SPO C01: Traitement concourant et ordonnancement Soit i, un entier correspondant au rang du processus dans le PO. (i = 1, 2,, #PO). Un ordonnancement O = SPO sur une période PN est une suite de PN nombres choisis entre 0 et n où n est le nombre de processus dans le PO.
SPO Pour chacune des PN unités de temps de la période finie, la valeur du nombre dans un ordonnancement donné indique le processus qui s exécute durant cette unité de temps, pour cet ordonnancement. Le nombre 0 indique qu aucun des n processus ne s exécute. On peut aussi utiliser le symbole x pour indiquer que le processeur est inactif durant cette unité de temps.
#TO C01: Traitement concourant et ordonnancement Soit TO, l ensemble de tous les ordonnancements possibles pour une CPO définie par n, le nombre de processus. TO = { SPO } est un ensemble fini ssi l ordonnancement est sur une période finie de PN unités de temps. #TO est le nombre total d ordonnancements différents dans un TO fini.
#TO C01: Traitement concourant et ordonnancement La valeur de #TO dépend seulement de PN et n. #TO = (n+1) PN. Exemples: PN = 1, n = 1 donne #TO = 2: O = 1 et O = x. PN = 2, n = 1 donne #TO = 4: O = xx, O = x1, O = 1x, O = 11.
#TO PN = 2, n = 2 donne #TO = 9: TO = { (xx), (x1), (x2), (1x), (11), (12), (2x), (21), (22) }. PN = 30, n = 3 donne #TO =? #TO = 1 152 921 504 606 846 976. PN = 70, n = 3 donne #TO = 1.39 x 10 42.
SO statiques C01: Traitement concourant et ordonnancement #TOS est le nombre total d ordonnancements, différents ou non, que l on peut obtenir par n importe quelle SO statique pour un PO donné. Pour n processus, il y a n! ordres de priorité possibles. #TOS = n!
SO dynamiques #TOD est le nombre total d ordonnancements, différents ou non, que l on peut obtenir par n importe quelle SO dynamique pour un PO donné. Pour n processus, il y a n! ordres de priorité possibles à chaque unité de temps. #TOD = (n!) PN. Pour n > 2, n! > (n+1), donc #TOD > #TO, ce qui fait que certains des #TOD ordonnancements doivent être identiques.
SVPO C01: Traitement concourant et ordonnancement Contraintes à respecter pour qu une SPO, générée par une SO pour un PO formé de processus périodiques, soit une SVPO: SPO est périodique, de période PN; PN est égal au plus petit commun multiple (PPCM) des périodes des processus du PO;
SVPO C01: Traitement concourant et ordonnancement pour chaque processus pi du PO et pour chaque période complète de durée Ti durant les premières PPCM unités de temps, le nombre i apparaît exactement ci fois; pour chaque processus pi du PO et pour chaque période complète de durée Ti durant les premières PPCM unités de temps, la dernière apparition du nombre i se produit avant ou au moment de l échéance de pi durant sa période; pour chaque processus pi du PO et pour chaque période complète de durée Ti durant les premières PPCM unités de temps, la première apparition du nombre i se produit après ou au moment de la contrainte de début de pi durant sa période.
SVPO C01: Traitement concourant et ordonnancement Pour un PO donné, il peut exister aucune, une ou plusieurs SVPO. S il n existe aucune SVPO, on dit que le PO n est pas réalisable. S il existe une ou plusieurs SVPO, on dit que le PO est réalisable.
SVPO S il existe plusieurs SVPO, on peut choisir la meilleure sur la base de critères de qualité: un nombre minimum de changements de contexte (quand deux unités de temps consécutives de l ordonnancement n ont pas le même nombre); retard maximum des unités de temps où le processeur est inactif; ordre de priorité d exécution des processus;
SO C01: Traitement concourant et ordonnancement Stratégie d ordonnancement SO: algorithme transformant le critère de priorité des processus dans l évaluation de la qualité d une SVPO en une contrainte supplémentaire pour une SPO. Une SO (déterministe) réduit #TO à 1 peu importe les valeurs de n et de PN. L ordonnancement produit par une SO pour un PO donné peut être une SVPO ou non.
SO Si l ordonnancement produit par une SO pour un PO donné est une SVPO, on peut conclure que le PO est réalisable (CS: condition suffisante). Si l ordonnancement produit par une SO pour un PO donné n est pas une SVPO, on ne peut rien conclure sur la réalisabilité du PO sauf si on sait que la SO est optimale; dans ce cas, on peut conclure que le PO n est pas réalisable. Si l ordonnancement produit par une SO pour chaque PO réalisable d une CPO donnée est une SVPO, on peut conclure que la SO est optimale pour cette CPO.