cours se chap3

Post on 07-Aug-2015

43 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

SYSTÈMES D’EXPLOITATION

Département TIC

Meriem KASSAR BEN JEMAA Meriem.Kassar@enit.rnu.tn

Ecole Nationale d’Ingénieurs de Tunis

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.

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

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

Partager le processeur

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

Pour partager le processeur

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

Exemple d’exécution multi-tâche

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

Ordonnanceur (scheduler)

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.

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.

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.

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

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

Processus en arrière plan

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

Exécution séquentielle

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

Exécution en arrière plan (1)

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

Exécution en arrière plan (2)

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

Identification des processus (1)

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

Identification des processus (2)

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

Processus en arrière plan

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

Commandes « bg » et « fg »

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

Processus en arrière plan & Saisie de clavier

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

Processus en arrière plan & Affichage écran

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

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é

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.

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

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

Valeur de retour d’un processus (2)

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

Valeur de retour d’un processus (3)

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

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

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

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

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

Héritage de contexte entre processus

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

Héritage de contexte entre processus

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

Héritage de contexte entre processus

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

Flux & Création de processus

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

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

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

Redirections, Exemple

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

Modes de redirections de sortie

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

Instruction « case » en shell

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

Script cree_ou_ajoute

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

Exécution (1)

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

Exécution (2)

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

Communications inter-processus�Redirections & Communications

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

Relation écrivain-lecteur

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

Scripts « prod » et « cons »

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

Exécution « prod » et « cons »

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

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

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

« Tube » de commununication

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

Scripts « prod2 » et « cons2 »

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

Quelques commandes utiles : grep

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

Quelques commandes utiles : tr

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

Quelques commandes utiles : sort

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

Mécanismes de configuration de compte

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

Quelques variables d’environnement

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

Modifications des prompts

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

Les alias

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

Modification des alias

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

Configuration globale �(tous les utilisateurs)

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

Fichier « .bash_profile »

top related