Systèmes d'exploitation Chapitre II. Gestion des processus



Documents pareils
DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Cours A7 : Temps Réel

Partie 7 : Gestion de la mémoire

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Ordonnancement temps réel

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Introduction aux Systèmes et aux Réseaux

Systèmes d exploitation Gestion de processus

Cours de Systèmes d Exploitation

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

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

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Chapitre 4 : Outils de communication centralisés entre processus

Gestion des processus

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

1 Mesure de la performance d un système temps réel : la gigue

Cours Programmation Système

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

GPA770 Microélectronique appliquée Exercices série A

Un ordonnanceur stupide

Temps Réel. Jérôme Pouiller Septembre 2011

Métriques de performance pour les algorithmes et programmes parallèles

Annexe 6. Notions d ordonnancement.

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

ITIL Gestion de la capacité

Ordonnancement temps réel

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

On appelle variable condition une var qui peut être testée et

Chapitre 2. Les processus. 2.1 Introduction. 2.2 les différents états d un processus

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

IV- Comment fonctionne un ordinateur?

Ordinateurs, Structure et Applications

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

Analyse du temps de réponse des systèmes temps réel

Linux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers

Support de cours système d exploitation

14. Introduction aux files d attente

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Introduction à la théorie des files d'attente. Claude Chaudet

Systemes d'exploitation des ordinateurs

4D v11 SQL Release 5 (11.5) ADDENDUM

Chapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing

Impact de choix d implantation sur les performances d une application de Contrôle-Commande

CH.3 SYSTÈMES D'EXPLOITATION

«Commande» se rapporte à un bon de commande ou à une commande créée sur un site Internet Interoute.

LA mémoire principale est le lieu où se trouvent les programmes et les

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Contributions à l expérimentation sur les systèmes distribués de grande taille

Trois nouveaux formulaires sont donc nécessaires : Pour l affichage de la liste, un formulaire de sortie WEB_Liste associé à la table des [Films] ;

Structure fonctionnelle d un SGBD

L efficience énergétique...

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

Systèmes et exécutifs temps-réel

Apprentissage par renforcement (1a/3)

L'intelligence d'affaires: la statistique dans nos vies de consommateurs

gestion des processus La gestion des processus

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Livre blanc Haute disponibilité sous Linux

Les processus légers : threads. Système L3, /31

Article. Expériences en matière d enquêtes multimodales. par Mark Pierzchala

Support Agile avec Kanban quelques trucs et astuces par Tomas Björkholm

White Paper - Livre Blanc

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

LA GESTION DE PROJET INFORMATIQUE

LA GESTION DE PROJET INFORMATIQUE

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Manuel utilisateur. Version 1.6b

Algorithmique répartie

Bases de données Cours 1 : Généralités sur les bases de données

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Régime à cotisation déterminée. On sait ce qu on met dedans; ce qu on retirera à la retraite dépend du rendement.

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Présentation du déploiement des serveurs

SECURIDAY 2012 Pro Edition

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

agility made possible

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Rapport d'analyse des besoins

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Apprentissage des performances, surveillance en temps réel et contrôle d admission d un serveur Web utilisant les techniques neuronales

Développement itératif, évolutif et agile

Manage Yourself. Rapport de planification. Projet de 4ème année informatique. Equipe :

Business Process Execution Language

F.A.Q 1.0 Designer 3D Atex System

Écriture de journal. (Virement de dépense)

Tutoriel D utilisation. Du PGI Open line d EBP

Projet de Traitement du Signal Segmentation d images SAR

Version default Titre : Procédure POURSUITE Date : 07/04/2009 Page : 1/10 Responsable : Clé : U Révision : 496

Cartes de crédit à vous de choisir. Les cartes de crédit : comprendre vos droits et responsabilités

IFT Systèmes d exploitation - TP n 1-20%

CRÉER UN COURS EN LIGNE

Maarch V1.4

La surveillance réseau des Clouds privés

Transcription:

Systèmes d'exploitation Chapitre II Gestion des processus 1

Processus Un programme qui s exécute Les ordinateurs autorisent maintenant plusieurs processus simultanément (pseudo parallélisme) A B A B C A B C C Temps 2

État de processus Au fur et a mesure qu un processus s exécute, il change d état nouveau: le processus vient d être créé exécutant-running: le processus est en train d être exécuté par l UCT attente-waiting: le processus est en train d attendre un événement (p.ex. la fin d une opération d E/S) prêt-ready: le processus est en attente d être exécuté par l UCT terminé: fin d exécution 3

Etats des processus Changement d état des processus Nouveau Prêt élu Terminaison Actif Attente E/S Interruption Attente E/S terminée 4

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

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

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

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

PCB = Process Control Block Représente la situation actuelle d un processus, pour le reprendre plus tard Registres UCT 9

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

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

Commutation de processeur (context switching) 12

La pile d un processus Il faut aussi à sauvegarder entre autre: la pile d un processus Quand un processus fait appel à une procédure, à une méthode, etc., il est nécessaire de mettre dans une pile l adresse à laquelle le processus doit retourner après avoir terminé cette procédure, méthode, etc. Aussi on met dans cette pile les variables locales de la procédure qu on quitte, les paramètres, etc., pour les retrouver au retour Donc il y a normalement une pile d adresses de retour après interruption et une pile d adresses de retour après appel de procédure Ces deux piles fonctionnent de façon semblable, mais sont normalement séparées Les informations relatives à ces piles (base, pointeur ) doivent aussi être sauvegardées au moment de la commutation de contexte 13

La Pile d un processus P A Appel A Appel B B Données B Données A Données P PILE 14

Commutation de processus Comme l ordinateur n a, la plupart du temps, qu un processeur, il résout ce problème grâce à un pseudo-parallélisme P2 P1 système Figure 1 Le multi-tâche T 15

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

Files d attente Ce sont les PCBs qui sont dans les files d attente file prêt 17

Les PCBs 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. term. unit 0 ready... PCB2 PCB3 PCB5 PCB6 PCB7 PCB14 PCB4... disk unit 0 18

Ordonnanceur cat ls... disk vid Ordonnanceur Tous les services sont des processus 19

Ordonnanceurs (schedulers) Programmes qui gèrent l utilisation de ressources de l ordinateur Trois types d ordonnanceurs : À court terme = ordonnanceur processus: sélectionne quel processus doit exécuter la transition prêt exécution À 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) À moyen terme: répond au manque de mémoire 20

Ordonnanceurs L ordonnanceur à court terme est exécuté très souvent (millisecondes), Il faut donc que ça aille très vite typiquement de 1 à 1000 microsecondes L ordonnanceur à long terme doit être exécuté beaucoup plus rarement: il contrôle le niveau de multiprogrammation doit établir une équilibre entre les travaux liés à l UCT et ceux liés à l E/S de sorte à ce que les ressources de l ordinateur soient bien utilisées 21

Ordonnanceur travaux = long terme Ordonnanceur processus = court terme Ordonnanceur travaux Ordonnanceur processus 22

Ordonnancement de processus (court terme) 23

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

Concepts de base La multiprogrammation est conçue pour obtenir une utilisation maximale des ressources, surtout l UCT L ordonnanceur UCT est la partie du SE qui décide quel processus dans la file ready/prêt obtient l UCT quand elle devient libre Un programme principalement E/S (interactif) a généralement de court pics d activité Un programme de calcul au contraire peut avoir des pics d activité très longs. 25

Alternance CPU E/S Cycles (bursts) d UCT et E/S: l exécution d un processus consiste de séquences d exécution sur UCT et d attentes E/S 26

Quand invoquer l ordonnanceur Choisir un processus parmi ceux qui sont prêts et lui donner les ressources CPU. L ordonnancement a lieu quand un processus : 1. Se termine. 2. Passe de l état actif à attente. 3. Passe de l état actif à prêt. 4. Passe de l état attente à prêt. Un nouveau processus doit être choisi pour 1 et 4 Pour 2 et 3 : mode préemptif ou non préemptif. 27

Critères d ordonnancement Il y a normalement plusieurs processus dans la file des prêt Quand l UCT devient disponible, lequel choisir? L idée générale est d effectuer le choix dans l intérêt de l efficacité d utilisation de la machine Mais cette dernière peut être jugée selon différents critères 28

Critères de qualité Utilisation UCT: pourcentage d utilisation Débit = Throughput: nombre de processus terminés dans une unité de temps Temps de rotation, temps de virement temps d exécution, turnaround: le temps pris par le processus de son arrivée à sa terminaison. inclus : temps passé dans tous les états, à faire des E/S... Temps d attente: temps passé dans l état prêt (somme de tout les temps passés dans la file des prêt) Temps de réponse : temps passé entre la création et le premier passage actif Important pour l interactivité Mesures très liées. 29

Critères d optimisation Exemples : Maximiser l utilisation et le débit Minimiser le temps d exécution, d attente et de réponse Approches classiques : En général : optimiser les valeurs moyennes. Parfois : optimiser les valeurs min-max : minimiser le temps maximal de réponse 30

Ordonnancement PAPS (FIFO) Premier-arrivé Premier-servi (First-in First-out) Les processus prêt sont stockés dans une FIFO et servis par ordre d arrivée L ordonnancement PAPS est non préemptif Mauvais partage du temps Processus Temps d exécution P 1 24 P 2 3 P 3 3 31

Un exemple pour PAPS Ordre d'arrivée : P 1, P 2, P 3 Diagramme de Gantt : P 1 P 2 P 3 0 24 27 30 Temps d attente : P 1 = 0; P 2 = 24; P 3 = 27 Temps moyen d attente : (0+24+27)/3=17 32

Un autre exemple Ordre d'arrivée : P 2, P 3, P 1 Diagramme de Gantt : P 2 P 3 P 1 0 3 6 30 Temps d attente : P 1 = 6; P 2 = 0 ; P 3 = 3 Temps moyen d attente : (6+0+3)/3 = 3 Bien meilleur que dans le cas précédent. 33

Plus court temps d exécution (PCTE) Shortest job first (SJF) Le CPU est attribué au processus qui a le plus petit temps d exécution (en utilisant PAPS en cas d égalité) Deux approches : Non préemptif (PCTE, SJF) : quand le CPU est accordé, il ne change pas jusqu à la fin de son utilisation. Préemptif (PCTER, SRTF) : si un nouveau processus arrive avec un temps d exécution plus court que ce qui reste au processus courant il prend sa place PCTER : optimal pour le temps d attente moyen. 34

Exemple pour PCTE Processus Arrivée Durée P 1 0 7 P 2 2 4 P 3 4 1 P 4 5 4 P 1 P 3 P 2 P 4 0 7 8 12 16 Temps moyen d attente = (0+6+3+7)/4=4 35

Exemple pour PCTER Processus Arrivée Durée P 1 0 7 P 2 2 4 P 3 4 1 P 4 5 4 P 1 P 2 P 3 P 2 P 4 P 1 0 2 4 5 7 11 16 Temps moyen d attente = (9+1+0+2)/4=3 36

Prédire la durée d utilisation Utilisation d une moyenne des durées précédentes 1. 2. t n durée du n n 1 3., 0 1 Alors : durée ième prédite pic de CPU du prochain pic 1. n 1 tn n tn : histoire la plus récente, n :histoire passée 37

Moyennage exponentiel =0: n+1 = n : le passé récent ne compte pas. =1: n+1 =t n : seul le passé récent compte. En général, =1/2 0 est une constante (moyenne du système) La formule peut être développée en : n+1 = t n +(1 - ) t n-1 + +(1 - ) j t n-j + +(1 - ) n+1 0 Comme et (1 - ) sont plus petits que 1, les termes ont de moins en moins de poids. 38

Ordonnancer avec priorités Une priorité (entière) est associée à chaque processus Le CPU est donné au processus le plus prioritaire (avec PAPS si besoin) Préemptif : si un nouveau processus plus prioritaire arrive, lui donner la main Non préemptif : le processus courant termine son cycle PCTE est un algorithme à priorité. Risque de famine : augmenter la priorité avec l âge: technique de vieillissement. 39

Priorité + préemption Processus Durée Arrivée Priorité P 1 10 0 3 P 2 5 2 7 P 3 15 5 2 P 4 1 10 2 P 5 3 15 1 P 1 P P 5 P 3 P 4 P 1 P 3 2 0 15 18 23 24 29 34 5 40

Tourniquet (Round Robin) Initialement pour les systèmes à temps partagé. Chaque processus obtient un peu de temps CPU (un quantum), typiquement de 10-100 millisecondes puis est préempté et devient prêt. Similaire à PAPS avec préemption S il y a n processus prêt avec un quantum q, alors le temps de réponse est au maximum (n-1)q 41

Tourniquet (Round Robin) S il s exécute pour un quantum entier sans autres interruptions, il est interrompu par la minuterie et l UCT est donnée à un autre processus Le processus interrompu redevient prêt (à la fin de la file) P[0] P[1] P[7] P[2] P[6] P[5] P[4] P[3] La file prêt est un cercle (dont RR) 42

Changements de contexte La performance dépend de q q grand : similaire à PAPS Si q est petit, le temps de réponse diminue mais il y a plus de changements de contexte. q doit être grand par rapport à la durée d un changement de contexte 43

Tourniquet avec q = 20 Processus Durée P 1 53 P 2 17 P 3 68 P 4 24 Le diagramme de Gantt est : P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162 Typiquement temps d exécution supérieur à PCTE mais meilleur temps de réponse. 44

Ordonnancement multi-files La file pour les prêts est séparée en plusieurs files distinguer différents types de processus. Un algorithme pour chaque file L ordonnancement obligatoire entre les files Une file prioritaire avec préemption : risque de famine. Partage du temps : chaque file obtient une fraction du temps qu elle gère comme elle le souhaite 45

Exemple d ordonnancement 46

Plusieurs files avec feedback Un processus peut changer de file Gestion de l'âge par exemple. Ce type d ordonnanceur est défini par : nombre de files, ordonnanceur pour chaque file règles pour changer un processus de file (vers le haut ou vers le bas) règles pour décider de la file initiale d un processus Algorithme d ordonnancement le plus complexe et le plus général 47

Exemple Trois files : Q 0 tourniquet, q=8 ms Q 1 tourniquet, q=16 ms Q 2 PAPS Ordonnancement Arrivée dans Q 0 avec une règle PAPS, puis tourniquet de 8 secondes. S il n a pas terminé en 8 millisecondes il passe dans Q 1. Dans Q 1, la règle est toujours PAPS et le processus obtient 16 millisecondes. S il n a toujours pas terminé, il est préempté et passe dans Q 2. Règles inter files... 48

Évaluation des algorithmes Comment choisir un algorithme? 1. Choix des critères (utilisation du CPU maximale avec temps de réponse < 1s) 2. Évaluer/comparer les algorithmes Méthodes d évaluation 1. Modélisation déterministe (scénario) 2. Modélisation des files d attente 3. Simulation (scénario aléatoire ou rejoué) 4. Implémentation dans le SE (très coûteux) 49

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

Ordonnancement Linux Ordonnancement temps partagé Seuls les processus en mode utilisateur et non en mode superviseur peuvent être préemptés priorité avec des crédits (pour celui qui en a le plus) Quand le quantum expire, perte de 1 crédit (vieillissement) Un processus sans crédit est suspendu Si tous les processus prêt sont suspendus, tous les processus en regagnent Les processus en arrière plan on une priorité plus faible et reçoivent donc moins de crédits. Processus interactifs accumulent plus de crédits 51