1 UNIX AVANCE Yves PAGNOTTE – Janvier 2011 3 – LES PROCESSUS SOUS UNIX.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
GEF 243B Programmation informatique appliquée
Premier programme en C :
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Synchronisation des processus père - fils
GEF 435 Principes des systèmes d’exploitations
GEF 435 Principes des systèmes dexploitation Concepts des Systèmes dexploitation (Tanenbaum 1.5)
GEF 435 Principes des systèmes dexploitation Appels de système (Tanenbaum 1.6)
Conception et programmation Programmation Parallèle
C.
Mémoire & Processus Cours SE - SRC
Parallel Programming in C with MPI and OpenMP
Système d’Exploitation
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 5 Interpréteur de commande, Bourne shell,
Systèmes d'exploitations Les redirections d'entrées/sorties GRARI Mounir ESTO Année 2011.
Formation Linux :exécutables et processus
Principes de programmation (suite)
Rappel // Basé sur le cours de Dr. Jaber Jemai
Récursivité.
Connexion en mode application. Bases de données - Yann Loyer2 Connexion en mode application Pour tout type dutilisateurs : –passif, actif, gérant Permettre.
1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie.
Système d’exploitation
Segments de mémoire partagée
Course Critique Race Condition
Module 51 Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches) Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches)
Programmation concurrente
Composantes d’un Ordinateur
CSI3531 – Labo 1 Lobservation du comportement de processus.
ÉLÉMENTS DE BASE UNIX.
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Mécanismes d'exécution et de communication
Systèmes d’exploitation
Plan cours La notion de pointeur et d’adresse mémoire.
SYSTEME D’EXPLOITATION
Qu’est-ce qu’un système d’exploitation ?
L ’Ordonnancement Ordonnancement.
Systèmes d'exploitations Processus
Sécurité des Systèmes Informatique
Introduction aux systèmes d’exploitation
Programmation Système et Réseau (sous Linux)
SPIP SPIP est le système de publication développé par le minirézo.
SYSTÈME D’EXPLOITATION I
Théorie Système Exploitation
Argc et argv Utilisation des paramètres de la ligne de commande.
Interactions entre Processus
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Tutorat en bio-informatique
La programmation système
Programmation Système et Réseau
Exec et signaux. Comment surveiller les processus? Avant d’aller plus loin, vous aurez sans doute besoin de cette commande : ps –A u: permet d’afficher.
ISBN Chapitre 10 L'implémentation des sous- programmes.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Signaux Il s'agit de messages asynchrones envoyés à un processus
Processus Légers. Rappel sur le fork() fork() Processus 1 Pile Data Text Processus 2 Pile Data Text.
Elaboré par Ahmed BESSAIDI
Patricia Renault UPMC 2005/2006
Patricia Renault UPMC 2005/2006
Cours Système LI324 Les Interruptions Cours Système LI324
Architecture Client/Serveur
Les Processus.
Gestion des Tâches Les Processus. Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties.
UNIX AVANCE Yves PAGNOTTE – Janvier – QUELQUES RAPPELS SUR LES SYSTEMES D’EXPLOITATION 1.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – RAPPELS SUR UNIX DE BASE.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – COMMUNICATION INTER PROCESSUS : TUBES.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – PROCESSUS ET RESSOURCES.
Transcription de la présentation:

1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX

2 définition d’un processus Un programme qui s’exécute, avec sa pile, ses données, son compteur ordinal, ses descripteurs de fichiers ouverts et les registres nécessaires à l’exécution  aspect dynamique ce qui est souligné = le contexte du processus Fichier exécutable = aspect statique Un même fichier exécutable peut donc engendrer plusieurs processus s’il est exécuté plusieurs fois simultanément

3 environnements d’un processus 1. environnement utilisateur fichier exécutable, avec 3 zones : zone programme ou de code (partageable entre plusieurs processus) zone de données (variables globales et segments de mémoire) zone de pile utilisateur (variables locales, appels de fonctions)

4 environnements d’un processus 2. environnement machine registres

5 environnements d’un processus 3. environnement système initialisé par le shell à la création du processus table des processus (consultable par la commande ps) entité globale en mémoire centrale pointe sur table des textes pointe sur la zone de données de chaque processus table des textes en mémoire centrale, permet le partage de code la ligne relative à un processus contient : - pointeur vers l’i-node du fichier exécutable - nombre de processus qui exécutent ce fichier

6

7 environnements d’un processus 3. environnement système (suite) table des descripteurs (structure U, une par processus) une entrée de la table des descripteurs pointe sur une entrée de la table des fichiers ouverts table des fichiers ouverts (entité globale) une entrée dans la table des fichiers ouverts comprend : - nombre de descripteurs pointant sur l ’entrée - mode d ’ouverture (lecture/écriture) et indicateurs - valeur de l ’offset - pointeur sur une entrée de la table des i-nodes

8 012…012… 012…012… Table des descripteurs processus P1 Table des descripteurs processus P2 Table des fichiers ouverts Table des i-nodes disque ou MC

9 simultanéité - vraie - pseudo-simultanéité par partage / commutation de temps  mécanisme de changement de contexte

10 gestion des processus ils sont numérotés par le noyau : 1 (init), 2, … Ce numéro est appelé pid (process identity)  les processus sont organisés en un arbre - dont la racine est le processus init - processus père, processus fils dans l’arbre  états d ’un processus : élu (actif), bloqué, prêt (activable), etc…

11

12 ordonnancement de processus un processus possède une priorité gérée par l’ordonnanceur (scheduler) elle est recalculée à chaque quantum de temps l ’utilisateur peut intervenir par la commande nice

13 initialisation du système / de l’arbre des processus (1) un bootstrap primaire implanté sur la piste 0 du disque lance un bootstrap secondaire

14 initialisation du système / de l’arbre des processus (2) le bootstrap secondaire - met en fonction l’échangeur de pid 0 * gère la pagination * gère les échanges entre mémoires - découpe la mémoire (voir diapo 11 présentation 2) - teste les volumes - charge les tables - lance l’exécution de init de pid 1

15 initialisation du système / de l’arbre des processus (3) le processus init de pid 1 - crée autant de processus fils getty qu ’il y a de terminaux réels ou virtuels (taper ps -fe|grep getty) A la connexion, init tue le processus getty et le restaure à la déconnexion) un utilisateur possède : - un uid (user identity) la correspondance nom  uid dans /etc/passwd - un gid (group identity) la correspondance nom  gid dans /etc/group

16 exécution en tâche de fond (background) symbole & Exemple : tp.exetp.exe & père (shell par défaut) Processus fils exécutant tp.exe Le père est suspendu (wait) jusqu’à la fin du fils Processus fils exécutant tp.exe Le père et le fils sont actifs simultanément

17 création de processus int fork ( ) - crée un processus fils - qui partage le code du père - à la création du fils, son environnement est une copie de celui du père - retourne -1 au père si le fils n’a pas pu être créé - retourne au père le pid du fils (≥ 2) si celui-ci a été créé - retourne 0 au fils

18 création de processus Exemple traité en cours : int main ( ) {int pid; printf ("bonjour"); pid = fork ( ); if (pid == -1) { printf ("erreur"); exit (0);} if (pid == 0) printf ("les amis\n"); else printf ("amigos\n"); }

19 synchronisation de processus void exit (int)- met fin à un processus - un argument entier int wait (int *) - attente active de la fin d’un processus fils - retourne le pid du premier processus qui exécute exit ou envoie un signal. Bien tenir compte des zombies ! - gestion de l’entier pointé par l’argument : argument de exit n° de signal avant-dernier octet dernier octet

20 synchronisation de processus Les signaux sont décrits en annexe kill- envoie un signal à un processus - exemple : kill (pid, SIGINT) signal- décrit la réaction d’un processus à l’arrivée d’un signal (pointeur sur une fonction de traitement) - exemple : signal (SIGINT, f);