Ordonnancement. 1- Notions liées à l'ordonnancement de processus Qu'est-ce que l'ordonnancement de processus?
|
|
- Eléonore Labonté
- il y a 8 ans
- Total affichages :
Transcription
1 Ordonnancement 1- Notions liées à l'ordonnancement de processus 1.1- Qu'est-ce que l'ordonnancement de processus? La figure 1 schématise le fonctionnement d'une machine multiprocessus. Plusieurs processus sont présents en mémoire centrale. P1 est élu et s'exécute sur le processeur. P2 et P4 sont dans l'état bloqué car ils attentent tous les deux une fin d'entrée/sortie avec le disque. Les processus P3, P5 et P6 quant à eux sont dans l'état prêt : ils pourraient s'exécuter (ils ont à leur disposition toutes les ressources nécessaires) mais ils ne le peuvent pas car le processeur est occupé par P1. Lorsque P1 quittera le processeur parce qu'il a terminé son exécution, les trois processus P3, P5 et P6 auront tous les trois le droit d'obtenir le processeur. Mais le processeur ne peut être alloué qu'à un seul processus à la fois : il faudra donc choisir entre P3, P5 et P6 : c'est le rôle de l'ordonnancement qui élira un des trois processus. Mémoire Centrale Système multiprocessus P1 elu P2 attente E/S P3 attente cpu P4 P51 P6 attente E/S attente cpu attente cpu Processeur P1 P2 UE P4 Bus 1.2- Définition de l ordonnancement Fig 1 : qu'est-ce l'ordonnancement? La fonction d'ordonnancement gère le partage du processeur entre les différents processus en attente pour s'exécuter, c'est-à-dire entre les différents processus qui sont dans l'état prêt. L'opération d'élection consiste à allouer le processeur à un processus Ordonnancement préemptif ou non préemptif
2 La figure 2 reprend le graphe d'états tel qu'il a été vu à la leçon précédente concernant les processus. Une transition a été cependant ajoutée entre l'état élu et l'état prêt : c'est la transition de préemption. La préemption correspond à une opération de réquisition du processeur, c'est-à-dire que le processeur est retiré au processus élu alors que celui-ci dispose de toutes les ressources nécessaires à la poursuite de son exécution. Cette réquisition porte le nom de préemption. Système multiprocessus Etats des processus Fin Réveil Prêt Election Elu En exécution En attente du processeur Préemption (réquisition) Blocage Déblocage Bloqué En attente de ressources Fig 2 : Ordonnancement préemptif Définition de la préemption. Selon si l'opération de réquisition du processeur est autorisée ou non, l'ordonnancement sera qualifié d'ordonnancement préemptif ou non préemptif : - si l'ordonnancement est non préemptif, la transition de l'état élu vers l'état prêt est interdite : un processus quitte le processeur si il a terminé son exécution ou si il se bloque. - si l'ordonnancement est préemptif, la transition de l'état élu vers l'état prêt est autorisée : un processus quitte le processeur si il a terminé son exécution, si il se bloque ou si le processeur est réquisitionné. 2- Les entités système responsables de la fonction d'ordonnancement Le système d'ordonnancement gère une file des processus (bloc de contrôle) prêts et une file des processus bloqués. La file des processus prêts est classée selon une politique d'ordonnancement qui assure que le processus en tête de file est le prochain processus à élire au regard de la politique mise en oeuvre. Ce classement est effectué par l'ordonnanceur et
3 est réactualisé à chaque fois qu'un processus est préempté ou qu'un processus est débloqué (ajout d'un nouvel élément prêt). C'est le répartiteur qui élit le processus en tête de file, c'est-à-dire qui lui alloue un processeur libre. La figure montre le cas d'un système multiprocesseur ; le répartiteur doit alors choisir quel processeur allouer. Dans un système monoprocesseur, cette question ne se pose évidemment pas et souvent alors, ordonnanceur et répartiteur sont confondus. Une fois élu par le répartiteur, le processus s'exécute. S'il quitte le processeur, sur préemption, il réintègre la file des processus prêts ; au contraire, s'il quitte le processeur sur un blocage, il intègre la file des processus bloqués. Dans les deux cas, un nouveau processus est élu (la tête de file des processus prêts). Plus précisément, la file d'attente des processus bloqués est souvent organisée en files multinivaux, chaque niveau correspondant à une attente d'un événement/ressource particulier auquel peut être éventuellement associé une priorité. Dans le cas où des événements se produisent simultanément, cette priorité sert alors à déterminer quel événement doit être traité en premier. Système multiprocessus Ordonnanceur et répartiteur Préemption Cpu Election Ordonnanceur Cpu Cpu Blocage Répartiteur Prêts Classement selon une Politique d'ordonnancement Déblocage Bloqués Fig 3 : Ordonnanceur et répartiteur 2.1- Ordonnanceur L'ordonnanceur est un programme système dont le rôle est d'allouer le processeur à un processus prêt. 3- Les politiques d'ordonnancement 3.1- Définition : Politique d'ordonnancement
4 La politique d'ordonnancement détermine le choix d'un processus à élire parmi tous ceux qui sont prêts Objectifs des politiques d'ordonnancement Les buts de l'ordonnancement diffèrent en fonction du type de systèmes. - Systèmes de traitements par lots. Le but est de maximiser le débit du processeur ; c'est-à-dire le nombre moyen de processus traités par unité de temps. - Systèmes interactifs. Les buts principaux de l'ordonnancement sont premièrement de maximiser le taux d occupation du processeur, c est-à-dire le rapport entre le temps où le processeur est actif et le temps total. En théorie, ce taux peut varier entre 0% et 100 % ; dans la pratique, on peut observer un taux d occupation variant entre 40 % et 95 %. Deuxièmement, on va chercher à minimiser le temps de réponse des processus, c est-à-dire la durée séparant l instant de soumission du processus au système de la fin d exécution du processus. Au mieux, le temps de réponse peut être exactement égal au temps d exécution du processus, lorsque le processus a immédiatement été élu et s est exécuté sans être préempté. - Systèmes temps réel. Le but principal est d'assurer le respect des contraintes de temps liées aux processus Les principales politiques d'ordonnancement Nous décrivons ci-dessous les politiques mises en oeuvre dans des systèmes interactifs ou à traitements par lots. Les politiques spécifiques aux systèmes temps réel sont abordées dans la leçon suivante Politique d ordonnancement premier arrivé, premier servi (FIFO). C est une politique à l ancienneté, sans réquisition ; l unité centrale est allouée selon l ordre de soumission des processus. Dans cette politique, des processus de faible temps d exécution peuvent être pénalisés parce qu un processus de longue durée les précède dans la file.
5 Algorithme : Premier Arrivé Premier Servi FIFO, sans réquisition Prêt Prêt Actif P1 P2 P Temps de cycle Bloqué P3 P2 P1 Temps moyen d'attente 17 millisecondes ( )/ Fig 4 : Politique "Premier Arrivé, Premier Servi" Politique d ordonnancement plus court d abord Cette politique tente de remédier à l inconvénient mentionné pour la politique précédente. Maintenant, l unité centrale est allouée au processus de plus petit temps d exécution. Cette politique est également une politique sans réquisition. Elle a la propriété de minimiser le temps de réponse moyen pour l ensemble des algorithmes d ordonnancement sans réquisition. Elle pénalise les travaux longs. Elle impose également d estimer la durée des processus ce qu on ne connaît pas habituellement. Il existe une version avec réquisition de cette politique appelée temps restant le plus court d abord : dans ce cas, le processus en exécution restitue le processeur lorsqu un nouveau processus de temps d exécution inférieur à son temps d exécution restant devient prêt Politique d ordonnancement par tourniquet (Round Robin) On définit une tranche de temps appelée quantum qui peut varier de 10 ms à 100 ms. Chaque processus présent dans la file des processus prêts acquiert le processeur à tour de rôle, et ce pour au maximum un temps égal au quantum de temps. Si le processus a terminé son exécution avant la fin du quantum, il libère le processeur et le processus suivant dans la file des processus prêts est élu. Si le processus n a pas terminé son exécution avant la fin du quantum, il perd le processeur et est réinséré en fin de file des processus prêts. Cette politique du tourniquet est usuellement utilisée dans les systèmes en temps partagé. Sa performance dépend largement de la taille du quantum. Un quantum trop grand augmente les temps de réponse alors qu un quantum trop petit multiplie les commutations de contexte jusqu à les rendre non négligeables.
6 Algorithme : tourniquet Prêt P1 P2 P Temps de cycle Quantum = 4 P3 P2 P Fig 6 : Politique par tourniquet Politique d ordonnancement par priorités constantes Un niveau de priorité constant est affecté à chaque processus et à un instant donné, le processus élu est toujours celui de plus forte priorité. Cet algorithme présente une version sans réquisition et une version avec réquisition. Le défaut de cette politique est le risque de famine $popbw (compl_famine) encouru par le processus de faible priorité. Une solution à ce problème est de faire vieillir la priorité des processus en attente, c est-à-dire d augmenter celle-ci en fonction du temps d attente. La priorité des processus devient ainsi variable. $popd (compl_famine) La famine est la situation où un processus ne peut disposer d'une ressource qu'il demande (ici le processeur)
7 Algorithme : avec priorités Prêt P prio Tps exec P2 P3 P4 P4 P3 P2 Temps moyen d'attente 8,2 millisecondes P1 Fig 7 : Politique par priorités constantes Politique d ordonnancement par files de priorités constantes multiniveaux avec ou sans extinction de priorité Les politiques présentées jusqu à présent utilisent une seule file d attente des processus prêts. On choisit ici de définir plusieurs files de processus prêts, chaque file correspondant à un niveau de priorité ; on peut alors avoir n files de priorités différentes variant de 0 à n-1. Dans une file donnée, tous les processus ont la même priorité et sont servis soit selon une politique à l ancienneté sans préemption, soit selon une politique de tourniquet. Le quantum peut être différent selon le niveau de priorité de la file. L ordonnanceur sert d abord tous les processus de la file de priorité n, puis ceux de priorité n-1 dès que la file de niveau n est vide et ainsi de suite... On peut définir deux variantes de l algorithme, fonction de l évolution de la priorité des processus : les priorités des processus sont constantes tout au long de leur exécution. A ce moment-là, un processus en fin de quantum est toujours réinséré dans la même file d attente, celle correspondant à son niveau de priorité. les priorités des processus évoluent dynamiquement en fonction du temps de service dont a bénéficié le processus. Ainsi un processus de priorité n, à la fin du quantum de la file n, si il n a pas terminé son exécution, n est pas réinséré dans la file de priorité n, mais dans la file de priorité n-1. Et ainsi de suite... On cherche ici à minimiser les risques de famine pour les processus de faible priorité en faisant petit à petit baisser la priorité des processus de plus forte priorité.
8 Algorithme : multifiles sans extinction Arrivée F1 Prêt q1 Arrivée F1 Prêt q1 Priorité F2 F3 q2 q3 Election F2 F3 q2 q3 Election Fn qn Fn FIFO - - Fig 8 : Politique par priorités multiniveaux avec ou sans extinction de priorité Les politiques d'ordonnancement sous le système Linux Il existe trois politiques (classes) d ordonnancement dans Linux qui correspondent aux politiques définies dans la norme pour les systèmes d'exploitation ouverts, POSIX.: deux sont dites temps réel, SCHED_FIFO et SCHED_RR, la troisième est classique SCHED_OTHER. On peut attribuer un processus à l une de ces trois classes grâce à l appel système : sched_setscheduler(). Comme dans les systèmes Unix, la politique d ordonnancement SCHED_OTHER de Linux a plusieurs objectifs : avoir de bons temps de réponses, assurer une bonne capacité de traitement et essayer de répartir équitablement le temps CPU entre les différents processus. Elle correspond à ce qu on appelle la politique «en temps partagé». Chaque processus Linux a une priorité variable qui dépend de nombreux facteurs parmi lesquels nous pouvons citer le taux d utilisation de la CPU et l intensité des entrées / sorties. $p Il existe deux autres classes d ordonnancement dites temps réel : SCHED_FIFO et SCHED_RR.Les rubriques «policy» et «rt_priority» stockées dans la structure des processus Linux permettent de leur attribuer une classe d ordonnancement et une priorité temps réel. SCHED_FIFO et SCHED_RR ne sont pas des classes temps réel strictes, mais relatives. Quand un processus temps réel est prêt, tous les processus de priorité inférieure sont mis de côté. Un processus de la classe SCHED_FIFO peut s exécuter jusqu à la fin de son traitement ou jusqu à ce qu un processus de la classe SCHED_FIFO de priorité temps réel plus forte soit prêt. Un processus de la classe SCHED_RR est interrompu à la fin de son quantum de temps ou dès qu un processus de priorité temps réel (SCHED_FIFO ou SCHED_RR) supérieure est prêt. Il existe dans cette classe un principe de tourniquet parmi les processus de même priorité.
9 4- Ordonnancement sous le système Unix Les opérations relatives à l'ordonnancement sont réalisées par le système Unix à chaque fois qu'un processus s'apprête à passer du mode système au mode utilisateur, donc à la suite de l'occurrence soit d'une interruption, d'un appel système ou d'une trappe. La politique d'ordonnancement du système Unix est une politique à multiples niveaux de priorité avec quantum de temps. Le noyau recalcule la priorité d'un processus quand il passe du mode noyau au mode utilisateur. Dans une première approche, ce calcul permet une extinction de priorité des processus qui s'exécutent de manière à permettre l'exécution de tous les processus et à éviter les problèmes de famine 4.1- Structures de données liées à l'ordonnancement La priorité de chaque processus est codée dans l'entrée de la table des processus qui lui correspond. La plage des priorités des processus est partitionnée en deux sous-ensembles. Chaque ensemble contient plusieurs niveaux de priorités et à chaque niveau de priorité est associé une file d'attente (fig 9) : Ordonnancement dans le système Unix Priorités du mode noyau (sleep) Non interruptible Interruptible Priorités du mode user (préempté) Swapper Attente E/S disque Attente tampon Attente sortie tty Attente entrée tty Attente exit du fils Niveau utilisateur 0 Niveau utilisateur 1 Niveau utilisateur n Fig 9 : Files de priorités pour l ordonnancement sous Unix - les priorités utilisateurs : ce sont les processus préemptés par l'ordonnanceur au moment de leur retour en mode utilisateur. Un processus qui se réveille quitte la priorité noyau pour réintégrer les priorités utilisateur. La procédure de traitement de l'interruption horloge ajuste les priorités des processus en mode utilisateur toutes les secondes et fait entrer le noyau dans son algorithme d'ordonnancement pour éviter qu'un processus monopolise l'unité centrale
10 - les priorités noyau : ce sont des processus endormis en attente d'un événement. La file où le processus s'endort est fonction de l'événement attendu et la priorité correspond à une "préférence" sur les réveils suite à un événement. Un processus endormi en priorité noyau demeure toujours dans la file où il s'est endormi 4.2- Algorithmes d'ordonnancement mis en oeuvre L algorithme mis en œuvre s appuie sur la routine d interruption horloge qui fait régulièrement passer le processus en mode noyau. Plus précisément : - A chaque interruption horloge, le système incrémente de une unité la valeur du champ "utilisation du processeur" pour le processus élu. - Toutes les secondes c'est-à-dire toutes les 50 à 100 interruptions horloge, la valeur du champ "utilisation du processeur" pour tous les processus est divisée par deux. Puis la priorité des processus est recalculée selon la formule suivante : priorité du processus = Utilisation du processeur /2 + (priorité de base du niveau utilisateur) Du fait de ce recalcul des priorités; les processus se déplacent dans les files de priorité 4.3- Un exemple de mise en œuvre On considère trois processus A, B et C qui ont chacun une priorité initiale de 60. La priorité de base du niveau utilisateur est également la priorité 60. L'interruption horloge se déclenche 60 fois par seconde. A l'instant 0, le processus A est élu. Chaque seconde, l'interruption horloge survient et le champ "utilisation du processeur " (compte UC sur la figure 10) est incrémenté de une unité. Au bout de 60 secondes (instant t = 1), la priorité des processus est recalculée. Du fait que les processus B et C ne se sont pas encore exécutés leur priorité est inchangée (le compte UC est nul pour ces processus). La priorité du processus A par contre baisse et devient égale à 75 ( /2). C'est donc le processus B qui est à présent élu. A l'instant 2, de nouveau les priorités sont recalculées. Le compte UC du processus C étant toujours nul, la priorité de ce processus n'est pas modifiée. Les priorités du processus A et B par contre évoluent et deviennent respectivement égales à 67 pour le processus A ( /2) et à 75 pour le processus B. On voit à présent que le processus A a une priorité qui remonte du fait qu'il n'a pas pu utiliser l'unité centrale.
11 0 A 1 B 2 C 3 A 4 B 5 Priorité Proc A Compte UC (60+30/2) 67 ( /2) 63 (60 +7/2) 76 ( /2) (60/2) 15 (30/2) 7 (15/2) (67/2) Priorité Proc B Compte UC Priorité Proc C Compte UC Fig 10 : Exemple de mise en œuvre de l ordonnancement sous Unix 5- Ordonnancement temps réel 5.1- Caractéristiques de l'ordonnancement temps réel Dans un système temps réel, le but principal de l'ordonnancement est de permettre le respect des contraintes temporelles associées à l'application et aux tâches. Chaque tâche possède un délai critique qui est le temps maximal dont elle dispose pour s'exécuter depuis sa date de réveil. La date butoir résultante est appelée échéance. Le dépassement d'une échéance est appelé faute temporelle. Beaucoup d'applications temps réel sont des applications embarquées et critiques et il est nécessaire de certifier l'ordonnancement réalisé, c'est-à-dire de vérifier avant le lancement de l'application (hors ligne) le respect des contraintes temporelles. Cette certification s'effectue à l'aide de tests d'acceptabilité qui prennent en compte les paramètres temporels des tâches et notamment les temps d'exécutions des tâches. Il faut donc pouvoir connaître ces temps d'exécutions et surtout pouvoir les borner. Pour cela l'exécutif doit être déterministe. Les tests d'acceptabilité sont rarement des conditions nécessaires et suffisantes. On établit donc soit des conditions nécessaires, soit des conditions suffisantes. Les tests d'acceptabilité utilisent les temps d'exécution maximum des tâches pour pouvoir certifier les exécutions. Il faut donc être capable de calculer ces temps d'exécutions maximums. Pour cela, le support d'exécution, l'exécutif temps réel, doit être déterministe. Un exécutif temps réel déterministe est un exécutif pour lequel les temps de certaines opérations système et matérielles élémentaires peuvent être bornés : temps de commutation, temps de prise en compte des interruptions, etc 5.2- Les algorithmes d'ordonnancement temps réel Classification des algorithmes d'ordonnancement temps réel
12 L'ordonnancement peut être en ligne ou hors ligne. Un ordonnancement hors ligne établit avant le lancement de l'application une séquence fixe d'exécution des tâches à partir de tous les paramètres de celles-ci. Cette séquence est rangée dans une table et exécutée en ligne par un automate. Avec un ordonnancement en ligne, la séquence d'exécution des tâches est établie dynamiquement par l'ordonnanceur au cours de la vie de l'application en fonction des événements qui surviennent (réveils des tâches, blocage, etc ). Dans ce dernier cas, l'ordonnanceur choisit le prochaine tâche à élire en fonction d'un critère de priorité Modélisation de l'application temps réel pour la certification On distingue deux types de tâches pour la modélisation de l'application : - les tâches périodiques : Elles correspondent aux mesures sur le procédé ; elles se réveillent régulièrement (toutes les P unités de temps) - les tâches apériodiques : Elles correspondent aux événements ; elles se réveillent de manière aléatoire Les tâches périodiques On distingue : - périodiques strictes : contraintes temporelles dures à respecter absolument - périodiques relatives : contraintes temporelles molles qui peuvent être non respectées de temps à autre (sans échéance) - périodiques à échéance sur requête (délai critique = période) Une tâche périodique Tp (r 0, C, R, P) est caractérisée par les paramètres temporels suivants avec 0 <= C <= R <= P : - r 0, sa date de premier réveil - P, sa période - r k, la date de réveil de la kème requête, r k = r 0 + kp - C, son temps d'exécution maximum - R, son délai critique et d k, sa date d'échéance qui est telle que échéance d = r k + R - C(t) : le temps d'exécution restant à t - R(t) : le délai critique dynamique c'est-à dire le temps restant à t jusqu'à d. Une tâche périodique relative n'a pas de paramètre R défini. Une tâche périodique à échéance sur requête est une tâche pour laquelle R = P.
13 Tp (r 0, C, R, P) 0 C R P Tp (t, C(t), R(t)) R = P, à échéance sur requête d k = r k+1 Modèle de tâches Périodique stricte R r 0, date de premier réveil P, période r k, date de réveil de la kème requête r k = r 0 + kp C, temps d'exécution R, délai critique d k, échéance = r k + R C(t) : temps d'exécution restant à t R(t) : délai critique dynamique (temps restant à t jusqu'à d) C max kème requête r 0 t C(t) d 0 R(t) P r 0 + kp t Fig 11 : Modèle de tâche périodique Les tâches apériodiques On distingue : - apériodiques strictes : contraintes temporelles dures à respecter absolument - apériodiques relatives : contraintes temporelles molles qui peuvent être non respectées de temps à autre (sans échéance) Une tâche apériodique Tap (r 0, C, R) est caractérisée par les paramètres temporels suivants avec 0 <= C <= R : - r, sa date de réveil - C, son temps d'exécution maximum - R, son délai critique et d k, sa date d'échéance qui est telle que échéance d = r k + R - C(t) : le temps d'exécution restant à t - R(t) : le délai critique dynamique c'est-à dire le temps restant à t jusqu'à d. Une tâche apériodique relative n'a pas de paramètre R défini.
14 Modèle de tâches Apériodique stricte Tap (r, C, R) Tap (t, C(t), R(t)) R C max r, date aléatoire de réveil C, temps d'exécution R, délai critique d k, échéance = r k + R C(t) : temps d'exécution restant à t R(t) : délai critique dynamique (temps restant à t jusqu'à d) kème requête r t C(t) d r' t R(t) Fig 12 : Modèle de tâche apériodique Ordonnancement en ligne préemptifs pour des tâches périodiques indépendantes. Nous ordonnançons un ensemble de tâches périodiques (configuration). Les priorités affectées aux tâches sont soit constantes (évaluées hors ligne et fixes par la suite), soit dynamiques (elles changent dans la vie de la tâche) L'ordonnancement d'un ensemble de tâches périodiques est cyclique et la séquence se répète de manière similaire sur ce que l'on appelle la période d'étude. Pour un ensemble de tâches à départ simultanée (t = 0), la période d'étude est : [0, PPCM(P i )] 5.4- L'ordonnancement Rate Monotonic (RM) Avec cet algorithme, la priorité d une tâche est fonction de sa période, de telle sorte que la tâche de plus petite période est la tâche la plus prioritaire. Pour un ensemble de tâches à échéance sur requête, le test d'acceptabilité d une configuration de n tâches est (condition suffisante) donné sur la figure qui suit. La figure ci-dessous donne un exemple pour trois tâches périodiques à échéance sur requête, Tp 1 (r 0 =0, C=3, P=20), Tp 2 (r 0 =0, C=2, P=5) et Tp 3 (r 0 =0, C=2, P=10). La tâche la plus prioritaire est la tâche Tp 2 et la tâche la moins prioritaire est la tâche Tp 1. La séquence est décrite sur la période d étude, soit l intervalle [0, 20]. Les trois tâches respectent leurs contraintes temporelles. La condition suffisante est vérifiée ; on a : 3/20 + 2/5 + 2/10 = 0.75 < 0.77
15 Algorithmes d'ordonnancement pour les tâches périodiques indépendantes Rate Monotonic Test d acceptabilité n  i= 1 Ci n(2 P i 1/ n -1) Tp 1 (r 0 = 0, C = 3,P = 20)Tp 2 (r 0 = 0, C = 2, P = 5) Réveil Echéance sur requêtetp 3 (r 0 = 0, C = 2, P=10) ttt Fig 13 : Ordonnancement Rate Monotonic 5.5- Ordonnancement Inverse Deadline (ID) Avec cet algorithme, la priorité d une tâche est fonction de son délai critique. La tâche la plus prioritaire est la tâche de plus petit délai critique. Cet algorithme constitue une généralisation de l'algorithme Rate Monotonic à des tâches quelconques. Une condition suffisante d acceptabilité de tâches est donné sur la figure qui suit : La figure ci-dessous donne un exemple pour trois tâches périodiques Tp 1 (r 0 =0, C=3, R=7, P=20), Tp 2 (r 0 =0, C=2, R=4, P=5) et Tp 3 (r 0 =0, C=2, R=9, P=10). La tâche la plus prioritaire est la tâche Tp 2 et la tâche la moins prioritaire est la tâche Tp 3. La condition suffisante n est pas vérifiée ; en effet on a : 3/7 + 2/4 + 2/9 = 1.14 > 1. Mais le chronogramme construit sur la période d étude de la configuration prouve que l ordonnancement des trois tâches s effectue sans faute temporelle.
16 Algorithmes d'ordonnancement pour les tâches périodiques indépendantes Inverse Deadline Test d acceptabilité n Ci 1/ n  n(2-1) R Tp 1 (r 0 = 0, C = 3, R = 7, P = 20)Tp 2 (r 0 = 0, C = 2, R = 4, P = 5) RéveilÉchéance Tp 3 (r 0 = 0, C = 2, R = 9, P = 10) ttt i= 1 i Fig 14 : Ordonnancement Inverse Deadline 5.6- Ordonnancement Earliest Deadline (EDF) La priorité maximale à l instant t est accordée à la tâche dont l échéance est la plus proche. La priorité des tâches est maintenant dynamique. La figure ci-dessous donne un exemple pour trois tâches périodiques Tp 1 (r 0 =0, C=3, R=7, P=20), Tp 2 (r 0 =1, C=2, R=4, P=5) et Tp 3 (r 0 =0, C=1, R=8, P=10). À l instant t=0, les trois tâches sont réveillées et la tâche pour laquelle l échéance est la plus proche est la tâche Tp 2, qui donc s exécute. À l instant t=2, la tâche Tp 2 a terminé son exécution et c est maintenant la tâche Tp 1 qui est la plus prioritaire. À l instant t=5, la tâche Tp 1 se termine et la tâche Tp 2 se réveille de nouveau. Mais, c est maintenant la tâche Tp 3 pour laquelle la date d échéance est à t=8 qui est devenue la plus prioritaire. C est donc elle qui s exécute. On voit donc que contrairement à ce qui se passe avec les algorithmes à priorité fixe où les priorités des tâches sont calculées une fois pour toutes à l initialisation du système, ici les priorités des tâches évoluent les unes par rapport aux autres en fonction de leur urgence. Ainsi, à l instant t=0, la tâche Tp 2 est plus prioritaire que la tâche Tp 3, mais le rapport d urgence est inversé à l instant t=5.
17 Algorithmes d'ordonnancement pour les tâches périodiques indépendantes Earliest Deadline Tp 1 (r 0 = 0, C = 3, R = 7, P = 20)Tp 2 (r 0 = 0, C = 2, R = 4, P = 5) RéveilEchéance Tp 3 (r 0 = 0, C = 1, R = 8, P = 10) ttt Fig 15 : Ordonnancement Earliest Deadline 6- Une application temps réel sous RT-Linux Le système RT-Linux est une extension du système Linux classique vers le temps réel. Il est constitué par un noyau temps réel Rt-Linux qui partage le processeur avec le noyau de base Linux et exécute des tâches temps réel Les tâches RT-Linux Mise en œuvre. Les tâches RT-Linux s exécutent dans l espace adresse du noyau Linux au même titre que l ordonnanceur temps réel. Il existe dans les versions récentes de Linux la possibilité de charger dynamiquement des modules dans l espace adresse du noyau et de les «lier» au code du noyau. On parle de «modules chargeables». En effet, pour limiter la taille du noyau Linux et libérer ainsi plus de place mémoire pour l utilisateur, on évite de compiler le noyau avec des composants qui ne sont pas nécessaires à tout moment. Ces composants sont par exemple des gestionnaires de périphériques. Lorsqu on a besoin d ajouter ou de supprimer l un de ces composants, on n a plus besoin de recompiler tout le noyau comme cela était le cas auparavant: le composant est chargé ou déchargé dynamiquement à l aide d un module. Il faut simplement configurer le noyau avant sa compilation pour qu il accepte de gérer les modules chargeables: Ainsi, les tâches RT-Linux sont créées à l aide d un «module chargeable». Il y a plusieurs avantages à mettre les tâches dans l espace adresse du noyau:
18 - Elles partagent le même espace adresse. - Comme elles sont dans l espace adresse du noyau, on élimine la charge occasionnée par tout changement de niveau de protection. - Un avantage plus pratique que performant. Dans l espace adresse du noyau, il est permis de faire référence aux objets et aux fonctions par leur nom plutôt que par leur descripteur. C est l édition de lien dynamique des «modules chargeables» qui résoudra les symboles en adresse. En conclusion cette solution, qui consiste à mettre les tâches temps réel dans l espace adresse du noyau permet d optimiser les performances de RT-Linux. En contrepartie, cette solution comporte un risque : Un «Bug» dans une tâche temps réel peut mettre en danger tout le système. Ce risque est renforcé avec l utilisation du langage C, notamment les pointeurs. La seule garantie à ce niveau est la rigueur du programmeur. Le mode opératoire consiste en général à créer toutes les tâches lors du chargement du module (fonction init_module()) et à les supprimer uniquement au déchargement (fonction cleanup_module). La structure «rt_task_struct» (ou RT_TASK par «typedef struct rt_task_struct RT_TASK ;») des tâches temps réel dans RT-Linux est la suivante : - int *stack ; /* hardcoded */ - int uses_fp ; /* this one is too*/ - int magic ; - int state; Etat de la tâche : RT_TASK_READY, - int *stack_bottom ; Pointeur de pile. - int priority ; Politique d ordonnancement basée sur la priorité seule. - RTIME period; P : Période si la tâche est périodique. - RTIME resume_time; r : Prochaine heure de réveil. - struct rt_task_struct *next; Chaînage simple de l ensemble des tâches créées dans l application. - RTL_FPU_CONTEXT fpu_regs ; Les fonctions de gestion des tâches temps réel dans RT-Linux sont listées ci-dessous. Les états évoqués sont présentés dans les figures qui suivent. - int rt_task_init (RT_TASK *task, void (fn)(int data), int data, int stack_size, int priority) : Création d une tâche RT_Linux pointée par «task». Il y a réservation d espace mémoire dans le noyau (kmalloc) à hauteur de stack_size. «fn» est le code exécuté par la tâche. «data» est le paramètre passé à «fn» au démarrage. «priority» est la priorité de la tâche dont la valeur peut aller de 1, la plus forte priorité, à «RT_LOWEST_PRIORITY» ( ), la plus faible. - int rt_task_delete (RT_TASK *task) : Suppression logique d une tâche : Pas de libération de l espace mémoire «kfree» à ce niveau. Son état passe à RT_TASK_ZOMBIE. - int rtl_delete_zombies (void) : Suppression réelle de l ensemble des tâches logiquement supprimées par «rt_task_delete». «kfree» est effectué ici.
19 - int rt_task_make_periodic (RT_TASK *task, RTIME start_time, RTIME period) : Rend la tâche «*task» périodique avec une période «period» à partir de la première date de réveil «start_time». - int rt_task_wait (void) : Suspension de la tâche périodique jusqu à sa prochaine date de réveil. Elle met la tâche qui l a appelée dans l état RT_TASK_DELAYED. En général toute tâche périodique indique par cette fonction qu elle a terminé son traitement : ce doit donc être la dernière instruction du code de la tâche. Les tâches apériodiques ne s en servent pas car l état RT_TASK_DELAYED ne leur correspond pas. - int rt_task_wakeup (RT_TASK *task) : Déclenche la tâche «task», c est-à-dire la met dans l état prêt RT_TASK_READY. - int rt_task_suspend (RT_TASK *task) : Inactive la tâche «task», c est-à-dire la met dans l état RT_TASK_DORMANT. En général, cette routine est utilisée par les tâches apériodiques à la place de rt_task_wait pour signaler la fin de leur traitement. Une tâche périodique ou apériodique peut être suspendue par une autre tâche ou par l ordonnanceur. Les figures jointes donnent les graphes d'état des tâches périodiques et apériodiques pour Rt- Linux Format d'une application. La déclaration des tâches périodiques et apériodiques dans RT-Linux se fait à l aide d un module noyau dont nous présentons le squelette ci-dessous : On suppose que ce module s appelle RT_PROCESS.C et qu il va créer deux tâches : T1 et T2. T1 est une tâche périodique et T2 apériodique. Le module s installe dans le noyau par : insmod RT_PROCESS.O On le décharge du noyau par : rmmod RT_PROCESS $tfig #define MODULE #include <linux/module.h> #include <linux/kernel.h> #include <linux/version.h> #include <linux/errno.h> #include <rtl_sched.h > #include <linux/arch/i386/kernel/irq.h> #define NTASKS 2 RT_TASK tasks[ntasks] $e Fonction 1 /*-- Fonction 1 = traitement de la tâche périodique 1 --*/
20 Code de la fonction exécutée par la tâche périodique 1; l affectation de cette fonction à la tâche 1 est faite par rt_task_init (Cf. plus bas). Toute tâche périodique doit terminer son traitement par l appel à la fonction rt_task_wait(). Cette routine met la tâche dans l état RT_TASK_DELAYED, réinitialise la prochaine date de réveil et fait appel à l ordonnanceur rtl_schedule(). $tfig void f_tache_1(int par1) { rt_task_wait() ; } Fonction 2 /*-- Fonction 2 = traitement de la tâche apériodique 2 --*/ Code de la fonction exécutée par la tâche apériodique 2. Toute tâche apériodique doit terminer son traitement par l appel à la fonction rt_task_suspend() sur elle-même. Cette routine met la tâche dans l état RT_TASK_DORMANT et fait appel à l ordonnanceur rtl_schedule(). void f_tache_2(int par2) { rt_task_suspend(&(tasks[2])) ; } Interruption Tache 2 /*-- Gestionnaire de l interruption associée à la tâche 2 --*/ La tâche apériodique 2 est associée à un niveau d interruption dont l apparition active le gestionnaire T2_Handler(). L association entre le numéro d interruption et le gestionnaire sera vue plus bas. Ce gestionnaire a au moins pour rôle de réveiller la tâche apériodique concernée. Cette fonction met la tâche dans l état RT_TASK_READY et appelle l ordonnanceur. int T2_handler() { rt_task_wakeup(&(tasks[2])) ; } /*-- Ordres lancés à l installation du module: RT_PROCESS --*/ Lorsqu un module est chargé sous Linux (>insmmod RT_Process.o), il commence par effectuer la fonction init_module(). Cette fonction doit donc figurer dans tous les modules chargeables. Dans RT-Linux, on lui attribue le rôle de l initialisation des tâches temps réel (rt_task_init), de l initialisation des périodes et des dates de réveil pour les tâches périodiques (rt_task_make_periodic) et de l association des niveaux d interruptions aux gestionnaires associés (request_rtirq). int init_module(void) { rt_task_init(&(tasks[0]), f_tache_1, 0, 3000, 4) ;
21 rt_task_init(&(tasks[1]), f_tache_2, 1, 3000, 5) ; rt_task_make_periodic(&(tasks[0]), 5, 10) ; request_rtirq(2, &T2_handler) ; return 0 ; } /*-- Ordres lancés à la suppression du module: RT_PROCESS --*/ void cleanup_module(void) Lorsqu un module est déchargé sous Linux, il exécute systématiquement la fonction cleanup_module(). Cette fonction doit donc figurer dans tous les modules chargeables. Dans RT-Linux, on lui attribue le rôle de suppression des tâches temps réel (rt_task_delete) ainsi que celui de la libération des interruptions (free_rtirq). { rt_task_delete(&(tasks[0])) ; rt_task_delete(&(tasks[1])) ; free_rtirq(2) ; } L ordonnancement. Dans la version 1.2 de RT-Linux, présentée sur le site officiel du système, trois ordonnanceurs préemptifs ont déjà été installés : - Un ordonnanceur «à priorité fixe» : il s appuie sur le paramètre «priority» défini au niveau de chacune des tâches. Lorsque plusieurs tâches sont prêtes, celle qui a la priorité la plus forte (la valeur la plus petite) est élue. Une tâche qui se réveille (RT_TASK_READY) pourra préempter la tâche active si sa priorité est plus forte. - Un ordonnanceur «Rate-Monotonic» : nous ne nous y intéresserons pas, compte-tenu des limites de cette politique vis-à-vis des tâches apériodiques. - Un ordonnanceur «EDF» («Earliest Deadline First») : Il utilise l urgence comme critère de sélection de la prochaine tâche à élire.
REALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
Plus en détailInformatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction
Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d
Plus en détailProcessus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace
Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement
Plus en détailChapitre 4 : Outils de communication centralisés entre processus
Chapitre 1 : Introduction Chapitre 2 : Processus Chapitre 3 : Ordonnancement Chapitre 4 : Outils de communication centralisés entre processus Chapitre 5 : Allocation mémoire Chapitre 6 : Mémoire virtuelle
Plus en détailDAns un système multi-utilisateurs à temps partagé, plusieurs processus
Chapitre 8 Ordonnancement des processus Dns un système multi-utilisateurs à temps partagé, plusieurs processus peuvent être présents en mémoire centrale en attente d exécution. Si plusieurs processus sont
Plus en détailOrdonnancement temps réel
Ordonnancement temps réel Laurent.Pautet@enst.fr Version 1.5 Problématique de l ordonnancement temps réel En fonctionnement normal, respecter les contraintes temporelles spécifiées par toutes les tâches
Plus en détail1 Mesure de la performance d un système temps réel : la gigue
TP TR ENSPS et MSTER 1 Travaux Pratiques Systèmes temps réel et embarqués ENSPS ISV et Master TP1 - Ordonnancement et communication inter-processus (IPC) Environnement de travail Un ordinateur dual-core
Plus en détailCours A7 : Temps Réel
Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Motivations Du jour : les mécanismes multitâches, la gestion des priorités, l ordonnancement, la gestion
Plus en détailPROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES
Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.
Plus en détailPartie 7 : Gestion de la mémoire
INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases
Plus en détailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
Plus en détailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailProgrammation temps-réel Cours 1 et 2 Introduction et ordonnancement
Master 2 pro Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement Isabelle PUAUT / Rémi COZOT Université de Rennes I 1 Applications temps-réel embarquées Systèmes en interaction avec l
Plus en détailExtension d'un outil de trace pour système embarqué temps réel. Encadrants : Laurent Pautet, Jérôme Hugues
Brique projet - T3 2006 Marion Strauss Extension d'un outil de trace pour système embarqué temps réel Encadrants : Laurent Pautet, Jérôme Hugues 1 Table des matières TABLE DES MATIÈRES... 2 INTRODUCTION...
Plus en détailIntroduction aux Systèmes et aux Réseaux
Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -
Plus en détailMétriques de performance pour les algorithmes et programmes parallèles
Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and
Plus en détailAnalyse du temps de réponse des systèmes temps réel
Analyse du temps de réponse des systèmes temps réel Pascal Richard Laboratoire d Informatique Scientifique et Industrielle, ENSMA BP 40198 Téléport 2 F-86960 Futuroscope pascal.richard@ensma.fr RÉSUMÉ.
Plus en détailExécutif temps réel Pierre-Yves Duval (cppm)
Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications
Plus en détailOrdonnancement temps réel
Ordonnancement temps réel Ordonnancement centralisé par Francis COTTET Professeur d université (ENSMA, Poitiers Futuroscope) Ingénieur de l Institut national polytechnique de Grenoble Docteur ès sciences
Plus en détail03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing
3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détailVirtualisation logicielle De la machine réelle à la machine virtuelle abstraite
Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite Bertil FOLLIOT et Gaël THOMAS Cette version est une préversion de l article accepté par «Technique de l ingénieur» (Hermes).
Plus en détailGPA770 Microélectronique appliquée Exercices série A
GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément
Plus en détailChapitre 2. Les processus. 2.1 Introduction. 2.2 les différents états d un processus
Chapitre 2 Les processus 2.1 Introduction Le processus est un concept clé dans un système d exploitation. Un processus est un programme en cours d exécution. C est-à-dire, un programme à l état actif.
Plus en détailSystèmes et exécutifs temps-réel
Systèmes et exécutifs temps-réel Licence professionnelle «Systèmes embarqués dans l automobile» Isabelle PUAUT (Cours + TD) Jean-François DEVERGE et Christophe Pais (TP) 1 Applications temps-réel Systèmes
Plus en détailGestion des processus
65 La Gestion des Processus 1 Définitions, exemples 2. Politiques d'allocation du processeur 3. Synchronisation des processus 66 Programme : Un programme est une suite figée d'instructions, un ensemble
Plus en détailQu'est-ce qu'un processus: Définitions
Version septembre 2013 N 187 Qu'est-ce qu'un processus: Définitions Instruction = indécomposable et indivisible Processeur =... Processus = suite temporelle d'exécutions d'instructions Processus = exécution
Plus en détailIntroduction aux Systèmes et aux Réseaux, Master 2 CCI
aux Systèmes et aux Réseaux, Master 2 CCI Cours 1 : Introduction et contexte Unix/Linux Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI - Université Lyon 1 -
Plus en détailChapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping
Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailRapport de stage en Master Recherche Informatique
Rapport de stage en Master Recherche Informatique Ordonnancement de tâches dans des grappes de calculateurs par Jérôme Gallard Équipe d'accueil : PARIS Encadrement : Christine Morin, Emmanuel Jeanvoine
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL
i LE TEMPS RÉEL 1. PRÉSENTATION DU TEMPS RÉEL 1.1. APPLICATIONS TEMPS RÉEL 1.2. CONTRAINTES DE TEMPS RÉEL 2. STRUCTURES D'ACCUEIL POUR LE TEMPS RÉEL 2.1. EXÉCUTIFS TEMPS RÉEL 2.2. RÉSEAUX LOCAUX TEMPS
Plus en détailChapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing
Chapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing 2. Cluster de calcul (Torque/Maui) Batch/Job Scheduler Gestion automatique d'une séries de jobs Interface de définition des jobs et
Plus en détailSupport de cours système d exploitation
Support de cours système d exploitation J. Gispert, J. Guizol, J.L. Massat Département d informatique Faculté de Luminy 163, Avenue de Luminy, Case 901, 13288 Marseille, cedex 9 23 février 2012 Chapitre
Plus en détailCours A7 : Temps Réel
Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Organisation des cours 12 prochaines séances 6 janvier au 24 mars, Partiel le 27 janvier, Les 3 et 24
Plus en détailIFT2245 - Systèmes d exploitation - TP n 1-20%
IFT2245 - Systèmes d exploitation - TP n 1-20% DIRO - Université de Montréal Nicolas Rous et Dorian Gomez Disponible : 14/02/2013 - Remise : 28/03/2013 au début de la démo LISEZ TOUT LE DOCUMENT AVANT
Plus en détailIV- Comment fonctionne un ordinateur?
1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions
Plus en détailSeance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.
Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece
Plus en détailÉcole Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.
École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation
Plus en détail6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr
6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure
Plus en détailLivre blanc Mesure des performances sous Windows Embedded Standard 7
Livre blanc Mesure des performances sous Windows Embedded Standard 7 Table des matières Résumé... 1 Introduction... 1 Utilisation de la boîte à outils Windows Performance Analysis... 2 Fonctionnement...
Plus en détailAnnexe 6. Notions d ordonnancement.
Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. Sophie.Demassey@mines-nantes.fr Résumé Ce document
Plus en détailRuntime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I
Runtime Gestion de la réactivité des communications réseau François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I 1 Le calcul hautes performances La tendance actuelle
Plus en détailLe module Supply Chain pour un fonctionnement en réseau
Prélude 7 ERP Le module Supply Chain pour un fonctionnement en réseau Gérard Baglin Septembre 2008 Sommaire Chapitre 1 Le mode de fonctionnement en réseau de Prélude 7... 1 Le principe des jeux en temps
Plus en détailAnalyse de performance, monitoring
Analyse de performance, monitoring Plan Principes de profilage Projet TPTP dans Eclipse Utilisation des profiling tools de TPTP Philippe Collet Master 1 Informatique 2009-2010 http://deptinfo.unice.fr/twiki/bin/view/minfo/gl
Plus en détailEntente administrative sur la certification de produits conclue entre. la Direction générale de Transports Canada, Aviation civile (TCAC)
Entente administrative sur la certification de produits conclue entre la Direction générale de Transports Canada, Aviation civile (TCAC) et l Agence européenne de la sécurité aérienne (AESA) (ci-après
Plus en détailOrdinateurs, Structure et Applications
Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle
Plus en détailStratégie de sécurité grâce au logiciel libre. Frédéric Raynal <pappy@miscmag.com> Cédric Blancher <blancher@cartel-securite.fr>
Stratégie de sécurité grâce au logiciel libre Frédéric Raynal Cédric Blancher 1 Agenda du workshop Introduction Le logiciel libre et la sécurité GNU/Linux
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailJ2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation
J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread
Plus en détailSystèmes d exploitation Gestion de processus
Systèmes d exploitation Gestion de processus SITE : http://www.sir.blois.univ-tours.fr/ mirian/ Systèmes d exploitation - Mírian Halfeld-Ferrari p. 1/5 Les processus, à quoi ça sert? À faire plusieurs
Plus en détailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Plus en détailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailExercices INF5171 : série #3 (Automne 2012)
Exercices INF5171 : série #3 (Automne 2012) 1. Un moniteur pour gérer des ressources Le moniteur MPD 1 présente une première version d'un moniteur, exprimé en pseudo-mpd, pour gérer des ressources le nombre
Plus en détailIntroduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
Plus en détailRealtime applications with RTAI. R.KOCIK Embedded Systems department
Realtime applications with RTAI R.KOCIK Embedded Systems department 1 Outline I. Which RTOS to choose? II. Why not to choose Linux? III. Realtime Linux IV. Using RTAI V. RT TASK scheduling with RTAI VI.
Plus en détailTP3 : Manipulation et implantation de systèmes de fichiers 1
École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande
Plus en détailCours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)
Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads) Concurrence entre processus & Problème d Exclusion Mutuelle 1. Introduction 2. Solutions avec attente active, dites Sans Arbitrage
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailSystème de Gestion de Fichiers
Chapitre 2 Système de Gestion de Fichiers Le système de gestion de fichiers est un outil de manipulation des fichiers et de la structure d arborescence des fichiers sur disque et a aussi le rôle sous UNIX
Plus en détailGestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr
Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération
Plus en détailAtelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation
Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation CTIA06 Page 1 1. Types de blocs de programme L automate met à disposition différents types de blocs qui contiennent
Plus en détailSystemes d'exploitation des ordinateurs
! " #$ % $ &' ( $ plan_ch6_m1 Systemes d'exploitation des ordinateurs Conception de Systèmes de Gestion de la Mémoire Centrale Objectifs 1. Conception de systèmes paginés 2. Conception des systèmes segmentés
Plus en détailOrdonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1
CHAPTER 1 Ordonnancement 1.1. Étude de cas Ordonnancement de tâches avec contraintes de précédences 1.1.1. Exemple : construction d'une maison. Exercice. On veut construire une maison, ce qui consiste
Plus en détailArchitecture ordinateur. Organisation mémoire et Entrées/Sorties
Architecture ordinateur Organisation mémoire et Entrées/Sorties 243 Plages mémoire et E/S Dans une architecture à bus partagé, seule une partie des adresses active le contrôleur mémoire. Il reste des adresses
Plus en détailAnnexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
Plus en détailLes processus légers : threads. Système L3, 2014-2015 1/31
Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours
Plus en détailQuelques éléments de compilation en C et makefiles
Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable
Plus en détailCours 6 : Tubes anonymes et nommés
Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels
Plus en détailLe prototype de la fonction main()
Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme
Plus en détailTarification comparative pour l'industrie des assurances
Étude technique Tarification comparative pour l'industrie des assurances Les technologies de l'information appliquées aux solutions d'affaires Groupe CGI inc., 2004. Tous droits réservés. Aucune partie
Plus en détailPROGRAMMATION EVENEMENTIELLE sur EXCEL
MASTERs SMaRT & GSI PROGRAMMATION EVENEMENTIELLE sur EXCEL Pierre BONNET Programmation évènementielle La programmation évènementielle permet un appel de procédure depuis l'interface HMI d'excel (ou d'un
Plus en détailInitiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
Plus en détailLes bases de données Page 1 / 8
Les bases de données Page 1 / 8 Sommaire 1 Définitions... 1 2 Historique... 2 2.1 L'organisation en fichier... 2 2.2 L'apparition des SGBD... 2 2.3 Les SGBD relationnels... 3 2.4 Les bases de données objet...
Plus en détailIntroduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailIntroduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
Plus en détailQoS Réseaux haut débit et Qualité de service
QoS Réseaux haut débit et Qualité de service Auteurs : COUMATES Matthieu PETIT-JEAN Jérémy Responsable : PHAM Congduc (UPPA) 16 decembre 2010 Table des matières 1 Gestion de la QoS au niveau du noyau linux
Plus en détailCharte d'utilisation des infrastructures de la plate-forme bioinformatique Genotoul
Page 1/5 Objet de la modification Tableau des modifications Création du document 06/2014 Interdiction de lancer tout traitement de données sur les serveurs frontaux et purge du work sans préavis si fichiers
Plus en détail2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE
2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailInfo0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java
Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan
Plus en détailProblèmes liés à la concurrence
ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions
Plus en détailLinux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers
Linux embarqué Retour d expérience et temps réel 1 Denis Coupvent-Desgraviers Introduction Bien connaître les bases d un système d exploitation Utilisation de GNU/Linux Bonnes connaissances en langage
Plus en détailLES TOUT PREMIERS PAS
DESMODO, un logiciel de gestion d idées http://www.desmodo.net/ LES TOUT PREMIERS PAS Desmodo est un logiciel (libre) qui permet, entre autre, de visualiser et de synthétiser, de manière organisée, sous
Plus en détail3IS - Système d'exploitation linux - Programmation système
3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des
Plus en détailImpact de choix d implantation sur les performances d une application de Contrôle-Commande
Recherche Impact de choix d implantation sur les performances d une application de Contrôle-Commande Fabrice Jumel Nicolas Navet Françoise Simonot-Lion CITI - INSA 20, Avenue Albert Einstein, F6962 Villeurbanne
Plus en détailVersion 4.0 29 janvier 2012. Manuel d'utilisation. Adaptateur Ethernet rapide 10/100 USB 2.0
Version 4.0 29 janvier 2012 Manuel d'utilisation Adaptateur Ethernet rapide 10/100 USB 2.0 Table des matières Présentation du manuel D-Link se réserve le droit de réviser ce document et d en modifier le
Plus en détailSystèmes d exploitation
Systèmes d exploitation Virtualisation, Sécurité et Gestion des périphériques Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Novembre 2009 Gérard Padiou Systèmes d exploitation
Plus en détailTemps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011
Temps Réel Jérôme Pouiller Septembre 2011 Ordonnancement avec contraintes de précédance Problèmatique des accès concurents Problème liés aux partage de ressources Solutions utres
Plus en détailIntroduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr
Introduction aux systèmes temps réel Iulian Ober IRIT ober@iut-blagnac.fr Définition Systèmes dont la correction ne dépend pas seulement des valeurs des résultats produits mais également des délais dans
Plus en détailINTRODUCTION À LA PROGRAMMATION CONCURRENTE
INTRODUCTION À LA PROGRAMMATION CONCURRENTE POLYCOPIÉ DU COURS PCO1 Prof. Claude Evéquoz Prof. Yann Thoma HEIG-VD 2009 Table des matières Table des matières 2 1 Introduction à la programmation concurrente
Plus en détailPoker. A rendre pour le 25 avril
Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailLa mémoire. Un ordinateur. L'octet. Le bit
Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve
Plus en détail