Systèmes d exploitation II Chapitre 2 : Gestion des processus. www.achrafothman.net



Documents pareils
Cours Programmation Système

Introduction aux Systèmes et aux Réseaux

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

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

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

OS Réseaux et Programmation Système - C5

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

Cours de Systèmes d Exploitation

Concept de machine virtuelle

Introduction à la programmation concurrente

Introduction à la Programmation Parallèle: MPI

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

Partie 7 : Gestion de la mémoire

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Systèmes d exploitation Gestion de processus

3IS - Système d'exploitation linux - Programmation système

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

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

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

Gestion des processus

Remote Method Invocation Les classes implémentant Serializable

gestion des processus La gestion des processus

Programmation parallèle et distribuée

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

Cours 6 : Tubes anonymes et nommés

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

Support de cours système d exploitation

Le modèle client-serveur

Lier Erlang avec d autres langages de programmation

Messagerie asynchrone et Services Web

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Synchro et Threads Java TM

Calcul Parallèle. Cours 5 - JAVA RMI

Initiation au HPC - Généralités

LOG4430 : Architecture et conception avancée

Programmation système de commandes en C

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

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

<Insert Picture Here> Solaris pour la base de donnés Oracle

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

Architecture des ordinateurs

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

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

Software Engineering and Middleware A Roadmap

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

Windows Internet Name Service (WINS)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

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

Projet Active Object

Intergiciel - concepts de base

Programmation système en C/C++

Un ordonnanceur stupide

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

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

Remote Method Invocation (RMI)

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

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

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

Exercice sur les Dockers

Xen. Quelques notes autour de Xen

FileMaker Pro 13. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 13

Remote Method Invocation en Java (RMI)

Chapitre 4 : Outils de communication centralisés entre processus

Java - RMI Remote Method Invocation. Java - RMI

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Cours Bases de données

Projet gestion d'objets dupliqués

GEI 465 : Systèmes répartis

RMI le langage Java XII-1 JMF

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

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Introduction aux intergiciels

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

NFP111 Systèmes et Applications Réparties

Les processus. Système L3, /39

18 TCP Les protocoles de domaines d applications

Cisco Certified Network Associate

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

Communication par sockets

Introduction : les processus. Introduction : les threads. Plan

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

Network musical jammin

Conception des systèmes répartis

Technologie de déduplication de Barracuda Backup. Livre blanc

DUT Informatique Module Système S4 C Département Informatique 2009 / Travaux Pratiques n o 5 : Sockets Stream

Simulation d un système de paiement par carte bancaire

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

INFO-F-404 : Techniques avancées de systèmes d exploitation

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

Traduction des Langages : Le Compilateur Micro Java

Programmation d Applications Concurrentes et Distribuées (INF431)

CORBA haute performance

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Le langage C. Séance n 4

Transcription:

Systèmes d exploitation II Chapitre 2 : Gestion des processus www.achrafothman.net 1

Processus Concept de Processus Ordonnancement de Processus Opérations sur les Processus Processus Coopératifs Communication Interprocessus Communication dans les systèmes Client-Serveur 2

Concept de Processus Un OS exécute une variété de programmes: Système Batch tâches Systèmes à temps partagé Programmes utilisateurs ou tâches Les livres utilisent les termes tâche et processus indifféremment Processus un programme en exécution Un processus inclut: Compteur de programme (PC) Pile (stack) Section données 3

Etats d un Processus En exécution, un processus change d état new: processus en train d être créé running: processus en exécution waiting: processus en attente d un évènement ready: processus en attente du processeur terminated: processus exécuté et terminé 4

Diagramme des Etats des Processus 5

Process Control Block (PCB) Information associée à chaque processus Etat du processus Compteur de programme (PC) Registres CPU Information sur l ordonnancement CPU Information sur la gestion mémoire Information de comptabilité Information sur les E/S 6

Changement de Contexte 7

Queues d Ordonnancement des Processus Process queue ensemble de tous les processus du système Ready queue ensemble de tous les processus en mémoire, prêts et en attente d exécution Device queues ensemble des processus en attente d une E/S Migration de processus entre les différentes files 8

9 Ready Queue Et Différents Device Queues d E/S

Représentation de l Ordonnancement des Processus 10

Ordonnanceurs Ordonnanceur à long terme (ou ordonnanceur de tâches) choisit quel processus doit être mis dans la file d attente des processus prêts (Ready Queue) Ordonnanceur à court terme (o ordonnanceur CPU) choisit quel processus doit être exécuté et lui alloue le CPU 11

Addition d Ordonnanceur à Moyen Terme 12

Ordonnanceurs (Cont.) Ordonnanceur à court terme s exécute très fréquemment (milliseconds) (doit être rapide) Ordonnanceur à long terme intervient peu (secondes, minutes) (peut être relativement plus lourd) L ordonnanceur à long terme contrôle le degré de multiprogrammation Les processus peuvent être décrits comme étant: Processus E/S met plus de temps à faire des E/S que des calculs sur la CPU; beaucoup de demandes de la CPU à temps réduit Processus CPU met plus de temps à faire des calculs CPU; few very long CPU bursts; très peu de demande du CPU à temps prolongé 13

Changement de Contexte Quand un processus prend le contrôle de la CPU, l OS doit sauvegarder l état de l ancien processus et charger l état sauvegardé du nouveau processus Le temps pour le changement de contexte est l overhead; l OS ne fait pas de travail utile lors du changement Temps dépendant du support matériel 14

Création de Processus Un processus parent crée des processus fils, qui, à leur tour, peuvent créer d autres processus, formant ainsi un arbre de processus Partage de Ressources Les parents et les fils partagent toutes les ressources Les fils partagent un sous-ensemble des ressources du parent Le parent et les fils ne partagent aucune ressource Exécution Le parent et les fils s exécutent simultanément Le parent attend la terminaison des fils 15

Création de Processus (Cont.) Espace d Adressage Le fils duplique le parent Le fils a un programme différent du parent Exemples UNIX Appel système fork crée de nouveaux processus Appel système exec utilisé après un fork pour remplacer la mémoire du processus parent par un nouveau programme 16

Programme C Créant Plusieurs Processus 17 #include <stdio.h> #include <unistd.h> int main(int argc, char *argv[]) { int pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls","ls",null); } else { /* parent process */ /* parent will wait for the child to complete */ wait(null); printf("child Complete"); exit(0); }

18 Arbre de Processus sur un Système UNIX

Terminaison de Processus Le processus exécute la dernière expression et demande à l OS de décider (exit) Données de terminaison du fils renvoyées au parent intéréssé (via wait) Ressources systèmes libérées par l OS Le parent peut terminer l exécution des processus fils (signal abort) Le fils a dépassé les ressources allouées La tâche du fils n est plus utile Si le parent se termine Certains OSs ne permettent pas aux fils de continuer Tous les fils terminés terminaison en cascade 19

Coopération Inter-Processus Les processus indépendants ne peuvent pas s affecter Les processus coopérants peuvent s affecter mutuellement Avantages des processus coopérants Partage d information Accélération du calcul Modularité Commodité 20

Problème du Producteur-Consommateur Paradigme pour les processus coopérants; le processus producteur produit des informations qui sont utilisées par un processus consommateur Tampon infini ne place aucune limite sur la taille du tampon Tampon borné assume l existence d un tampon à taille limitée 21

Communication Inter-Processus (IPC) Mécanisme pour la communication inter-processus et la synchronisation de leurs actions Système de messages les processus communiquent entre eux sans utiliser des variables partagées L interface IPC fournit deux opérations: send(message) message de taille fixe ou variable receive(message) Si P et Q désirent communiquer, ils ont besoin: D établir un lien de communication D échanger des messages via send/receive Implémentation d un lien de communication physique (e.g., mémoire partagéé, bus matériel) logique (e.g., propriétés logiques) 22

Questions d Implémentation Comment les liens sont établis? Un lien peut-il être associé à plusieurs processus? Combien de liens peut-il y avoir entre chaque paire de processus communiquants? Quelle est la capacité d un lien? La taille du message que le lien véhicule est-elle fixe ou variable? Un lien est-il unidirectionnel ou bidirectionnel? 23

Communication Directe Les processus doivent se nommer explicitement: send (P, message) envoyer un message au processus P receive(q, message) recevoir un message du processus Q Propriétés d un lien de communication Liens établis automatiquement Un lien est associé avec exactement une paire de processus communiquants Entre chaque paire, il existe exactement un lien Le lien peut être unidirectionnel, mais il est habituellement bidirectionnel 24

Communication Indirecte Les messages sont dirigés et reçus dans des boîtes aux lettres (mailbox, appelées aussi des ports) Chaque mailbox a un id unique Les processus peuvent communiquer seulement s ils partagent une mailbox Un lien peut être associé à plusieurs processus Chaque paire de processus peut partager plusieurs liens communiquants Un lien peut-être unidirectionnel ou bidirectionnel 25

Communication Indirecte Opérations Créer une boîte aux lettres Envoyer et recevoir des messages via la boîte aux lettres Détruire une boîte aux lettres Les primitives sont définies comme: send(a, message) envoyer un message à la boîte aux lettres A receive(a, message) recevoir un message de la boîte aux lettre A 26

Communication Indirecte Partage de boîte aux lettres (bal) P 1, P 2, and P 3 partagent la bal A P 1 envoie; P 2 and P 3 reçoivent Qui reçoit le message? Solutions Permettre à un lien d être associé avec au plus deux processus Permettre à un processus à la fois d exécuter une opération receive Permettre au système de choisir arbitrairement le receveur. Le processus émetteur est notifié de l identité des receveurs. 27

Synchronisation L échange de messages peut être bloquant ou non bloquant Bloquant est consdéré synchrone L envoi bloquant bloque l émetteur jusqu à ce que le message soit reçu La réception bloquante bloque le récepteur jusqu à la disponibilité d un message Non bloquant est considéré asynchrone L envoi non bloquant fait que l émetteur envoie le message et continue son exécution sans rien attendre La réception non bloquante fait que le récepteur reçoit un message ou null suivant la disponibilité des messages à l instant de l appel 28

Tampons File de messages attachée au lien; implémenté de trois façons 1. Capacité zéro 0 messages L émetteur doit attendre le récepteur (rendezvous) 2. Capacité bornée longueur finie de n messages L emetteur doit attendre si le lien est plein 3. Capacité non bornée longueur infinie L émetteur n attend jamais 29

Communication Client-Serveur Sockets Remote Procedure Calls Remote Method Invocation (Java) 30

Sockets Une socket est définie comme un endpoint de communication Concatenation d une adresse IP et d un numéro de port La socket 161.25.19.8:1625 désigne le port 1625 sur l hôte 161.25.19.8 Une communication se fait entre une paire de sockets 31

Communication Socket 32

Remote Procedure Calls Remote procedure call (RPC) émule un appel de procédure entre des processus distants Stubs proxy côté client pour la procédure côté serveur Le stub côté client localise le serveur et lui transfère (sérialize) les paramètres Le stub côté serveur reçoit le message, lit les parmètres (dé-sérialise) les paramètres, exécute la procédure sur le serveur 33

Execution du RPC 34

Remote Method Invocation Remote Method Invocation (RMI) est un mécanisme Java similaire aux RPCs. RMI permet à un programme Java sur une machine pour invoquer une méthode sur un objet distant. 35

Sérialisation de Paramètres 36

Threads Un thread (ou lightweight process) est une unité de base de l utilisation de la CPU; il consiste en: Compteur de programme Ensemble de registres pile Un thread partage avec ses threads frères: Section code Section données Ressources OS Connu collectivement comme une tâche Un processus traditionnel (heavyweight) est l équivalent d une tâche avec un seul thread 37

Threads (Cont.) 38 Dans une tâche à plusieurs thread, alors qu un thread du serveur est bloqué et en attente, un autre thread dans la même tâche peut s exécuter. Coopération de plusieurs threads permet un throughput plus élevé et une performance améliorée. Les applications qui requièrent le partage d un tampon commun (i.e., producteur-consommateur) beneficient de l utilisation des threads. Les threads fournissent un mécanisme qui permet à des processus séquentiels de faire des appels système bloquants tout en continuant à s exécuter en parallèle. Threads supportés par le noyau (Mach et OS/2). Threads utilisateurs; supportés par dessus le noyau, via un ensemble d appels de bibliothèque au niveau utilisateur (Project Andrew from CMU). Approche hybride implémentant des threads niveau utilisateur et niveau noyau (Solaris 2).

Plusieurs Tâches dans un Thread 39

Threads Supportés dans Solaris 2 Solaris 2 est une version d UNIX avec un support des threads au niveau noyau et au niveau utilisateur, les multiprocesseurs symétriques, et l ordonnancement temps réel. LWP niveau intermédiaire entre les threads au niveau utilisateur et les threads au niveau noyau. Besoins en ressources des différents type de thread: Thread noyau: une petite structure de données et une pile; un changement de thread ne requiert pas de changement des données relatives à l accès aux informations relativement rapide. LWP: PCB avec un registre de données, comptabilité et de l information mémoire; le changement entre LWPs est relativement lent. Thread utilisateur: seulement besoin d une pile et d un compteur de programme; le noyau n intervient pas et ainsi le changement de threads est rapide. Le noyau ne voit que les LWPs qui supportent des threads utilisateur. 40

Threads Solaris 2 41