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



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

Cours Programmation Système

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

Cours A7 : Temps Réel

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

Partie 7 : Gestion de la mémoire

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

gestion des processus La gestion des processus

Cours de Systèmes d Exploitation

Chapitre 4 : Outils de communication centralisés entre processus

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

Programmation système en C/C++

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

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

Support de cours système d exploitation

Gestion des processus

Projet gestion d'objets dupliqués

Cours 6 : Tubes anonymes et nommés

Systèmes d exploitation Gestion de processus

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

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

Introduction à la programmation concurrente

Synchro et Threads Java TM

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

Ordonnancement temps réel

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

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

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

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

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Programmation système de commandes en C

Architecture des ordinateurs

Concept de machine virtuelle

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Plan global. Programmation système II. Socket du domaine UNIX. Plan. Socket UNIX, Terminaux, Async IO, Mémoire, ELF.

Les processus. Système L3, /39

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Un ordonnanceur stupide

Cours de Génie Logiciel

Introduction à la Programmation Parallèle: MPI

Conception des systèmes répartis

Système de Gestion de Fichiers

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

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

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

SYSTÈME DE GESTION DE FICHIERS

Cours de Programmation Impérative: Zones de mémoires et pointeurs

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

CH.3 SYSTÈMES D'EXPLOITATION

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

Système et réseaux (SR1) Gestion des utilisateurs

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

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Bases de programmation. Cours 5. Structurer les données

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

Initiation au HPC - Généralités

Ordonnancement temps réel

Les structures de données. Rajae El Ouazzani

Les diagrammes de modélisation

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

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

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

Programmation parallèle et distribuée

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Communication Interprocessus

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Initiation à la sécurité

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Conventions d écriture et outils de mise au point

CESI Bases de données

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

Programmation système

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

Fiche Technique. Cisco Security Agent

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

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

Introduction aux algorithmes répartis

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

Master d'informatique 1ère année Réseaux et protocoles. Couche physique

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Configurer l adressage des serveurs et des clients

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Playing with ptrace() for fun and profit

OS Réseaux et Programmation Système - C5

L informatique en BCPST

Cours d initiation à la programmation en C++ Johann Cuenin

Transcription:

Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement court terme : allocation du processeur 5) Support à la conception d applications parallèles Problématique Revue des mécanismes d interaction pour les 2) Modèles de Notion de = activité d'exécution d'un programme par une machine Processus programme livre ~ programme (statique) ; activité de lecture d un livre ~ (dynamique) Plusieurs peuvent exécuter simultanément un même programme, chacun ayant travaillant sur ses propres données Exemple : traitement de texte. Processus -1- Processus -3-1) Contexte Rôle du SX : réaliser une interface des ressources matérielles pour les applications Mieux employer les ressources " parallélisme et partage des ressources entre calculs " final RAM processeur carte réseau logiciel système " contrôler chacun des traitements en cours d exécution ( actifs) " gérer le partage des ressources entre les actifs programmeur logiciel d application = activité d'exécution d'un programme par une machine Point de vue du programmeur CO Programme variables globales Espace d adressage («objets connus») Etat de la machine = état du processeur (registres) + état de la mémoire (données) Exécution d'une instruction (action) changement d'état de la machine (une instruction est définie par la relation qu elle établit entre états initiaux et états finaux) Exécution d un programme = exécution d une suite d instructions BA 1 Pile BA n Image mémoire du " Processus = suite d'actions = suite d'états obtenus = trace Tas descripteurs de fichiers 0 1 2 4 Processus -2- Processus -4-

Point de vue SX et s " = de ressources le SX doit assurer la disponibilité des ressources demandées par les l /programmeur doit disposer d une interface pour demander/restituer les ressources nécessaires à l exécution de ses l activité d un est abstraite (réduite) aux opérations d allocation/restitution de ressources " pour le SX : état d un = état (demandeur/) par rapport à l allocation des différentes ressources Interface de gestion des : opérations sur les Créer un Windows BOOL CreateProcess ( LPCTSTR lpapplicationname, // programme exécutable LPTSTR lpcommandline, // ou ligne de commande LPSECURITY ATTRIBUTES lpprocessattributes LPSECURITY ATTRIBUTES lpthreadattributes BOOL binherithandles, // indicateurs d héritage DWORD dwcreationflags, // priorité, nouvelle fenêtre,... LPVOID lpenvironment, // environnement LPCTSTR lpcurrentdirectory, LPSTARTUPINFO lpstartupinfo, // fenêtre, redirections LPPROCESS_INFORMATION lpprocessinformation // résultat ); typedef struct _PROCESS INFORMATION { HANDLE hprocess ; HANDLE hthread ; DWORD dwprocessid ; DWORD dwthreadid ; PROCESS_INFORMATION, *LPPROCESS_INFORMATION ; Processus -5- Processus -7- Modèle fourni par le SX Contrôle des ressources disponibles pour le : environnement d exécution le processeur et la mémoire vive peuvent être gérées automatiquement par le SX " disponibilité transparente/automatique pour l /programmeur l utilisation des ressources périphériques est souvent demandée explicitement, via une interface spécifique Remarque Unix propose une interface unifiée (flots/fichiers) pour les échanges de données entre un et son environnement fd liste les variables d environnement qui peuvent être échangées entre le SX 2 et les fournissent un moyen général et flexible de contrôler ls et d ajuster les informations et ressources disponibles lors de 1 l exécution : 0 identifiant de l courant, de la machine, protocole utilisé par le terminal, chemins d accès aux bibliothèques et exécutables Unix Séparation en 2 primitives Création d un «fils» : fork() " Héritage implicite de l environnement construit par le «père» " Exécute le même programme Commutation de programme : exec() Le «fils» charge un nouveau programme à exécuter Exemple if (fork()==0) { /* code exécuté par le fils */ exec("prog fils",); else { /* code exécuté par le père */ Remarque : terminologie fork() création exec() La création de définit une hiérarchie de : lancé = fils, lanceur = père Processus -6- Processus -8-

Terminer un : Windows : VOID ExitProcess(UINT uexitcode) // code de retour Unix : VOID exit(int ret) // code de retour Comment le SX garantit-il la terminaison «propre» d un?? int main(int arc, *char argv[]) { 3)Mise en œuvre de la gestion des Représentation des Point de vue SX = de ressources " état d un = état d allocation des ressources pour chaque, les informations d allocation des ressources (obtenues/demandées) sont conservées dans un descripteur de (ou PCB : Process Control Block) la table des regroupe les différents descripteurs de descripteur P 1 descripteur P 2 système image mémoire de P i masques signaux fichiers ouverts desc. P i descripteur P N code exécutable table des Processus -9- Processus -11- Réponse : appel d une enveloppe du programme principal Autres opérations start { main(); exit(0); Appel Noyau lister les informations de gestion d un ressources utilisées, identifiant, programme, int main(int arc, *char argv[]) { suspendre/reprendre un : masquées dans d autres primitives : wait(), sleep(), read(),... Descripteur de identifiant du copie du contexte processeur (à la dernière interruption) : mot d'état programme (CO,CC), registres (généraux,adresses piles et segments) informations de gestion des ressources " UC : état du (prêt, bloqué), priorité " mémoire : adresse de la table des pages (zones allouées, droits d accès) " E/S : périphériques accessibles (descripteurs de fichiers ouverts : droits d accès, tampons) " statistiques d'utilisation (utilisé pour les algorithmes d allocation des ressources) liens vers les créateur (père)/créés(fils) Le contexte du comprend le descripteur de et les structures qu il référence (tables, piles) Processus -10- Processus -12-

Exemple (Unix) 4)Ordonnancement des But : gérer l allocation des ressources aux tables «résidentes» Structure de Structure de texte Structure pile noyau Données vidables (va et vient [swapping pile usager texte tas données statiques image du Situation : Certaines ressources (UC, imprimante) n admettent qu un nombre limité d s simultanés " une file est associée à chaque ressource, dans laquelle sont placés les (descripteurs des) en attente de la ressource Par la suite et par abus de langage, mais pour être plus concis, «mettre un en attente» sera employé pour «intégrer le descripteur d'un à une structure de données associée à l'état d'attente». " lorsque la ressource est disponible, l algorithme de choix du prochain auquel allouer la ressource dépend " de la nature de la ressource " de la fréquence des décisions d allocation zone système zone Descripteur de = Structure + Structure de Processus -13- Processus -15- Opérations sur les Création Création du descripteur de initialisé " à partir des paramètres d appel pour Windows " à partir du descripteur de père pour Unix Le est prêt ou suspendu Destruction/Terminaison Libération des ressources utilisées par le Libération du descripteur de Niveaux d ordonnancement Définis en fonction de la fréquence des décisions prises : reprise Processus suspendus (va-et-vient) Processus prêts préemption (quantum) périphérique Travaux soumis UC attente E/S suspension Court Terme Moyen Terme Long Terme à long terme (régulation) : choix des programmes à lancer (cf traitement par lots) à moyen terme : choix des pouvant s exécuter (synchronisation, régulation de la charge par va-et-vient, attente d E/S) à court terme (exécution) : choix du actif (allocation de l'uc) Processus -14- Processus -16-

Terminologie : états d un pour l ordonnancement Premier arrivé, premier servi (algorithme FIFO) Principe : servir les requêtes par ordre chronologique d'arrivée préemption/ commutation prêt actif allocation UC réalisation E/S demande E/S bloqué simple sans priorités (équitable) sans réquisition " forte variance du temps de service : le temps de service d un dépend du comportement des qui le précèdent " inadapté au temps partagé : Processus -17- Processus -19- Algorithmes (politiques) d ordonnancement court terme : allocation du processeur Caractéristiques des algorithmes priorité associée aux, ou non " pas de priorité " service équitable (tout finit par être servi) et gestion simple " priorités " contrôle fin de l allocation " risque de famine pour les non prioritaires " remède : faire croître la priorité avec le temps passé dans le système (ancienneté) réquisition, ou non " pas de réquisition " simple, pas de contraintes/hypothèses sur le matériel " réquisition " possibilité de garantir des temps de réponse " nécessaire aux systèmes interactifs et/ou temps-réel Remarque : pas d'algorithme convenable pour tous les critères Tourniquet (Round-Robin) Principe Quantum : durée maximale d activité continue pour le actif (élu) Les prêts sont rangés dans une file Le processeur est alloué au en tête de file Le processeur est préempté au profit du suivant dans la file " soit en fin de quantum; " soit sur blocage du actif (attente d une synchronisation, d une E/S) Prêt File des prêts Prêt Actif Processeur Fin de quantum Blocage logique ~ FIFO, avec réquisition " adapté au temps partagé Paramètre essentiel : valeur du quantum (valeurs usuelles : 10-100 ms) Processus -18- Processus -20-

Allocation à deux niveaux Principe Les prêts sont divisés en catégories ( interactifs, tâches de fond) Chaque catégorie a sa politique d'allocation (FIFO,tourniquet) Une politique d'allocation est définie entre catégories (FIFO, tourniquet, priorités ) Exemples Files multiniveaux " gestion interne aux catégories : FIFO " ordonnancement entre catégories : priorités statiques (un niveau par catégorie) FSS (Fair Share Scheduling) " Une fraction du temps processeur (nombre de quantums) est attribuée à chaque catégorie " Le nombre de quantums alloué à chaque catégorie peut être ajusté dynamiquement Tourniquet multiniveaux " gestion interne aux catégories : tourniquet " ordonnancement entre catégories : priorités statiques (un niveau par catégorie) " adaptatif : un peut changer de niveau selon qu il épuise son quantum ou non Exemple 2 : structuration «classique» de l activité d un SX Structuration type biod shell crond Mon_pg syncd un par activité un (démon) par périphérique paged lpd init RAM un ou plusieurs (démons) pour la gestion mémoire les services système peuvent être réalisés par des ou bien comme des procédures nfsd inetd système Processus -21- Processus -23-5)Support à la conception d applications parallèles Démarche de conception d une application parallèle 1 - définir (spécifier) des activités parallèles 2 - composer (coordonner) ces activités pour constituer des activités «complexes» Exemple : enregistrement d un flux de donnéees reçu à haut débit RD tampon (mémoire centrale) Nécessité de traiter en parallèle la réception et l enregistrement des données " deux activités : RD (réception des données) et ED(enregistrement des données), qui doivent être aussi autonomes que possible se transmettre des données " utilisation d un tampon en mémoire centrale Une coordination entre ED et RD reste nécessaire pour l accès au tampon ED doit attendre RD si le tampon est vide RD doit attendre ED si le tampon est plein " disposer de primitives pour communiquer (tampons, messages) et synchroniser (attente, signaux) ED Structure de base de l activité d un SX : cycliques (démons) message Démon légende Caractère permanent " activité échange d'information boite à lettres attachée au choix exécution signal (aux autres) simple (conception) { efficacité de mise en œuvre " utilisé dans les couches basses (SX) Processus -22- Processus -24-

Mécanismes d interaction pour les Communication Synchrone : lecture/écriture vers des flots/fichiers " prochain cours + TD (Unix) Couplée : tampons " tubes (pipes) + TD (Unix/Shell) Asynchrone : " communication par événements, schéma s abonner/publier " service d interruptions logicielles (signaux UNIX " TD) " E/S non bloquantes (" TD Unix) " mémoire partagée (" Cours + TD mémoire virtuelle) Synchronisation (attente contrôlée par le programmeur) couplage induit par l accès aux tubes schéma fork/join : possibilité pour un père d attendre la terminaison d un fils (" TD) Les schémas et objets de synchronisation généraux (verrous, moniteurs, sémaphores) sont un sujet technique qui sera développé dans une UE spécifique, en 2e année. Processus -25-