Architecture des Systèmes Informatiques...
Transcript of Architecture des Systèmes Informatiques...
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques1
ARCHITECTUREdes
SYSTEMES INFORMATIQUES
Cours B4Cyril FRANCONIE
Ordonnancement
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques2
Architecture des Systèmes
HistoriqueArchitecture d'un Ordinateur / d'un processeurObjectif et rôle d'un Système d'exploitationNotions de base / Mécanismes fondamentauxEntrées / SortiesLes ProcessusOrdonnancementLa MémoireMesures de performancesLes standardsEt l'avenir ...?
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques3
Ordonnancement
De l'unité centraleConceptsCritères de performancesAlgorithmesInfluence sur les mécanismes de synchronisations
Des disquesParticularitésAlgorithmesSituation aujourd'hui
Et les autres ressources ?
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques4Ordonnancement de l'unité centrale
Concepts
L'objectif global de l'ordonnancement (scheduling) est d'avoir un taux d'utilisation du processeur le plus élevé possible.Des études de cas réels montrent que les processus sont composés
de phases d'utilisation de la CPU intensives mais courtesde phases d'I/O avec mise en attente pour des durées longues
Il faut impérativement éviter la faiblesse des systèmes mono-programmés :
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques5
Concepts (2)
Dans un système séquentiel, les processus se suivent : => taux d'utilisation faible
AB
AB
CPU
IO
Gain
Dans un système multi-programmé, les processus ont des phases qui se recouvrent : => taux d'utilisation important
= attente
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques6
CritèresOn peut vouloir optimiser différents critères :
Taux d'utilisation de la CPU, c.a.d % temps CPU/temps réelDébit du système (throughput): nb de processus traités en moyenne par unité de temps.Temps de traitement moyen (turnaround time) : intervalle de temps entre soumission d'un processus et fin d'exécution.
Aussi le temps total pour un ensemble de processusTemps d'attente par processus : temps passé par un processus à attendre. Le temps CPU d'un processus est en fait indépendant de l'algorithme d'ordonnancement.Temps de réponse : temps entre soumission d'une «requête » et la première réponse.
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques7
Concepts (3)
Le but d'un algorithme d'ordonnancement sera de choisir le processus prêt à qui on attribuera la CPU.
de façon à optimiser un des critères !le taux d'utilisation CPU est toujours bien optimisé.
On peut distinguer dans un système général, trois ordonnanceurs :
L'ordonnanceur de court-terme L'ordonnanceur de moyen-terme L'ordonnanceur de long-terme
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques8
Concepts (4)
L'ordonnanceur de court-terme utilisé pour choisir parmi les processus prêts en mémoire celui qui aura la CPU.
L'ordonnanceur de moyen-terme Appelé aussi swapper : permet de swapper out et in des processus entiers pour soulager le système.
L'ordonnanceur de long-terme Pour les systèmes à base de soumission de jobs; Choisi parmi les processus en attente celui qui sera chargé en mémoire.
L'algorithme « optimum » sera différent suivant l'ordonnanceur considéré.
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques9
Ordonnanceurs :
On peut donc résumer l'organisation générale des ordonnanceurs par le schéma :
File des processusprêts CPU
Processus« swappé out »
file attente IO
ordonnanceurcourt-terme
ordonnanceurmoyen-terme
ordonnanceurlong-terme
file attentesoumission
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques10
AlgorithmesNombreux, liés aux choix de design d'un système d'exploitation, et au type d'activité visé.On distinguera ceux :
Sans réquisition (no-preemption)FIFO (First Come First Served) simple, et à prioritéPlus Court Temps d'Execution (Shortest Job First)
Avec réquisitionTourniquet (Round-robin)PCTER (Shortest Remaining Time First)Tourniquet à multiple niveaux de priorité variable (unix)Partage de temps (time sharing) (ambigu !)Partage équitable (fair share)
Dans la suite de l'exposé, on décomposera les processus en tâches, chaque tâche étant une phase de CPU pure, terminée par une mise en attente pour cause d'IO.
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques11
FIFO
Le plus simple :Un processus reste actif tant que
il n'a pas terminéil n'est pas bloqué par une opération d'I/O
Facile à comprendre et implémenter; mais peu efficace :
Considérons le temps de traitement moyen du système de tâches suivant soumis dans l'ordre:
Processus Temps T1 40T2 7T3 4
T1 T2 T3
Tmoyen = (40 + 47+51)/3 = 46
0 40 47 51
Si l'ordre était : T3 T2 T1 : Tmoyen = (4+11+51)/3 = 22 !
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques12
FIFO (2)
Problème aussi si on a un processus A gourmand en CPU, et N processus faisant beaucoup d'IO : ils seront bloqués par le processus A.On peut avoir N files d'attentes pour N priorité différentes.
On choisit toujours le processus prêt de la file la plus prioritaire.Un processus qui devient prêt dans une file plus prioritaire préempte le processus actifAlgorithme très utilisé dans les systèmes temps réel !
il faut alors bien choisir les niveaux de priorités à affecter aux différentes tâches.
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques13
PCTE
Cherche à améliorer le temps de traitement moyen;
On choisit dans la liste des processus prêts, celui qui aura comme tâche suivante le plus court temps d'exécution.Il faut connaître ce temps !?
On utilise une méthode d'estimation basée sur les tâches précédentes du même processus, et sur l'estimation qu'on en avait fait :T
i+1 (prédiction) = α t
i + (1-α)T
i ; t
i = temps effectif
Moyenne exponentielle; car Ti+1
= α ti+(1-α)α t
i-1
+...+(1-α)jαti-j+...+(1-α)iT
0
souvent utilisée avec α = 1/2
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques14
PCTE : exemple
Considérons le système à 3 processus séquentiels constitué des tâches suivantes :Processus Tâche Temps mesuré Temps estimé
P1
T1 3 4T2 13 3T3 15 8T4 4 11
P2T5 8 4T6 14 6T7 13 10
P3
T8 11 4T9 5 7T10 5 6T11 16 5T12 12 10
Les 3 processus sont soumis quasiment en même temps, dans l'ordre; L'estimation initiale T0 = 4
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques15
PCTE : exemple suite
L'ordre défini par l'algorithme est :T1 T2 T5 T8 T6 T9 T10 T11 T3 T7 T12 T4soit :
T1
T12
T7
T4
T11
T3
T10T9
T6
T2
T5
T8
Temps de traitement réel moyen par tâche=(3+16+24+35+49+54+59+75+90+103+115+119)/12 = 62Le temps de traitement réel optimum serait de 56Celui par un FIFO (processus même priorité) serait de :60Global processus : PCTE : 112, optimum:94, FIFO 97 !!!
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques16
Round-robinPrincipe : découper le temps en quantums et changer de tâche active à la fin de chaque quantum (ou avant si la tâche est finie)
basé sur le TICKpréemption d'une tâche si elle n'est pas finie à l'expiration de son quantum; elle est mise en queue de file d'attente.exemple pour 3 tâches indépendantesT1 = 30T2 = 7T3 = 2
0 5 10 15 20 25 30 35 40
0 5 10 15 20 25 30 35 40
Quantum 1 : Tmoyen =20
Quantum 10 : Tmoyen =25
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques17
Round-robin (2)
Pourquoi ne pas utiliser un quantum petit ?le temps de commutation deviendrait important au regard du temps de traitement
Algorithme utilisé encore une fois dans les systèmes temps réel, avec N files d'attente de niveau de priorité différent.
typiquement quantum = 100ms
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques18
PCTER
Plus court temps d'exécution restant On compare à chaque nouveau processus prêt, l'estimation du temps restant pour le processus actif, et les estimations pour les autres processus prêt
C'est un PCTE avec préemptionIntéressant si on sait prédire le temps des prochaines tâches avec précision.
rarement le casPas d'implémentation connue ...
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques19Tourniquet à multiples niveaux de
priorité variableFaiblesse des algorithmes précédents :
risque de famine pour un processus de faible « priorité »Les concepteurs d'UNIX ont donc fait le choix d'un algorithme à base de Round-robin, avec priorité effective variable en fonction du temps CPU consommé, et du temps d'attente :
Principes de base :augmenter le priorité des processus qui attendentdiminuer la priorité des processus qui ont eu du temps CPU.on prends toujours le processus prêt de plus haute priorité
Les processus faisant beaucoup d'IO seront priviligiés typiquement les processus interactifs !
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques20
« TMNPV » (2)
L'algorithme :A chaque tick, on incrémente le temps CPU consommé par le processus actifA chaque quantum (1 seconde sur unix, moins Linux ?) :
on divise par deux le temps CPU consommé par tous les processuson recalcule la priorité de tous les processus par la formule :priorité effective = priorité de base + (Tcpu/2) + « nice value »nice = valeur fixe attribuée à un processus long au démarrage pour être « gentil » avec les autres.
influe aussi sur le quantum attribué au processus (linux)On schedule le processus qui a la plus haute priorité (plus faible valeur)
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques22
Time sharing
Terme ambigu utilisé pour nommé différents algorithmes.
sous Solaris le « Time sharing » est en fait un unix scheduling standard.
On trouve parfois dans la littérature un concept d'algorithme guidé par des principes de partage équitable (page suivante) ...
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques23
Fair share scheduler
Objectifs :garantir un % du temps CPU pour un groupe de processus
Implémentation partielle par AT&T :On divise le temps CPU total entre N groupe, qui auront le même pourcentage !On utilise le même principe de temps CPU compté par processus, mais on y ajoute un temps de groupe !Ce temps de groupe évolue comme le temps CPU/process, mais de façon unique pour tous le groupe.priotité effective = priorité base + (CPU/2) + (CPU
groupe/2) +
niceSi un groupe a moins de processus qu'un autre, ses processus auront plus de temps CPU...
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques25Impact sur mécanismes de
synchronisationLes mécanismes de mise en attente sur verrous, associés aux différents niveaux de priorité d'un ordonnanceur, peuvent amener à la situation de blocage suivante :
verrou
P1prio 10
P2prio 15
P3prio 20
Processus actif
Processus tient verrou;basse priorité
Processus haute priorité enattente verrou
Le processus actifempêche le processus qui tiens le verrou de le libérer, alors qu'un processus de plus haute priorité est en attente dessus.
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques26
Inversion de priorité
On appelle ce blocage (qui dépend du processus de priorité intermédiaire : s'il s'arrète, le blocage est terminé), une inversion de priorité .Une solution qu'on trouve dans différents OS, est la solution d'héritage de priorité :
Tant qu'un processus « A » tient une ressource attendue par un autre processus (« B »), on attribue à « A » une priorité temporaire = max(prio A, prio B).cela permet, dans l'exemple, au processus P1 de pré-empter P2 de façon à pouvoir libérer le verrou pour P3.
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques27
Ordonnancement des disques
Particularités :Les algorithmes que nous allons étudier, sont étroitement liés à l'architecture physique d'un disque dur :
Piste« cylindre »
secteur un disque est constitué de :" N plateaux" 2N têtes de lecture (une par face)" Chaque position radiale des têtes
définie une piste." L'ensemble des pistes de tous les
plateaux pour une position des têtes = un cylindre
" Chaque piste est constitué de K secteurs (souvent 63 secteurs de généralement 512 octets)
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques28
Disques : définitionsL'adresse absolue d'un secteur peut donc se définir par :
un numéro de têteun numéro de pisteun numéro de secteur (relatif à la piste)
triplet Head Cylinder SectorElle se définie aussi par un numéro de bloc absolu : c'est le mode Logical Bloc AdressingPour un disque on définit les temps suivants :
de recherche (seek time); correspondant au temps nécessaire pour positionner les têtes de lecture à la bonne piste.de latence ; attente nécessaire pour que le bon secteur soit sous la tête de lecture.de transfert : pour envoyer ou recevoir les données depuis la mémoire vers/depuis le disque.
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques29
Définitions (2)
Le temps de recherche est souvent le plus long des trois :
typiquement 1 à 20 ms.Le temps de latence vient ensuite :
de l'ordre de 17 ms pour un disque à 7200tr/mn (5ms en moyenne)
Le temps de transfert est indépendant du disque, mais dépend du bus : on obtient maintenant des taux de 10 à 20 MB/s avec une interface IDE. (ATA66)
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques30
Algorithmes
Compte tenu de ces données, l'objectif des algorithmes devra être d'ordonnancer les requêtes de façon à éviter de changer de piste (déplacer les têtes) inutilement, et aussi en utilisant au maximum des secteurs se suivant.On va regarder succintement :
FIFOPCTRSCAN / LOOK + variantesPCTL
On verra ensuite l'impact qu'à l'évolution des technologies mises en oeuvre dans la conception des disques.
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques31
FIFO
Encore une fois le plus simple... mais pas le plus efficace
exemple 6 requêtes pour les pistes : 25, 32 , 2, 40, 7, 18
pistes0 10 20 30 40départ=35
distance parcourue d=(35-25)+(32-25)+(32-2)+(40-2)+(40-7)+(18-7)=129distance mini dans l'ordre = 38 (en ordre croissant)
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques32
PCTR
Plus Court Temps de Recherche :on choisit comme prochaine requête la plus proche de la position actuelle de la tête (donc de la requête précédente).Dans l'exemple cela donne :
pistes0 10 20 30 40départ=35
distance parcourue d=(35-32)+(32-25)+(25-18)+(18-7)+(7-2)+(40-2)=71=> déjà une nette amélioration / FIFO !
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques33
SCAN / LOOK
le PCTR à 2 inconvénients :il ne détecte pas le gain qu'il pourrait y avoir à démarrer par la piste la plus extrème (droite dans l'exemple)Il peut y avoir « famine » si des requêtes arrivent en cours de fonctionnement, qui empécheraient une requête pour un piste extrème d'être honorée.
On introduit l'algorithme « SCAN », qui réalise un balayage des piste dans un sens, et honore les requêtes possibles au fur et à mesure, puis arrivé au bout repart dans l'autre sens.La version « LOOK » est une amélioration car s'arrète à la dernière requête valide dans un sens avant de changer de sens.
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques34
LOOK - exemple
L'exemple donne, en supposant un balayage en cours croissant :
pistes0 10 20 30 40départ=35
distance parcourue d=(40-35)+(40-32)+(32-25)+(25-18)+(18-7)+(7-2)=43
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques35
PCTL
Plus Cours Temps de LatenceC.a.d le plus court temps pour accéder au secteur ciblé : tiens compte de la position « rotationnelle » de la tête.C'est un classement, en fait, des requêtes concernant la même piste, en triant dans l'ordre de rotation.Ceci n'est valable que si le système d'exploitation peut avoir une connaissance de la position des têtes de lecture ...
ce n'est plus le cas aujourd'hui !
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques36
Situation aujourd'hui
Les technologies évoluant, les disques durs modernes intègrent tous :
un contrôleur intelligentun buffer mémoire de grande capacité (2Mo)C'est donc maintenant le contrôleur interne du disque qui ré-arrange les demandes de lecture/écriture pour optimiser les temps d'accès.
De plus la densité de stockage sur les surfaces magnétiques fait que les données fournies maintenant par le disque (Nb têtes, cylindres, secteurs/piste) sont souvent faux !
du à des contraintes de nb de bits utilisés dans les BIOS pour programmer les n° HCS...
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques37
Situation (2)
L'accès au disque complet oblige aujourd'hui à passer par le mode LBA.Donc les optimisations faites (elles sont toujours là) par les systèmes d'exploitation perdent de leur intérêts...La théorie est néanmoins intéressante pour qui veut écrire du firmware pour disques...
CNAM Cyril FRANCONIE
Architecture des Systèmes Informatiques38
Et les autres ressources ?
Parler d'ordonnancement devrait concerner toutes les ressources imposant la mise en attente des processus, donc y compris , principalement, la communication par réseau.S'il n'en est rien c'est sans doute pour les raisons suivantes :
historiquement, les communications par réseau sont apparues bien après la gestion de mémoire et de disquesDès l'origine, la rapidité des liaisons ethernet a permis de s'affranchir des préoccupations d'ordonnancement. (ce qui n'était pas le cas des premiers disques).On voit ré-apparaître cette réflexion avec les besoins croissants en débit (voix/vidéo), et la notion de qualité de service...