Notions de base Ordonnancement Communication et synchronisation. Les processus. Julien Forget 1



Documents pareils
Introduction aux Systèmes et aux Réseaux

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

Cours A7 : Temps Réel

Cours de Systèmes d Exploitation

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

Cours Programmation Système

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

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

Partie 7 : Gestion de la mémoire

gestion des processus La gestion des processus

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Ordonnancement temps réel

Exécutif temps réel Pierre-Yves Duval (cppm)

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Chapitre 4 : Exclusion mutuelle

Systèmes d exploitation Gestion de processus

Tutorial Terminal Server sous

Gestion des processus

Le système GNU/Linux IUP NTIC /11/05

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Support de cours système d exploitation

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

Programmation système en C/C++

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Chapitre 4 : Outils de communication centralisés entre processus

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

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

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

L informatique en BCPST

Ordonnancement temps réel

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

Problèmes liés à la concurrence

Licence Sciences et Technologies Examen janvier 2010

Introduction à la programmation concurrente

Synchro et Threads Java TM

Introduction aux systèmes temps réel. Iulian Ober IRIT

CH.3 SYSTÈMES D'EXPLOITATION

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Qu'est-ce qu'un processus: Définitions

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

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

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Annexe 6. Notions d ordonnancement.

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

LEs processus coopèrent souvent pour traiter un même problème. Ces

Initiation au HPC - Généralités

Unix/Linux I. 1 ere année DUT. Université marne la vallée

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

Windows XP niveau 2. D. Hourquin, Médiapôle St Ouen l'aumône

IV- Comment fonctionne un ordinateur?

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

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

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

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

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Un ordonnanceur stupide

Groupe Eyrolles, 2006, ISBN : X

Concept de machine virtuelle

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

White Paper - Livre Blanc

Guide d installation et d utilisation

Programmation C. Apprendre à développer des programmes simples dans le langage C

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

Démarrer et quitter... 13

Programmation d Applications Concurrentes et Distribuées (INF431)

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

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

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

Configuration requise

Utiliser Net Support School (NSS Version ) Philippe Cailleretz Er-Tice Avion mars 2011.

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

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

SCL LOGICIEL DE CONTROL

Réplication des données

Administration de systèmes

Programmation parallèle et distribuée

Atelier Le gestionnaire de fichier

Windows Internet Name Service (WINS)

TP 4 de familiarisation avec Unix

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

Systèmes d exploitation

MBR225. Le module a été conçu et réalisé conformément aux normes en vigueur portant sur la sûreté et la fiabilité des installations industrielles.

Manuel de System Monitor

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

TP1 - Prise en main de l environnement Unix.

Le modèle client-serveur

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Mandataires, caches et filtres

TP 1 Prise en main de l environnement Unix

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Systemes d'exploitation des ordinateurs

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

La mémoire. Un ordinateur. L'octet. Le bit

Architecture des ordinateurs

Un système d'exploitation

Transcription:

Julien Forget 1 Université Lille 1 École Polytechnique Universitaire de Lille Cité Scientifique 59655 Villeneuve d Ascq GIS3 2011-2012 1. Inspiré des slides de Thomas Vantroys 1 / 58

Plan 1 Notions de base 2 Ordonnancement 3 Communication et synchronisation inter-processus 2 / 58

Programme et processus Définition Un processus est un programme en cours d exécution. Chaque exécution d un programme (éventuellement plusieurs fois le même) donne lieu à un processus différent ; A tout instant, un processeur exécute au plus un processus ; Dans un OS multi-tâches, le système alterne entre l exécution de plusieurs processus ; Seuls les systèmes multi-cœur ou multi-processeur exécutent réellement plusieurs processus en même temps (un par cœur/processeur) ; Plus généralement, les processus partagent l accès à différentes ressources : processeur mais aussi mémoire et périphériques. 3 / 58

Propriétés d un processus A un instant donné, un processus est caractérisé par de nombreuses informations, dont : Son état : exécution, suspendu, etc. ; Son identificateur ; Son compteur ordinal : indique la prochaine instruction à exécuter ; Sa pile d exécution : mémorise l empilement des appels de fonction ; Ses données en mémoire ; Toutes autres informations utiles à son exécution (E/S, fichiers ouverts,... ) 4 / 58

En Unix : Création de processus Au lancement du système, un unique processus ; L appel système fork crée un nouveau processus ; Le processus père et le processus fils s exécutent en parallèle ; Le père et le fils peuvent à nouveau effectuer un fork ; Hiérarchie arborescente de processus. Visualiser l arborescence des processus : pstree [options] i n i t NetworkManager 2 [d h c l i e n t ] 2 [{ NetworkManager } ] acroread 2 [{acroread } ] gnome terminal bash emacs sh evince 4 [{evince } ] {emacs } evince 3 [{evince } ] pstree 5 / 58

Mode d exécution Deux modes d exécution d un processus : Mode noyau : accès sans restriction (manipulation de la mémoire, dialogue avec les contrôleurs de périphériques,... ) Mode utilisateur : accès restreint, certaines instructions sont interdites (pas d accès direct aux périphériques). Il peut être interrompu par d autres processus. Les appels systèmes permettent à un processus en mode utilisateur d accéder (temporairement) à des fonctions nécessitant le mode noyau. 6 / 58

Identificateurs d un processus Plusieurs identificateurs sont associés à un processus (UNIX) : Numéro de processus (pid) ; Numéro du processus père (ppid) ; Identificateur d utilisateur réel ; Identificateur d utilisateur effectif (bit setuid) ; Identificateur de groupe réel ; Identificateur de groupe effectif (bit setgid) ; Liste d identificateurs de groupes. Possibilité de connaître ces informations dynamiquement via des appels systèmes. 7 / 58

Evolution de l état au cours de l exécution 8 / 58

Etat d un processus non créé : le code n est pas en mémoire ; créé : le code est en mémoire, en attente d activitation ; éligible : l activation a été demandée. En attente de l accès au processeur ; élu : le processus s exécute ; suspendu : une ressource est indisponible (allouée à un autre processus). 9 / 58

Préemption 1 Le système interrompt l exécution d un processus pour en exécuter un autre (ressource indisponible, processus prioritaire, etc.) ; 2 Il sauve le contexte du processus et le remplace par celui d un autre ; 3 Il rétablira plus tard le contexte du processus préempté. Contexte d un processus : valeur du compteur ordinal, adresse de la pile, valeur des registres, etc. 10 / 58

Classification des systèmes Gestion des processus mono-tâche : CPU dédié à un processus ; multi-tâche : CPU partagé entre les processus ; multi-tâche préemptif : possibilité de suspendre puis rétablir un processus en cours d exécution. Gestion des utilisateurs mono-utilisateur : pas de cohabitation entre utilisateurs ; multi-utilisateur : cohabitation possible. 11 / 58

Exemples de système d exploitation MS-DOS : mono-utilisateur, mono-tâche ; Windows : mono-utilisateur, multi-tâche ; WinNT : mono-utilisateur, multi-tâche préemptif ; UNIX : multi-utilisateur, multi-tâche préemptif. 12 / 58

Sous WinNT : Visualisation des processus 13 / 58

Visualisation des processus Sous UNIX : l information sur les processus en cours peut être obtenue par : ps [options] pour les options consultez le man 14 / 58

Visualisation des processus Sous UNIX : visualisation dynamique des processus : top [options] 15 / 58

Interruption des processus Sous UNIX : kill [numéro_de_signal] numéro_de_processus kill -l donne l ensemble des signaux disponibles exemple de signaux : SIGHUP (1) : émis à tous les processus associés à un terminal lorsque celui-ci se déconnecte SIGINT (2) : émis à tous les processus associés à un terminal lorsque <ctrl + C > est tapé SIGKILL (9) : tue un processus quel que soit son état. C est l arme absolue. SIGTERM (15) : signal de terminaison normale d un processus 16 / 58

Lancement en arrière plan Il est possible de lancer une commande sans que le shell courant en attende la terminaison : commande & Elle ne peut plus lire au clavier ; Les sorties standards sont toujours associées, par défaut, au terminal ; Elles ne sont plus interruptibles à partir du clavier (ctrl-c par exemple). Connaître les processus lancés en arrière plan (pour un shell donné) : jobs 17 / 58

Sous UNIX : Changement d état d un processus 18 / 58

Problématiques de la gestion de processus Difficulté principale : gestion de l accès concurrent à diverses ressources : Accès au processeur : ordonnancement ; Lecture/écriture de données : Assurer la cohérence des données ; Gérer les synchronisations lecteur/écrivain ; Eviter les blocages. 19 / 58

Plan 1 Notions de base 2 Ordonnancement 3 Communication et synchronisation inter-processus 20 / 58

Définition L ordonnancement (scheduling) est une fonction fondamentale d un système d exploitation ; A la base de la programmation multi-tâche : Plusieurs processus en mémoire en même temps ; Assignation du processeur à un processus en fonction de certains critères ; Objectif = optimiser l utilisation concurrente du processeur. 21 / 58

Ordonnanceur vs dispatcher L ordonnanceur est responsable de l organisation des file d attente des tâches éligibles ; Le dispatcher réalise l élection d un processus et le changement de contexte associé. 22 / 58

Décisions de l ordonnanceur Les décisions de l ordonnanceur peuvent avoir lieu dans les circonstances suivantes : 1 Quand un processus passe de l état "élu" à "suspendu" (attente de disponibilité d une ressource) ; 2 Quand un processus passe de l état "élu" à l état "éligible" (à cause d une interruption) ; 3 Quand un processus passe de l état "suspendu" à l état "éligible" (libération d une ressource) ; 4 Quand un processus se termine. 23 / 58

Réquisition Ordonnancement sans réquisition : L ordonnanceur n intervient qu en 1 et 4 ; Une fois le processeur alloué à un processus, celui-ci le garde jusqu à ce qu il ait terminé ou passe en attente. ordonnancement avec réquisition : l ordonnanceur intervient dans les cas 1 à 4 problèmes à résoudre : Le partage des données ; Accès à des périphériques non partageables. 24 / 58

Qualité de l ordonnancement Quelques critères de qualité de l ordonnancement : Taux d utilisation du processeur élevé ; Temps de réponse court : répondre rapidement à un événement extérieur ; Equité : partage équitable du processeur entre les processus ; Discrétion : le temps passé à faire les choix d ordonnancement doit rester faible. 25 / 58

Premier arrivé, premier servi (FCFS) First Come, First Serve c est le plus simple gestion d une file FIFO une fois le processeur alloué à un processus celui-ci le garde... peu utilisable pour le temps partagé désastreux si le processus en exécution ne se termine pas 26 / 58

Exercice Processus Arrivée Durée P1 20 10 P2 0 30 P3 10 40 P4 10 20 Questions : Un processus peut-il être préempté? Que faire en cas d égalité? Donner l ordonnancement en mono puis bi-processeur. 27 / 58

Plus court temps de traitement les temps d exécutions des tâches sont supposés connu technique favorisant les traitements courts en cas de charge, le temps de réponse des traitements longs sera catastrophique 28 / 58

Exercice Processus Arrivée Durée P1 20 10 P2 0 30 P3 10 40 P4 10 20 Questions : Un processus peut-il être préempté? Donner l ordonnancement en mono-processeur. 29 / 58

Le tourniquet (round robin) spécialement conçu pour le temps partagé file d atente circulaire un quantum de temps est alloué à chaque processus tout processus éligible est certain d être élu une fois 30 / 58

Le tourniquet : exemple 31 / 58

Le tourniquet : choix du quantum c est une affaire de compromis s il est trop court, le temps de commutation t1 devient prohibitif devant le temps consacré au processus t2 s il est trop long, le temps d attente des autres processus peut devenir gênant par rapport au temps de réponse à fournir 32 / 58

Exercice Processus Arrivée Durée P1 20 10 P2 0 30 P3 10 40 P4 10 20 On considère un quantum de 10 : Un processus peut-il être préempté? A-t-on une notion de priorité? Donner l ordonnancement en mono-processeur. 33 / 58

Par priorité attribution d une priorité à chaque processus priorité allouée statiquement ou dynamiquement sans ou avec réquisition du processeur sans : le processus est rangé en file d attente en fonction de sa priorité par rapport aux processus en attente avec : si le processus qui arrive dans la file d attente est plus prioritaire que celui en cours d exécution, il y aura réquisition du processeur en faveur du processus arrivant. 34 / 58

Exercice Processus Arrivée Durée Priorité P1 20 10 4 P2 0 30 1 P3 10 40 3 P4 10 20 2 Sachant que la priorité la plus faible est 1, donner l ordonnancement en mono-processeur : Sans réquisition ; Avec réquisition. 35 / 58

Par files d attente multi-niveaux Combinaison des systèmes précédents : Gestion par priorités et si priorités égales, gestion par tourniquet ou FIFO 36 / 58

Exercice Processus Arrivée Durée Priorité P1 30 10 3 P2 0 30 1 P3 10 40 2 P4 10 20 2 La priorité la plus faible est 1 et le quantum est de 10 : Le système peut-il fonctionner avec/sans réquisition? Donner l ordonnancement en mono-processeur. 37 / 58

Par priorité + temps partagé + âge les processus sont élus en fonction de leur priorité ; à chaque période d horloge (tick), la priorité des processus en attente augmente ; si un processus devient plus prioritaire que celui en cours d exécution, alors il y a préemption et le processus interrompu revient en file d attente avec sa priorité initiale. 38 / 58

Par priorité + temps partagé + âge (exemple) 39 / 58

Plan 1 Notions de base 2 Ordonnancement 3 Communication et synchronisation inter-processus 40 / 58

Processus communicants concurrents d un système d exploitation peuvent être : Indépendants : les traitements qu ils effectuent ne sont pas liés ; Communicants : les processus ont besoin d échanger des données. Plusieurs raisons pour la communication : Le partage d information ; L accélération du calcul ; La modularité (séparation d un programme complexe en plusieurs processus). La communication peut se faire : Via une zone mémoire commune ; Par échange de messages ; Par fichiers. Nécessite de synchroniser les processus communicants. 41 / 58

Le problème des accès concurrents communicants partagent des données assurer la cohérence des données. Exemple : out indique le fichier à imprimer ; in indique où mettre en attente un fichier à imprimer ; Problème : si B interrompt A juste quand il lit la valeur de in. 42 / 58

Exclusion mutuelle Il faut interdire l accès simultané à une ressource partagée ; On parle d exclusion mutuelle entre processus concurrents ; L exclusion mutuelle ne concerne qu une portion de l exécution des processus : les sections critiques ; Il faut assurer que : On n a jamais deux processus simultanément en section critique ; La solution ne dépend pas de la vitesse relative des processus ; Un processus suspendu hors section critique ne bloque pas les autres ; Tout processus finit par rentrer en section critique. 43 / 58

Exclusion par verrou Si verrou=1 alors la ressource est utilisée par un autre processus donc on attend ; Si verrou = 0 le processus met à 1 et utilise la ressource ; La variable verrou doit être commune aux processus coopérants ; Problème : Attente active gaspillage du temps processeur ; 2 processus en section critique si interruption/préemption au point "A". 44 / 58

Exclusion par alternance while (TRUE) { while ( t o u r! = 0 ) { s e c t i o n _ c r i t i q u e ( ) ; t o u r =1; s e c t i o n _ n o n c r i t i q u e ( ) ; } while (TRUE) { while ( t o u r! = 1 ) { s e c t i o n _ c r i t i q u e ( ) ; t o u r =0; s e c t i o n _ n o n c r i t i q u e ( ) ; } Le processus n rentre en section critique si tour = n ; En fin de section critique il indique que c est le tour de l autre processus ; Problèmes : Attente active ; Un processus (P1) peut bloquer l autre (P2) sans être (P1) en section critique. Ex : si la section non critique de P1 est très longue. 45 / 58

Les sémaphores Proposés en 1965 par E.W. Dijsktra ; Un sémaphore est un compteur muni de deux opérations : P(s)/wait(s) (prendre) : Si cpt(s) > 0 alors cpt(s) = cpt(s)-1 Sinon processus mis en attente de s V(s)/signal(s) (rendre) : cpt(s)=cpt(s)+1 liberer un processus en attente de s Toute opération sur un sémaphore est atomique (ininterruptible). 46 / 58

Exclusion par sémaphore Exemple : 3 tâches qui désirent utiliser une ressource commune (une imprimante) ; à synchroniser partagent un sémaphore ; Sémaphore binaire : le compteur vaut 0 ou 1 ressource unique, pas d accès simultané. 47 / 58

Sémaphore à compte Exemple : un consommateur et plusieurs producteurs ; Sémaphore à compte : cpt(s) varie entre 0 et un certain n (ici, n = 6). 48 / 58

Problème : Sémaphores : ressources multiples Tâche 1 écrit dans tampon 1, tâche 2 écrit dans tampon 2 ; Tâche 3 lit ces zones lorsqu elles sont toutes deux remplies ; Tâche 3 ne peut pas lire si tâche 1 ou tâche 2 écrit ; Tâche 1 et la tâche 2 ne peuvent pas écrire tant que leur zone tampon respective n a pas été lue. 49 / 58

Solution : Sémaphores : ressources multiples 50 / 58

Interblocage Soit deux processus P0, P1, tels que P0 est plus prioritaire que P1 et P0 commence un peu plus tard que P1. 1 P1 exécute wait(s2), qui est alors non bloquant. 2 A ce moment, P1 est interrompu par P0 qui exécute wait(s1) (non bloquant) puis wait(s2) (bloquant!). 3 P1 reprend donc la main et exécute wait(s1) (bloquant aussi!) 4 Interblocage : les processus s attendent mutuellement. 51 / 58

Un classique : philosophes et spaghetti Un philosophe a deux activités : manger ou penser ; Un philosophe mange des spaghetti avec 2 fourchettes ; Il n y a qu une fourchette par personne... Comment assurer le bon déroulement du repas? 52 / 58

Sémaphore et inversion de priorité Une erreur de ce type est à l orignie du crash du rover sur Mars. 53 / 58

Protocole d héritage de priorité Solution à l inversion de priorité : A l entrée en section critique : une tâche hérite de la plus haute priorité des tâches concurrentes sur cette section ; A la sortie de la section critique : la tâche retrouve sa priorité normale ; Limitations : N évite pas les deadlocks ; Dans le cas d une chaîne de blocage le changement de priorité peut amener un fort délai sur la tâche de haute priorité. 54 / 58

Communication par messages Dans le cas de systèmes distribués (mémoires distinctes) : On doit synchroniser des processus distants les uns des autres ; On utilise un système d échange de message : Envoi du message : sendmsg(destinataire, message) ; Réception du message : rcvmsg(expéditeur, message). Principaux modes d échange de messages possibles : Boîte aux lettres ; Rendez-vous. 55 / 58

Messages par boîte aux lettres Un producteur poste dans la boîte et continue ses traitements sans attendre ; Le consommateur relève le courrier quand il veut ; Questions : Quelle dimension pour la boîte aux lettres? Que faire lorsque la boîte est pleine : ignorer ou écraser? 56 / 58

Messages par rendez-vous Pas de mémoire tampon ; Le send et le receive sont synchronisés : Si send avant receive alors send bloquant ; Si receive avant send alors receive bloquant. Avantages : Economise la mémoire ; Pas de pertes de données. Inconvénient : ralentit les processus s ils ne vont pas au même rythme. 57 / 58

Echange de messages : problèmes classiques Réseau imparfait possibilité de perte de message ; Côté producteur : s assurer que le message est bien arrivé (acquittement) ; Côté consommateur, si aucune donnée n arrive : Continuer avec une donnée ancienne? Attendre l arrivée d une nouvelle donnée? 58 / 58