La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chapitre 2 Système dExploitation Gestion des Processus.

Présentations similaires


Présentation au sujet: "Chapitre 2 Système dExploitation Gestion des Processus."— Transcription de la présentation:

1 Chapitre 2 Système dExploitation Gestion des Processus

2 2 Concepts importants n Processus u Création, terminaison, hiérarchie n États et transitions détat des processus n Process Control Block n Commutation de processus u Sauvegarde, rechargement de PCB n Files dattente de processus et PCB n Ordonnanceurs à court, moyen, long terme n Processus communicants

3 3 Processus et terminologie (aussi appelé job, task, user program) n Concept de processus: un programme en exécution u Possède des ressources de mémoire, périphériques, etc n Ordonnancement de processus n Opérations sur les processus n Processus coopérants n Processus communicants

4 4 Espace de travail n Les processus sont composés dun espace de travail en mémoire formé de 3 segments :

5 5 Création de processus Les processus peuvent créer dautres processus, formant une hiérarchie (instruction fork ou semblables) Arbre de processus en UNIX

6 6 Terminaison de processus n Un processus exécute sa dernière instruction u pourrait passer des données à son parent u ses ressources lui sont enlevées n Le parent termine lexécution dun fils (avortement) pour raisons différentes u le fils a excédé ses ressources u le fils n`est plus requis n etc.

7 7 État de processus IMPORTANT n Au fur et a mesure quun processus sexécute, il change détat u nouveau: le processus vient dêtre créé u exécutant-running: le processus est en train dêtre exécuté par l UCT u attente-waiting: le processus est en train dattendre un événement (p.ex. la fin d une opération dE/S) u prêt-ready: le processus est en attente dêtre exécuté par l UCT u terminated: fin dexécution

8 8 Diagramme de transition d`états d`un processus Ordonnanceur = angl. scheduler

9 9 États Nouveau, Terminé: n Nouveau u Le SE a créé le processus F a construit un identificateur pour le processus F a construit les tableaux pour gérer le processus u mais ne sest pas encore engagé à exécuter le processus (pas encore admis) F pas encore alloué des ressources u La file des nouveaux travaux est souvent appelée spoule travaux (job spooler) n Terminé: u Le processus n est plus exécutable, mais ses données sont encore requises par le SE (comptabilité, etc.)

10 10 Transitions entre processus n Prêt Exécution u Lorsque l ordonnanceur UCT choisit un processus pour exécution n Exécution Prêt u Résultat dune interruption causée par un événement indépendant du processus F Il faut traiter cette interruption, donc le processus courant perd lUCT Cas important: le processus à épuisé son intervalle de temps (minuterie)

11 11 Transitions entre processus n Exécution Attente u Lorsquun processus fait requête dun service du SE que le SE ne peut offrir immédiatement (interruption causée par le processus lui-même) F un accès à une ressource pas encore disponible F initie une E/S: doit attendre le résultat F a besoin de la réponse dun autre processus n Attente Prêt u lorsque l'événement attendu se produit

12 12 Sauvegarde dinformations processus n En multiprogrammation, un processus exécute sur lUCT de façon intermittente n Chaque fois quun processus reprend lUCT (transition prêt exécution) il doit la reprendre dans la même situation où il la laissée (même contenu de registres UCT, etc.) n Donc au moment où un processus sort de létat exécution il est nécessaire de sauvegarder ses informations essentielles, quil faudra récupérer quand il retourne à cet état

13 13 PCB = Process Control Block: Registres UCT Représente la situation actuelle dun processus, pour le reprendre plus tard

14 14 Process Control Block (PCB) IMPORTANT u pointeur: les PCBs sont rangés dans des listes enchaînées (à voir) u état de processus: ready, running, waiting… u compteur programme: le processus doit reprendre à l instruction suivante u autres registres UCT u bornes de mémoire u fichiers quil a ouvert u etc.,

15 15 Commutation de processus n Aussi appelé commutation de contexte ou context switching n Quand lUCT passe de lexécution dun processus 0 à lexécution dun proc 1, il faut u mettre à jour le PCB de 0 u sauvegarder le PCB de 0 u reprendre le PCB de 1, qui avait été sauvegardé avant u remettre les registres d UCT, compteur d instructions etc. dans la même situation qui est décrite dans le PCB de 1

16 16 Commutation de processeur (context switching) Il se peut que beaucoup de temps passe avant le retour au processus 0, et que beaucoup dautres proc soient exécutés dans entre temps

17 17 Le PCB n est pas la seule information à sauvegarder n Il faut aussi sauvegarder létat des données du programme n Ceci se fait normalement en gardant limage du programme en mémoire primaire ou secondaire n Le PCB pointera à cette image

18 18 La pile dun processus aussi à sauvegarder n Quand un processus fait appel à une procédure, à une méthode, etc., il est nécessaire de mettre dans une pile ladresse à laquelle le processus doit retourner après avoir terminé cette procédure, méthode, etc. n Aussi on met dans cette pile les variables locales de la procédure quon quitte, les paramètres, etc., pour les retrouver au retour n Chaque élément de cette pile est appelé stack frame ou cadre de pile n Donc il y a normalement une pile dadresses de retour après interruption et une pile dadresses de retour après appel de procédure u Ces deux piles fonctionnent de façon semblable, mais sont normalement séparées n Les informations relatives à ces piles (base, pointeur…) doivent aussi être sauvegardées au moment de la commutation de contexte

19 19 La Pile dun processus A B Appel AAppel B PILE Données P Données B Données A P

20 20 Commutation de processus Figure 1 Le multi-tâche Comme lordinateur na, la plupart du temps, quun processeur, il résout ce problème grâce à un pseudo-parallélisme

21 21 Files dattente IMPORTANT n Les ressources dordinateur sont souvent limitées par rapport aux processus qui en demandent n Chaque ressource a sa propre file de processus en attente n En changeant détat, les processus se déplacent d une file à l`autre u File prêt: les processus en état prêt=ready u Files associés à chaque unité E/S u etc.

22 22 Files dattente file prêt Nous ferons lhypothèse que le premier processus dans une file est celui qui utilise la ressource: ici, proc7 exécute, proc3 utilise disque 0, etc. Ce sont les PCBs qui sont dans les files dattente

23 23 Les PCBs ready disk unit 0... PCB4... PCB2 PCB3 PCB5 PCB6 PCB7 PCB14 term. unit 0 Les PCBs ne sont pas déplacés en mémoire pour être mis dans les différentes files: ce sont les pointeurs qui changent.

24 24 Ordonnanceurs (schedulers) n Programmes qui gèrent lutilisation de ressources de l`ordinateur n Trois types d`ordonnanceurs : u À court terme = ordonnanceur processus: sélectionne quel processus doit exécuter la transition prêt exécution u À long terme = ordonnanceur travaux: sélectionne quels processus peuvent exécuter la transition nouveau prêt (événement admitted) (de spoule travaux à file prêt) u À moyen terme: nous verrons

25 25 Ordonnanceur travaux = long terme et ordonnanceur processus = court terme Ordonnanceur travaux Ordonnanceur processus

26 26 Ordonnanceurs n Lordonnanceur à court terme est exécuté très souvent (millisecondes) u doit être très efficace n Lordonnanceur à long terme doit être exécuté beaucoup plus rarement: il contrôle le niveau de multiprogrammation u doit établir une balance entre travaux liés à l UCT et ceux liés à l E/S u de façon que les ressources de l ordinateur soient bien utilisées

27 27 Ordonnancement de processus (court terme) Disponibilité Ress.

28 28 Ordonnanceur à moyen terme n Le manque de ressources peut parfois forcer le SE à suspendre des processus u ils seront plus en concurrence avec les autres pour des ressources u ils seront repris plus tard quand les ressources deviendront disponibles n Ces processus sont enlevés de mémoire centrale et mis en mémoire secondaire, pour être repris plus tard u swap out, swap in, va-et-vient

29 29 Ordonnanceurs à court et moyen terme court moyen

30 30 Ordonnancement Processus : Concepts de base n La multiprogrammation est conçue pour obtenir une utilisation maximale des ressources, surtout lUCT n Lordonnanceur UCT est la partie du SE qui décide quel processus dans la file ready/prêt obtient l UCT quand elle devient libre u doit viser à une utilisation optimale de l UCT n lUCT est la ressource la plus précieuse dans un ordinateur, donc nous parlons delle u Cependant, les principes que nous verrons sappliquent aussi à l ordonnancement des autres ressources (unités E/S, etc).

31 31 Les cycles dun processus n Cycles (bursts) dUCT et E/S: lexécution dun processus consiste de séquences dexécution sur UCT et dattentes E/S

32 32 Quand invoquer lordonnanceur n L ordonnanceur doit prendre sa décision chaque fois que le processus exécutant est interrompu, c-à.-d. u un processus se se présente en tant que nouveau ou se termine ou u un processus exécutant devient bloqué en attente u un processus change dexécutant/running à prêt/ready u un processus change de attente à prêt/read u en conclusion, tout événement dans un système cause une interruption de lUCT et lintervention de lordonnanceur, qui devra prendre une décision concernant quel proc ou fil aura lUCT après n Préemption: on a préemption dans les derniers deux cas si on enlève lUCT à un processus qui lavait et peut continuer à sen servir n Dans les 1ers deux cas, il ny a pas de préemption

33 33 Critères dordonnancement n Il y aura normalement plusieurs processus dans la file prêt n Quand lUCT devient disponible, lequel choisir? n Lidée générale est deffectuer le choix dans lintérêt de lefficacité dutilisation de la machine n Mais cette dernière peut être jugée selon différents critères…

34 34 Critères dordonnancement n Utilisation UCT: pourcentage dutilisation n Débit = Throughput: nombre de processus qui complètent dans l unité de temps n Temps de rotation = turnaround: le temps pris par le proc de son arrivée à sa terminaison. n Temps dattente: attente dans la file prêt (somme de tout le temps passé en file prêt) n Temps de réponse (pour les systèmes interactifs): le temps entre une demande et la réponse

35 35 Critères dordonnancement: maximiser/minimiser n Utilisation UCT: pourcentage dutilisation u ceci est à maximiser n Débit = Throughput: nombre de processus qui complètent dans l unité de temps u ceci est à maximiser n Temps de rotation (turnaround): temps terminaison moins temps arrivée u à minimiser n Temps dattente: attente dans la file prêt u à minimiser n Temps de réponse (pour les systèmes interactifs): le temps entre une demande et la réponse u à minimiser

36 36 Premier arrive, premier servi (First come, first serve, FCFS) Exemple:Processus Temps de cycle P124 P2 3 P3 3 Si les processus arrivent au temps 0 dans lordre: P1, P2, P3 Le diagramme Gantt est: Temps dattente pour P1= 0; P2= 24; P3= 27 Temps attente moyen: ( )/3 = 17 P1P1 P2P2 P3P

37 37 Premier arrive, premier servi n Utilisation UCT = 100% n Débit = 3/30 = 0,1 u 3 processus complétés en 30 unités de temps n Temps de rotation moyen: ( )/3 = 27 P1P1 P2P2 P3P

38 38 Tenir compte du temps darrivée! n Dans le cas où les processus arrivent à moment différents, il faut soustraire les temps darrivée n Exercice: répéter les calculs si: u P0 arrive à temps 0 u P1 arrive à temps 2 u P3 arrive à temps 5

39 39 FCFS Scheduling (Cont.) Si les mêmes processus arrivent à 0 mais dans lordre P 2, P 3, P 1. Le diagramme de Gantt est: n Temps dattente pour P 1 = 6 P 2 = 0 P 3 = 3 n Temps moyen dattente: ( )/3 = 3 n Beaucoup mieux! n Donc pour cette technique, le temps dattente moyen peut varier grandement P1P1 P3P3 P2P

40 40 Plus Court dabord = Shortest Job First (SJF) n Le processus le plus court part le premier n Optimal en principe du point de vue du temps dattente moyen u (v. le dernier exemple) n Mais comment savons-nous

41 41 SJF avec préemption (réquisition) ou non n Avec préemption: si un processus qui dure moins que le restant du processus courant se présente plus tard, lUCT est donnée à ce nouveau processus u SRTF: shortest remaining-time first n Sans préemption: on permet au processus courant de terminer son cycle u Observation: SRTF est plus logique car de toute façon le processus exécutant sera interrompu par larrivée du nouveau processus F Il est retourné à létat prêt

42 42 ProcessusArrivéeCycle P 1 07 P 2 24 P 3 41 P 4 54 n SJF (sans préemption) n Temps dattente moyen = ( )/4 = 4 Example de SJF sans préemption P1P1 P3P3 P2P P4P4 812 P 2 arr. P 3 arr. P 4 arr

43 43 Exemple de SJF avec préemption SRTF ProcessusArrivéeCycle P 1 07 P 2 24 P 3 41 P 4 54 n SJF (préemptive) n Temps moyen d`attente = ( )/4 = 3 u P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7 P1P1 P3P3 P2P P4P4 57 P2P2 P1P1 16 P 2 arr. P 3 arr. P 4 arr

44 44 Le plus court dabord SJF: critique n Difficulté destimer la longueur à lavance n Les processus longs souffriront de famine lorsquil y a un apport constant de processus courts n La préemption est nécessaire pour environnements à temps partagé u Un processus long peut monopoliser lUCT sil est le 1er à entrer dans le système et il ne fait pas dE/S n Il y a assignation implicite de priorités: préférences aux travaux plus courts

45 45 Tourniquet = Round-Robin (RR) Le plus utilisé en pratique n Chaque processus est alloué un quantum de temps (p.ex millisecs.) pour sexécuter u (tranche de temps) n Sil sexécute pour un quantum entier sans autres interruptions, il est interrompu par la minuterie et l UCT est donnée à un autre processus n Le processus interrompu redevient prêt (à la fin de la file) n Méthode préemptive P[0] P[1] P[7]P[2] P[6]P[3] P[4]P[5] La file prêt est un cercle (dont RR)

46 46 Exemple: Tourniquet Quantum = 20 ProcessusCycle P 1 53 P 2 17 P 3 68 P 4 24 n Normalement, u temps de rotation (turnaround) plus élévé que SJF u mais temps attente moyen meilleur – contrôlez! P1P1 P2P2 P3P3 P4P4 P1P1 P3P3 P4P4 P1P1 P3P3 P3P

47 47 Un petit quantum augmente les commutations de contexte (temps de SE)

48 48 Exemple pour voir limportance dun bon choix de quantum n Trois cycles: u A, B, C, toutes de 10 n Essayer avec: u q=1 u q=10 n Dans ce deuxième cas, tourniquet fonctionne comme FIFO et le temps de rotation moyen est meilleur

49 49 Choix du quantum pour le tourniquet n doit être beaucoup plus grand que le temps requis pour exécuter le changement de contexte n doit être un peu plus grand que le cycle typique (pour donner le temps à la plupart des processus de terminer leur cycle, mais pas trop pour éviter de pénaliser les processus courts)

50 50 Priorités n Affectation dune priorité à chaque processus (p.ex. un nombre entier) u souvent les petits chiffres dénotent des hautes priorités F 0 la plus haute n LUCT est donnée au processus prêt avec la plus haute priorité u avec ou sans préemption u il y a une file prêt pour chaque priorité

51 51 Problème possible avec les priorités n Famine: les processus moins prioritaires narrivent jamais à exécuter n Solution: vieillissement: u modifier la priorité dun processus en fonction de son âge et de son historique dexécution u le processus change de file d`attente n Plus en général, la modification dynamique des priorités est une politique souvent utilisée

52 52 Files à plusieurs niveaux (multiples) n La file prêt est séparée en plusieurs files, p.ex. u travaux darrière-plan (background - batch) u travaux de premier plan (foreground - interactive) n Chaque file a son propre algorithme d ordonnancement, p.ex. u FCFS pour arrière-plan u tourniquet pour premier plan n Comment ordonnancer entre files? u Priorité fixe à chaque file famine possible, ou u Chaque file reçoit un certain pourcentage de temps UCT, p.ex. F 80% pour arrière-plan F 20% pour premier plan

53 53 Ordonnancement avec files multiples

54 54 Files multiples et à retour n Un processus peut passer d une file à l autre, p.ex. quand il a passé trop de temps dans une file n À déterminer: u nombre de files u algorithmes d ordonnancement pour chaque file u algorithmes pour décider quand un proc doit passer d une file à l`autre u algorithme pour déterminer, pour un proc qui devient prêt, sur quelle file il doit être mis

55 55 Files multiples et à retour PRIO = 0 PRIO = 1 PRIO = 2

56 56 Exemple de files multiples à retour n Trois files: u Q0: tourniquet, quantum 8 msecs u Q1: tourniquet, quantum 16 msecs u Q2: FCFS n Ordonnancement: u Un nouveau processus entre dans Q0, il reçoit 8 msecs d UCT u S il ne finit pas dans les 8 msecs, il est mis dans Q1, il reçoit 16 msecs additionnels u S il ne finit pas encore, il est interrompu et mis dans Q2 u Si plus tard il commence à demander des quantums plus petits, il pourrait retourner à Q0 ou Q1

57 57 En pratique... n Les méthodes que nous avons vu sont toutes utilisées en pratique (sauf plus court servi pur qui est impossible) n Les SE sophistiqués fournissent au gérant du système une librairie de méthodes, quil peut choisir et combiner au besoin après avoir observé le comportement du système n Pour chaque méthode, plusieurs params sont disponibles: p.ex. durée du quantum, coefficients, etc.

58 58 Aussi… n Notre étude des méthodes dordonnancement est théorique, ne considère pas en détail tous les problèmes qui se présentent dans lordonnancement UCT n P.ex. les ordonnanceurs UCT ne peuvent pas donner lUCT à un processus pour tout le temps dont il a besoin u Car en pratique, lUCT sera souvent interrompue par quelque événement externe avant la fin de son cycle n Cependant les mêmes principes dordonnancement sappliquent à unités qui ne peuvent pas être interrompues, comme une imprimante, une unité disque, etc. n Dans le cas de ces unités, on pourrait avoir aussi des infos complètes concernant le temps de cycle prévu, etc. n Aussi, cette étude ne considère pas du tout les temps dexécution de lordonnanceur


Télécharger ppt "Chapitre 2 Système dExploitation Gestion des Processus."

Présentations similaires


Annonces Google