1 / 52

Informatique de Base Introduction aux Systèmes d'Exploitation

Informatique de Base Introduction aux Systèmes d'Exploitation. Pierre Manneback Service d ’Informatique Faculté Polytechnique de Mons Pierre.Manneback@fpms.ac.be http://elearning.fpms.ac.be (info). Gestion des Processus. 2.1. Les processus 2.2. L'ordonnancement des processus. Chapitre 2.

bing
Download Presentation

Informatique de Base Introduction aux Systèmes d'Exploitation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informatique de BaseIntroduction aux Systèmes d'Exploitation Pierre Manneback Service d ’Informatique Faculté Polytechnique de Mons Pierre.Manneback@fpms.ac.be http://elearning.fpms.ac.be (info) OS 2003-04, FPMs, Ch. 2

  2. Gestion des Processus 2.1. Les processus 2.2. L'ordonnancement des processus Chapitre 2 OS 2003-04, FPMs, Ch. 2

  3. 2.1. Les processus • Un processus est un programme en exécution • Un processus est caractérisé par un contexte d ’exécution • segments de texte, données et pile • compteur spécifiant l’instruction suivante à exécuter • registres OS 2003-04, FPMs, Ch. 2

  4. Les segments d'un processus: le texte, les données, la pile . OS 2003-04, FPMs, Ch. 2

  5. Etats d'un processus ordonnanceur . OS 2003-04, FPMs, Ch. 2

  6. L'importance de l'ordonnanceur • Une des bases d'un OS multiprogrammé est • le traitement des interruptions • l'ordonnancement OS 2003-04, FPMs, Ch. 2

  7. Opérations sur les processus • Création de nouveaux processus • Terminaison de processus • Suspension • Interne (wait) • Externe (attente d’une ressource) P1 P4 P2 P5 P7 P3 P6 Arbre de processus OS 2003-04, FPMs, Ch. 2

  8. Création de processus • Un processus (père) peut créer des processus fils • stockage en une structure d'arbre de processus, • chaque processus connaît son père • Partage de ressources (mémoire, fichiers) entre père et fils • total ou partiel • Exécution • soit concurrente • soit le père attend la terminaison du fils OS 2003-04, FPMs, Ch. 2

  9. Création de Processus • Espace d'adressage • soit le fils duplique celui du père • soit le fils charge un nouveau programme • exemples UNIX • l'appel système fork crée un processus fils • l'appel système execve utilisé après fork charge un nouveau programme dans l'espace d'adressage du processus fils OS 2003-04, FPMs, Ch. 2

  10. L’exemple de UNIX Identification des processus xterm inetd syslog tcsh make MonProgramme xmail • Les processus sont gérés de manière hiérarchique (arbre de processus) • Chaque processus a donc un processus père, l’ayant créé. Sauf le processus initial, de numéro (pid) 0, qui est le swap. Init OS 2003-04, FPMs, Ch. 2

  11. Identification des processus • pid : entier positif unique identifiant le processus • ppid : piddu processus père • uid, euid: identifieur de l’utilisateur réel (celui qui a lancé le proc) ou effectif (au moment de l’instruction) • gid, egid :identifieur du groupe de l’utilisateur réel (ou effectif) OS 2003-04, FPMs, Ch. 2

  12. Création de processuspid_t fork(void); • Un processus (père) peut en créer un autre (processus fils) par l ’appel systèmefork(). • L ’appelfork()duplique le contexte du processus père. Il retourne la valeur 0 au fils, et le piddu fils au père. fork() pidfils père 0 fils OS 2003-04, FPMs, Ch. 2

  13. Création de processus Toute création de processus se fera donc en unix par un code du type: #include <unistd.h> … if ( pid_child = fork() ) { /* I am the father*/ …} else { /* I am the child*/ …} OS 2003-04, FPMs, Ch. 2

  14. Création de processus • Le branchement en fonction du retour de fork() permet de donner au fils un code distinct du père. • Seules limitations: • nombre maximal de processus en cours dans le système, ou pour l’utilisateur (code erreur , retour de fork() = -1) • plus assez de mémoire (code erreur, retour de fork() = -1) OS 2003-04, FPMs, Ch. 2

  15. La terminaison de processus • Exécution de la dernière instruction ou appel système exit() . • L'O.S. libère les ressources employées • Le père en attente peut se réactiver • Un parent peut arrêter son exécution (abort()) ou un processus peut "tuer" un autre s'il en a le droit (kill()) • Les processus orphelins (père mort) sont généralement associés au processus racine. OS 2003-04, FPMs, Ch. 2

  16. La terminaison de processus 4 possibilités: • Sortie normale (appel exit() ou fin de code) • Sortie en cas d'erreur (volontaire, appel abort()) • Erreur fatale (involontaire, kill() par l'O.S.) • Processus tué par un autre (involontaire, appel- système kill()) OS 2003-04, FPMs, Ch. 2

  17. Implémentation des processus PCB = Process Control Block Bloc d'informations caractérisant complètement un processus • Etat • Compteur d'instruction • état des registres • paramètres de priorité et d'ordonnancement • paramètres de gestion de la mémoire • informations comptables • informations I/O (fichiers ouverts…) OS 2003-04, FPMs, Ch. 2

  18. Process Control Block (PCB) OS 2003-04, FPMs, Ch. 2

  19. Les PCB permettent d'interrompre et de relancer des processus OS 2003-04, FPMs, Ch. 2

  20. Vision plus détaillée des PCB les PCB sont regroupés dans une table de processus OS 2003-04, FPMs, Ch. 2

  21. 2.2. L'ordonnancement des processus • Bursts of CPU usage alternate with periods of I/O wait • (a) a CPU-bound process • (b) an I/O-bound process OS 2003-04, FPMs, Ch. 2

  22. Objectifs de l'ordonnancement . OS 2003-04, FPMs, Ch. 2

  23. Objectifs de l’ordonnancement • Beau problème multicritère! • Il n ’y a pas qu’une politique d’ordonnancement mais des politiques paramétrées • Souvent, on choisit une politique, que l’on adapte (tuning) à la situation concrète nombre et type de processus, priorités, contraintes,... OS 2003-04, FPMs, Ch. 2

  24. Algorithmes d'ordonnancement • Premier arrivé, premier servi (FCFS) • Plus court d'abord (SJF) • Avec priorité • Carrousel (Round Robin) • Avec files multiples OS 2003-04, FPMs, Ch. 2

  25. L’ordonnancement le plus simple First Come First Served t=0 24 30 1 2 3 • Simple • Souvent frustrant (attente pour les jobs courts) Job CPU use 1 24 2 3 3 3 temps d'attente moyen =17 OS 2003-04, FPMs, Ch. 2

  26. First Come First Served t=0 6 30 1 2 3 • Grande variabilité suivant l’ordre d’arrivée Job CPU use 1 3 2 3 3 24 • Temps d'attente moyen=3 • Entraîne un effet de convoi: grand nombre de jobs courts derrière un job long (analogie au camion dépassant sur autoroute) OS 2003-04, FPMs, Ch. 2

  27. Ordonnancement Shortest-Job-First (SJF) • Associe à chaque processus une estimation n+1 de la durée de la prochaine utilisation CPU (CPU burst). • Choisit le processus avec le plus petit n+1 • Difficulté: l'estimation n+1 • SJF est optimal : il donne le temps moyen d'attente minimal pour un ensemble de processus donnés (où l'on connaît les temps successifs d'exécution!) OS 2003-04, FPMs, Ch. 2

  28. SJF non préemptif ou préemptif • 2 schémas possibles • nonpréemptif • préemptif: réquisitionner le CPU si un processus nouveau a une estimation n+1 plus petite que le temps estimé restant du processus en cours. Ce schéma est connu sous le nom deShortest-Remaining-Time-First (SRTF). OS 2003-04, FPMs, Ch. 2

  29. Exemple de SJF non préemptif Process Arrival TimeBurst Time(estimated) P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 temps moyen d'attente = (0 + (12-4-2) + (8-1-4)+ (16-4-5))/4 = 4 P1 P3 P2 P4 0 3 7 8 12 16 OS 2003-04, FPMs, Ch. 2

  30. Exemple de SRTF Process Arrival TimeBurst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 Average waiting time = ((16-7)+ (7-4-2) + (5-4-1) +(11-4-5)/4 = 3 P1 P2 P3 P2 P4 P1 11 16 0 2 4 5 7 OS 2003-04, FPMs, Ch. 2

  31. Estimer la durée du prochain CPU Burst Sur base du passé : estimation du burst précédent + durée réelle burst précédent n+1 = tn + (1 - )n souvent = 0.5 OS 2003-04, FPMs, Ch. 2

  32. SJFExemple de moyenne exponentielle •  =0 n+1 = n • Ne tient pas compte de l'historique •  =1 n+1 = tn • Tient uniquement compte de la durée du burst précédent. • Par expansion de la formule n+1 =  tn+(1 - )  tn-1+ …+(1 -  )j  t n-j+ … • comme  et (1 - ) sont compris entre 0 et 1, chaque terme a moins de poids que son prédécesseur (moyenne pondérée). OS 2003-04, FPMs, Ch. 2

  33. SJFExemple de moyenne exponentielle (2) CPU Burst: 6 4 6 4 13 13 13 Guess: 10 8 6 6 5 9 11 12 n+1 = tn + (1 - )n  = 0.5 OS 2003-04, FPMs, Ch. 2

  34. Ordonnancement par priorité • Une priorité (nombre entier positif) est associée à chaque processus • Le CPU est alloué au processus prêt avec la plus haute priorité (FIFO par priorité) (plus petit entier = plus haute priorité), de manière préemptive ou non. • SJF est en fait un ordonnancement par priorité où la priorité est l'estimation du temps CPU du prochain cycle • Problème  Famine: un processus avec faible priorité peut attendre très longtemps • Solution  Priorité dynamique en fonction du temps d'attente. Au plus on attend, au plus la priorité augmente OS 2003-04, FPMs, Ch. 2

  35. Ordonnancement "Carrousel" Round Robin (RR) • Définition d'une durée maximale d'utilisation continue du CPU par processus (quantum), par ex. 10-100 millisecondes. Quand un processus en exécution atteint son quantum, il est interrompu.Choix FIFO des processus prêts (Carrousel) • Si n processus prêts avec un quantum q, chaque processus utilisera 1/n du CPU au plus un temps q. Aucun processus n'attend donc plus de (n-1)q unités de temps • si q grand => FIFO • si q petit, beaucoup de pertes OS 2003-04, FPMs, Ch. 2

  36. Exemple: RR avec Quantum = 20 P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 ProcessBurst Time P1 53 P2 17 P3 68 P4 24 • Typically, higher average turnaround than SJF, but better response. 0 20 37 57 77 97 117 121 134 154 162 OS 2003-04, FPMs, Ch. 2

  37. RR: problème du choix du quantum OS 2003-04, FPMs, Ch. 2

  38. RR: le temps total moyen d'exécution varie avec le quantum OS 2003-04, FPMs, Ch. 2

  39. RR: le temps total moyen d'exécution varie avec le quantum (2) • q=6 t(P1) =6, t(P2) =9, t(P3) =10, t(P4) =17 => temps moyen = 10.5 • q=5 t(P1) =15, t(P2) =8, t(P3) =9, t(P4) =17 => temps moyen=12.25 • Compromis temps d'attente d'un tour/temps total d'exécution • tenir compte de la durée des changements de contexte • Idéalement, quantum proche des durées de cycle CPU (burst) moyen OS 2003-04, FPMs, Ch. 2

  40. Ordonnancement avec files multiples • Le pool des processus prêts est partitionné en différentes files suivant le type de processus ou ses priorités • Chaque file peut avoir son propre algorithme d'ordonnancement • file de processus utilisateurs interactifs – RR • file de processus système – FCFS • file de processus batch -Par priorité • Un ordonnancement doit être effectué entre les files. OS 2003-04, FPMs, Ch. 2

  41. Ordonnancement avec files multiples (2) • Priorités de files: d'abord les processus systèmes, ensuite les processus interactifs, enfin les batchs. Si priorité fixe, danger de famine. • Réserver des quotas d'utilisation CPU par files: maximum 20% pour la file système, 50% pour l'interactive, 30% pour la batch (éventuellement quota dynamique suivant le moment de la journée). OS 2003-04, FPMs, Ch. 2

  42. Ordonnancement avec files multiples (3) OS 2003-04, FPMs, Ch. 2

  43. Ordonnancement avec files multiples et feedback • Possibilité de transition d'un processus d'une file à une autre en fonction de son temps d'attente • De nombreux paramètres sont à considérer: • nombre de files • ordonnanceur pour chaque file • algorithme de rehaussement de priorité • algorithme d'abaissement de priorité • algorithme de choix de file de départ OS 2003-04, FPMs, Ch. 2

  44. Exemple d'ordonnancement avec files multiples et feedback • 3 files: • Q0 – quantum 8 ms • Q1 – quantum 16 ms • Q2 – FCFS • Ordonnancement • Un processus P entre dans la file Q0. Quand il est élu, il reçoit 8 ms. S'il ne termine pas en 8 ms, il passe à la file Q1 (abaissement de priorité). • Soit la file Q0 devient vide, auquel cas P peut s'exécuter et recevoir un quantum de 16 ms. Après coup, il passe à la file Q2. • Un algorithme de rehaussement de priorité doit être associé. OS 2003-04, FPMs, Ch. 2

  45. Exemple d'ordonnancement avec files multiples et feedback (2) OS 2003-04, FPMs, Ch. 2

  46. Niveaux de priorité définis par le système suivant l’activité mode user mode noyau 0 - while swapping 10 - waiting for file ctrl 20 - waiting on disk i/o 25 - PZERO, baseline 30 - waiting on resources 35 - waiting on locks 40 - waiting for an event 50 - PUSER, base user Ordonnancement Unix OS 2003-04, FPMs, Ch. 2

  47. Mode noyau dépend de l’activité Mode user pusrpri < 128 pnice diminue la priorité pcpu reflète l’utilisation cpu pusrpri = PUSER + pcpu/4 + 2*pnice Ordonnancement Unix OS 2003-04, FPMs, Ch. 2

  48. Ordonnancement linux • 3 types de processus pour l ’ordonnanceur • SCHED_FIFO processus prioritaire non préemptible • SCHED_RR processus prioritaire préemptible • SCHED_OTHER processus classique OS 2003-04, FPMs, Ch. 2

  49. Ordonnancement linux • La file des processus SCHED_FIFO « ready to run » est exécutée prioritairement • Ces processus ne sont interruptibles que si: • un autre processus SCHED_FIFO avec plus haute priorité est prêt • le processus abandonne le processeur (appel sched_yield) ou est en attente d'un événement OS 2003-04, FPMs, Ch. 2

  50. Ordonnancement linux • Les processus SCHED_RR suivent le même schéma, mais ils travaillent avec un quantum de temps pour leur exécution • Il y a possibilité de modifier la politique d’ordonnancement et les paramètres d’ordonnancement associés à un processus par des appels-système OS 2003-04, FPMs, Ch. 2

More Related