Académique Documents
Professionnel Documents
Culture Documents
INTRODUCTION AUX
SYSTÈMES
D’EXPLOITATION
Diomède Nzisabira
Introduction aux systèmes d’exploitation
Avant-propos
L’Université virtuelle africaine (UVA) est fière de participer à l’accès croissant à l’éducation dans
les pays africains grâce à la production de matériaux d’apprentissage de qualité. Nous sommes
également fiers de contribuer à la connaissance globale car nos ressources éducatives ouvertes
sont principalement accessibles depuis le continent africain.
Les institutions suivantes ont participé au Programme des sciences informatiques appliquées:
(1) Université d’Abomey Calavi au Bénin; (2) Université de Ougagadougou au Burkina Faso;
(3) Université Lumière de Bujumbura au Burundi; (4) Université de Douala au Cameroun; (5)
Université de Nouakchott en Mauritanie; (6) Université Gaston Berger au Sénégal; (7) Université
des Sciences, Techniques et Technologies de Bamako au Mali (8) Institut de gestion et
d’administration publique du Ghana; (9) Université Kwame Nkrumah de Science et Technologie
au Ghana; (10) L’Université Kenyatta au Kenya; (11) Egerton University au Kenya; (12) Université
d’Addis-Abeba en Ethiopie (13) Université du Rwanda; (14) Université de Dar es-Salaam en
Tanzanie; (15) Université Abdou Moumouni de Niamey au Niger; (16) Université Cheikh Anta
Diop au Sénégal; (17) Université Pedagógica au Mozambique; Et (18) L’Université de Gambie
en Gambie.
Bakary Diallo
Le Recteur
2
Crédits de production
Auteur
Diomede Nzisabira
Pair Réviseur
Sagbo Romaric
Coordinateur du module
Victor Odumuyiwa
Concepteurs pédagogiques
Elizabeth Mbasu
Benta Ochola
Diana Tuel
Equipe Média
Sidney McGregor Michal Abigael Koyier
3
Introduction aux systèmes d’exploitation
Droits d’auteur
Ce document est publié dans les conditions de la Creative Commons
Http://fr.wikipedia.org/wiki/Creative_Commons
Attribution http://creativecommons.org/licenses/by/2.5/
Le gabarit est copyright African Virtual University sous licence Creative Commons Attribution-
ShareAlike 4.0 International License. CC-BY, SA
Supporté par
4
Table des matières
Avant-propos 2
Crédits de production 3
Droits d’auteur 4
Supporté par 4
Prérequis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Matériels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Objectifs du module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Unités 11
Calendrier 11
Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Ressources documentaires 13
Unité 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Unité 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Unité 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Unité 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Unité 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Unité 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Unité 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5
Introduction aux systèmes d’exploitation
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Objectif de l’unité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Mots-clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Introduction 16
Résumé de l’unité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Mémoire centrale : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 Les périphériques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Ressources documentaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Évaluation de l’unité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Objectifs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Mots-clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Introduction 21
Évaluation de l’unité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Introduction 22
Introduction 23
Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Résumé de l’unité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6
Évaluation de l’unité d’apprentissage . . . . . . . . . . . . . . . . . . . . . . 26
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
Objectifs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
Mots-clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Introduction 28
Processus et Programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Évaluation de l’unité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Introduction 38
Évaluation de l’activité :. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Introduction 43
Évaluation de l’activité :. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Introduction 52
Évaluation de l’activité :. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Objectifs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Mots-clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Introduction 64
Évaluation de l’activité :. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7
Introduction aux systèmes d’exploitation
Introduction 68
Évaluation de l’activité :. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Introduction 72
Évaluation de l’unité : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Résumé de l’unité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Objectifs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Mots-clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Introduction 84
Introduction 89
Évaluation de l’activité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Évaluation de l’activité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Introduction 94
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Objectifs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Mots-clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Introduction 105
8
Activité 2. Les attaques du système. . . . . . . . . . . . . . . . . . . . . . . . 106
Introduction 106
Introduction 108
Introduction 111
Introduction 118
Introduction 120
9
Introduction aux systèmes d’exploitation
Prérequis
Pour mieux aborder ce cours, il est préférable que l’apprenant ait des connaissances en
architecture des ordinateurs, en structure de données.
Matériels
Le matériel nécessaire pour accomplir ce cours est:
• Un ordinateur ;
• Des SE (Windows et Linux) ;
• Une connexion Internet ;
• Un navigateur.
Objectifs du module
A la fin de ce module, l’apprenant devra être capable de:
10
Unités
Unités
Unité 1: Principes des SE
Cette unité passe en revue les principes fondamentaux des SE. Elle présente le SE comme une
machine virtuelle évolutive et comme un gestionnaire d’événements et des tâches.
Calendrier
Unité Activités Période
11
Introduction aux systèmes d’exploitation
Évaluation
1 Evaluation pondération
continue (%)
1.1 Test I 10
1.2 Test II 15
1.3 Travail à 10
domicile
1.4 Projet 25
2 Examen final 40
Total 100
12
Ressources documentaires
Ressources documentaires
Les ressources documentaires à consulter sont:
Unité 0
https://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Architecture/
http://dept-info.labri.fr/ENSEIGNEMENT/archi/cours/archi.pdf
Unité 1
https://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Architecture/
http://dept-info.labri.fr/ENSEIGNEMENT/archi/cours/archi.pdf
http://www-int.impmc.upmc.fr/impmc/Enseignement/ye/informatique/systemes/chap1/13.html
Unité 2
Dijkstra, E.W., 1965. Solution of a Problem in Concurrent Programming Control.
Habermann, A.N. Prevention of System Deadlocks. CACM, Vol. 12, No. 7, July 1969, pp.
373-385.
http://www.groupes.polymtl.ca/inf3600/TransparentsAut2006/Ch1INF3600.pdf
Unité 3
Dijkstra, E.W., 1965. Solution of a Problem in Concurrent Programming Control.
Habermann, A.N. Prevention of System Deadlocks. CACM, Vol. 12, No. 7, July 1969, pp.
373-385.
Unité 4
Andrew Tanenbaum, Systèmes d’exploitation, 2eme édition, chapitre 6
13
Introduction aux systèmes d’exploitation
Unité 5
https://www.google.com/search?q=Alexandre+viardin&ie=utf-8&oe=utf-8
ftp://ftp.pgpi.org/pub/pgp/6.5/docs/french/IntroToCrypto.pdf
https://www.irit.fr/~Zoubir.Mammeri/Cours/M1ASTRE/Chapitre1.pdf
http://lanteri.isabelle.perso.sfr.fr/files/noyau1.pdf
Unité 6
http://sist.sysu.edu.cn/~isscwli/OSRef/Abraham%20Silberschatz-Operating%20System%20
Concepts%20%289th,2012.12%29.pdf
https://www.irit.fr/~Zoubir.Mammeri/Cours/M1ASTRE/Chapitre1.pdf
http://lanteri.isabelle.perso.sfr.fr/files/noyau1.pdf
http://perso-etis.ensea.fr/miramond/Enseignement/M1/IE/Cours/CoursAndry_TR.pdf
14
Unité 0. Aperçu sur les systèmes d’exploitation
Introduction
Un système est un ensemble d’éléments interagissant entre eux selon certains principes ou
règles. Un système est déterminé par :
Avec cette définition générique on peut alors se demander ce que c’est un système
informatique. Et qu’est-ce qu’un système informatique possède de spécifique par rapport aux
autres systèmes ?
Objectif de l’unité
A la fin de cette unité d’apprentissage, les apprenants devront être à mesure de :
15
Introduction aux systèmes d’exploitation
Mots-clés
Ordinateur: Un ordinateur est une machine électronique qui fonctionne
par la lecture séquentielle d’un ensemble d’instructions, organisées en
programmes, qui lui font exécuter des opérations logiques et arithmétiques
sur des chiffres binaire.
Introduction
16
Unité 0. Aperçu sur les systèmes d’exploitation
L’information élémentaire est le ‘Bit’ un bit ne peut prendre que deux valeurs notées : 0 et 1.
L’unité centrale qui réalise toutes les opérations demandées, elle est matérialisée
physiquement par un circuit électronique appelé « microprocesseur ». Un microprocesseur est
caractérisé par :
1 KHz = 210 Hz
1 MHz = 220 Hz
1 GHz = 230 Hz
17
Introduction aux systèmes d’exploitation
• Unité arithmétique et logique : L’UAL est l’organe qui permet d’effectuer des
opérations arithmétiques (addition, soustraction, multiplication, division), des
opérations logiques (par exemple des comparaisons).
• Unité de commande : L’unité de commande gère le déroulement des instructions.
Elle décode et exécute les instructions demandées.
3 Mémoire centrale :
La mémoire centrale est un organe de l’ordinateur permettant d’enregistrer, de stocker et de
restituer les informations. La mémoire centrale se présente sous la forme de petites barrettes
que l’on peut enficher dans des supports, appelés Slots. La mémoire centrale d’un ordinateur
est séparée en deux sections : la mémoire vive (mémoire volatile destinée à être lue et écrite)
et la mémoire morte (mémoire non volatile destinée à être lue).
4 Les périphériques
Les périphériques sont les organes de l’ordinateur qui permettent de communiquer avec
l’unité centrale et de stocker les informations d’une façon permanente. On en distingue trois
catégories à savoir : les périphériques d’entrée, les périphériques de sortie et les périphériques
d’entrée-sortie.
Résumé de l’unité
Un système d’exploitation est un logiciel fondamental pour la machine. C’est lui qui fait
fonctionner les éléments matériels et logiciels de l’ordinateur. Le système d’exploitation
fournit des services aux utilisateurs et aux programmes en cours d’exécution sur un système
informatique. Un système d’exploitation est conçu avec des compromis sur les performances,
la sécurité, la compatibilité et la maintenabilité.
18
Unité 0. Aperçu sur les systèmes d’exploitation
Évaluation de l’unité
Cette évaluation est composée par une série de question de simple
compréhension
Question1 :
Question 2 :
Question 3 :
Question 4 :
Question 5 :
Système de notation :
Rappel
Ressources documentaires
https://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Architecture/
http://dept-info.labri.fr/ENSEIGNEMENT/archi/cours/archi.pdf
19
Introduction aux systèmes d’exploitation
Introduction
Les fondements d’un SE peuvent être vus sous deux grands axes: niveau utilisateur et niveau
système. De plus, de par sa nature logiciel et ses fonctionnalités, le système d’exploitation
est appelé à évoluer avec le temps en fonction de l’évolution du matériel et des besoins des
utilisateurs.
3. logiciel évolutif.
Objectifs
A la fin de cette unité d’apprentissage, l’apprenant devra être à mesure de:
Mots-clés
Machine virtuelle: C’est une machine, un système installé sur un autre
système donnant l’impression d’une machine réel
20
Unité 1. Principes des Systèmes d’Exploitation
Introduction
Le SE étant la partie qui fait fonctionner les composant d’un ordinateur, nous allons dans cette
activité focaliser notre attention sur ce logiciel system. Qu’est-ce qu’un SE ?
Définition
Le système d’exploitation peut être défini comme programme système qui commande
l’exécution de programmes d’application. Il est responsable pour le chargement et l’exécution
de programmes d’application. Il doit veiller à la disponibilité des configurations matérielles et
logicielles requises avant d’exécuter le programme d’application
Rôle d’un SE
Dans un système informatique, le SE est le programme qui agit comme intermédiaire entre
l’utilisateur est la partie matérielle. Un système informatique possède un ensemble de
ressources pour la circulation, le traitement et le stockage de données.
Ainsi, du point de vue machine, un SE peut être considéré comme gestionnaire de ressources.
Un ensemble de demande d’accès aux ressources, pouvant même générés des conflits
sont gérés par le SE. C’est lui qui décide qui accède à telle ressource, pour telle durée en
garantissant un fonctionnement efficace du système. Le SE contrôle également les dispositifs
d’E/S et les logiciels d’application afin de garantir un bon fonctionnement du système.
Conclusion
Évaluation de l’unité
Question 1 :
Question 2 :
Question 3 :
Rappel :
21
Introduction aux systèmes d’exploitation
Introduction
Les ordinateurs ont évolué dans le temps. Cette évolution a été largement influencée par
l’évolution des SE. Mais quelles sont les évolutions qu’a connues le système d’exploitation ?
Cette question sera répondue dans cette activité.
Evolution
Étudier l’évolution des systèmes d’exploitation est utilisé pour comprendre les exigences clés
d’un système d’exploitation. De plus, elle aide à comprendre la signification des principales
caractéristiques des systèmes d’exploitation modernes.
Vers 1950 est apparu le moniteur d’enchaînement. Il permettait l’exécution d’une série de
travaux en séquence, c’est à dire l’un après l’autre. C’est l’ancêtre du traitement par lot. Il
possédait déjà des fonctions de protection: maximum de temps par travail, supervision des
périphériques, protection de la zone mémoire utilisée, gestion et abandon des travaux erronés.
Ces avancées étaient fondamentales car elles introduisaient un environnement autour du
programme à exécuter.
L’informatique moderne naît dans les années 1960. On peut résumer rapidement ses avancées
autour de l’invention des notions suivantes :
22
Unité 1. Principes des Systèmes d’Exploitation
http://www-int.impmc.upmc.fr/impmc/Enseignement/ye/informatique/systemes/chap1/13.html
Conclusion
L’évolution des systèmes d’exploitation au cours des dernières décennies le SE ont connu
plusieurs étapes de leurs évolution. Des machines sans SE on est arrivé actuellement aux
ordinateurs avec les systèmes distribués.
Évaluation
Question 1 :
Donner les grandes étapes de l’évolution des SE. Expliquer brièvement les
caractéristiques de chaque étape.
Question 2 :
Rappels :
Les SE d’exploitation ont passé par de grandes étapes. Des machines sans
systèmes d’exploitation aux systèmes distribués ces évolutions vont de paires
avec celles des ordinateurs.
Introduction
Dans cette activité nous allons détailler la structure interne d’un système d’exploitation.
Plusieurs approches d’implémentation des SE existe, nous allons donner un aperçu sur
quelques-uns. Il s’agit notamment des systèmes monolithiques, des systèmes en couche,
des machines virtuelles, des exonoyaux et des systèmes client-serveur.Pour des détails sur
cette activité reportez-vous sur la documentation suivante :Andew Tanenbaum, Systèmes
d’exploitation 2ème édition, pages 59-66
Système monolithique
Le SE est une structure hiérarchique écrit comme un ensemble de procédures dont chacune
peut appeler n’importe quelle autre en cas de besoin. La structure de base suggérée par cette
organisation est la suivante :
23
Introduction aux systèmes d’exploitation
L’organisation d’un système en une série de couches est une généralisation de la structure
précédente. Le système était composé par une série de couches hiérarchiques.
Machines virtuelles
La plus part du temps, les utilisateurs des ordinateurs sont assis devant leur PC (unité centrale
+ les différents périphériques).Cependant, dans d’autres cas, les utilisateurs sont en face d’un
terminal connecté à un mainframe ou ordinateur connecté à d’autres ordinateurs en réseau.
Dans le premier cas, le système est conçu de telle sorte qu’un seul utilisateur monopolise
toutes les ressources. Ainsi l’objectif de tels systèmes est l’efficacité dans l’accomplissement
des tâches soumises par l’utilisateur. Ces systèmes sont donc conçus de telle sorte qu’elles
soient faciles à utiliser avec pour seule considération les performances du système, sans se
soucier de l’utilisation des ressources.Dans le second cas (utilisation d’un terminal), la même
ressource peut être demandée par plusieurs utilisateurs chacun assis devant son propre
terminal.
Dans de tels cas, la conception de ces SE met un accès particulier sur l’accès aux ressources. Ils
doivent garantir la disponibilité de ressources et un partage équitable entre les requérants.
Dans ce cas, la conception de tels SE doit chercher un compromis entre la gestion des
ressources et l’utilisation individuelle de la machine.
L’ensemble de ces situations et différentes exigences des utilisateurs, nous montre qu’un SE
est un système conçu de telle sorte qu’il garantit une facilité d’utilisation, une disponibilité et
un partage des ressources dans un environnement où les utilisateurs ont besoins et exigences
différents.
Les exonoyaux
C’est un système qui donne à chaque utilisateur un clone de l’ordinateur réel mais seulement
pourvu d’un sous ensemble de ses ressources. L’exonoyau est la couche la plus basse ayant
pour rôle d’allouer des ressources pour les machines virtuelles et de vérifier les tentatives
d’accès à ces dernières.
24
Unité 1. Principes des Systèmes d’Exploitation
Le modèle client-serveur
C’est la tendance actuelle des SE. Elle consiste à implémenter la plus grande partie du SE
sous forme de processus utilisateur. La demande d’un service passe par l’envoie du service
demandeur (le client) d’une requête au service pourvoyeur (serveur) qui rend le service et
renvoie le résultat.
Conclusion
Les différents modèles des SE reposent sur une architecture bien définie. La première
approche était la structure monolithique. Cette approche a été améliorée passant de la
structure en couche, a été considérablement améliorée pour arriver maintenant à la structure
actuelle qui est le système client-serveur.
Évaluation
Types de questions : simple question de compréhension
Rappel :
La structure interne des SE repose sur une architecture bien précise. Il existe
plusieurs architectures permettant de distinguer les principaux systèmes suivants
: systèmes monolithiques, des systèmes en couche, des machines virtuelles, des
exonoyaux et des systèmes client-serveur. Chaque architecture possède des
spécificités particulières qui la distinguent des autres.
Résumé de l’unité
Les principes et objectifs des SE permet de considérer un SE sous trois angles:
25
Introduction aux systèmes d’exploitation
3. Logiciel évolutif
• nouveaux matériels.
• besoin de nouveaux services;
• correction des erreurs latentes.
Système de notation :
Rétroaction
Critères d’évaluation
http://dept-info.labri.fr/ENSEIGNEMENT/archi/cours/archi.pdf
http://www-int.impmc.upmc.fr/impmc/Enseignement/ye/informatique/systemes/chap1/13.html
26
Unité 2. Gestion de processus
• la notion de processus;
• les états d’un processus;
• la gestion des threads;
• les communications inter-processus ; ainsi que
• l’interblocage (deadlock).
Objectifs
A la fin de ce chapitre, l’apprenant devra être à mesure de:
27
Introduction aux systèmes d’exploitation
Mots-clés
Processus : Un processus est un programme en cours d’exécution auquel
est associé un environnement processeur (Compteur Ordinal, Registre
d’Etat, RSP , registres généraux) et un environnement mémoire appelés
contexte du processus
M u l t i p ro g r a m m a t i o n : E n S y s t è m e d ’ E x p l o i t a t i o n ( S E ) , l a
multiprogrammation est la capacité d’un système d’exécuter à la suite
plusieurs activités sans l’intervention de l’utilisateur. C’est une des premières
capacités fournies par les SE dès la fin des années 1950.
Thread : Les threads sont des entités planifiées pour leur exécution par le
processeur. Les threads autorisent les exécutions multiples dans le même
environnement de processus avec une marge d’indépendance les uns par
rapport aux autres.
Introduction
Tous les ordinateurs modernes sont capables de faire plusieurs tâches simultanément
(exécuter un programme utilisateur par exemple et afficher du texte ainsi qu’effectuer des
lectures sur disque, etc.). Dans un système multiprogrammé, le processeur bascule entre
programme pour les servir en raison de petit laps de temps (au tour des dizaines ou centaines
de millisecondes) ce qui fait que le processeur puisse intervenir pour plusieurs programmes
à raison d’une seconde simulant ainsi le parallélisme. Pour le vrai parallélisme on a des
systèmes multiprocesseurs se partageant la même mémoire physique. Le modèle conceptuel
des processus séquentiels permettant de gérer le parallélisme ainsi que certaines de ses
conséquences seront abordés dans cette activité.
28
Unité 2. Gestion de processus
Processus et Programme
Par définition, un processus est une abstraction d’un programme en cours d’exécution. Le
processus est représenté dans le système par un PCB (Process Control Block), possède un état,
peut communiquer des informations avec d’autres processus et peut concourir avec d’autres
processus pour l’obtention d’une ressources.
Le processeur physique commute entre les processus sous la direction d’un ordonnanceur.
Dans le cas de systèmes à temps partagé, tous les processus progressent dans le temps, mais
un seul s’exécute à la fois.Lorsque le processeur passe d’un processus à un autre la vitesse
de traitement de processus n’est pas uniforme, ni même reproductible si le même processus
s’exécutait une autre fois.Mais Quelle est la différence entre un processus et un programme?
L’analogie ci-dessus peut aider à mieux les différencier. Prenons un informaticien en train de
confectionner un gâteau d’anniversaire de sa petite amie. Il dispose de:
29
Introduction aux systèmes d’exploitation
Soupons que notre informaticien se mette à hurler car piqué d’une guêpe.Son cerveau
enregistre le point où il s’est arrêté dans la préparation du gâteau (l’état dans lequel le
processus en cours est enregistré). Il commence à suivre les instructions de premiers
secours. De ce fait, le processeur bascule du processus (confection gâteau) vers un autre
processus de priorité supérieure (administrer antidote). Chaque processus découle d’un
programme différent (recette et brochure sur les premiers soins). Une fois le problème de
piqure résolu, l’informaticien retourne au point où il avait laissé la préparation du gâteau.
En résumé un processus est une activité. Il inclut un programme, une entrée, une sortie et
un état.Un processeur peut être partagé par plusieurs processus à l’aide d’un algorithme
d’ordonnancement intervenant pour déterminer à quel moment arrêter de travailler sur un
processus pour en servir un autre.
Les SE ont besoin de savoir que tous les processus nécessaires existent bel et bien. Le SE doit
permettre l’exécution concurrentielle de processus, et a besoin d’une méthode pour créer, et
arrêter les processus au cours de leur activité.
Initialisation du système
Lors de l’amorçage du SE, plusieurs processus sont créés. Certains sont des processus de
premiers plans (processus qui interagissent avec l’utilisateur et accomplissent des tâches pour
eux), d’autres sont des processus d’arrière-plan, non associés à une utilisation particulière de
l’ordinateur. Ex: les processus d’arrière-plan conçu pour accepter les courriers électroniques
entrant, ceux conçus pour accepter les requêtes entrantes de pages web hébergées sur
l’ordinateur; etc.
Un processus en exécution peut émettre des appels systèmes pour créer un ou plusieurs
nouveaux processus. Cela est particulièrement utile lorsque la tâche à accomplir peut être
divisée en plusieurs processus qui interagissent entre eux tout en étant indépendants.
Un nouveau processus peut également être créé à la demande d’un utilisateur. Cela passe par
la saisie d’une commande ou dans le mode graphique le clic sur une icône. Ces deux cas de
figures lancent un nouveau processus qui exécute le programme concerné.
Ce cas de figure concerne les gros mainframes. Les utilisateurs peuvent soumettre des
tâches de traitement par lots au système. Lorsque le SE constate qu’il dispose des ressources
nécessaires à l’exécution d’un job supplémentaire, il crée un nouveau processus et exécute le
job suivant de la file d’attente.
30
Unité 2. Gestion de processus
Une fois qu’un processus a été créé, il commence à s’exécuter quelle que soit sa tâche et il
finira à s’arrêter pour diverses raisons:
Types de processus
Les processus interactifs
Les processus interactifs sont démarrés par l’utilisateur connecté au système. Ils sont initialisés
et contrôlés via une session terminale. Ces processus peuvent s’exécuter en avant plan du
terminal qui a lancé le programme. Dans ce cas aucune autre application ne peut être lancée
aussi longtemps que le processus est en train de s’exécuter en avant plan.
Les processus automatiques ou processus par lot sont des processus non connectés au
terminal. Ce sont plutôt de tâches mises dans une file d’attente pour être exécutées. Cette file
d’attente est gérée selon le mode du premier entré- premier sorti (First in, First out : FIFO). De
telles tâches sont exécutées selon les critères suivants:
31
Introduction aux systèmes d’exploitation
Les daemons
Les daemons sont des processus serveurs exécutés continuellement. La plus part de temps,
ils sont initialisés au démarrage du système et attendent en arrière-plan jusqu’à ce qu’une
demande de leur service soit faite. Un exemple est le daemon, xinetd, démarré dans presque
toutes les procédures de démarrage. Après le démarrage du système, ce daemon réseau
attend qu’un programme client, le client ftp par exemple, ait besoin de se connecter.
Rappelons qu’un processus est une instance d’un programme en exécution mais pointant
le fait qu’un programme n’est pas à lui-même un processus, c’est une entité passive. Un
processus est une entité active (dynamique) dont on peut étudier l’état au cours du temps. Un
processus peut-être dans trois états différents : élu, prêt, bloqué.
• Un processus est dit élu s’il est en cours d’exécution sur le processeur. Dans le
cas d’une machine multiprocesseurs plusieurs processus peuvent être élus en
même temps. Notons cependant que le nombre de processus élu doit être égal
au nombre de processeurs. Lorsque le quantum de temps attribué au processus
élu est épuisé, l’ordonnanceur est appelé de façon asynchrone par interruption et
élit un autre processus parmi les processus prêt. Le processus qui était en cours
d’exécution passe de l’état élu à l’état prêt.
• Un processus est dit prêt s’il est suspendu en faveur d’un autre. Pour un
processus prêt, il ne lui manque que la source processeur pour s’exécuter.
• Lorsqu’un processus en exécution attend un événement externe (décompte
d’horloge, attente des données, etc.), il s’en dort et passe dans l’état bloqué.
L’ordonnanceur appelé de façon explicite par ledit processus, élit un autre
processus parmi les processus prêt. Lorsque l’événement externe attendu
se produit le système d’exploitation se charge de son traitement, puisque
le processus se trouve dans un état bloqué. Pour ce faire, le SE interrompt
temporairement le processus en exécution pour traiter les données reçues et faire
passer le processus bloqué à l’état prêt.
32
Unité 2. Gestion de processus
Le modèle de thread
Rappelons que le modèle de processus est fondé sur deux concepts: le regroupement de
ressources et l’exécution. Il est parfois nécessaire de les séparer et c’est là qu’intervient les
threads.
Un processus est un espace d’adressage contenant un programme et des données mais aussi
d’autres ressources (fichiers ouverts, les processus enfants, les alertes en attente, les handlers
de signal, les informations de décompte, etc.). En rassemblant ces ressources sous forme de
processus, on facilite leur gestion.
Sous un autre angle, les processus peuvent être vus en considérant leur thread d’exécution
(chemin d’exécution) que l’on se contente d’appeler thread.
Le thread inclut:
Bien qu’un thread s’exécute dans un processus, ce sont deux concepts distincts qui peuvent
être traités séparément. Les processus servent à regrouper les ressources et les threads sont
les entités planifiées pour leur exécution par le processeur.
Les threads autorisent les exécutions multiples dans le même environnement de processus
avec une marge d’indépendance les uns par rapport aux autres. Cela est comparable au fait
que plusieurs processus s’exécutent en parallèle sur un ordinateur.
Dans le premier cas, les threads partagent un espace d’adressage, les fichiers ouverts et les
autres ressources.
Dans le second cas, les processus partagent la même mémoire physique, les disques, les
imprimantes et les autres ressources.
Etant donné que les threads ont certaines propriétés des processus, on les qualifie de
processus léger. Le terme multithreading est également employé pour désigner la situation
dans laquelle plusieurs threads sont présents dans un processus.
33
Introduction aux systèmes d’exploitation
Bien que dans les deux cas on est en présence de trois threads, les deux situations sont
différentes. Dans le premier cas, chaque thread fonctionne dans un espace d’adressage
différent, tandis que dans le second cas les trois threads se partagent le même espace
d’adressage (multithreading).Dans ce dernier cas, le processeur bascule rapidement entre les
threads donnant une illusion d’une exécution en parallèle de threads chacun sur son propre
processus. Etant donné que ces threads partage le même espace d’adressage, ils partagent
également les mêmes variables globales (en lecture/écriture) et aucune protection n’existe
entre les threads d’un même processus. Les threads exploitent également le même jeu de
fichiers ouverts, de processus enfant; d’alertes et de signaux, etc.
34
Unité 2. Gestion de processus
L’utilisation de thread
Avec les threads, un élément nouveau apparaît: “la capacité pour les entités parallèles à
partager un espace d’adressage et toutes ses données”.
De plus, étant donné qu’aucune ressource n’est associée aux threads, ils deviennent plus
faciles à créer et à détruire que les processus. Les threads peuvent également améliorer le
fonctionnement d’une application.
Notons enfin que les threads sont utiles sur les systèmes multiprocesseurs, sur lesquels un
véritable parallélisme est possible.
Lorsque les threads sont gérés dans l’espace utilisateur, chaque processus a besoin de sa
propre table de threads privé pour le suivi des threads du processus. Les propriétés des
threads concernés par cette table sont: le compteur ordinal, le pointeur de pile, les registres,
l’état, etc. La table des threads est gérée par le système d’exécution (run time system).
Lorsqu’un thread passe à l’un des états prêt ou bloqué, les informations nécessaires à son
redémarrage sont stockées dans la table de threads de la même manière que le noyau stocke
les informations relatives aux processus dans la table des processus.
35
Introduction aux systèmes d’exploitation
Lorsqu’un thread accompli une action susceptible de le bloquer localement, par exemple il
attend qu’un autre thread de son processus termine une tâche quelconque, il invoque une
procédure du système d’exécution. C’est cette dernière qui détermine si le thread doit être
placé en état bloqué. Dans ce cas, elle stocke les registres du thread dans la table des threads,
sonde la table à la recherche d’un thread prêt à s’exécuter et recharge le registre machine
avec les valeurs enregistrée du nouveau thread. Dès que le pointeur de la pile et le compteur
ordinal ont basculés, le nouveau thread recommence à s’exécuter automatiquement. Si la
machine possède une instruction pour stocker tous les registres et une autre pour les charger,
le basculement complet du thread peut s’accomplir en quelques instructions seulement. Ce
type de basculement est plus rapide que la rétention dans le noyau.
L’ordonnancement des threads est plus rapide par rapport à l’ordonnancement des processus :
Dans ce mode, le noyau a connaissance des threads et en assure la gestion. Ainsi, il n’est pas
nécessaire de disposer d’un système d’exécution pour chaque thread comme précédemment.
En outre, il n’y a pas de table de thread dans chaque processus. Cette table se retrouve dans
le noyau et est chargé du suivi de tous les threads du système. Un thread qui veut créer un
nouveau thread ou détruire un thread existant effectue un appel noyau qui prend en charge
la création ou la destruction en actualisant la table des threads du noyau. Cette table dispose
pour chaque thread de registre, de l’état et d’autres informations. Notons que ces informations
sont les mêmes que pour les threads utilisateurs la seule différence est qu’ils sont localisés
dans le noyau.A côté de cela, le noyau maintien également une table des processus traditions
pour assurer leur suivi.
Lorsqu’un thread se bloque, le noyau peut exécuter un autre prêt du même processus ou
d’un autre processus. Avec les threads utilisateurs, le système d’exécution continue d’exécuter
des threads de son propre processus jusqu’à ce que le noyau cesse de lui allouer du temps
processeur ou qu’il n’y ait plus de thread prêt. La création et la destruction des threads étant
lourd, certains systèmes recyclent leurs threads. Lorsqu’un thread est détruit, il est marqué
comme étant non exécutables mais ses structures de données noyaux n’en sont pas autrement
affectées. Lorsqu’un nouveau thread doit être crée, un ancien thread est réactivé, ce qui réduit
la surcharge. Le recyclage des threads est également envisageable pour les threads utilisateurs.
Si un thread d’un processus donné provoque un défaut de page, le noyau peut aisément
déterminer si le processus possède d’autres threads exécutables. Si tel est le cas, il peur en
exécuter un en attendant la récupération sur le disque de la page sollicitée. Le principal
inconvénient des threads noyaux est qu’un appel système est une démarche lourde. Ainsi,
si les opérations sur les threads (création, arrêt; etc.) sont nombreuses, la surcharge sera
importante.
36
Unité 2. Gestion de processus
Plusieurs méthodes ont été testées pour tenter de combiner les avantages des threads
utilisateurs et noyau. L’une d’elle consiste à employer les threads noyaux puis à multiplexer les
threads utilisateurs sur un ou plusieurs threads noyaux.
Dans cette conception, le noyau ne connait que les threads noyaux et l’ordonnance. Certains
de ces threads peuvent disposer de threads utilisateurs multiplexés. Ceux-ci sont créés, détruit
et ordonnancés exactement comme les threads utilisateurs d’un processus qui s’exécute sur un
système d’exploitation dépourvu de fonctionnalités multithreading. Dans ce modèle, chaque
thread noyau possède un jeu donné de thread utilisateurs qu’il utilise tour à tour.
Une autre approche nommée activation de l’ordonnancement poursuit les objectifs qui
consistent à imiter la fonctionnalité des threads noyaux mais avec les performances
supérieures et la grande souplesse qu’offre les paquetages mis en œuvres dans l’espace
utilisateur.
Conclusion
Pour pallier les effets d’interruption, les systèmes d’exploitation offrent un modèle conceptuel
de processus séquentiels s’exécutant en parallèle. Les peuvent être créés et arrêter
dynamiquement. Chaque processus possède son propre espace d’adressage. Dans certaines
applications, il est intéressant de disposer de plusieurs threads de contrôle au sein d’un même
processus. Les threads d’un processus sont ordonnancés indépendamment les uns des autres
et chacun possède sa propre pile mais partagent tous un espace d’adressage commun.
Cette activité d’apprentissage a montré de long en large, les processus et les threads ainsi que
les différentes implémentations des threads.
37
Introduction aux systèmes d’exploitation
Évaluation de l’unité
1. Quelle est la différence entre un processus et un programme ?
Rappel :
Introduction
Il arrive que les processus aient besoin de communiquer entre eux par exemple dans pipeline
du shell, lorsque la sortie d’un processus doit être passée à un autre processus, etc. Il est donc
préférable que cette communication se fasse de manière structurée. Au cours de cette activité
nous allons aborder quelques-uns des problèmes liés à la communication interprocessus.
Les processus d’un système ne s’exécutent pas tous de manière isolée. Certains se trouvent
en compétition pour une ressource donnée, d’autres ont besoin de coopérer et nécessitent
par conséquent des moyens de communication et de synchronisation. Ainsi, les principaux
problèmes liés à la communication interprocessus sont les suivants:
38
Unité 2. Gestion de processus
suivant=in;
MettreNomDeFichier (suivant);
in=suivant+1;
Admettons qu’à un instant t, in=7 et out =4 et que deux processus A et B désirent lancer
l’impression.
39
Introduction aux systèmes d’exploitation
Dans ce cas, chaque processus doit exécuter la séquence d’actions d’ajout d’une tâche
d’impression (voir le pseudo-code ci-dessus indiqué). Supposons que le processus A s’exécute
et est interrompu par l’ordonnanceur avant de mettre à jour la variable globale in (c’est à dire
interrompu quelque part entre la 1ère et la 3ème instruction). L’ordonnanceur jugeant que
le processus A a eu suffisamment de temps bascule vers le processus B. Pour ce cas les deux
processus vont utiliser le même numéro, de l’entrée libre, pour placer la tâche d’impression et
l’une des tâches sera sans doute supprimée. Cependant au regard du contenu des variables in
et out, le répertoire va rester cohérent et aucune anomalie ne sera détectée par le CPU.
De tels cas de figure sont appelés de situations de concurrences (race conditions en anglais).
Face à une telle situation, il est donc indispensable que le système fournisse un moyen sûr
de communication interprocessus permettant la synchronisation et l’échange de données.
Sections critiques
Pour résoudre le cas des problèmes d’accès concurrents (voir exemple ci-dessus), il faut éviter
que plus d’un processus accèdent (en lecture/écriture) à une donnée partagée en même
temps. Cela consiste à mettre en place un processus d’exclusion mutuelle à la ressource
partagée aussi appelée section critique.
Le moyen le plus simple d’éviter les accès concurrents est de masquer les interruptions avant
d’entrer dans la section critique et de les restaurer à la sortie de celle-ci. Cela permettra
d’éviter la suspension du processus en section critique au profit d’un autre processus, puisque
l’inhibition des interruptions empêche l’ordonnanceur de s’exécuter. Les principaux problèmes
en rapport avec le masquage d’interruption sont les suivants:
40
Unité 2. Gestion de processus
Malgré ces inconvénients, cette technique est souvent utilisée par le système d’exploitation
pour manipuler de façon sur ses structures internes.Notons que cette technique reste
inefficace pour les structures à multiprocesseurs, puisque les processus s’exécutant peuvent
toujours entrer en section critique.
Variables de verrouillage
Rappelons que pour le masquage des interruptions, si un processus entre en section critique,
le reste des processus sont bloqué et cela même si la section critique ne concerne qu’un
seul processus. Il serait mieux alors de définir autant de sections critiques indépendantes
que nécessaire.Pour ce faire, on déclare une variable par section critique pour jouer le rôle
de verrou. La variable sera mise à 1 par le processus entrant en section critique et remise à 0
par le même processus à la sortie de la section critique.Tout processus qui veut entrer dans
la section critique va tester le contenu de la variable verrou et n’entrer que s’il est égal à 0
(section critique libre). Le processus continuera à tester le contenu de cette variable aussi
longtemps qu’il est égal à 1. Cela est résumé dans le tableau ci-dessous.
Les sémaphores
41
Introduction aux systèmes d’exploitation
• S’il n’y a pas de processus dans la file d’attente, V(SM) incrémente la valeur de
SM;
• Sinon un processus en attente est débloqué.
P(SM) correspond donc à une prise de ressource et V(SM) à une libération de ressource. Dans
la littérature, on trouve parfois d’autres terminologies, respectivement, wait(SM) et signal(SM)
ou get(SM) et release(SM).
Les mutex
Les mutex sont une version simplifiée des sémaphores. Un mutex est une variable qui peut
prendre deux états : déverrouillé ou verrouillé. Par conséquent un seul bit est nécessaire
pour le représenter même si dans la pratique en utilise un entier prenant la valeur 0 quand
c’est déverrouillé et une autre valeur sinon. Deux procédures (mutex_lock et mutex_unlock)
interviennent sur les mutex. Lorsqu’un processus (thread) a besoin d’accéder à une ressource,
il invoque la procédure mutex_lock. Si le mutex est déverrouillé alors l’appel réussit et le
processus (thread) est libre d’entrer dans la section critique.
Par contre, si le mutex est verrouillé, alors le thread appelant est bloqué, jusqu’à ce que le
processus en section critique appelle la procédure mutex_unlock. Si plusieurs threads sont
bloqués sur un mutex l’un d’eux est choisi aléatoirement pour prendre possession du verrou.
Conclusion
Évaluation de l’activité :
1. Que faut-il comprendre par la communication interprocessus ?
Rappel :
Tout au long de leur durée de vie les processus communiquent entre eux. Les
SE s’assure que cette communication se fasse de manière structurée. Des fois
les processus se trouvent en concurrence au tour d’une même ressource. Des
mécanismes ont été proposés pour résoudre ce genre de problème.
42
Unité 2. Gestion de processus
Introduction
On peut dire que pour qu’il ait l’ordonnancement, il faut avoir un système multiprogrammé
c’est-à-dire plusieurs processus sont exécutés simultanément mais un seul processus à la fois a
accès au CPU.
Ordonnancement préemptif :
Si le processus est toujours en cours d’exécution après ces délais, il est suspendu et un autre
processus est choisi. L’ordonnancement préemptif nécessite une interruption à la fin du délai
afin de donner le contrôle du processeur à l’ordonnanceur.
Ordonnancement non-préemptif :
Ici, on la sélection d’un processus qui s’exécute jusqu’à ce qu’il se bloque ou qu’il libère
volontairement le processeur. En effet aucune décision d’ordonnancement n’intervient pendant
les interruptions d’horloge. Une fois le traitement de l’interruption terminé, le processus qui
était en cours d’exécution avant l’interruption est toujours relancé.
Il existe un certain nombre d’algorithmes d’ordonnancement très utilisés dans la gestion des
processus. Comme par exemple FIFO (FCFS : First Come First Serve), Shortest Job First (SJF),
Round Robin (Tour niquet), File de priorité, etc.
Les deux principaux facteurs qui permettent d’évaluer un algorithme d’ordonnancement sont
en générale : Le temps moyen d’attente (moyenne de tous les temps d’attente) et le temps
moyen d’exécution (moyenne de tous les temps d’exécution).
Il est sans doute le plus simple des algorithmes d’ordonnancement. Pour ce cas, les processus
se voient attribuer le temps processeur selon leur ordre d’arrivée. Il existe une seule file
d’attente des processus prêts. Le premier processus arrivé dans la file d’attente est exécuté
aussi longtemps qu’il le souhaite. Au fur et à mesure que les autres jobs arrivent, ils prennent
place dans la file d’attente. Lorsque le processus en cours d’exécution se bloque, le processus
suivant s’exécute. Quand il redevient prêt, il est placé à la queue de la file d’attente comme si
c’était un nouveau processus qui arrive.
43
Introduction aux systèmes d’exploitation
Il en résulte que chaque processus d’E/S arrive à lire un bloc par seconde et prend 1 000
secondes pour se terminer. Avec un algorithme d’ordonnancement qui préempterait le
processus de traitement toutes les 10 millisecondes, les processus d’E/S se termineraient en 10
secondes au lieu de 1 000, et ce sans ralentir le processus de traitement de façon palpable.
Les schémas ci-dessous montrent les exemples de l’exécution des processus selon l’algorithme
FIFO.
1 3 0
2 2 2
3 4 1
4 3 3
44
Unité 2. Gestion de processus
1 0 3
2 5 7
3 2 6
4 6 9
Exemple 2 : FIFO
Processus 1 0 5 1 3
Processus 2 2 4
Processus 3 3 2
Processus 4 5 4
45
Introduction aux systèmes d’exploitation
Ici, les processus les plus courants sont exécutés en premier. Pas de notion de priorité, c’est
un algorithme non-préemptif qui suppose que les délais d’exécution sont connus d’avance. Le
principe consiste à choisir le processus dans le prochain cycle d’horloge et le plus petit.
Processus 1 0 5
Processus 2 0 4
Processus 3 4 2
Processus 4 3 4
Ici, les processus dont le reste de temps d’exécution le plus court sont exécutés en premier.
Pas de file d’attente. C’est un algorithme préemptif qui nécessite de connaître la durée des
processus.Lorsqu’un nouveau job arrive, son temps total est comparé au temps restant pour
le processus en cours. Si le nouveau job a un temps d’exécution plus court que celui en cours
d’exécution, ce dernier est suspendu au profit du nouveau processus. Cela favorise les services
des jobs courts.
46
Unité 2. Gestion de processus
Le principe du Round Robin est que le CPU obtenu pour une durée limitée (un quantum
de temps prédéfinis). Un intervalle de temps d’exécution est accordé à chaque processus
(quantum). A la fin du quantum de temps, si le processus est en cours d’exécution le
processeur est préempté au profit d’un autre processus. Si le processus a bloqué ou terminé
avant la fin du quantum, le basculement du processeur se fait naturellement.
Le principe consiste à associer au processus une priorité et choisir le processus donc, la priorité
est la plus élevée.
Sans préemption
P1 0 5 7
P2 0 4 4
P3 3 3 2
P4 3 4 5
Avec préemption
P1 0 5 7
P2 0 3 5
P3 3 3 8
P4 3 4 5
47
Introduction aux systèmes d’exploitation
P1 0 5
P2 10 14
P3 11 14
P4 2 7
Moyenne 5,75 10
48
Unité 2. Gestion de processus
P1 0 8
P2 8 11
P3 0 3
P4 8 12
Moyenne 4 8
Conclusion
Le partage du CPU entre les différents processus est une tâche qui doit être bien accomplie
pour éviter que certains processus monopolisent cette ressource partagée. Pour cela,
nous avons au cours de cette activité d’apprentissage vu les deux principales catégories
d’ordonnancement : l’ordonnancement préemptif et l’ordonnancement non-préemptif. Des
algorithmes d’ordonnancement ont été vus tant pour les systèmes de traitement par lots
(exemple : algorithme du job le plus court en premier), que pour les systèmes interactifs
(Round Robin, l’ordonnancement par priorité, ..).
Évaluation de l’activité :
Question 1 :
Citez deux problèmes qui peuvent survenir si la file contient des éléments
identiques (deux ou plusieurs pointeurs égaux).
49
Introduction aux systèmes d’exploitation
• Le CPU1 a la priorité d’accès à la file des processus prêts par rapport au CPU2.
• A la fin d’un quantum, le processus non terminé en cours est suspendu
uniquement si la file des processus prêts n’est pas vide. Le traitement réalisé à la
fin d’un quantum est plus prioritaire que celui d’une fin d’E/S qui, à son tour, est
plus prioritaire que l’arrivée de nouveaux processus dans le système.
Question 2 :
int main ( )
50
Unité 2. Gestion de processus
a)Que se passe-t-il pour les processus qui sont à l’état prêt, si l’Ordonnanceur
d’exécution est non préemptif?
b)Que se passe-t-il pour les processus qui sont à l’état prêt, si l’Ordonnanceur
d’exécution est préemptif?
Supposez que le processeur est libre. Donnez les diagrammes de Gantt montrant
l’allocation du processeur, pour chacun des cas suivants :
La file d’attente des threads prêts, à l’instant t, est : →T23 T12 T22 T21 T11 →
Supposez que le processeur est libre et que les processus sont passés à l’état
prêt dans l’ordre suivant :
P1 puis P2
51
Introduction aux systèmes d’exploitation
Introduction
Notons que les interblocages ne concernent que les requêtes des périphériques d’E/S. Dans
un système de gestion de base de données par exemple, un programme peut verrouiller
plusieurs enregistrement qu’il utilise afin d’éviter qu’ils entrent en concurrence. Si un
processus P1 verrouille l’enregistrement E1 et qu’un processus P2 verrouille l’enregistrement
E2 et que l’un ou les deux tente(nt) de verrouiller un enregistrement déjà verrouillé par un
autre, on est dans une situation d’interblocage. Les interblocages peuvent donc se produire
tant sur les ressources matérielles que sur les ressources logicielles
Au cours de cette activité, nous allons examiner les situations d’interblocage, comment elles se
présentent et comment les éviter. Même si nous sommes dans un contexte de SE, notons que
les interblocages peuvent se produire dans des systèmes de base de données et dans d’autres
contexte de traitement de données. Ce qui fait que le contenu développé s’applique à un
large éventail de système multiprocesseurs.
Les ressources
Par ressource, nous faisons référence à tout objet pouvant être alloué à un processus. Il peut
s’agir d’un périphérique physique, d’une information (enregistrement verrouillé dans une base
de données) bref tout ce qui peut être utilisé par un processus.
52
Unité 2. Gestion de processus
Pour étudier le problème des interblocages, nous allons considérer uniquement les ressources
non préemptibles.
Des problèmes peuvent survenir, lorsque les processus obtiennent des accès exclusifs aux
ressources. Par exemple, un processus P1 détient une ressource R1 et attend une autre
ressource R2 qui est utilisée par un autre processus P2 et que le processus P2 attend à son
tour le processus R1 qui est détenu par P1. Cette situation est un interblocage ou deadlock (en
anglais).
Pour qu’une situation d’interblocage ait lieu, les quatre conditions suivantes doivent être
remplies (Conditions de Coffman) :
53
Introduction aux systèmes d’exploitation
Les quatre conditions précédentes peuvent être modélisées à l’aide d’un graphe orienté
(graphe d’allocation de ressources). Ce graphe est composé de deux types de nœuds et d’un
ensemble d’arcs :
Ce graphe indique pour chaque processus les ressources qu’il détient ainsi que celles qu’il
demande.
Exemple :
Soient trois processus A, B et C qui utilisent trois ressources R, S et T comme illustré ci-dessous:
A B C
Si ces trois processus sont exécutés de façon séquentielle : A suivi de B suivi C, il n’y pas
d’interblocage. Par contre, supposons que l’exécution des processus est gérée par un
ordonnanceur du type circulaire. Si les instructions sont exécutées dans l’ordre ci-dessous :
1. A demande R
2. B demande S
3. C demande T
4. A demande S
5. B demande T
6. C demande R
54
Unité 2. Gestion de processus
Un graphe réduit peut être utilisé pour déterminer s’il existe ou non un interblocage. Pour la
réduction d’un graphe d’allocation des ressources, les flèches associées à chaque processus et
à chaque ressource doivent être vérifiées.
• Si une ressource possède seulement des flèches qui sortent (il n’y a pas des
requêtes), on les efface.
• Si un processus possède seulement des flèches qui pointent vers lui, on les efface.
• Si une ressource a des flèches qui sortent, mais pour chaque flèche de requête il
y a une ressource disponible dans le bloc de ressources où la flèche pointe, il faut
les effacer.
Exemple :
Soient 4 processus P1, P2, P3, P4 utilisant les ressources R1, R2, et R3. Le tableau ci-dessous
montre l’allocation courante et le nombre maximaux d’unités de ressources nécessaires pour
l’exécution des processus. Le nombre de ressources disponibles est A=[0,0,0].
Processus R1 R2 R3 R1 R2 R3
P1 3 0 0 0 0 0
P2 1 1 0 1 0 0
P3 0 2 0 1 0 1
P4 1 0 1 0 2 0
55
Introduction aux systèmes d’exploitation
P1 possède seulement des flèches qui pointent vers lui, alors on les efface.Les requêtes de R1
effectuées par P2 peuvent donc être allouées, et P2 aura seulement des flèches qui pointent
vers lui. Alors on les efface aussi. On efface la flèche de R1 vers P3 (qui a changé de direction)
car R1 n’a que des flèches sortantes. Ce qui nous donne le graphe final ci-dessous :
De ce qui précède, nous constatons que les situations d’interblocage peuvent se produire
dans un système. Face à cette situation, que faut-il faire ?
Une autre solution consiste à détecter et reprendre les interblocages. C’est-à-dire qu’on les
laisse se produire et on essaie d’y remédier à postériori.Pour détecter les interblocages, il
construit dynamiquement le graphe d’allocation des ressources du système qui indique les
attributions et les demandes de ressources. Dans le cas des ressources à exemplaire unique,
il existe un interblocage si le graphe contient au moins un cycle. Dans le cas des ressources à
exemplaires multiples, il existe un interblocage si le graphe contient au moins un cycle terminal
(aucun arc ne permet de le quitter).
Soient n le nombre de processus P[1], P[2],… , P[n] et m le nombre de type de ressources E[1],
E[2],…, E[m] qui existent dans un système.
56
Unité 2. Gestion de processus
• Vecteur A d’ordre m. L’élément A[j] est le nombre de ressources de type E[j] &
_disponibles (non attribuées).
• Vecteur E d’ordre E d’ordre m. L’élément E[j] est le nombre total de ressources de
type j existantes dans le système.
1. Rechercher un processus P[i] non marqué dont la rangée R[i] est inférieure
à A.
Exemple :
Considérons un système où nous avons trois processus en cours et qui dispose de 4 types
de ressources : 4 dérouleurs de bandes, 2 scanners, 3 imprimantes et un lecteur de CD ROM.
Les ressources détenues et demandées par les processus sont indiquées par les matrices C et
R.E=[4,2,3,1] ; A= [2,1,0,0]
Seul le processus P3 peut obtenir les ressources dont il a besoin. Il s’exécute jusqu’à la fin puis
libère ses ressources, ce qui donne : A=[2,2,2,0].
Ensuite P2 peut obtenir les ressources dont il a besoin. Il s’exécute jusqu’à la fin et libère ses
ressources, ce qui donne : A=[4,2,2,1] . Enfin, P1 peut obtenir les ressources dont il a besoin. Il
n’y a donc pas d’interblocage.
Dans ce cas, lorsqu’un processus demande une ressource, le système doit déterminer si
l’attribution de la ressource est sûre. Si c’est le cas, il lui attribue la ressource. Sinon, la
ressource n’est pas accordée. Un état est sûr si tous les processus peuvent terminer leur
exécution (il existe une séquence d’allocations de ressources qui permet à tous les processus
de se terminer).Un état est non sûr si on ne peut garantir que les processus pourraient terminer
leurs exécutions.
Mais comment déterminer si un état est sûr ou non sûr ? Dijkstra a proposé en 1965 un
algorithme d’ordonnancement, appelé l’Algorithme du banquier qui permet de répondre à
57
Introduction aux systèmes d’exploitation
cette question. Cet algorithme, utilise les mêmes informations que celles de l’algorithme de
détection précédent : matrices A, E, C et R. Un état est caractérisé par ces quatre tableaux.
Cet algorithme consiste à examiner chaque nouvelle requête pour voir si elle conduit à un état
sûr. Si c’est le cas, la ressource est allouée, sinon la requête est mise en attente. L’algorithme
détermine donc si un état est ou non sûr :
2. Si un tel processus n’existe pas alors l’état est non sûr (il y a interblocage).
L’algorithme se termine.
3. Si tous les processus sont marqués alors l’état est sûr et l’algorithme se
termine sinon aller à l’étape 1.
L’algorithme du banquier permet bien d’éviter les interblocages mais il est peu utilisé en
pratique car on ne connaît pas toujours à l’avance les besoins en ressources des processus.
58
Unité 2. Gestion de processus
Pour prévenir les interblocages, on doit éliminer une des quatre conditions nécessaires à leur
apparition.
• Pour éviter l’exclusion mutuelle, il est parfois possible de sérialiser les requêtes
portant sur une ressource. Par exemple, pour les imprimantes, les processus «
spoolent » leurs travaux dans un répertoire spécialisé et un démon d’impression
les traitera, en série, l’un après l’autre.
• Pour ce qui concerne la deuxième condition (la détention et l’attente), elle
pourrait être évitée si les processus demandaient leurs ressources à l’avance. Ceci
est en fait très difficile à réaliser dans la pratique car l’allocation est, en général,
dynamique. Empêcher cette condition serait donc particulièrement coûteux.
• La troisième condition (pas de préemption) n’est pas raisonnablement traitable
pour la plupart des ressources sans dégrader profondément le fonctionnement
du système. On peut cependant l’envisager pour certaines ressources dont le
contexte peut être sauvegardé et restauré.
• Le problème de l’attente circulaire, dernière condition, peut être résolu en
numérotant les ressources et en n’autorisant leur demande, par un processus,
que lorsqu’elles correspondent à des numéros croissants ou en accordant aux
processus une seule ressource à la fois (s’il a besoin d’une autre ressource, il doit
libérer la première). Par exemple :
F(CD-ROM)=1
F(imprimante)=2
F(plotter)=3
F(rubban)=4
Ainsi on garantit qu’il n’aura pas de cycles dans le graphe des ressources. On peut exiger
seulement qu’aucun processus ne demande une ressource dont le numéro est inférieur aux
ressources déjà allouées. Mais ceci n’est pas non plus la panacée, car, en général, le nombre
potentiel de ressources est si important qu’il est très difficile de trouver la bonne fonction F
pour les numéroter.
Source :
http://www.groupes.polymtl.ca/inf2610/documentation/notes/chap7.pdf
D’autres détails se trouvent dans : Andrew Tanenbaum, Systèmes d’exploitation (2ème édition)
page 169-195
59
Introduction aux systèmes d’exploitation
Conclusion
L’interblocage est un problème lorsque des processus ont obtenu des accès exclusif à
certaines ressources et lorsque chacun de ces processus sollicite une ressource détenu par
un autre processus du groupe. Nous avons vu qu’il est possible d’éviter les interblocages
en réalisant un suivi des états (un état sûr présente une séquence d’évènements qui offre
la garantie que tous les processus peuvent se terminer et un état non sûr n’offre pas cette
garantie. On a vu également que l’on peut éviter l’interblocage en concevant un système qui
les empêche de se produire.
Évaluation de l’activité :
Question 1 :
Question 2 :
Des étudiants qui travaillent sur des PC dans un laboratoire d’informatique envoient
leurs fichiers à imprimer par un serveur qui les spoulent sur son disque dur. Sous quelle
condition un interblocage peut-il se produire si l’espace de spoule de l’imprimante est
limité ? Comment éviter l’interblocage ?
Question 3 :
60
Unité 2. Gestion de processus
Résumé de l’unité
Pour pallier aux effets d’interruption les SE offrent un modèle conceptuel de processus
s’exécutant en parallèle. Chaque processus possède son propre espace d’adressage. Dans
certains cas, il existe plusieurs threads de contrôle pour un même processus. Ces threads sont
ordonnancés indépendamment les uns et les autres et chacun possède sa propre pile. La
communication interprocessus passe par certaines primitives comme les sémaphores, les
moniteurs ou les messages. Grâce à ces primitives un ensemble de problèmes de
synchronisation mais il faut rester attentif aux erreurs et aux interblocages.
Évaluation de l’activité :
Question 1 :
Question 2 :
2. Si vous répondez oui à la question précédente, proposez une solution qui permet de
les éviter. Attention : ne pas libérer l’enregistrement d’un compte avant que le transfert
ne soit terminé.
Rétroaction
Critères d’évaluation
61
Introduction aux systèmes d’exploitation
Quotation
• L’évaluation des activités compte pour 60% tandis que celle de l’unité
d’apprentissage compte pour 40%.
• L’unité d’apprentissage compte pour 30% du module
Habermann, A.N. Prevention of System Deadlocks. CACM, Vol. 12, No. 7, July 1969, pp.
373-385.
http://www.groupes.polymtl.ca/inf3600/TransparentsAut2006/Ch1INF3600.pdf
62
Unité 3. Gestion de la mémoire
Introduction
La mémoire est une ressource importante qui doit être gérée avec attention. Le Système
d’Exploitation doit cohabiter dans la mémoire principale avec un ou plusieurs processus. La
gestion de la mémoire prend en charge l’allocation de la mémoire aux processus. Elle doit
également protéger la mémoire allouée au Système d’Exploitation contre des accès non
autorisé. Ainsi, un bon gestionnaire de mémoire doit être capable de:
Objectifs
A la fin de cette unité, l’apprenant devra être à mesure de différencier les différents types de
mémoires, et d’expliquer les différentes techniques de gestion de la mémoire.
Mots-clés
Mémoire virtuelle : C’est la mémoire que l’on crée sur le disque dur. Cette
notion repose sur la traduction des adresses virtuelles en adresse physique
de mémoires vives
63
Introduction aux systèmes d’exploitation
Introduction
La gestion de la mémoire sans va-et-vient est le plus simple. Pour ce cas, on ne considère
que la mémoire physique effectivement disponible, que l’on accède directement au
moyen d’adresses physiques. Dans cette activité nous allons passer en revue les différents
modes de fonctionnement à savoir : la monoprogrammation, la multiprogrammation et la
multiprogrammation avec partitions fixes.
La Monoprogrammation
Dans ce cas un seul processus à un instant donné, peut occuper l’ensemble de la mémoire
physique disponible. En pratique une partie de l’espace mémoire est dédiée au système
d’exploitation qui se compose de fonction de démarrage et de gestion de bas niveau de la
machine, situées en ROM et le SE proprement dit sujet à modification et chargé en RAM à
partir du disque lors du démarrage.
64
Unité 3. Gestion de la mémoire
La résolution des adresses et l’appel aux routines locales sont effectué statiquement par
l’éditeur de liens. Il revient à l’utilisateur de définir la structure d’overlays en fonction du
comportement attendu de son programme.
65
Introduction aux systèmes d’exploitation
La Multiprogrammation
La multiprogrammation est utilisée dans les systèmes dédiés au calcul intensif. Elle facilite le
développement des programmes en les fractionnant en processus indépendants. Elle permet
de maximiser l’utilisation de la ressource processeur: si le programme possède une partie
interactive, il est aberrant de monopoliser la machine en instance.Ceci reste vrai dans le cas de
processus non interactifs réalisant beaucoup d’entrées-sorties. Ci-dessous, nous présentons un
exemple de la modélisation de la multiprogrammation.
A titre d’exemple, pour un taux d’attente de 80%, il faut plus de 10 processus simultanément
en mémoire pour tenter d’obtenir 90% d’utilisation du processeur.
Cette formule peut être utilisée pour déterminer la quantité de mémoire, pour atteindre un
taux d’efficacité donné, en fonction du type des processus.
Avec 1Mo de Mémoire et 200Ko SE, on peut loger quatre processus de 200Ko passant 80% de
leur temps en attente active avec un taux d’utilisation de 60%. À l’ajout d’un Mo on peut loger
neuf processus et avoir un taux d’utilisation de 87%.
Le modèle probabiliste n’est qu’une approximation car les processus en réalité ne sont pas
indépendants. Un modèle plus précis est fourni par les files d’attente.
Elle consiste à diviser la mémoire en partitions, de tailles inégales. Cela est réalisé par
l’opérateur lors du démarrage de la machine. Chaque nouvelle tâche est placée dans la file la
plus petite pouvant la contenir (l’espace restant étant perdu).
66
Unité 3. Gestion de la mémoire
L’utilisation de files multiples pose problème lorsque les files de grandes partitions sont vides
et les autres sont pleines. Une alternative est d’utiliser une file unique, et quand une partition
se libère, la plus grande tâche qui peut y tenir est placée. Comme cette stratégie désavantage
les tâches de petites tailles, alors il faudrait théoriquement les traiter en priorité. On peut
imaginer d’autres algorithmes cherchant la première tâche pouvant tenir dans la partition et
pas dans les plus petites en relâchant cette dernière contrainte si aucune tâche n’est trouvée
lors de la première passe.
Translation et protection
La solution à la translation d’adresse consiste à conserver une table générée par l’éditeur de
liens conservant les positions de tous les mots mémoire qui sont des adresses. Lors de la prise
en charge d’un programme, l’adresse de base de la partition est ajoutée à toutes les adresses
déclarées.
Cependant cette solution ne résout pas le problème de protection. Une solution consiste à
subdiviser la mémoire en bloc, chacun affecté d’une clé de 4bits (PSW « Program Status Word
»). Ce mécanisme interdisait toute interaction entre processus différents.
Une solution générique aux deux problèmes consiste à doter le processeur de 2 registres
de base et de limite. Et quand on charge un processus en mémoire, le registre de base est
initialisé avec la limite inférieure de la partition et cette valeur est implicitement aux adresses
générées par le processeur, et comparée avec la limite supérieure et toute valeur hors
intervalle déclenche la levée d’exception.
67
Introduction aux systèmes d’exploitation
Conclusion
Tout au long de cette activité, nous avons abordé la gestion de la mémoire sans va-et-vient.
Nous avons vu que cela est possible lorsque la mémoire physique est effectivement disponible.
Nous avons analysé cela dans le cas de la monoprogrammation, la multiprogrammation et la
multiprogrammation avec partitions fixes.
Évaluation de l’activité :
Exercice 1 :
Exercice 2 :
Exercice 3 :
Dans le système de partition mémoire avec file d’attente, nous avons vu comment
plusieurs processus peuvent s’exécuter en même temps et se terminer plus
rapidement que s’ils avaient été exécutés les uns après les autres. Supposons
que nous ayons deux tâches qui démarrent simultanément et qui requièrent
chacune 10 minutes de temps CPU. Combien de temps prendra la dernière pour
se terminer si elles sont exécutées l’une après l’autre ? Combien de temps si
elles sont exécutées en même temps. Faites l’hypothèse d’une attente d’entrée
sortie de 50%.
Rappel :
La mémoire d’un ordinateur est une ressource critique qui doit être gérée
avec grande attention. L’une de manière de gestion de la mémoire est le
cas qui ne permet pas l’échange de processus entre la mémoire et le disque
pendant l’exécution. Cela a été analysé pour la monoprogrammation et la
multiprogrammation.
Introduction
L’organisation de mémoire en partition fixe est efficace pour le traitement en lots, pourtant
dans les systèmes à temps partagé, la mémoire physique ne peut contenir tous les processus
des utilisateurs, il est donc nécessaire de placer sur le disque certains de ces processus, qu’il
faudra ramener en mémoire centrale afin de les exécuter. Le mouvement des processus entre
la mémoire centrale et le disque est appelé « swapping».
Le va-et-vient avec les partitions fixes conduit à un gaspillage de la mémoire. En effet la taille
68
Unité 3. Gestion de la mémoire
des programmes peut être plus petite que celle des partitions qui les hébergent. D’où la
nécessité de la mise en œuvre d’un mécanisme de gestion de la mémoire avec les partitions
de taille variable. Avec un mécanisme de partitions à taille variable, le nombre, la position
et la taille des partitions varient au cours du temps, en fonction des processus présents à un
instant donné en mémoire centrale. Le schéma ci-dessus montre un exemple de la gestion
de la mémoire avec partition variables. L’allocation mémoire change au gré des processus
qui viennent en mémoire et qui la quittent. Les zones en jaunes indiquent que la mémoire est
inutilisée.
Un autre problème concerne la taille des partitions attribuées à chaque processus, car celle-ci
augmente avec le temps. Donc on alloue à chaque processus un espace légèrement plus
grand que sa taille actuelle, tant au chargement que lors des migrations à partir du disque.
Cela permet de réduire le temps système associé au processus déplacés ou chargés dont la
taille n’est pas appropriée à la mémoire qui lui est allouée. Cependant lorsque l’on transfère
des processus sur disque, seule la mémoire véritablement utilisée doit être recopiée. Il est
inutile de recopier aussi la mémoire supplémentaire. La figure ci-dessous présente une
configuration mémoire dans laquelle un espace destiné à l’accroissement a été attribué à deux
processus.
69
Introduction aux systèmes d’exploitation
On doit donc disposer d’un mécanisme spécifique pour mémoriser les zones mémoires libres
et occupées, minimiser l’espace perdu lors d’une allocation, et réduire autant que possible les
fragmentations. Ces mécanismes peuvent être de trois sortes:
La mémoire est subdivisée en unités d’allocation, dont la taille peut varier de quelques mots
à quelques kilo-octets. Chacune de ces unités est représentée par un bit dans une table
d’allocation possédée par le système, mémorisant l’occupation de la mémoire.
La taille de l’unité d’allocation est un élément fondamental dans la configuration : plus l’unité
est petite, plus la table de bits est importante.
70
Unité 3. Gestion de la mémoire
• Le choix de la taille de l’unité d’allocation: une taille trop petite imposera une
table plus grande, donc un temps d’opérations plus grands, alors qu’une taille
trop grande causera des pertes de place plus importantes dans la dernière unité
d’allocation « partiellement remplie ».
• La recherche de k bits libres dans la table, qui nécessite des manipulations
coûteuses sur des masques de bits.
Cette technique consiste à gérer une liste chaînée de segments libres et occupés, dans
laquelle chaque segment est représenté par un bit d’état, son adresse de début, et
éventuellement sa taille, et qui est triée par adresses de début croissantes. La figure ci-contre
illustre la gestion de la mémoire par liste chainée.
• First fit (premier qui correspond) : Pour ce cas, la liste est parcourue jusqu’à ce
qu’on trouve un segment libre de taille suffisante pour contenir l’espace mémoire
demandé. S’il reste de l’espace libre dans le segment, la cellule correspondante
est scindée pour conserver la trace de cet espace.
• Best fit (qui correspond le mieux) : Pour cet algorithme, la liste est entièrement
parcourue, et on choisit le plus petit segment dont la taille est supérieure à celle
de la mémoire demandée. Ainsi on évite de fractionner une grande zone dont
on pourrait avoir besoin ultérieurement. Sa limite c’est qu’il fait perdre beaucoup
plus d’espace mémoire que le précédent en remplissant la mémoire avec de
petites zones libres.
• Worst fit (plus grand résidu) : cet algorithme est similaire au précédent, à la
différence qu’on cherche la plus grande zone possible, qui donnera le résidu le
plus utilisable possible. Cette stratégie risque de détruire les segments de taille
grande utilisables par des processus long.
• Quick fit : Pour accélérer les recherches, on peut scinder en deux les listes
de segments libres et occupés, et scinder la liste des segments libres afin de
disposer de listes séparés pour les tailles les plus courantes.
71
Introduction aux systèmes d’exploitation
Conclusion
Tous les processus ne pouvant être logés en mémoire, nous avons vu qu’il y a un moyen de
conserver certains processus sur disque et de les ramener en mémoire au moment voulu afin
de les exécuter. Ce mouvement des processus de la mémoire vers le disque et du disque vers
la mémoire est ce que nous avons appelé le va-et-vient. Cette gestion de la mémoire peut se
faire par partition, table de bits, liste chaînée
Évaluation de l’activité :
Exercice 1 :
Exercice 2 :
Exercice 3 :
Introduction
Lorsque la taille d’un processus dépasse la taille de la mémoire physique disponible, on fait
recours au principe de la mémoire virtuelle. Le principe consiste à conserver en mémoire
centrale les parties utilisées des processus et stocker, si nécessaire, le reste sur disque.
La pagination
Pour ce cas, l’espace d’adressage d’un processus est divisé en petites unités de taille fixe
appelées pages. La Mémoire Centrale (MC) est elle aussi découpée en unités physique de
même taille appelées cadres. Les échanges entre MC et disques ne portes que sur des pages
entières. Ainsi l’espace d’adressage est illimité, et on parle d’adressage virtuel. Le schéma
ci-dessous illustre la traduction des adresses virtuelles manipulées par les processus en
adresses légales dans la mémoire physique en gérant les discontinuités.
72
Unité 3. Gestion de la mémoire
Le principal problème de la mémoire virtuelle est que les parties immédiatement utiles à
l’avancement d’un processus sont disjointes en MC (Mémoire Centrale). Un mécanisme
efficace de mémoire virtuelle doit donc pouvoir effectuer la traduction des adresses virtuelles
manipulées par le processus en adresses légales dans la mémoire physique.
Dans un SE sans mémoire virtuelle, la machine calcule les adresses physiques en ajoutant
le contenu d’un registre de base aux adresses relatives contenues dans les instructions du
processus. Dans un SE à pagination, un sous-ensemble inséré entre l’UC et la MC, la MMU
(Memory Management Unit ou unité de gestion de la mémoire) traduit les adresses virtuelles
en adresses physiques.
La MMU mémorise :
• les cadres physiques alloués à des processus (sous forme d’une table de bits de
présence)
• les cadres mémoire alloués à chaque page d’un processus (sous forme d’une
table des pages)
On dira qu’une page est mappée ou chargée si elle est physiquement présente en mémoire.
Une représentation de l’espace virtuel et de l’espace physique est présentée ci-dessous.
73
Introduction aux systèmes d’exploitation
L’adressage virtuel est divisé en pages de taille 2n octets, la MMU dispose d’une table
d’indirection pour convertir les adresses virtuelle en adresses physiques. Les pages non
mappées sont identifiées par un bit de présence. L’indexation de la table en décomposant
l’adresse virtuelle en un numéro de page « page index » et un déplacement « offset » dans
la page. L’index de page sert à adresse la table des pages, qui fournit le numéro de page
physique remplaçant l’index de page dans l’adresse physique, comme le montre l’exemple
ci-dessous.
74
Unité 3. Gestion de la mémoire
Dans cet exemple, les pages ont une taille de 4Ko. L’adresse virtuelle 12292= (1024*12)
+4. C’est-à-dire qu’elle correspond à un déplacement de 4octets dans la page virtuelle 3,
correspondant à son tour à la page physique 2. Donc l’adresse physique correspond à un
déplacement de 4 octets dans la page physique 2 soit: (8*1024) +4=8196.
La page virtuelle 2 n’est pas mappée. Donc toute adresse virtuelle comprise entre 8192 et
12287, donnera lieu à un défaut de page. L’accès à une adresse virtuelle correspondant à une
page non mappée donne lieu à un défaut de page.
En cas de défaut de page, un déroutement se produit «Trap », et le processeur est rendu au SE.
Le SE doit alors effectuer les opérations suivantes:
Ainsi avec un espace d’adressage de 232 octets, et des pages de 212 octet (4kO), on doit avoir
220 entrées. C’est-à-dire que la table doit faire 1MO. Pour réduire la mémoire utilisée par la
table des pages, et éviter de coder des espaces vides, on lui applique son propre principe,
en créant une table à deux niveaux d’indirections : la partie haute de l’adresse permet de
déterminer la table des pages devant être utilisée, qui est elle-même accédée au moyen de la
partie médiane de l’adresse afin de déterminer le numéro de la page physique utilisée.
Ainsi avec un 1er niveau indexé sur 10bits, et un 2ème niveau également sur 10 bits on réduit
la mémoire occupée par la table des pages pour les petits programmes.Cette solution a pour
limite de générer un surcoût marginal pour les gros programmes.
75
Introduction aux systèmes d’exploitation
La Segmentation
Pour ce cas, l’espace d’adressage d’un processus est divisé en segments, générés à la
compilation. Chaque segment est repéré par son numéro S et sa longueur variable L. Un
segment est un ensemble d’adresses virtuelles contiguës. Une adresse n’est plus donnée de
façon absolue, par rapport à l’adressage virtuel, l’adresse est représenté par le couple (S, d),
où S est le numéro de segment et d le déplacement dans le segment (d є [0, L [ ).
Comme le montre la figure-ci-dessous, on utilise une table de segments pour calculer l’adresse
physique.
Avec :
p: protection du segment
A la suite d’un défaut de page, le système d’exploitation doit ramener en mémoire la page
manquante à partir du disque. S’il n’y a pas de cadres libres en mémoire, il doit retirer une
page de la mémoire pour la remplacer par celle demandée. Si la page à retirer a été modifiée
depuis son chargement en mémoire, il faut la réécrire sur le disque. Quelle est la page à retirer
de manière à minimiser le nombre de défauts de page ?
76
Unité 3. Gestion de la mémoire
Le choix de la page à remplacer peut se limiter aux pages du processus qui ont provoqué le
défaut de page (allocation locale) ou à l’ensemble des pages en mémoire (allocation globale).
Cet algorithme est trop difficile à appliquer. La grande difficulté est de savoir comment calculer
les indices des pages? Il reviendrait, chaque fois qu’une page est accédée, à la marquer avec
un compteur indiquant à quel moment cette page sera ré-accédée de nouveau.
Le SE référence chaque page par deux bits R(le plus à gauche) et M initialisés à 0. A chaque
accès en lecture à une page R est mis à 1. Et à chaque accès en écriture, M est mis à 1, et à
chaque interruption d’horloge, le SE remet R à 0.
Les bits R-M forment le code index. En cas de défaut de page, on retire une page au hasard
dans la catégorie non vide de plus petit index.
Ainsi on retire préférentiellement une page modifiée non référencée (index 1) qu’une page très
utilisée en consultation (index 2).
77
Introduction aux systèmes d’exploitation
Pour cet algorithme le SE indexe chaque page par sa date de chargement et constitue une
liste chaînée, la 1ère page de la liste étant la plus anciennement chargée, et la dernière la
plus récemment chargée.Cet algorithme n’est pas stable. En effet quand le nombre de cadres
augmente, le nombre de défauts de page ne diminue pas (anomalie de BELADY).
Avec le LRU, le SE retire la page la moins récemment référencée. Pour cela, il indexe chaque
page par le temps écoulé depuis sa dernière référence et il constitue une liste chaînée des
pages par ordre décroissant de temps depuis la dernière référence. Cet algorithme est stable
mais nécessite une gestion coûteuse de la liste qui est modifiée à chaque accès à une page.
Conclusion
Même si l’espace mémoire centrale est aujourd’hui une ressource moins critique qu’il y a
quelques années, les mémoires virtuelles constituent à la fois une abstraction et un mécanisme
fondamental dans la gestion de la mémoire. Dans cette activité d’apprentissage, nous
avons fait un aperçu plus ou moins complet des problèmes de gestion de la mémoire et des
algorithmes les plus utilisés dans la gestion de la mémoire.
78
Unité 3. Gestion de la mémoire
Évaluation de l’unité :
Exercice 1 :
Exercice 2 :
Cadre Tc Tda R M P
0 126 270 0 0 1
1 230 255 1 0 1
2 110 260 1 1 1
3 180 275 1 1 1
1) En cas de défaut de page, quelle est celle qui sera remplacée en fonction de
l’algorithme suivant :
a. LRU
b. FIFO
c. FINUFO
d. NRU
79
Introduction aux systèmes d’exploitation
Résumé de l’unité
Dans cette unité d’apprentissage, nous avons examiné la gestion de la mémoire. Les systèmes
les plus simples n’effectuent pas de va-et-vient ni de pagination. Certains systèmes supportent
la multiprogrammation d’autres non.
Avec le va-et-vient le système peut gérer plus de processus qu’il n’a pas de mémoire.
a. Il y a interblocage
b. Débute la segmentation
c. Les processus ayant un temps d’exécution long sont arrêtés pour laisser la
place à ceux ayant un temps d’exécution court.
80
Unité 3. Gestion de la mémoire
a. Swapping
b. Pagination à la demande
c. Défaut de page
B. Question de résumé
Rétroaction
Critères d’évaluation
Quotation
• ’évaluation des activités compte pour 60% tandis que celle de l’unité
d’apprentissage compte pour 40%.
• L’unité d’apprentissage compte pour 20% du module
81
Introduction aux systèmes d’exploitation
Habermann, A.N. Prevention of System Deadlocks. CACM, Vol. 12, No. 7, July 1969, pp.
373-385.
http://www.groupes.polymtl.ca/inf2610/documentation/notes/chap10.pdf
http://stic-os.webs.com/Support_Cours/OS-Gestion-memoire.pdf
82
Unité 4. Gestion des périphérique et système de fichiers
La gestion de ces périphériques est une tâche importante qui doit être bien faite afin de mieux
utiliser la machine. Il en va de soi que cette tâche incombe à la machine même.
Un fichier, quant à lui, est ensemble d’informations regroupées en vue de leur conservation
et de leur utilisation dans un Système informatique. Le stockage persistant des données,
l’accès rapide à ces dernières, est un des critères déterminant de l’efficacité d’un système
d’exploitation. Les fichiers résident en dehors de l’espace d’adressage des processus. Il
existe un logiciel de gestion de fichiers appelé gestionnaire de fichier. Celui-ci fournit une
interface graphique d’exploiter ces fichiers. Ses principales fonctionnalités sont: la création,
l’ouverture, la visualisation, l’impression, la lecture, le renommage, le déplacement, la copie, la
suppression, la consultation des propriétés des fichiers et la recherche de fichiers.
La partie du SE qui gère les fichiers est connue sous le nom de système de fichiers (file system).
Dans cette unité d’apprentissage, nous allons aborder la gestion des périphériques et
l’interface utilisateur des fichiers et des répertoires.
Objectifs
A la fin de cette unité l’apprenant devra être en mesure de:
83
Introduction aux systèmes d’exploitation
Mots-clés
Périphérique : Un périphérique est tout élément matériel connecté à
l’ordinateur
Introduction
Afin de pallier à ces problèmes, il y a en général trois niveaux pour la gestion d’un
périphérique :
84
Unité 4. Gestion des périphérique et système de fichiers
Types de périphériques
L’interaction avec un périphérique (sauf exceptions) consiste à envoyer ou recevoir des
données, souvent accompagnées de métadonnées (position dans le disque, fréquence
d’échantillonnage, . . .).
Les périphériques sont en général classifiés en deux catégories, suivant le type d’accès à ces
données.
La première classe de périphériques fonctionne en mode d’un flux de données. Par exemple,
un clavier envoie des données à chaque touche enfoncée/relâchée. Une souris à chaque
mouvement ou clic. Une carte son va recevoir des données en mode flux pour jouer du son, et
émettre des données en mode flux lorsqu’on enregistre depuis un micro.
Les périphériques en mode flux sont souvent appelés des character device. Ils ne supportent
pas d’opérations de positionnement (on ne peut pas demander à un clavier la touche enfoncée
il y a 10 secondes).
Ces périphériques possèdent en général un tampon (interne, dans le contrôleur et/ou dans
le système d’exploitation) permettant de conserver une quantité limitée d’informations avant
qu’elle ne soit traitée.
Si le système d’exploitation n’arrive pas à traiter les données suffisamment rapidement, une
fois le tampon plein, des données peuvent être perdues si le périphérique est un périphérique
d’entrée, ou alors des conséquences néfastes pourront lieu (son saccadé, par exemple) si le
périphérique est un périphérique de sortie.
La deuxième classe de périphérique fonctionne sous la forme d’une zone de données, divisée
en blocs, qui peuvent être accédés de manière arbitraire.
Ces périphériques reconnaissent eux des opérations de positionnement, soit relatives (par
exemple pour une bande magnétique, avancer ou reculer d’un certain nombre de blocs), soit
absolues (le plus fréquent).
L’existence d’un tampon n’est pas nécessaire pour ces périphériques là, mais reste fréquente
pour des raisons de performances.
85
Introduction aux systèmes d’exploitation
Certains périphériques ne rentrent pas totalement dans ces deux catégories (qui, comme toute
catégorisation, est imparfaite). Voici quelques exemples :
Le mode PIO
Le mode le plus simple et le plus ancien est le mode PIO (Programmed IO). Ce mode consiste
à lire (ou écrire) les données mot par mot (un mot étant une quantité de données manipulable
en une seule opération, en général de 8 à 64 bits, donc de 1 à 8 octets), avec une instruction
assembleur spéciale.
Ce mode est le plus simple à gérer pour le matériel. Cependant, il est très peu flexible, pour
plusieurs raisons :
• Une instruction assembleur spécifique doit être utilisée, ce qui interdit l’écriture
du code dans un langage de plus haut niveau, et nuit à la portabilité ;
• Le transfert de données est intégralement géré par le CPU, ce qui pour des
débits importants peut coûter très cher ;
• La latence peut être importante, puisque si le CPU est occupé par un autre
processus, le transfert n’aura pas lieu.
• Le mode MMIO
Le mode MMIO (Memory Mapped IO) est une évolution du mode PIO. Il consiste à utiliser
une zone de mémoire spéciale pour effectuer la communication entre les applications (ou le
système d’exploitation) et les périphériques.
En général, seul le noyau accède à ces zones de mémoires spéciales, mais la présence de la
mémoire virtuelle permet d’attribuer sélectivement des droits sur ces zones de mémoires à des
applications si nécessaire.
Lorsqu’une lecture ou écriture est faite sur ces zones de mémoire spéciale, les instructions de
lecture/écriture ne sont pas envoyées sur le bus mémoire, mais sur le bus du périphérique. Ce
sont les bridges de la carte mère qui gèrent cette bascule.
86
Unité 4. Gestion des périphérique et système de fichiers
L’avantage principal de ce mode de transfert est qu’il ne nécessite aucune instruction spéciale,
et permet d’utiliser toutes les fonctions des langages de plus haut niveau.Par contre, c’est
toujours le CPU qui effectue le transfert, mot par mot, avec un coût qui peut être important sur
un transfert avec un débit élevé. Le problème de latence n’est toujours pas résolu.
Le DMA
Enfin de palier au problème de coût CPU et de latence, une technique nommée DMA (Direct
Memory Acess) a été inventée. Lorsque l’on communique avec un périphérique via le DMA,
on réserve une zone de mémoire vive pour le transfert. On signale alors à une puce spéciale,
le contrôleur DMA, que l’on souhaite initier un transfert entre cette zone mémoire et un
périphérique, ainsi que le sens du transfert. C’est le contrôleur DMA qui va alors transférer
les données, à la vitesse requise pour le périphérique, et ceci sans intervention du CPU.Le
contrôleur DMA est capable de gérer plusieurs transferts en parallèle, un par canal DMA (16
par exemple). Par contre, un seul mot peut circuler sur le bus au même moment, bien sûr.
Afin d’éviter les problèmes de données non synchronisées, les cache L1 et L2 doivent être
désactivés sur les zones mémoires concernées (en général possible avec une granularité d’une
page, sur les MMUs modernes).Une variante du DMA, utilisée sur le bus PCI, se nomme le
bus master, et permet d’effectuer des transferts de type DMA sans contrôleur DMA. La carte
PCI demande le contrôle du bus, et peut alors envoyer des requêtes au pont sud qui va les
transférer à la mémoire centrale.
Les interruptions
Les boucles d’attente
Maintenant que nous savons transférer des données vers ou depuis un périphérique, il reste
un certain nombre de questions : comment savoir qu’un périphérique est prêt à recevoir
des données ? Qu’il y a des données disponibles pour la lecture ? Qu’un transfert DMA est
terminé?
Pour répondre à ces questions, la première solution est de faire une boucle d’attente : on teste
régulièrement si des données sont disponibles, si le périphérique est près, si le transfert DMA
est terminé. Si la condition n’est pas remplie, on réessaie plus tard, jusqu’à ce qu’elle le soit.
La fréquence des tests va bien sûr dépendre du type de périphérique (élevée pour une carte
réseau, faible pour un clavier, par exemple).Mais ces tests réguliers peuvent finir par coûter
cher en terme de CPU utilisé, surtout quand le nombre de périphériques à surveiller est élevé
(cartes réseaux, disques, périphériques multimédias, périphériques d’entrée,
De plus, dans le cadre d’un système multiprogrammé, ce test n’est de plus possible que quand
le CPU est actuellement attribué à l’application qui utilise le périphérique, ou au noyau pour
un pilote présent dans le noyau, ce qui peut introduire des latences élevées.
87
Introduction aux systèmes d’exploitation
Pour pallier à ces deux problèmes, le mécanisme d’interruptions a été inventé. Il permet
au matériel d’interrompre la tâche en cours d’exécution pour donner le CPU au pilote de
périphérique correspondant, lorsque l’une de ces conditions est remplie.Le principe théorique
a déjà été étudié dans le cadre des processus et des threads : il s’agit de sauvegarde la
valeur des registres spéciaux du processeur (comme le pointeur de l’instruction en cours),
puis d’effectuer un saut sur un point d’entrée du système d’exploitation (le noyau en général).
Celui-ci se charge de sauvegarder le reste des registres, et peut alors effectuer son traitement,
puis rendre la main au processus interrompu.
Le premier type d’interruptions, dont nous avons déjà parlé rapidement, sont les interruptions
logicielles. Elles sont émises volontairement par le programme, par exemple pour faire un
appel système. Elles ne nous intéressent pas dans notre cas.Le deuxième type d’interruptions,
qui est le plus répandu dans la gestion des périphériques, est l’IRQ. Un contrôleur spécifique
est présent sur la carte mère, et peut recevoir de la part des périphériques une demande
d’interruption (Interrupt Request, IRQ en anglais), avec un numéro (de 0 à 15 par exemple). Le
contrôleur va alors mémoriser la demande, et la signaler au CPU, via une patte spécialement
dédiée.
Le troisième type d’interruption est la NMI, pour Non Masquable Interrupt. Ce type
d’interruption, en général émis par le CPU lui-même ou des composants très proches (la MMU
par exemple) ne peut pas être désactivé. Il correspond le plus souvent à des erreurs, qui
doivent impérativement être traitées (erreurs de protection dans la mémoire virtuelle, division
par zéro, . . .).Une erreur survenant pendant le traitement d’une interruption est nommée
un double fault, et une erreur survenant durant le traitement de cette erreur-là, le triple
fault. Il provoque en général un arrêt ou un redémarrage de la machine. Ils sont cependant
extrêmement rares.
Conclusion
Les périphériques désignent tout élément matériel connecté à un ordinateur. On distingue les
périphériques d’E/S. Au cours de cette activité différentes catégories de périphériques ont été
abordés, ainsi que la technique utilisée pour transférer les données entre le périphérique et le
reste du système et la notion d’interruption.
88
Unité 4. Gestion des périphérique et système de fichiers
Évaluation de l’activité
Question 1 :
Question 2 :
Question 3 :
Question 4:
Introduction
La notion de fichier est l’abstraction fondamentale introduite dans les systèmes d’exploitation
pour gérer les données des utilisateurs acquises ou produites via les divers périphériques
connectés : disques, écran/clavier, imprimantes, scanners, modems, etc.
Tout au long de cette unité d’apprentissage, nous allons étudier, du point de vue d’un
utilisateur, l’utilisation et les propriétés des fichiers.
Les fichiers
Un fichier possède un nom qui permet de l’identifier de manière unique. C’est à dire que l’on
ne peut pas avoir deux fichiers de même nom dans un même emplacement. Le nom de fichier
est composé de deux parties (un nom et une extension).
89
Introduction aux systèmes d’exploitation
Exemples:
nomfic.html: fichier document en langage html (HyperText Markup Language) pour internet
Un fichier est rangé sur un support permanent (DD, CD ou DVD, clé USB, etc.). Selon les
systèmes, on distingue différentes organisations de données dans les fichiers:
La plus part de SE supportent plusieurs types de fichiers. Par exemple Unix et Windows
ont des fichiers ordinaires (contiennent les informations des utilisateurs) et des répertoires
(fichiers systèmes qui conservent la structure du système de fichiers). Unix possède également
des fichiers spéciaux caractère et bloc. Les fichiers spéciaux caractère sont liés aux E/S et
permettent de modéliser les périphériques d’E/S série tels que les terminaux, les imprimantes
et les réseaux. Les fichiers spéciaux bloc quant à eux servent à modéliser les disques.
Les premiers SE ne proposaient que l’accès séquentiel. Dans ces systèmes un processus
pouvait lire tous les octets ou tous les enregistrements du début à la fin. La lecture en désordre
était impossible. Pour ce type d’accès on utilisait les bandes magnétiques comme support de
stockage.Avec l’apparition de disque, il est devenu possible de lire les données des fichiers
dans n’importe quel ordre. Ce genre de fichiers s’appellent des fichiers à accès aléatoire et
sont nécessaires à de nombreuses applications. Ces fichiers sont indispensables aux bases de
données.
Exemple: La réservation d’une place sur un vol donné doit se faire sans parcourir des milliers
d’enregistrement contenant d’autres vols.
Deux méthodes sont employées pour spécifier le début de la lecture. Dans la première,
chaque lecture donne la position dans le fichier pour démarrer la lecture. Dans la seconde,
une opération particulière, seek, permet de se placer à un endroit donné. De là, le fichier peut
être lu de manière séquentielle.Dans certains anciens SE de grands ordinateur, les fichiers
sont classés en deux catégories (fichiers séquentiels ou fichiers à accès aléatoires) lors de leur
création. Cela permet aux SE de se servir de méthodes de stockages différentes pour les deux
catégories. Pour les SE modernes tous les fichiers sont automatiquement à accès aléatoire.
90
Unité 4. Gestion des périphérique et système de fichiers
Chaque fichier possède un nom et des données. A chaque fichier, les SE associent des
informations complémentaires comme l’heure, la date de création du fichier et sa taille. Ce
genre d’information est appelé attribut du fichier et leur liste varie d’un SE à un autre.
Attributs Signification
Indicateur fichier 0 pour si le fichier a été archivé, 1 s’il doit être archivé
d’archivage
91
Introduction aux systèmes d’exploitation
Les fichiers servent de stockage de données et à les retrouver plus tard. Les SE permettent
différentes opérations pour réaliser le stockage et la recherche. Ci-dessus nous présentons les
principaux appels système relatifs aux fichiers:
• Create: crée un fichier vide. Cet appel permet de créer un fichier et de fixer un
certain nombre de paramètres
• Delete: Permet de supprimer un fichier et de libérer l’espace disque
• open: Avant d’utiliser le fichier un processus doit l’ouvrir. Cet appel permet au
système de charger les attributs et la liste des adresses du fichier sur le disque
afin d’accélérer les accès ultérieurs
• Close: Quand tous les accès au fichier sont terminés, les attributs et les adresses
du fichier ne sont plus nécessaires. Le fichier peut alors être fermé pour libérer de
l’espace dans les tables internes.
• Read: Permet de lire les données à partir du fichier. Généralement, les octets
proviennent de la position courante. L’appelant doit préciser le nombre d’octets
demandés et prévoir une mémoire tampon de lecture.
• Write: Permet d’écrire les données dans un fichier à partir de la position courante.
Si cette dernière est la fin du fichier, la taille de celui-ci augmente. Par contre si la
position courante est le milieu du fichier, les données existantes sont remplacées
et perdues définitivement.
• Append: C’est un appel de write restreint. Il permet d’ajouter les données à la fin
du fichier.
• Seek: Il permet de positionner le pointeur de fichier à un endroit précis de
celui-ci. Il est utilisé dans les fichiers à accès aléatoire. Après l’exécution de cet
appel, les données sont lues ou écrites à partir de cette position.
• Get attributes: Les processus doivent souvent lire les attributs des fichiers pour
effectuer certaines opérations. Par exemple le programme make d’UNIX sert à
gérer des développements de logiciels informatiques constitués de plusieurs
fichiers sources. Quand le programme make est appelé, il examine les dates de
modification de tous les fichiers sources et de tous les fichiers objet, et il réalise
le minimum de compilation requise pour mettre à jour tous les fichiers. Pour
accomplir cette tâche, il doit garder les attributs des fichiers, plus précisément
leur date de modification.
92
Unité 4. Gestion des périphérique et système de fichiers
• Set attributes: Cet appel permet de modifier les attributs des fichiers par les
utilisateurs
• Rename: Cet appel permet à un utilisateur de renommer un fichier
Les répertoires
Du point de vue du système de fichiers, un répertoire est traité comme un fichier dont le
contenu est la liste des fichiers référencés. Un répertoire a donc les mêmes types de propriétés
qu’un fichier comme le nom, la taille, la date, les droits d’accès et les divers autres attributs.
Chaque fichier ou répertoire est référencé par un autre répertoire, ce qui forme une hiérarchie
cohérente, appelée aussi arborescence, dont le point d’entrée est le répertoire racine. La
racine est unique sur un système de type UNIX, ou sur une partition Windows (par exemple C:).
• les systèmes dérivés ou issus de MS-DOS (Windows, OS/2 et les systèmes DOS
alternatifs) qui utilisent l’antislash
• les systèmes dérivés de Unix (et Internet) qui utilisent le slash
Sous Windows
Par exemple, pour les systèmes Windows, ce caractère est une barre contre-oblique (ou
antislash ou backslash), \ :
Exemple : c:\windows\system32\avifile.dll
Le fichier avifile.dll se trouve donc dans le répertoire system32, qui lui-même se trouve dans
le répertoire windows, lui-même se trouvant à la racine du système de fichiers C:. On dit que
windows est le répertoire parent de system32.On dit de c:\windows\system32 que c’est un «
chemin absolu », car c’est une référence qui ne tient pas compte de la position précédente.
Par opposition, system32 est un « chemin relatif » : cette référence suppose que le répertoire
courant est c:\windows.
Sous UNIX
Sur les systèmes UNIX, le même principe est appliqué, mais le caractère de séparation est une
barre oblique (ou slash) /.
Exemple : /usr/bin/mozilla-firefox
93
Introduction aux systèmes d’exploitation
Conclusion
La notion de fichier est l’abstraction fondamentale introduite dans les systèmes d’exploitation
pour gérer les données des utilisateurs. Les fichiers sont désignés par un nom et possède
une extension. Cette extension permet de désigner le type de fichier. Les structures de
fichiers peuvent être de séquences d’octets, une suite d’enregistrements ou sous forme
d’arborescence. Les programmes accèdent aux fichiers pour les modifier, les supprimer, les
renommer, les déplacer, etc.
Évaluation de l’activité
Question 1 :
Question 2 :
Question 3 :
Question 4:
Introduction
Dans cette activité, on aborde le problème de la gestion des ressources physiques qui
pourront être utilisées comme support de mémorisation des données des fichiers. Un principe
de conception essentiel consiste à banaliser le plus possible les ressources physiques en
masquant leurs caractéristiques en terme de capacité, de performance d’accès, de type
d’accès, etc.
94
Unité 4. Gestion des périphérique et système de fichiers
Exemple Unix : Les ressources matérielles ou périphériques sont localisées dans le répertoire /
dev. Les ressources sont identifiées par un nom de base précisant leur nature et fixant le type
de leur pilote, suivi d’un numéro. Par exemple, tty01 désigne un « terminal usager » connecté
à l’entrée standard (stdin) et à la sortie standard (stdout), c’est-à-dire la plupart du temps le
clavier et une fenêtre.Les unités de disque peuvent apparaître sous des noms divers associés
souvent à leur interface de connexion, scsi par exemple.
Remarque La ressource mémoire centrale elle-même est intégrée dans l’espace de noms des
fichiers : mem désigne la mémoire usager, kmem celle du noyau.
Notons que les périphériques peuvent être connectés de manière permanente ou temporaire
(courte durée : clés USB par exemple).
Historiquement, la connexion des périphériques était très statique. L’ajout/retrait d’une unité
nécessitait l’arrêt préalable du système, éventuellement sa reconfiguration (ajout éventuel
du pilote correspondant à la nouvelle unité) et un redémarrage. Aujourd’hui, avec les unités
amovibles de type clé USB, la connexion d’une nouvelle unité est une opération simple ne
nécessitant ni arrêt, ni reconfiguration. Seule la connexion d’une unité d’un type nouveau
dont le pilote n’est pas présent dans la configuration courante nécessite une installation et un
redémarrage (en général) du système.
95
Introduction aux systèmes d’exploitation
Pour qu’un périphérique soit utilisable, il faut qu’il puisse être connecté via une des interfaces
disponibles de l’architecture matérielle et que le logiciel de programmation des échanges,
appelé pilote ou driver en anglais, soit disponible et installé dans le noyau. Un pilote implante
les opérations d’échange et de contrôle du périphérique. Il se décompose en deux parties:
La notion de volume
La notion de volume est introduite pour masquer la grande diversité des supports utilisables
comme mémoires de masse des systèmes de fichiers. Un volume est une abstraction de la
notion de disque : il peut être vu comme un tableau de blocs ou fragments (paquets de blocs)
de taille fixée.
La représentation d’un volume pourra être une ressource donnée : disque, CD, DVD, clé USB,
ou seulement une partition d’une unité dans le cas des disques de grandes capacité. L’unité
physique est découpée en plusieurs partitions, zones, supports de différents volumes. Le
partitionnement d’un disque en plusieurs volumes est une opération de configuration qui doit
être réalisée préalablement à l’usage de l’espace disque.
La propriété fondamentale d’un volume est de pouvoir être le support d’un système de fichiers
: autrement dit, une sous-arborescence de fichiers pourra être déployée sur un volume. Pour
ce faire, une opération d’initialisation du système de fichiers sur le volume est nécessaire.
Cette opération définit le nom du système de fichiers, les restrictions d’accès, l’espace
libre disponible, la table des descripteurs de fichiers, des dates (de création, de dernière
modification). A titre d’exemple, la commande mkfs <nom de volume>, sous Unix, permet
d’initialiser un système de fichiers sur un volume.
96
Unité 4. Gestion des périphérique et système de fichiers
Stuart E. Madnick a proposé en 1970 une structuration en couches pour l’implantation des
systèmes de fichiers. Le tableau ci-dessous présente cette structuration:
L’implantation de la structure d’arbre repose sur une idée simple : les nœuds, c’est-à-dire
les répertoires, sont représentés par des fichiers. Autrement dit, nœuds ou feuilles, tout est
fichier. Pour obtenir la structure d’arbre, le contenu d’un répertoire est donc tout simplement
un tableau de couples (nom, i) dans le- quel le nom est une chaîne de caractères identifiant le
fichier et l’indice repère le descripteur de fichier associé.
Cette approche implique que l’espace des fichiers proprement dit est représenté sous la forme
d’un simple tableau (ou table) de descripteurs (appelés i-node pour « internal node » sous
Unix). Lorsqu’un chemin d’accès est fourni en paramètre de la primitive open, il faut donc
éventuellement accéder à plusieurs répertoires, donc fichiers jusqu’à obtenir le numéro de
descripteur final du fichier cible.
D’après ce qui précède, un volume n’est donc que le support de fichiers. Il contient donc
seulement une table de descripteurs de fichiers et il suffit de connaître le numéro de ce
descripteur pour pouvoir accéder au fichier.
97
Introduction aux systèmes d’exploitation
Exemple de descripteur sous Unix : le i-node Lorsqu’un fichier est créé, il faut donc réserver un
descripteur libre. Au fur et à mesure que des données vont être écrites dans le fichier, il faudra
allouer de l’espace disque pour recevoir ces données. La solution retenue est une allocation
dynamique par blocs ou fragments de taille multiple d’un secteur puisque la taille d’un fichier
n’est pas initialement connue.
• les blocs étant alloués dynamiquement, ils ne sont pas contigus sur le disque. Par
conséquent, il faut gérer une carte donnant pour chaque numéro logique de bloc
de fichier, le bloc physique lui correspondant. La taille d’un fichier n’étant pas
connue, la taille d’une carte ne l’est pas non plus.
• Il est nécessaire de connaître les blocs libres. Il faut donc une structure de
données permettant de connaître les numéros de blocs libres.
• Selon les systèmes de fichiers, les solutions ne sont pas tout à fait les mêmes. A
titre d’exemple, nous présentons les solutions Windows et Unix.
L’implantation Windows :
L’idée de base consiste à utiliser un tableau unique pour toutes les cartes, ce tableau ayant un
nombre d’entrées égal au nombre de blocs disque utilisables.
Pour des raisons de robustesse, ce tableau est dupliqué. Ce tableau sert à implanter un
chaînage de type liste entre les blocs logiques successifs d’un fichier. En effet, le nombre
d’entrées étant égal au nombre de blocs physiques, l’indice d’une entrée peut être utilisé
comme numéro de bloc physique et, dans une entrée occupée i du tableau (associé au bloc
i), on trouve la localisation du bloc logique suivant de i. En connaissant le numéro du premier
bloc physique du fichier, il est donc possible de retrouver tous ses blocs. La figure ci-dessous
illustre cette représentation des cartes.
98
Unité 4. Gestion des périphérique et système de fichiers
Cette implantation présente l’avantage de mixer à la fois les cartes des fichiers et la carte des
blocs libres : en effet, tout bloc libre peut être repéré dans le tableau par une entrée ayant
une valeur codant l’état libre. Elle a le désavantage d’être en fait une structure de liste et donc
d’être peu performante vis-à-vis des méthodes d’accès direct : il faut parcourir la liste jusqu’au
bloc demandé.
L’implantation Unix
L’idée de base est de placer une carte de taille fixe dans chaque descripteur de fichier. Une
carte comporte 13 entrées : les 10 premières peuvent pointer les 10 premiers blocs du fichier
s’ils existent. Typiquement, tous les blocs d’un petit fichier (une dizaine de Ko) sont donc
directement accessibles. Ensuite, la 11-ième entrée pointe un bloc qui contiendra un nombre
fixe de pointeurs vers les blocs suivants du fichier : par exemple, si les blocs ont une taille de
4K octets, on pourra placer dans un tel bloc, les pointeurs vers les K blocs suivants du fichier.
La 12-ème entrée adopte le même schéma mais avec une double indirection. Finalement,
l’usage du 13-ième conduit à 3 indirections successives.
99
Introduction aux systèmes d’exploitation
Bien que cette approche permette de représenter des fichiers de taille importante, une taille
maximale existe. Les concepteurs d’Unix avaient adopté cette approche compte-tenu du
fait que le système Unix était pour eux un support au développement de programmes. C’est
pourquoi, 90 % de leurs fichiers étaient de petite taille et n’impliquaient que rarement l’usage
des indirections.
L’allocation dynamique des blocs impose, nous avons vu, de connaître la « cartographie » des
blocs libres sur un volume. Le système Windows, avec une table de taille égale au nombre de
blocs combine les cartes de chaque fichier ainsi que celle des blocs libres. En effet, lorsqu’un
bloc i est libre, l’entrée correspondante contient une balise spécifique indiquant que le bloc
est libre. Le système Unix ayant opté pour des cartes implantées dans chaque descripteur de
fichier, doit donc par ailleurs gérer une carte des blocs libres. Cette carte est localisée dans le
descripteur du volume appelé « super-bloc ».
La structure de donnée utilisée est une pile dont la représentation se répartit dynamiquement
dans les blocs libres eux-mêmes au fur et à mesure des allocations/libérations de blocs. Le
descripteur de volume contient en fait une fenêtre « sommet » visible de la pile. La taille de
cette fenêtre est exactement égale au nombre de numéros de blocs que l’on peut mémoriser
dans un bloc. En effet, des blocs libres interviennent dans la représentation de la pile pour
contenir des numéros de blocs libres. Ceux-ci sont chaînés dans une liste.
La figure ci-dessous illustre cette représentation éclatée de la pile des blocs libres.
100
Unité 4. Gestion des périphérique et système de fichiers
Seule une fenêtre de taille fixe localisée dans le super bloc contient une partie sommet visible
de la pile. Le premier élément (base) de cette fenêtre contient un numéro de bloc libre qui, lui-
même, ne contient que des numéros de blocs libres. Lorsque la fenêtre ne contient plus que
ce dernier numéro de bloc i et qu’une demande d’allocation d’un bloc arrive, la fenêtre est
remplie de nouveau avec le contenu du bloc i et ce bloc i est alloué pour satisfaire la requête.
L’état de la fenêtre est alors à nouveau « plein » et permettra de satisfaire d’autres requêtes
futures d’allocation. Si, par contre, lors d’une libération d’un bloc j, la fenêtre est trouvée
pleine, le bloc libéré j est rempli avec le contenu de la fenêtre (pleine) et la fenêtre ne contient
plus alors, qu’à sa base, le numéro du bloc libéré j. A partir de cet état, d’autres blocs libérés
peuvent donc être à nouveau empilés dans la fenêtre.
L’usage d’un fichier obéit à une sorte de protocole standard constitué d’une séquence
d’appels de primitives.
Si ces deux conditions sont satisfaites, le fichier n’est plus utilisé et plus utilisable
puisqu’anonyme. Par conséquent, le noyau peut récupérer (libérer) les éléments intervenant
dans la représentation du fichier, en l’occurrence, son descripteur et les blocs contenant les
données du fichier.Cette approche consistant à automatiser une opération en confiant cette
opération au noyau plutôt qu’à l’usager est un principe fondamental pour la gestion des objets
partagés rémanents. Rappelons que le même principe est adopté pour la destruction des
pipes par exemple.
Cette optimisation consiste, en entrée, à « prévoir » les données qui vont être lues par les
processus : de cette façon, lorsque le processus émet une demande de lecture, l’opération
peut être très rapide puisque réduite à une recopie en mémoire centrale d’une zone source
à une zone destination. Cette approche est réalisable dans tous les cas d’accès séquentiel à
l’information.
101
Introduction aux systèmes d’exploitation
En sortie, lorsqu’un processus émet une requête d’écriture, celle-ci se traduit par l’écriture des
données dans un tampon (des tampons) mémoire(s) du noyau. Ainsi, le noyau pourra optimiser
l’exécution de ces requêtes d’écriture, notamment en les ordonnançant de manière la plus
efficace en terme de temps d’exécution.Dans les deux cas, le noyau utilise un espace mémoire
composé de blocs de taille adaptée aux caractéristiques physiques des disques. Cet espace,
appelé cache, est partagé entre les processus demandeurs et les processeurs d’entrées/sorties
qui exécutent les échanges.Ce type de gestion des échanges n’exclut pas l’usage de primitives
exécutant les accès de manière directe sans passer par des caches.
Conclusion
L’intégration des ressources physiques dans l’espace logique des fichiers présente deux
avantages : même règles de désignation des ressources matérielles et des fichiers, mêmes
règles d’accès accès aux ressources matérielle qu’aux fichiers.
Il existe une très grande diversité de périphériques. Il est possible de les caractériser
(mais aussi distinguer) par leurs propriétés : capacité, vitesse de transfert, support final
de l’information, sens des échanges, mode de transfert (par bloc ou par octets). On peut
considérer qu’il existe 2 classes de périphériques : les périphériques de stockage et ceux
d’entrée et de diffusion des données. Le volume, support de stockage de fichiers, contient
une table de descripteur de fichiers. Le numéro du descripteur permet d’accéder au fichier
concerné. Sous Windows, l’implantation utilise une table de carte tandis que sous Unix on a
une carte dans chaque descripteur de fichier.
Évaluation de l’activité
Question 1 :
Question 2 :
Question 3 :
102
Unité 4. Gestion des périphérique et système de fichiers
Résumé de l’unité
On désigne par périphérique tout matériel connecté à l’ordinateur. Ils sont en grand nombre et
leur nombre ne cesse d’augmenter. Les périphériques peuvent être classés en plusieurs
catégories en fonction de leur nature, en tenant comptes des informations manipulées, de la
durée de connexion aux ordinateurs, etc. Les périphériques présentent des vitesses de
fonctionnement différentes. Les ordinateurs possèdent des interfaces permettant de gérer
l’ensemble de ces périphériques.Les utilisateurs communiquent avec la machine par
l’intermédiaire de ces périphériques. Ils stockent leurs données sur les fichiers et peuvent
exploiter les données stockées dans ces fichiers.
Le système de fichiers réside de façon permanente sur les dispositifs de stockage secondaires,
la plupart du temps sur des disques conçus pour contenir une grande quantité de données de
manière permanente. L’espace disque est alloué aux fichiers à travers différents mécanismes.
Les routines de gestion doivent tenir compte de l’efficacité, la performance et la fiabilité des
systèmes de
103
Introduction aux systèmes d’exploitation
Objectifs
A la fin de cette unité l’apprenant devra être en mesure de:
Mots-clés
Sécurité informatique: La sécurité des systèmes d’information est
l’ensemble des moyens techniques, organisationnels, juridiques et
humains nécessaire et mis en place pour conserver, rétablir, et garantir la
sécurité du système d’information.
Attaque: Une attaque est une exploitation d’une faille d’un système
104
Unité 5. Sécurité et protection
Introduction
Les ordinateurs les plus sécurisés sont ceux qui ne sont pas connectés à l’Internet. Dès lors
que l’ordinateur est connecté sur Internet c’est une brèche à de nombreuses attaques. Alors
devrons-nous abandonner de connecter nos ordinateurs à l’Internet ? La réponse est certes
non. Alors comment peut-on travailler en mode connecté et garantir la sécurité des données
et des applications ? Quelles sont les principales attaques dont on est le plus souvent cibles ?
L’ensemble de ces question sont traités dans cette activité ?
Concepts de sécurité
Les principaux concepts auxquels s’appuie la sécurité des données sont :
La confidentialité : C’est garantir que l’accès aux données est fait par l’utilisateur concerné.
Une des techniques qui permettent de de garantir la confidentialité est la cryptographie.
Intégrité : C’est le fait de protéger les données contre des modifications malveillantes.
Le mécanisme de protection à mettre en place doit tenir en compte des menaces qu’encoure
le système. Par menace on désigne tout évènement potentiel susceptible de provoquer un
effet indésirable sur le système. Pour les données ça concerne essentiellement la modification,
l’ajout, la suppression, la copie par des personnes/programmes qui ne le devraient pas.
105
Introduction aux systèmes d’exploitation
https://www.google.com/search?q=Alexandre+viardin&ie=utf-8&oe=utf-8
Conclusion
La sécurité du système concerne les ressources qui composent le système. Les principes en
rapport avec les mécanismes de sécurité ont été exposés dans cette activité. Les différentes
attaques possibles passent par les failles des systèmes. Certaines attaques produisent
immédiatement des effets indésirables (exemple : suppression, des données, modifications de
données,..). Dans tous les cas des précautions doivent être prises pour les éviter.
Évaluation de l’unité:
1. Qu’est-ce qu’une menace ?
3. En vous appuyant sur les éléments présentés dans cette activité et sur le
guide de sécurité d’Alexandre Viardin (https://www.google.com/search?q=Alexa
ndre+viardin&ie=utf-8&oe=utf-8) discuter des conseils à tenir pour la sécurisation
de base.
Introduction
L’activité précédente a été une occasion de passer en revue les principales menaces et failles
d’un système. Dans cette activité, nous allons voir les principales attaques dont fait l’objet le
système.Un système peut être attaqué par des situations différentes agressions qui testent sa
vulnérabilité. Les attaques peuvent être d’ordre physique qui consiste à voler ou physiquement
les ressources du système d’endommager ou de logique qui consiste à utiliser les programmes
malveillants et les ressources des systèmes de dégâts. Les attaques peuvent venir de l’intérieur
comme de l’extérieur.
106
Unité 5. Sécurité et protection
Le virus est un programme qui se réplique en se fixant avec un autre programme et causant
des lésions sur les ressources du système. L’attaquant distribue le virus en l’attachant à
un programme attrayant qui est plus susceptible d’être utilisé par les utilisateurs (jeux,
applications gratuites, etc.). Après avoir pénétré dans le système, le virus reste inactif jusqu’à
ce que le programme infecté soit lancé et quand il commence, il commence à affecter d’autres
programmes du système. Les virus sont de types différents en fonction de leurs propriétés et
des procédés d’activation. Prévenir un virus de pénétrer dans un système sur la première place
est une solution idéale pour protéger un système à partir d’une attaque de virus qui est très
difficile, voire impossible, de le faire à l’époque des systèmes en réseau. Donc, la meilleure
alternative à la protection de virus pourrait être la détection d’un virus, une fois détecté
identifier son type, et ensuite essayer de le retirer du système ou en cas d’impossibilité retirer
l’ensemble du programme concerné. Celles-ci sont réalisées par des programmes spéciaux
connus sous le nom antivirus. Les programmes antivirus sont utilisés pour protéger le système
d’être affectés par des virus. Un antivirus maintient définition de virus qui est le code pur
des virus. L’antivirus inspecte ensuite les fichiers exécutables du système pour vérifier s’il y a
un code correspondant à la définition de virus. Si oui, ils essaient de fixer le programme en
supprimant le code du virus.
107
Introduction aux systèmes d’exploitation
Un worm est similaire à un virus, sauf qu’il a la capacité de se répliquer et n’a pas besoin de
se fixer sur d’autres programmes à se reproduire. C’est un programme indépendant qui se
propage via des connexions réseau.
Conclusion
Les attaques du système peuvent être soit internes (arrive après que l’utilisateur se connecte
avec succès) ou externe à partir d’un endroit éloigné en particulier dans les systèmes en réseau.
Le cheval de Troie, la bombe logique, l’usurpation d’identité, dépassement de mémoire
tampon sont quelques-unes des attaques de l’intérieur du système alors que les virus, les vers,
les codes mobiles sont des attaques provenant de l’extérieur du système.
Évaluation de l’activité
Comment le débordement de tampon attaque-t-il un système?
Donner les solutions pour protéger le système contre les attaques de vers?
Quelle est la différence entre une attaque interne et une attaque externe ?
Introduction
108
Unité 5. Sécurité et protection
La cryptographie
Un message est significatif quand il est lisible (écrit dans des caractères que l’on comprend).
La cryptographie est un mécanisme qui consiste à transformé une donnée (un texte par
exemple) qui était alors claire (facile à déchiffrer) en une donnée (code) difficile à déchiffrer.
Cela suppose qu’à la réception du message, le destinataire doit être à mesure de décrypter le
message. La transformation des données à transmettre dans des codes indéchiffrables (pour
les non destinataires) est appelé le cryptage tandis que la transformation du code reçu en le
message d’origine s’appelle le décryptage.
ftp://ftp.pgpi.org/pub/pgp/6.5/docs/french/IntroToCrypto.pdf
Pour les données non biométriques en l’occurrence le nom utilisateur et le mot de passe, il
est conseillé de les changer régulièrement. Il est conseillé de créer des mots de passe long,
comprenant plusieurs types de caractères (lettes, chiffres, caractères spéciaux, majuscules
minuscules). Remarque : Pour un mot de passe compliqué, les utilisateurs ont tendance à les
écrire soit dans un carnet sur la table, les coller sur les murs etc. ; D’où ce qui était une force
devient une faiblesse. Les utilisateurs doivent être sensibilisés pour ce qui est de la sécurité du
système informatique de leur organisation.
Enfin notons également que le contrôle d’accès physique est un élément important des
mécanismes de sécurité du système informatique.
Conclusion
Un système informatique a besoin de se protéger contre les accès non autorisés et illégitime.
Pour ce faire, il définit divers mécanismes de protection du système dont la cryptographie,
l’authentification des utilisateurs et sans doute aussi le contrôle d’accès physique aux
équipements.
Évaluation de l’activité
En quoi consiste la cryptographie?
Quelles sont les règles à tenir en compte dans le choix d’un mot de passe.
109
Introduction aux systèmes d’exploitation
Résumé de l’unité
Les systèmes d’exploitation sont menacés de plusieurs manières (virus provenant de l’extérieur
et les crackers). L’autre menace des données d’une entreprise est son propre personnel. Nous
avons au cours de cette unité d’apprentissage abordé les principaux thèmes en rapport avec la
protection des données. Nous nous sommes rendu compte qu’il est possible de concevoir des
systèmes sécurisés mais à côté de cela une politique de sécurité doit être adoptée au sein de
chaque organisation afin de mieux protéger ses données. Les membres du personnel doivent
être sensibilisés afin que chacun comprenne les enjeux en rapport avec la sécurisation de leurs
données.
Évaluation de l’unité
Parler de la menace et de la politique de sécurité.
110
Unité 6. Thèmes spéciaux
Introduction
Avant d’installer le SE il est indispensable de connaître ses exigences (mémoire RAM, taille du
disque dur, processeur, etc.). Au cours de cette activité, nous allons passer en revue tout ce
qu’il faut pour bien installer et configurer les SE. L’installation pourra se faire soit à partir d’une
clé USB, d’un CD ou DVD, raison pour laquelle nous allons commencer par la configuration du
bios afin que l’ordinateur puisse démarrer sur, une clé USB, le CD ou DVD d’installation.
Mémoire RAM: Chaque SE a une exigence en matière de mémoire RAM minimale requise. Il
faut s’assurer que la mémoire RAM a une taille supérieure ou égale à celle requise.
Taille du disque dur: Chaque SE a une exigence en matière de la taille de disque minimale
requise. Il faut s’assurer que l’espace mémoire disque disponible est suffisant pour le SE à
installer.S’assurer que le matériel sur lequel vous voulez installer le SE possède des pilotes
compatibles avec le nouveau système que vous voulez installer. De préférence, visitez le site du
constructeur de votre matériel avant d’installer votre système. Utiliser l’adresse MAC de votre
système ou le numéro de sériel de votre matériel pour que vous puissiez avoir des précisions
sur le système à installer et la compatibilité du matériel avec celui-ci.
111
Introduction aux systèmes d’exploitation
Bios AMI :
En utilisant les touches de direction, choisir le menu Boot et indiquer la priorité du boot.
112
Unité 6. Thèmes spéciaux
Afin de modifier le premier media de boot, validez de nouveau avec la touche “Entrée”
(Return) : vous accédez à cette zone. Utiliser les touches de direction afin de mettre en
surbrillance l’option souhaitée.
Une fois le choix opéré, valider de nouveau avec la touche entrée. Le premier média de boot
devient alors celui que vous avez choisi (CDROM pour le cas ci-contre).
Une fois toutes les modifications faites valider vos choix en appuyant sur la touche F10 afin de
sauvegarder les modifications faites. Une demande de confirmation va apparaître. Confirmer la
demande en appuyant sur la touche entrée.
113
Introduction aux systèmes d’exploitation
Bios AWARD :
Utiliser les touches de direction de votre clavier pour vous déplacer dans les menus. Choisir
BIOS FEATURES SETUP et appuyer sur la touche entrée. Les différentes options pour cette
catégorie de BIOS apparaissent.
114
Unité 6. Thèmes spéciaux
Pour ordonner les séquences de boot, sélectionner la ligne « Boot Sequence » et appuyer sur
le bouton “+” (extrémité droite de votre clavier) afin de faire apparaître l’option “CDROM, C, A
La présentation de ce menu peut varier : suivant les versions de bios AWARD, vous
rencontrerez trois lignes intitulées “First Boot Device”, “Second Boot Device” et “Third Boot
Device” au lieu d’une seule ligne “Boot Sequence”. Dans ce cas de figure, positionnez l’option
“CDROM” pour le “First Boot Device” et l’option “Hard Disk” pour le “Second Boot Device”
Une fois les modifications terminées, appuyer sur la touche « Echap »ou « Esc » en fonction du
clavier. La demande de sauvegarde des modifications faites apparaît.
115
Introduction aux systèmes d’exploitation
Après que vous ayez quitté le bios en sauvant, la machine reboote et vous déclare quelque
chose dans ce style :
Placez alors le CD ou DVD d’installation du système d’exploitation dans le lecteur puis appuyez
sur le bouton reset en façade. Après quelques instants l’installation du système d’exploitation
se lance automatiquement. Si le message « Appuyez sur n’importe quelle touche pour
démarrer à partir du CD-ROM » apparaît, suivez cette instruction pour démarrer l’installation
de votre système d’exploitation et suivez les instructions montré sur l’écran au cours de
l’installation.
Chaque fois que le besoin se fait sentir on peut modifier les paramètres de l’ordinateur
(changement de résolution, personnaliser l’écran de verrouillage, gérer les périphériques, etc.).
Dans les systèmes Windows toutes ces tâches se font dans le panneau de configuration. Pour
trouver le panneau de configuration dans Windows 8 par exemple, mettre le pointeur de votre
souris dans le coin inférieur gauche de votre écran puis cliquer sur le bouton paramètre.
116
Unité 6. Thèmes spéciaux
NB : un compte administrateur est requis pour modifier les configurations qui affectent le
système en entièreté.
Conclusion
Tout au long de cette activité d’apprentissage, nous avons passé en revue la manière d’installer
le SE. Pour cela, nous avons vu qu’il faut d’abord vérifier les exigences du SE. Par la suite le
choix des options de démarrage s’impose. Une fois le choix des options de démarrage fait, la
machine redémarre et l’installation commence. Il ne reste qu’à suivre l’assistant d’installation
pour installer le SE. Des modifications de configuration peuvent être faites en passant par le
panneau de configuration.
117
Introduction aux systèmes d’exploitation
Évaluation de l’activité
Exercice1 :
Exercice2 :
Indiquer les étapes de choix des options de démarrage pour les deux catégories
de Bios vu dans le cours.
Exercice3 :
Introduction
Un système d’exploitation en temps réel est la catégorie d’un système d’exploitation qui est
utilisé pour gérer des applications en temps réel. C’est-à-dire que pour de tel système l’on a
besoin d’une réponse correcte et dans un temps très court. Ce genre de système possède des
spécificités autres que celles déjà vues dans les unités précédentes. Cette activité consiste en
un aperçu sur les systèmes temps réels.
La plupart des systèmes en temps réel sont utilisés dans des environnements exigus qui place
également une limitation de CPU et de mémoire pour ces systèmes. Comme ces systèmes
sont aussi le plus souvent utilisés avec les appareils ménagers et les appareils grand public qui
sont fabriqués en masse dans des environnements de coûts conscients, les processeurs de ces
systèmes doivent également être fabriqués par un coût moindre. Enfin, l’exigence de temps
une caractéristique qui définit un système en temps réel qui permet de réagir aux événements
en temps opportun. En général, un système en temps réel a trois exigences principales :
118
Unité 6. Thèmes spéciaux
3. Vitesse: Le système d’exploitation doit être rapide dans toutes les réponses,
ce qui est important dans la pratique.
• La plupart des systèmes en temps réel sont système conçu pour servir une seule
tâche. De tel système ne connaissent pas la notion d’utilisateur. Le système prend
en charge tout simplement un petit nombre de tâches, qui obtient souvent son
entrée à partir de périphériques tels que des capteurs.
• Il est impossible de donner aux systèmes d’exploitation temps réels, les
fonctions prises en charge par les systèmes d’exploitation de bureau standard
sans processeurs rapides et des quantités abondantes de la mémoire qui sont
indisponibles dans les systèmes en temps réel.
• Le soutien des caractéristiques communes dans les systèmes de bureau standard
par les systèmes en temps réel les rendrait coûteux et économiquement
impraticable.
• Les domaines d’application des systèmes temps réels sont de plus en plus variés,
on en trouve dans : l’électroménager, transport, télécommunication, guichet
automatique, etc.
Pour plus de détails sur les systèmes temps réels, consulter les liens ci-dessous :
https://www.irit.fr/~Zoubir.Mammeri/Cours/M1ASTRE/Chapitre1.pdf
http://lanteri.isabelle.perso.sfr.fr/files/noyau1.pdf
http://perso-etis.ensea.fr/miramond/Enseignement/M1/IE/Cours/CoursAndry_TR.pdf
Conclusion
Les systèmes temps réels sont des systèmes à forte contrainte de temps et de réponse. Ils
sont généralement intégrés à des types particuliers de dispositifs mais ils peuvent également
être exécuté sur du matériel traditionnel. Les exigences des systèmes temps réels diffèrent de
celles des systèmes classiques. Les systèmes temps réels sont généralement conçus pour une
activité spécifique.
119
Introduction aux systèmes d’exploitation
Évaluation de l’unité
Définir un système un système temps réel.
Activité 3. Virtualisation
Comment exécuter plusieurs SE sur une même machine ? Comment les machines virtuelles
fonctionnent-elles ?
Introduction
Définition
Les termes de “virtualisation” et “virtualiser” sont des termes récents, vous ne les trouverez
pas dans des dictionnaires ayant quelques années d’existence. Tout ce que vous pourrez
trouver, c’est “virtuel” et “virtuellement”. Vous comprendrez aisément le sens de ces 2
nouveaux mots, il s’agit de rendre virtuel.
On peut virtualiser :
• Les serveurs,
• Les applications,
• Les postes de travail,
• Les réseaux (Vlan)
• Les bureaux,
• …
• VMWare annonce la virtualisation des “datacenter”.
Avec la virtualisation aisément que virtuel, veut dire que ce n’est pas réel. C’est facile à
comprendre, mais en le précisant, ça a le mérite de le remettre en mémoire. La grande
question qui se pose est de savoir comment on se sert de ces éléments virtuels. Sans doute
c’est de la même manière que les éléments physiques.
120
Unité 6. Thèmes spéciaux
Comment se fait-il ?
On prend un serveur physique sur lequel on va installer un logiciel spécial.Les éditeurs les plus
connus étant : VMWare avec VSphere, VirtualBox et ses ESXi, et Microsoft avec son système
Hyper-V.
Comment ça marche ?
Ce logiciel va faire croire aux autres systèmes qu’ils fonctionnent sur des machines physiques,
en leur mettant à disposition :
• de la RAM,
• de la puissance CPU,
• de l’espace disque,
• une ou plusieurs cartes réseaux,
• …
Ainsi lors de l’installation, le SE ne verra pas s’il est installé en direct sur une machine physique
ou s’il est installé sur une machine virtuelle.
Comme le montre la figure ci-dessous, sur cette machine physique (ordinateur) il est installé un
système d’exploitation (OS) sur lequel on installe un ou plusieurs logiciels qui ont chacun une
ou plusieurs fonctionnalités ou rôles qui rendent des services.
121
Introduction aux systèmes d’exploitation
Dans ce schéma, une couche OS (Operating System) est mise sur l’ordinateur physique.
Cette couche OS est parfois intégrée directement dans le logiciel d’hypervision tel qu’ESXi
de VMware.Dans ce schéma, il n’y a qu’un seul ordinateur physique, en réalité on va mettre
plusieurs ordinateurs physiques, car si l’un tombe en panne, les autres se distribueront le
travail qui lui était attribué. C’est un hyperviseur qui va faire fonctionner l’ensemble.
Un hyperviseur est la plateforme mettant à disposition des machines virtuelles (celles-ci peut
être constitué ou non d’ordinateur physiques mais constitué du matériel, de l’OS et du logiciel
d’hypervision).
Pourquoi virtualiser ?
En regardant bien le travail des serveurs, on se rend compte que la plupart du temps, ceux-ci
attendent de répondre à une demande. Ensuite, ils répondent à cette demande en peu de
temps, et retourne ensuite à l’état d’attente.En virtualisant, on va ainsi mutualiser ces temps
d’attente, et un serveur (physique) sera plus sollicité car il répondra à plus de requêtes en
même temps (requêtes traitées par les serveurs virtuels).
On pourrait se dire que le serveur (physique) ne pourra pas répondre à toutes les requêtes
en même temps. C’est partiellement vrai : C’est vrai, qu’il ne peut pas répondre à toutes les
requêtes en même temps, mais les serveurs récents étant constitués de plusieurs cœurs chacun
pouvant traiter ses propres opérations, il y répondra en même temps en attribuant le travail à
chacun de ses cœurs. Et pour celles qu’il ne peut pas traiter en même temps, il y répondra si
vite qu’on aura l’impression qu’il a répondu en même temps que les autres.
122
Unité 6. Thèmes spéciaux
Sans la virtualisation, il faut installer un serveur physique pour chaque système ou type de
serveur. On se rend bien compte qu’entre le temps d’achat du serveur, de la livraison, de
l’installation : il peut s’écouler plusieurs jours. En virtualisant les serveurs, ils peuvent être
opérationnels en quelques minutes seulement.Un serveur physique est constitué de matériels
électriques et électroniques, nous savons tous que cela peut tomber en panne. Il faut donc
surveiller l’ensemble de ces systèmes. L’intérêt de la virtualisation est de s’appuyer sur
quelques machines physiques, cela en fait beaucoup moins à surveiller. De plus, les systèmes
hyperviseurs sont en général redondés, lorsqu’un serveur physique tombe en panne, c’est les
autres serveurs qui prennent le relais. De plus, la surveillance, l’administration et l’exploitation
sont centralisées.
Et enfin, en cette période, où nous devons faire des économies d’énergie pour protéger notre
planète, les infrastructures virtualisées sont beaucoup moins gourmandes en électricité et en
climatisation qu’un ensemble de serveurs physiques. (Un seul serveur physique consomme
moins que plusieurs).La virtualisation est très utilisée dans le cloud car elle permet de fournir
de la puissance de calcul et de stockage à la demande.
L’installation
L’installation se déroule sans difficulté, il suffit de laisser tous les paramètres par défaut. Cette
dernière terminé, lancez VirtualBox. Vous vous retrouvez face à la fenêtre principale du logiciel.
Elle est divisée en deux parties: la liste des machines virtuelles (vide pour le moment) et les
détails de la machine virtuelle sélectionnée à droite.
123
Introduction aux systèmes d’exploitation
Cliquez sur « Nouvelle » et sur la fenêtre qui s’ouvre, cliquez sur suivant.
Maintenant, nommez votre machine virtuelle et choisissez l’OS correspondant à celui que vous
installerai par la suite. Pour notre cas, se sera Linux – Debian.
124
Unité 6. Thèmes spéciaux
Ensuite choisissez votre quantité de mémoire vive alloué à la machine virtuelle. Surtout, évitez
de prendre plus de la moitié de la quantité de mémoire vive réelle pour éviter une perte de
performance trop importante pour votre ordinateur.
Ceci fait, laissez « Créer un nouveau disque dur » coché puis cliquez sur suivant. Une nouvelle
fenêtre s’ouvre, c’est l’assistance de création de disque virtuel. Cliquez sur suivant. Vous avez
alors le choix entre « Image de taille variable » qui vous permet d’économiser de l’espace sur
votre disque en utilisant juste la quantité de mémoire utile au système virtuel ou « Image de
taille fixe » qui vous permet d’être sûr de ne pas manquer d’espace sur votre disque dur réel
pour le disque virtuel mais cette option est plus longue à la création. Je choisi la première
solution.
125
Introduction aux systèmes d’exploitation
Choisissez ensuite le chemin de destination du disque virtuel ainsi que sa taille tout en ne
dépassant pas la quantité de mémoire disponible. Je prends 160Go, la taille du disque dur de
notre serveur réel qui accueillera le système.
126
Unité 6. Thèmes spéciaux
Nous allons nous intéresser ici principalement à deux modes: le « NAT » et l’« accès par pont ».
Le mode « NAT »
C’est le mode que VirtualBox vous propose par défaut. C’est aussi le mode le plus simple à
utiliser car il ne demande aucune configuration de votre part et vous êtes sûr que ça marchera
du premier coup! Cependant ce mode ne vous permettra que d’accéder à internet et non au
réseau local.
Ce mode permet de créer un pont entre votre connexion physique et votre machine virtuelle.
Vous obtenez ainsi une IP pour votre machine virtuelle différente de votre machine réelle. Vous
pourrez travailler sur votre serveur comme si c’était une véritable machine sur votre réseau.
Il est conseillé donc d’utiliser ce dernier mode plus utile pour notre serveur virtuelle que le
premier!
Une assistance de premier lancement se lance. Cliquez sur suivant. Vous devez maintenant
choisir un média d’installation. Vous avez la possibilité de choisir un lecteur optique de
votreordinateur ou de lancer une image iso. Pour cette dernière solution, cliquez sur le petit
dossier avec une flèche verte dessus.
Cette action vous ouvrira le « Gestionnaire de médias virtuels ». Dans celui-ci, cliquez sur «
Ajouter » et recherchez l’image iso du CD d’installation du système que vous avez choisi.
127
Introduction aux systèmes d’exploitation
De retour dans l’assistance, cliquez sur Suivant puis Terminer. La machine virtuelle se lance
enfin et il ne reste plus qu’à suivre les étapes d’installation normales correspondant à
l’installation de votre système.
• VMware ;
• Hyper-V ;
• Paragon Virtualization Manager ;
• Parallels Virtuozzo Containers ;
• Parallels Server 4 Bare Metal ;
• Parallels Transporter ;
• Parallels Workstation Extreme ;
• Etc.
128
Unité 6. Thèmes spéciaux
Conclusion
Au cours de cette unité d’apprentissage, nous avons passé de long en large la notion de
virtualisation, la manière dont fonctionnent les machines virtuelles ainsi que les différentes
étapes de virtualisation via un exemple avec le logiciel Virtual Box.Ainsi, nous remarquons que
la virtualisation permet d’optimiser et d’accroître considérablement le taux d’utilisation des
ressources serveurs et postes de travail nécessaires aux entreprises.
La gestion dynamique, et non plus statique, des ressources serveurs et applicatives permet
de répondre aux besoins de plus en plus élevés de qualité de service rendue aux utilisateurs.
La virtualisation permet la réduction des coûts de maintenance et des coûts globaux
d’exploitation et de possession pouvant allant de l’ordre de 40 à 70% par rapport aux
architectures dites standards. Signalons enfin que la virtualisation permet une amélioration de
la productivité et permet une réduction de l’impact environnemental.
Évaluation de l’activité
Exercice 1 :
Exercice 2 :
Exercice 3 :
Résumé de l’unité
Dans cette unité, nous avons passé en revue l’installation et la configuration des SE.
Dans cette unité, nous avons également donné un aperçu sur les systèmes temps réel et leurs
exigences.Le dernier sujet spécial abordé dans cette unité est celle de la virtualisation. Grâce
à la virtualisation, on peut accroître considérablement le taux d’utilisation des ressources
serveurs et postes de travail nécessaires aux entreprises.
129
Introduction aux systèmes d’exploitation
Évaluation de l’unité
1. Vous voulez installer un SI et vous trouvez que la machine ne parvient pas
à démarrer sur votre CD. D’après vous ce problème est du à quoi ? Indiquer les
différentes étapes pour le corriger.
Quotation
Rappel
Critères d’évaluation
https://www.irit.fr/~Zoubir.Mammeri/Cours/M1ASTRE/Chapitre1.pdf
http://lanteri.isabelle.perso.sfr.fr/files/noyau1.pdf
http://perso-etis.ensea.fr/miramond/Enseignement/M1/IE/Cours/CoursAndry_TR.pdf
130
Unité 6. Thèmes spéciaux
131
Siège de l’Université Virtuelle Africaine
PO Box 25405-00603
Nairobi, Kenya
contact@avu.org
oer@avu.org
bureauregional@avu.org
2017 UVA