1. 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
2. 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.
3. 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
4. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
4
Partager le processeur
5. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
5
Pour partager le processeur
6. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
6
Exemple d’exécution multi-tâche
7. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
7
Ordonnanceur (scheduler)
8. 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.
9. 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.
10. 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.
11. 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
12. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
12
Processus en arrière plan
13. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
13
Exécution séquentielle
14. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
14
Exécution en arrière plan (1)
15. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
15
Exécution en arrière plan (2)
16. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
16
Identification des processus (1)
17. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
17
Identification des processus (2)
18. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
18
Processus en arrière plan
19. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
19
Commandes « bg » et « fg »
20. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
20
Processus en arrière plan Saisie de clavier
21. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
21
Processus en arrière plan Affichage écran
22. 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
23. 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é
24. 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.
25. 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
26. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
26
Valeur de retour d’un processus (2)
27. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
27
Valeur de retour d’un processus (3)
28. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
28
Gestion des entrées/sorties
Processus Périphériques de base
29. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
29
Gestion des entrées/sorties
Processus Périphériques de base
30. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
30
Héritage de contexte entre processus
31. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
31
Héritage de contexte entre processus
32. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
32
Héritage de contexte entre processus
33. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
33
Flux Création de processus
34. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
34
Fichiers « périphériques » d’un processus
35. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
35
Redirections, Exemple
36. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
36
Modes de redirections de sortie
37. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
37
Instruction « case » en shell
38. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
38
Script cree_ou_ajoute
39. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
39
Exécution (1)
40. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
40
Exécution (2)
41. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
41
Communications inter-processus
Redirections Communications
42. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
42
Relation écrivain-lecteur
43. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
43
Scripts « prod » et « cons »
44. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
44
Exécution « prod » et « cons »
45. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
45
Exécution « prod » et « cons »
(en arrière-plan)
46. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
46
« Tube » de commununication
47. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
47
Scripts « prod2 » et « cons2 »
48. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
48
Quelques commandes utiles : grep
49. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
49
Quelques commandes utiles : tr
50. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
50
Quelques commandes utiles : sort
51. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
51
Mécanismes de configuration de compte
52. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
52
Quelques variables d’environnement
53. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
53
Modifications des prompts
54. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
54
Les alias
55. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
55
Modification des alias
56. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
56
Configuration globale
(tous les utilisateurs)
57. 2AGE
Ecole Nationale d’Ingénieurs de Tunis
57
Fichier « .bash_profile »