cours se chap3

57
2AGE Ecole Nationale d’Ingénieurs de Tunis 1 SYSTÈMES D’EXPLOITATION Département TIC Meriem KASSAR BEN JEMAA [email protected] Ecole Nationale d’Ingénieurs de Tunis

Upload: selman-dridi

Post on 07-Aug-2015

42 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 1

SYSTÈMES D’EXPLOITATION

Département TIC

Meriem KASSAR BEN JEMAA [email protected]

Ecole Nationale d’Ingénieurs de Tunis

Page 2: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 2

FICHE DESCRIPTIVE �•  Objectifs généraux :

–  Comprendre les fonctionnalités essentielles d’un système d’exploitation. –  Connaître le système Unix du point de vue de l’utilisateur. –  Apprendre la notion de processus : définition, communication, exécution.

•  Public Cible : 2ème Année, Spécialité « Génie Electrique » •  Pré requis : Informatique, Programmation •  Durée : 15 heures •  Formules pédagogiques : Exposé informel, Exercices

•  Moyens pédagogiques : Tableau, Support de cours

•  Bibliographie : [1] I. Mounier & M. Gradinariu , « Programmation Système & Internet  », Support de cours, UPMC, 2007. [2] F. Pellegrini & D. Sherman, « Systèmes d’exploitation », Support de cours, ENSEIRB, 2001. [3] A. Belkhir, « Systèmes d’exploitation, Mécanismes de base », 2005. [4] F. Bourdon, « Systèmes d’exploitation », Support de cours, IUT de Caen. [5] Y. Bagnotte, « Systèmes d’exploitation & Programmation Système », 2001. [6] H.Bourzoufi , « Cours de Systèmes d'Exploitation (Unix)  », Université de Valenciennes - ISTV.

Page 3: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 3

CHAPITRE 3 �PROCESSUS

1.  Gestion des processus 2.  Gestion des entrées/sorties 3.  Communication inter-processus

Page 4: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 4

Partager le processeur

Page 5: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 5

Pour partager le processeur

Page 6: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 6

Exemple d’exécution multi-tâche

Page 7: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 7

Ordonnanceur (scheduler)

Page 8: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 8

Processus (ou tâche) •  Le processus est l'entité d'exécution dans le système UNIX.  Toute activité dans UNIX correspond à un processus. •  Dans UNIX, il existe deux types de processus :

•  Processus système (Ex : swapper, crons, getty ....) •  Processus utilisateur qui correspondent à l'exécution d'une commande ou d'une

application.

•  Chaque processus est identifié par un numéro : PID (Process Identifier) •  La commande ps donne la liste des processus. •  L’option –l permet d'obtenir pour chaque processus les informations suivantes :

•  l'identité du propriétaire du processus (UID) ; •  l'identité du processus (PID) ; •  l'identité du processus père (PPID) ; •  l'état du processus (F/S) ; •  des informations relatives à la priorité du processus (C/PRI/NI) ; etc.

Page 9: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 9

Arborescence de processus •  Un processus particulier (INIT) est lancé au démarrage de la machine. •  Il crée un processus par terminal. •  Chacun de ces processus attend une éventuelle connexion, et lorsqu'une

connexion est validée, il lance un nouveau processus chargé de lire et d'interpréter les commandes de l'utilisateur (Shell sous UNIX).

•  Chacune de ces commandes peut elle-même créer un nouveau processus, etc... On aboutit ainsi à une arborescence de processus.

Page 10: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 10

Processus Unix •  La création d'un processus se fait

par dédoublement : –  Un processus est toujours créé par un

autre processus par le mécanisme de fourche "fork".

•  On appelle le processus créateur processus père.

•  Le processus créé est appelé processus fils .

•  L'appel système FORK() crée une copie exacte du processus original (L'appelant).

•  La valeur de retour de la fonction FORK() est 0 pour le processus fils et est égale au PID du fils dans le processus père.

•  Le processus fils peut exécuter un nouveau code à l'aide des primitives EXEC.

Page 11: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 11

Processus Unix •  La durée de vie d'un processus peut être

conceptuellement divisée en 3 principaux états qui décrivent le processus:

•  L'état Elu : le processus obtient le processeur et dispose de toutes les ressources dont il a besoin. Il est en cours d'exécution. Un processus élu peut être arrêté, même s'il peut poursuivre son exécution, si le SE décide d'allouer le processeur à un autre processus.

•  Lors de l’exécution, le processus peut demander à accéder à une ressource. Il quitte alors le processeur et passe dans l’état bloqué.

•  L'état Bloqué : le processus se met en attente d’un évènement extérieur autre que le processeur pour pouvoir continuer. Lorsque le processus est passé dans l’état bloqué, le processeur a été alloué à un autre processus. Le processeur n’est donc pas forcément libre.

•  L'état Prêt : le processus dispose de toutes les ressources dont il a besoin à l'exception de l'UC. Il est suspendu provisoirement pour permettre l'exécution d'un autre processus. Création d’un processus+ Attente du processeur = état Prêt

Page 12: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 12

Processus en arrière plan

Page 13: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 13

Exécution séquentielle

Page 14: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 14

Exécution en arrière plan (1)

Page 15: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 15

Exécution en arrière plan (2)

Page 16: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 16

Identification des processus (1)

Page 17: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 17

Identification des processus (2)

Page 18: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 18

Processus en arrière plan

Page 19: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 19

Commandes « bg » et « fg »

Page 20: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 20

Processus en arrière plan & Saisie de clavier

Page 21: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 21

Processus en arrière plan & Affichage écran

Page 22: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 22

Interruption d’un processus •  Ctrl C

– Saisie associée à un terminal (la fenêtre doit être active) – Ne concerne que les processus rattachés au terminal – Arrêt du processus (en standard)

•  kill [-num] pid – num = numéro d’identification du signal – Pas obligatoirement depuis le terminal de rattachement du

processus – Signal SIGKILL (numéro 9) provoque TOUJOURS l’arrêt

du processus –  Interruption uniquement des processus dont l’utilisateur est

propriétaire

Page 23: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 23

Terminal de rattachement •  Terminal : interface d’un interpréteur shell

(représentée par une fenêtre) •  Représente la sortie standard et l’entrée

standard par défaut des processus qui lui sont rattachés

• Comportement : – Attend une commande saisie par l’utilisateur prompt affiché

– Attend la fin de l’exécution d’une commande pas de prompt affiché

Page 24: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 24

Processus rattachés/non rattachés à un terminal •  Processus rattachés à un terminal :

– Le processus shell dont c’est l’interface (shell courant) – Les processus créés depuis l’interface du shell (même lancés en

arrière plan) Prompt> mozilla & (processus mozilla rattaché à un terminal)

– Processus fils d’un processus rattaché à un terminal (hérite du terminal de rattachement)

•  Processus non rattachés à un terminal : – Processus créés en double cliquant sur l’icône associée à

l’application double clic sur l’icône de mozilla (processus mozilla sans terminal de

rattachement)

– Processus créés par le système (démons par exemple) – Ne peuvent être « contrôlés » que par leur PID.

Page 25: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 25

Valeur de retour d’un processus (1) $? : valeur de retour de la dernière commande exécutée

Page 26: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 26

Valeur de retour d’un processus (2)

Page 27: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 27

Valeur de retour d’un processus (3)

Page 28: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 28

Gestion des entrées/sorties Processus & Périphériques de base

Page 29: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 29

Gestion des entrées/sorties Processus & Périphériques de base

Page 30: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 30

Héritage de contexte entre processus

Page 31: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 31

Héritage de contexte entre processus

Page 32: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 32

Héritage de contexte entre processus

Page 33: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 33

Flux & Création de processus

Page 34: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 34

Fichiers « périphériques » d’un processus

Page 35: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 35

Redirections, Exemple

Page 36: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 36

Modes de redirections de sortie

Page 37: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 37

Instruction « case » en shell

Page 38: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 38

Script cree_ou_ajoute

Page 39: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 39

Exécution (1)

Page 40: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 40

Exécution (2)

Page 41: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 41

Communications inter-processus�Redirections & Communications

Page 42: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 42

Relation écrivain-lecteur

Page 43: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 43

Scripts « prod » et « cons »

Page 44: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 44

Exécution « prod » et « cons »

Page 45: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 45

Exécution « prod » et « cons » �(en arrière-plan)

Page 46: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 46

« Tube » de commununication

Page 47: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 47

Scripts « prod2 » et « cons2 »

Page 48: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 48

Quelques commandes utiles : grep

Page 49: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 49

Quelques commandes utiles : tr

Page 50: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 50

Quelques commandes utiles : sort

Page 51: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 51

Mécanismes de configuration de compte

Page 52: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 52

Quelques variables d’environnement

Page 53: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 53

Modifications des prompts

Page 54: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 54

Les alias

Page 55: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 55

Modification des alias

Page 56: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 56

Configuration globale �(tous les utilisateurs)

Page 57: Cours se chap3

2AGE Ecole Nationale d’Ingénieurs de Tunis 57

Fichier « .bash_profile »