Académique Documents
Professionnel Documents
Culture Documents
Dr Mandicou BA
mandicou.ba@esp.sn
http://www.mandicouba.net
7 Appels système
PDF Creator Trial
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 2 / 82
Généralités sur les processus
Sommaire
3 Ordonnancement de processus
5 Inter-blocage
6 Communication inter-processus
7 Appels système
Multi-programmation
* Plusieurs programmes (processus) se partagent les ressources
(mémoire, périphérique, etc.) de l’ordinateur :
problème de protection, de concurrence et contrôle
* Le processeur exécute un autre processus au lieu de restant inactif
pendant tout le temps pris par l’instruction d’E/S du 1e processus
* Cela donne à l’utilisateur que tous les processus s’exécutent en même
temps : pseudo-parallélisme
PDF sur une machine
Creator Trial mono-processeur, un seul processus est exécuté à
un instant donné
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 4 / 82
Généralités sur les processus
Sagement de code
* Copie du segment de code du fichier exécutable
* Placé dans des zones fixes de la mémoire (début
de la zone disponible)
* La prochaine instruction à exécuter dans ce
segment est repérée par le pointeur d’instruction
* Cette zone est en lecture seule
* Elle peut être partagée par tous les programmes
exécutant le même programme. Ce qui n’est pas
le cas pour les segment de données et de pile
Sagement de données
* Il se trouve au dessus du segment de code
* Il est amené à grandir ou à rétrécir durant
l’exécution
* il est composé de :
1 Un segment de données initialisées :
copié directement de l’exécution. Par
exemple, les données initialisées
correspondent aux variables globales et
static initialisées d’un programme C
2 Un segment de données non initialisées :
crée dynamiquement. Les données non
initialisées correspondent aux variables
PDF Creator
globales Trial
et static non initialisées
Pile
* Sert à stocker les données obtenues en cours
d’exécution. Son nom, pile, (stack en anglais)
vient de la manière dont elle est géré : empiler
puis dépiler les données
* Le plus souvent en haut de l’espace d’adressage
et croit vers le bas
Exemple 1 (Appel d’une fonction)
Empiler le nom de fonction, lui passer les
paramètres et variables locales
Exécuter la fonction. Une fois la fonction
terminée, le SE dépile les données utilisées et
retrouve les données d’avant
PDF Creator Trial
Poursuivre l’exécution du programme
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 12 / 82
Généralités sur les processus
Tas
* Est un autre segment utilisé par le système
d’exploitation pour les allocations dynamiques.
Interruption
* Dans le cas des transitions « actif 7 ! bloqué » et « actif 7 ! prêt » on
parle d’interruption (IT)
Traitement d’une IT
1 Arrivée d’une IT : Le processus en cours est interrompu et un
gestionnaire d’IT est chargé dans les registres du processeurs et
s’exécute pour traiter l’IT en question
2 Une fois le signal IT reconnu, le gestionnaire d’IT accède à la table des
vecteurs d’IT et recherche l’adresse du programme associé et l’exécute
3 Une fois l’IT traitée, le SE charge un autre processus à partir de la file
d’attente et l’exécute
Traitement d’une IT
1 Une IT est provoquée par un signal généré soit par un événement interne
soit par un événement externe :
* Événement interne : lié au processus
Appel système
Déroutement : dû généralement aux erreurs telles que division par
zéro, débordement de la mémoire, exécution d’une instruction non
autorisée, etc
* Événement externe : panne, intervention de l’utilisateur à l’aide
d’une frappe au clavier. C’est l’exemple de «Ctrl+Alt+supp», bouton
«reset», etc.
Traitement d’une IT
1 Deux sortes d’interruptions : Matérielles et Logicielles
* IT Matérielles (IRQ) : générées par les périphériques. Parviennent
au processeur par l’intermédiaire d’un contrôleur d’IT
* IT Logicielles : des IT internes, c’est le processus qui appelle cette
IT à l’aide du numéro d’IT.
: Par exemple, pour appeler une IT DOS, appeler l’IT N 21H
* Si plusieurs interruptions arrivent au même temps, alors celle qui a
le plus petit numéro qui a la plus grande priorité :
Exemple : IRQ horloge système = 0, IRQ port parallèle = 7
Sommaire
3 Ordonnancement de processus
5 Inter-blocage
6 Communication inter-processus
7 Appels système
Sommaire
3 Ordonnancement de processus
5 Inter-blocage
6 Communication inter-processus
7 Appels système
Principe
Algorithmes d’ordonnancement
* La prévisibilité :
Un système qui d’habitude réagit rapidement aux commandes mais
qui parfois prend un temps beaucoup plus long sera perçu comme
moins stable que s’il répondait à chaque fois dans un temps
comparable même s’il est globalement plus lent.
Le système semblera aussi plus convivial s’il respecte l’idée parfois
fausse que les utilisateurs se font de la complexité des tâches.
* C’est le plus court (du point de vu temps d’exécution) processus qui est
mis à la tête de la file d’attente et qui est exécuté en premier
* Avantage :
Utile dans les chaînes de production
* Inconvénient :
Suppose la connaissance de la durée d’exécution de tous les
processus, ce qui est rare en pratique sauf si on a utilisé au
préalable au moins une fois ces processus
Sommaire
3 Ordonnancement de processus
5 Inter-blocage
6 Communication inter-processus
7 Appels système
PDF Creator Trial
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 35 / 82
Synchronisation de processus par sémaphores Accès concurrents
Accès concurrents
Exemple 2
P1 et P2 sont deux ressources voulant accéder à une imprimante
L’imprimante est gérée par le processus deamon-plt qui inspecte :
1 une variable de type tableau contenant les fichiers à imprimer
2 et 2 variables entières prochain (qui indique numéro du prochain fichier à
imprimer) et libre (qui indique le premier emplacement libre où déposer le
fichier)
Supposons
PDF le scénario
Creator Trial suivant :
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 36 / 82
Synchronisation de processus par sémaphores Accès concurrents
Accès concurrents
Exemple 3
P1 et P2 sont deux ressources voulant accéder à une imprimante
L’imprimante est gérée par le processus deamon-plt qui inspecte :
1 une variable de type tableau contenant les fichiers à imprimer
2 et 2 variables entières prochain (qui indique numéro du prochain fichier à
imprimer) et libre (qui indique le premier emplacement libre où déposer le
fichier)
Supposons le scénario suivant :
1 P1 lit libre, la trouve à 5 puis est immédiatement interrompu
2 P2 lit libre, la trouve à 5 puis met son fichier à cet emplacement,
incrémente libre à 6 et est ensuite interrompu
3 P1 reprends et écrase le fichier de P2 par le sien
Solution : ne pas interrompre P1 au moment où il a été interrompu
Notions
* PDF de section
Creator Trialcritique et exclusion mutuelle
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 37 / 82
Synchronisation de processus par sémaphores Accès concurrents
Section critique
Définition
* Une ressource est dite ressource critique lorsque des accès
concurrents à cette ressources peuvent résulter dans un état incohérent
* On parle aussi de situation de compétition (race condition) pour décrire
une situation dont l’issue dépend de l’ordre dans lequel les opérations
sont effectuées
* Une section critique est une section de programme manipulant une
ressource critique.
* Section critique = partie du processus où il peut y avoir un conflit
d’accès
‡ Contient des variables et/ou ressources partagées
Exclusion mutuelle
Définition
* Exclusion mutuelle : si une ressource a été accédée par un processus
P1 , aucun autre processus ne peut y accéder tant qu’elle n’a pas été
libérée par P1 .
‡ Si P1 est interrompu, il faut attendre à ce qu’il reprenne son
exécution pour qu’il puisse libérer la ressource
‡ Une section de programme est dite atomique lorsqu’elle ne peut pas
être interrompue par un autre processus manipulant les mêmes
ressources critiques.
‡ C’est donc une atomicité relative à la ressource
‡ Un mécanisme d’exclusion mutuelle sert à assurer l’atomicité des
sections critiques relatives à une ressource critique
Définition 1
* Un sémaphore (S) est un compteur entier qui désigne le nombre
d’autorisations d’accès à une section critique
* Un sémaphore est une variable entière qui compte le nombre de
processus en attente d’une section critique.
* Un sémaphore est une variable protégée (implémentation cachée), dont
une "donnée-membre" est un compteur "NATURAL" (entier positif ou nul)
initialisé à sa création à une valeur s0 de type "NATURAL"
* Les sémaphores sont un outil élémentaire de synchronisation qui évitent
l’attente active
* Le sémaphore est un objet de type abstrait. Il est caractérisé par la
donnée d’un compteur et d’une file d’attente
PDF Creator Trial
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 41 / 82
Synchronisation de processus par sémaphores Étude des Sémaphores
P(S)
E(S) = E(S) - 1; V(S)
Si E(S) < 0 alors E(S) = E(s) + 1;
état(p) = bloqué;
si E(s) <= 0 alors
entrer(p, F(S))
sortir(q, F(S));
‡ Si le sémaphore est binaire, état(q) = éligible;
entrer(q, F(éligibles));
alors une seule exécution de
la section critique
Sémaphores de Synchronisation
Sommaire
3 Ordonnancement de processus
5 Inter-blocage
6 Communication inter-processus
7 Appels système
Définitions
Stratégie de gestion
* Détecter et résoudre
* Prévenir la formation d’inter-blocages en empêchant l’apparition d’une
des 4 conditions
* Éviter les inter-blocages en allouant de manière « intelligente » les
ressources
Détecter et résoudre
* Comment continuer? :
Détecter et résoudre
* Comment continuer? :
1 Retirer la ressource (La préemption) :
Certaines ressources, de par leur nature peuvent être retirées
temporairement (parfois avec une intervention humaine).
PDF Creator Trial
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 57 / 82
Inter-blocage
Détecter et résoudre
* Comment continuer? :
1 Retirer la ressource (La préemption)
2 Suppression d’un processus :
on peut tuer un processus pris en inter-blocage afin de libérer ses
ressources.
Un autre processus qui n’est pas dans le coup peut également être
PDF Creator Trial
tué, si ça marche... ça marche
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 58 / 82
Inter-blocage
Détecter et résoudre
* Comment continuer? :
1 Retirer la ressource (La préemption)
2 Suppression d’un processus
3 Gestion de processus avec des points de reprise (rollback) :
à certains points clé, les états des processus sont enregistrés afin de
pouvoir être restaurés ultérieurement.
Lors d’un inter-blocage, un processus est ramené à un point de
PDF Creator Trial
reprise antérieur à l’acquisition de la ressource.
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 59 / 82
Inter-blocage
Prévenir l’inter-blocage
* exclusion mutuelle :
empêcher un processus de s’accaparer une ressource (spooling)
* attente circulaire :
les processus doivent demander les ressources dans un certain
ordre, fixé par le SE.
* occupation et attente :
forcer les processus à demander toutes leurs ressources au début
exécuter un processus ssi toutes les ressources sont disponibles
réquisition
Allouer « correctement »
La vérité
Sommaire
3 Ordonnancement de processus
5 Inter-blocage
6 Communication inter-processus
Les signaux
Les messages
7 Appels système
PDF Creator Trial
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 65 / 82
Communication inter-processus
Introduction
les signaux
les signaux
Synthèse
* Les signaux sont utilisés pour établir une communication minimale entre
processus, une communication avec le monde extérieure et faire la
PDF Creator
gestion Trial
des erreurs.
Dr Mandicou BA (ESP) Systèmes d’exploitation (DUT 2 Informatique) 68 / 82
Communication inter-processus Les signaux
les signaux
Les messages
Présentation générale
Sockets
Sommaire
3 Ordonnancement de processus
5 Inter-blocage
6 Communication inter-processus
7 Appels système
Dr Mandicou BA
mandicou.ba@esp.sn
http://www.mandicouba.net