Les processus. F. Nolot DESS IAS :

Documents pareils
Cours Programmation Système

Introduction aux Systèmes et aux Réseaux

Cours de Systèmes d Exploitation

Problèmes liés à la concurrence

Les processus. Système L3, /39

Programmation système en C/C++

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

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

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

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

Gestion des processus

gestion des processus La gestion des processus

Cours A7 : Temps Réel

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

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

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

Partie 7 : Gestion de la mémoire

Systèmes d exploitation Gestion de processus

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Programmation système

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

Gestion distribuée (par sockets) de banque en Java

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)

Programmation système de commandes en C

Arguments d un programme

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

Chapitre 4 : Outils de communication centralisés entre processus

Un ordonnanceur stupide

Cours 6 : Tubes anonymes et nommés

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

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

Playing with ptrace() for fun and profit

La Comptabilité UNIX System V Acctcom

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

ENVOI SIMPLE (SMS)...

GESTION DES FICHIERS C/UNIX

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

Vous êtes bien à la bonne présentation, c est juste que je trouvais que le titre de cette présentation étais un peu long,

SQL Server Installation Center et SQL Server Management Studio

Manuel de l utilisateur

NFS Maestro 8.0. Nouvelles fonctionnalités

Chapitre 4 : Exclusion mutuelle

Programmation impérative

Introduction à la programmation concurrente

Encryptions, compression et partitionnement des données

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

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

Manuel d'installation

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Procédure de restauration F8. Série LoRdi 2012 à Dell V131 V3360 L3330

Access 2007 FF Access FR FR Base

PRE-REQUIS A L INSTALLATION...

PLAN DE REPRISE D ACTIVITE INFORMATIQUE

Mettre à jour son ordinateur vers Windows 7

Sommaire. Page d accueil. Comment effectuer une mise à jour? Comment insérer le logo de sa société? Comment effectuer une sauvegarde?

Le Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

L exclusion mutuelle distribuée

CAPTURE DES PROFESSIONNELS

Les méthodes de sauvegarde en environnement virtuel

Le langage C. Séance n 4

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Guide d installation des licences Solid Edge-NB RB

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

Utilisation du client de messagerie Thunderbird

Unix : Programmation Système

1 ) L élaboration des factures, des bordereaux de livraison et des factures proforma.

Genie Logiciel Avancé Projet :Gestion d une chaîne hotelier low cost

Ordonnancement temps réel

Structure fonctionnelle d un SGBD

Guide de rapports ADT Sélecte

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

Créer son adresse

GESTION LOGISTIQUE GESTION COMMERCIALE GESTION DE PRODUCTION

Premiers pas avec VMware Fusion. VMware Fusion pour Mac OS X

INITIATION AU LANGAGE JAVA

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

Eyes Of Network 4.0. Documentation d installation et de configuration

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Architecture d un système d exploitation

IBM Software Group. Migration vers Tivoli Workload Scheduler. Philippe TESSIER 2009 IBM Corporation

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

Les processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur)

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

Signature électronique sécurisée. Manuel d installation

Programmation Système (en C sous linux) Rémy Malgouyres LIMOS UMR 6158, IUT département info Université Clermont 1, B.P.

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

Synchro et Threads Java TM

sommaire Archives... Archiver votre messagerie... Les notes... Les règles de messagerie... Les calendriers partagés Les listes de diffusions...

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

MIGRER VERS LA DERNIERE VERSION DE L'ANTIVIRUS FIREWALL

Règlement public et conditions générales d utilisation du service de Vélo en Libre Service, V Lille, implanté sur le territoire de Lille Métropole

mode d emploi des services de votre ligne fixe

3. Modifier la priorité Fichier Host/serveur DNS sous Windows

Java Licence Professionnelle CISII,

Le prototype de la fonction main()

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

Introduction à la Programmation Parallèle: MPI

Sauvegarde de postes clients avec BackupPC

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Transcription:

Les processus DESS IAS : 2004 2005 1

Explication Stricto sensus, un processeur n exécute qu un seul programme à la fois Mais bascule rapidement entre 2 processus Résultat : impression de simultanéité Vrai simultanéité = multiprocesseur ou un cluster DESS IAS : 2004 2005 2

processus vs programme Exemple : faire un gâteau la recette = le programme les ingrédients = les données le cuisinier = le processeur Processus = activité qui consiste à concevoir le gâteau : lire la recette mélanger les ingrédients la cuisson DESS IAS : 2004 2005 3

La gestion d un processus Exemple : le cuisinier se fait piquer par une guêpe suspendre la conception du gâteau (sauvegarde de l état en cours) bascule vers le processus : administrer un anti-dote donc processus terminé reprise du processus : continuer le gâteau DESS IAS : 2004 2005 4

De père en fils Premier processus crée par le système processus init qui créer les processus démons Un processus crée par un autre processus le processus créateur = le père le processus créé = le fils Visualisation des processus en cours Sous Unix : commande ps Sous Windows 95-Me : Ctrl-Alt-Del une fois Sous Windows 2000-XP : gestionnaire des taches DESS IAS : 2004 2005 5

Création d un processus Appel système fork() déclaré dans <unistd.h> Crée un processus fils Copie des données du père Copie de l environnement Table descripteur de fichier Identifiant du processus en cours appel système getpid(); Identifiant du processus père au processus courant appel système getppid(); DESS IAS : 2004 2005 6

Identification processus/utilisateur Existence de 3 identifiants UID réel celui qui a lancé le programme uid_t getuid(void) UID effectif privilèges accordés au processus uid_t geteuid(void) UID sauvé sauvegarde de l ancien UID effectif s il est modifié uid_t getreuid(void) (>=Linux 2.2) uid_t défini dans <sys/types.h> getuid et geteuid définis dans <unistd.h> DESS IAS : 2004 2005 7

Identification processus/groupe Existence de 3 identifiants GID réel groupe de celui qui a lancé le programme gid_t getgid(void) GID effectif privilèges accordés au processus gid_t geteguid(void) GID sauvé sauvegarde de l ancien GID effectif s il est modifié gid_t getregid(void) (>=Linux 2.2) gid_t défini dans <sys/types.h> getgid et getegid définis dans <unistd.h> DESS IAS : 2004 2005 8

Etat d un processus Exécution ou Running (R) processus en cours de fonctionnement Sommeil ou Sleeping (S) processus en attente d un évènement extérieur 2 types de sommeil : interruptible (par un signal) non interruptible (uniquement interrompu par une interruption matériel) Arrêt ou Stopped (T) processus arrêté par un signal. Il faut un signal de redémarrage pour qu il reparte Zombie (Z) processus terminé mais son père n a pas récupéré son code de retour Prêt : Running ou Sommeil DESS IAS : 2004 2005 9

Succession des Etats fork Sommeil Signal ou interruption Attente d un événement Ex écution Fin d un processus Zombie Signal SIGSTOP Signal SIGCONT Lecture code de retour Arrêté DESS IAS : 2004 2005 10

Exécution d un nouveau programme Comme fork() duplique le processus en cours nécessité de modifier son code pour exécuter un autre programme 1er solution : utilise le fork() retourne 0 si on se trouve dans le fils le PID du fils si nous nous trouvons dans le père -1 en cas d erreur 2ème solution : Famille des commandes exec() int execv(const char * app,const char * argv[]); app : chemin complet de l application, le dernier élément est NULL argv[] : paramètre à donner à l application int execl(const char * app,const char * arg, ); app : chemin complet de l application arg : paramètre sous forme d une liste d argument, termine par pointeur NULL. DESS IAS : 2004 2005 11

Conditions de concurrence Exemple : un spool d impression Out : prochain slot à imprimer (=6) In : prochain slot libre (=7) A veut imprimer, lit In et enregistre 7 B veut imprimer, lit In et enregistre 7 A envoie au spool, donc dans le slot 7 et incrémente In (=8) B fait de même, donc écrase le slot 7 et incrémente In (=8) Le spool reste cohérent, il va imprimer 7 mais A n aura jamais sont impression DESS IAS : 2004 2005 12

Solution : les sections critiques (S.C) L exclusion mutuelle : si une ressource est occupé alors celle-ci n est pas utilisable. 4 conditions à assurer : Au plus un seul processus en S.C. Aucune supposition sur la vitesse et le nombre de processus ne doit être fait Aucun processus à l extérieur de la S.C. ne doit bloquer un processus demandeur Tout processus désirant entrer en S.C. doit y accéder au bout d un temps fini DESS IAS : 2004 2005 13

Exclusion mutuelle avec attente active Désactivation des interruptions Variables de verrou Alternance stricte Algorithme de Peterson DESS IAS : 2004 2005 14

Les processus La concurrence : les sémaphores DESS IAS : 2004 2005 15

Les sémaphores (Edsger Dijkstra) Un sémaphore S (le plus simple) est un drapeau qui est soit levé soit baissé Avant d entrer en S.C, un processus attend que le drapeau soit levé, puis le baisse : opération P () A la sortie de la S.C., le processus lève le drapeau opération V() et le S.E réveille un processus en attente DESS IAS : 2004 2005 16

Les sémaphores (2) Les opérations P() et V() sont atomiques P() : le test et la décrémentation sont atomiques V() : l incrémentation est atomique 2 opérations atomiques ne peuvent être exécutées simultanément En aucun cas, 2 processus ne verront le drapeau levé et l abaisseront DESS IAS : 2004 2005 17

Les sémaphores (System V) S entier entre 0 et n P(n) : bloquante si S < n demandé sinon décrémente S de n V(n) : incrémente S de n DESS IAS : 2004 2005 18

Le problème des producteursconsommateurs 2 processus partagent un buffer commun de taille fixe le producteur place des informations le consommateur les retire Les problèmes : buffer est plein et le producteur veut placer une information solution : passage en sommeil (ou attente) et réveille quand le consommateur aura retiré une information buffer est vide et le consommateur veut retirer une information solution : passage en sommeil et réveille quand une information est placée DESS IAS : 2004 2005 19

Suivre le nombre d information? Suppose que le nombre d informations soit stocké dans un variable Count Soit N la taille du buffer Le Producteur : Si Count == N alors Producteur en sommeil Ajoute l information; Count++; Si Count == 1 alors Réveille le consommateur Le Consommateur : Si Count == 0 alors Consommateur en sommeil Retire l information; Count--; Si Count == N-1 alors Réveille le producteur DESS IAS : 2004 2005 20

Où est la concurrence? Consommateur lit Count à 0 et le S.E. bascule sur le producteur Producteur insère une information. Lit Count à 1 donc réveille le consommateur. Le signal est perdu car le consommateur ne dort pas S.E. bascule sur le consommateur Le consommateur a lu 0 donc s endort Le producteur fini par remplir le buffer et s endort DESS IAS : 2004 2005 21

Un problème demeure Variable partagée donc utilisation d un mémoire partagée Comment faire sans mémoire partagée? Les processus doivent communiquer DESS IAS : 2004 2005 22

Communication interprocessus (IPC) 3 types de problèmes : comment échanger des informations sans mémoire partagée? utilisation des tubes (pipe) ou sockets DESS IAS : 2004 2005 23

Les processus l ordonnancement : définition et objectifs DESS IAS : 2004 2005 24

L ordonnancement? Multiprogrammation entraîne une concurrence des processus Sur un monoprocesseur, quel processus utilisera le CPU? La réponse : l ordonnanceur (scheduler) et son algorithme d ordonnancement (scheduling algorithm) qui le détermine DESS IAS : 2004 2005 25

Avant et maintenant Avant : un job à la fois. Un processus se termine et on en démarre un autre. les processeurs pas assez rapide pour traiter les informations de l utilisateur Maintenant : processeur sont beaucoup plus rapide que l utilisateur. Peut-on faire utiliser le processeur par un autre processus pendant que l utilisateur réfléchisse? Plusieurs utilisateurs, plusieurs processus et il faut essayer de satisfaire tout le monde, le plus vite possible DESS IAS : 2004 2005 26

Comment faire? Exemple : un utilisateur rédige un mail, l envoie et ferme l utilitaire d envoie de mail Si la fermeture prend 2 secondes, l ordinateur est considéré comme lent. Si la fermeture se fait instantanément et que le mail à envoyer est retardé de 2 secondes, l utilisateur est satisfait. L ordonnanceur doit donc bien choisir DESS IAS : 2004 2005 27

Quand ordonnancer? création d un processus fils processus terminé processus en sommeil quand une interruption d E/S se produit Dans tous les cas : A qui donne-t-on le droit de s exécuter? DESS IAS : 2004 2005 28

Critères d ordonnancement % d utilisation du CPU Nb de processus exécutés en un temps donné Temps pour exécuter un processus Temps d attente d un processus dans la file prêt Système interactif : temps de réponse pour l S.E. pour répondre à l utilisateur DESS IAS : 2004 2005 29

Types d ordonnanceur Non préemptif sélectionne un processus puis il s exécute jusqu à ce qu il bloque ou qu il libère volontairement le processeur Préemptif sélectionne un processus puis il s exécute pendant un délai déterminé Si le processus toujours en cours après ce délai alors suspendu et choisi un autre DESS IAS : 2004 2005 30

Objectifs des ordonnanceurs Tous les systèmes Equité : attribuer un temps équitable à chaque processus et respecter la politique du système (sécurité, stockage, ) Equilibré : toutes les parties du système doivent être occupées Systèmes de traitements par lots optimiser le nombre de jobs à l heure réduire le délai entre soumission et achèvement, temps d attente ou de rotation optimiser l utilisation du processeur DESS IAS : 2004 2005 31

Objectifs des ordonnanceurs (2) Systèmes interactifs Temps de réponse : répondre rapidement aux requêtes Répondre aux attentes des utilisateurs et leur soupçon Systèmes temps réel respecter les délais prévisibilité : éviter la dégradation de la qualité dans les systèmes multimédias DESS IAS : 2004 2005 32

Les processus L ordonnancement : les algorithmes DESS IAS : 2004 2005 33

First In First Out (non préemptif) Processus P1 P2 P3 Temps d exécution 24 ms 3 ms 3 ms Temps d attente moyenne (AWT): P1, P2 et P3 : (24+27+30)/3 = 27 ms P2, P3 et P1 : (3+6+30)/3 = 13 ms FIFO est correct mais très forte dépendance avec le temps d exécution DESS IAS : 2004 2005 34

Shortest job first (non préemptif) Processus P1 P2 P3 P4 Temps d exécution 8 ms 4 ms 4 ms 4 ms AWT = (4+8+12+20)/4 = 11 ms le S.E. doit connaître le temps d exécution du processus AWT optimal uniquement si tous les jobs sont soumis en même temps DESS IAS : 2004 2005 35

Shortest remaining time next (préemptif) Le S.E choisi le processus dont le temps d exécution restant est le plus court Il faut connaître le temps d exécution à l avance Favorise les jobs courts DESS IAS : 2004 2005 36

Tourniquet (Round Robin) Le processeur fait tourner les processus dans une file A chaque processus est assigné un intervalle de temps, quantum, pendant lequel il s exécute A la fin de ce quantum : si le processus n est pas terminé, il est placé en fin de file sinon il est supprimé Problème : décider de la quantité du quantum? si 1ms pour basculer et quantum = 4ms alors 20% de temps de gaspiller si quantum = 100ms alors 1% de perdu mais si 10 utilisateurs qui appuie sur Entrée : 10 processus dans la file, le deuxième doit attente 100ms et le dernier 1 seconde DESS IAS : 2004 2005 37

Par priorité Existence d une file de processus d une priorité donnée Chaque file est géré par l algorithme du Round Robin Le file de priorité maximal traité en premier Quand une file est vide, on traite la file de priorité inférieure Problème : il faut revoir les priorités sinon famine dans les priorités basses DESS IAS : 2004 2005 38

Files multi niveaux Plusieurs files qui possèdent chacune leur algorithme d ordonnancement Chaque file a un but Une pour les jobs de 1er plan Une pour les jobs de 2ème plan Chaque processus est assigné à une file lors de sa création Variante : migration d un processus d une file vers une autre DESS IAS : 2004 2005 39