Académique Documents
Professionnel Documents
Culture Documents
d’exploitation
2020-2021 1
Plan
Introduction
Gestion de Processus
Système de gestion de fichiers
Gestion de la mémoire
Les Entrées/Sorties
2
Introduction
Système informatique
Fonctionnalités du SE
Historique
Interpréteur de commandes
3
Système informatique
4
Fonctionnalités du SE (1/3)
8
Premiers systèmes (1945−1955)
Machines à tubes à vide volumineuses, très
fragiles et très lentes
Absence de système d’exploitation
Calculs simples (tables des sinus et cosinus)
Programmation en langage machine sur des
cartes enfichables ou cartes perforées
Construction, programmation et maintenance
effectuées par un seul groupe
Système mono-usager (réservation)
Mauvaise utilisation de la CPU 9
Systèmes de traitement par lots
(1955−1965)
Machines à transistors fiables mais coûteuses
Programmation en Fortran et Assembleur
Premiers logiciels de base : chargeur et
compilateur Fortran
Distinction entre opérateurs, constructeurs,
programmeurs et utilisateurs
Soumission des travaux
Enchaînement des travaux par l'opérateur
Inactivité de la CPU lors de la préparation
Apparition de la multiprogrammation 12
Multiprogrammation
Exécution d'une autre tâche si celle en cours
attend une E/S
Travail1
Partitionnement de la mémoire Travail2
(plusieurs tâches à la fois en MC)
Ordonnancement des travaux …
SE
Systèmesnon interactifs
Systèmes à temps partagé
13
Systèmes à temps partagé (time sharing)
Partage de l'UC entre plusieurs tâches par
quantum de temps Traitement "simultané"
Plusieurs utilisateurs connectés en ligne sont
servis à la fois de façon interactive
Systèmes d’exploitation complexes
CTSS
MULTICS (MULTiplexed Information and
Computing Service) ancêtre d'Unix
Unix (le plus porté)
14
Systèmes des ordinateurs personnels
(1980-1990)
15
SE en réseaux et SE répartis
SE en réseaux (Windows, Linux…)
Chaque machine a son propre SE
Connexion à des machines distantes, transferts
de fichiers
Machine utilisée par plusieurs utilisateurs
SE répartis ou distribués
Système réparti sur un domaine
1 Machine virtuelle (à plusieurs processeurs)
Systèmes transactionnels
Gestion des bases de données énormes (systèmes
de réservation, systèmes bancaires…)
garantir des mises à jour sans incohérence
19
Classes des systèmes
Selon l'architecture matérielle
Systèmes mono-processeur
Multiprogrammés et à temps partagé (pseudo-
parallélisme)
Systèmesparallèles : multiprocesseurs
(SunOS 4, SunOS 5, Solaris 2 et Linux)
Traitement parallèle par plusieurs processeurs
Grande capacité de traitement, temps de
réponse court et fiabilité
20
Modes d'exécution
Mode utilisateur : non protégé
Exécution des programmes des utilisateurs
Permet à l'utilisateur de modifier des données de
son programme
Notions de processus
Gestion de processus
Ordonnancement de processus
23
Notions de processus
Processus=programme en cours d'exécution
25
Systèmes à temps partagé
26
Etats d'un processus
Actif (élu)
s'il est en cours d'exécution par le processeur
Prêt
who | wc -l
Le processus wc se bloque en attente des
résultats du processus who
3 Actif
1
Bloqué Prêt
4
29
Exemple de transitions d'états
Processus A Processus B Processus C
Exécution
Lecture du fichier Exécution
Données disponibles Exécution
Exécution Affichage à l'écran
Exécution
Ecriture fichier Exécution
Exécution Données transférées Fin du processus
Lecture du fichier Exécution
30
Exemples de processus
l’avait interrompue
Gestion de processus
36
Interruptions
Une interruption est provoquée par un signal
généré par le matériel
Les interruptions sont dues à des événements
internes ou externes et peuvent être de type :
Horloge (Quantum épuisé)
Disque (E/S)
Appel système fait par le processus…
N° d'interruption Type
0 Horloge
1 Disque
2 Terminaux
3 Autres périphériques
4 Logicielle (Traps)
5 Autres
38
Appels systèmes
Unappel système est un moyen d'accès aux
données sensibles protégées par le système
(mémoire, disque…)
Identification
int getpid(void) : identité du processus courant
int getppid(void) : identité du processus père
Création :
int fork(void) : crée un processus fils et retourne
-1 en cas d’erreur
40
Appels système pour la gestion de
processus sous Unix (2/3)
Terminaison
void exit(int ) : termine le processus appelant et
met la valeur int dans son PCB
Attente :
int wait(int *) : provoque une attente de la fin
d’un processus fils et retourne
-1 si le processus n'a pas de fils
42
Ordonnancement (scheduling)
L'ordonnanceur élit un processus prêt selon
un algorithme
L'algorithme doit garantir :
Equité
Efficacité (Taux d’utilisation )
Temps de réponse minimal
Temps moyen d'exécution minimal (Attente )
Rendement maximal (Travaux effectués )
2 types d'ordonnancement : avec réquisition
et sans réquisition
43
Ordonnancement et algorithmes sans
réquisition
Un processus n'est élu qu'après terminaison
ou blocage du processus courant
Appliqué dans des systèmes de traitement
par lot
Premier arrivé, premier servi
File d'attente ordonnée selon l'ordre d'arrivée
Plus court d'abord
Suppose que les temps d'exécution sont connus
d'avance
File classée par lots de processus arrivés au
même instant
44
Ordonnancement avec réquisition
Suspension du processus courant suite à une
interruption horloge (expiration du quantum)
ou une autre interruption matérielle
46
Algorithmes avec réquisition (2/2)
Avec priorité
Les processus sont rangés par classes de
priorité
Les processus de la classe de haute priorité
sont exécutés en premier
A chaque classe correspond une file d'attente
gérée par l'algorithme du tourniquet
En général, les priorités sont dynamiques afin
d'éviter le monopole de l'UC
47
Ordonnancement dans Unix
out=3 fichier3
Fichiers à imprimer classés dans un
4 fichier4
répertoire dans l'ordre de leur arrivée 5 fichier5
in=6
52
Règles de la synchronisation
Exclusion mutuelle
Famine : Aucun processus ne doit attendre
trop longtemps pour entrer en SC
Interblocage : Aucun processus suspendu en
dehors des sections critiques ne doit bloquer
les autres
Aucune hypothèse sur les vitesses relatives
des processus
53
Solutions pour la synchronisation
Masquage des interruptions
Alternance
Alternance de Peterson
Dangereuse
Inéquitable
55
Solutions avec attente active :
Les verrous
Algorithme :
1- while (verrou == 1) ; /*Attente active*/
2- verrou=1 ; /*Verrouillage*/
3- section_critique();
4- verrou=0 ; /*Déverrouillage*/
Attente active : un processus ne pouvant
entrer en SC utiliserait l’UC inutilement
Deux processus se trouvent à la fois en SC :
Si le système est multi-processeur
S'il y a interruption entre 1 et 2
Entrer_en_SC :
TSL reg,verrou ;met la valeur du verrou dans le
;registre et la remplace par 1 en
;mémoire si elle est nulle
CMP reg,0 ;Teste si verrou est libre
JNZ Entrer_en_SC ;Boucle si verrou non libre
CALL Section_Critique
Simple et facile
Famine si le tour est cédé à un processus non
intéressé immédiatement par la SC
Interblocage si le tour est cédé à 1 processus
bloqué 58
Solutions avec attente active :
Solution de Peterson (1981)
Section_critique();
interesse[ps]=0;
Attente active
Processus prioritaire est mis en attente si
l'autre est intéressé et a le tour
60
Solutions sans attente active
Les sémaphores
Les moniteurs
61
Exemple du Producteur/Consommateur
Producteur : Vérifie si le tampon est plein
Consommateur : Vérifie si le tampon est
vide
Le producteur informe le consommateur en
attente d'un objet dans le tampon
Le consommateur informe le producteur en
attente d'un emplacement vide
Deux processus ne doivent accéder
simultanément au tampon
62
Exemple du Producteur/Consommateur
Algorithme du producteur
while (1) {
produire_objet(…) ;
if (compteur == N) sleep () ; /*Si tampon plein*/
while (verrou == 1) ; /*attendre l'accès au tampon*/
verrou=1 ; /*Verrouillage d'accès au tampon*/
mettre_objet(…) ;
verrou=0 ; /*Déverrouillage*/
compteur ++;
if (compteur == 1) /*Si le tampon était vide*/
wakeup(consommateur) ;
}
63
Exemple du Producteur/Consommateur
Algorithme du consommateur
while (1) {
if (compteur == 0) sleep() ; /*Si tampon vide*/
while (verrou == 1) ; /*attendre l'accès au tampon*/
verrou=1 ; /*Verrouillage d'accès au tampon*/
retirer_objet(…)
verrou=0 ; /*Déverrouillage*/
compteur -- ;
if (compteur == N-1) /*Si le tampon était plein*/
wakeup (producteur) ;
consommer_objet(…) ;
}
64
Chapitre 3 : Système de Gestion de
Fichiers
Introduction
Organisation du disque
65
Introduction
68
Types de fichiers
Fichiers ordinaires
contiennent les données des utilisateurs
Répertoires
sont des regroupements de fichiers et/ou d'autres
répertoires
69
Fichiers ordinaires
Types
Fichiers Texte : lignes de codes ASCII
Fichiers binaires à différentes structures
internes (fichiers exécutables, archives…)
Opérations
Création/Suppression
Lecture/Ecriture,
Ouverture/Fermeture,
Entête
Taille code Taille Date Propriétair
données e
Entête
Protection Taille
Taille BSS Taille table
symboles Module object
Entête
Code
Module object
Données
Entête
Numéros de ligne
Module object
Table des symboles
Fichier exécutable Fichier d'archive 71
Attributs de fichiers
Différents attributs
Type
Nom
Taille
Propriétaire
Dates (création, dernière modification, dernier
accès…)
Protection (droits d'accès : lecture, écriture,
exécution)
...
72
Attributs de fichiers sous Unix
$ ls −l
−rw−r−−r−− 1 c1 cours 342 Oct 18 15:28 fichA
Nom
Date de modification
Taille
Groupe
Propriétaire
Liens
Droits d'accès des autres
Droits d'accès du groupe
Droits d'accès du propriétaire
Type (-, d, b ou c)
73
Opérations sur les fichiers sous Unix
mv fichier1 fichier2
rm fichier
74
Typages et extensions de fichiers
Typage fort (MS-DOS)
L'extension (.txt, .dat, .exe…) est nécessaire
pour déterminer la nature des fichiers
Un fichier dans MS-DOS ne peut être exécuté
que s'il porte l'extension .exe, .com ou .bat
76
Représentation des répertoires
Liste dont chaque entrée représente un fichier ou
répertoire,en général, par son nom, ses attributs et
le numéro de son premier bloc
B E H K M P
I J 79
Stockage des fichiers
80
Allocation contiguë
Allocation d'un nombre de blocs consécutifs
selon la taille du fichier
MS
Fichier1 Fichier2
Implémentation simple
Accès rapide
Gaspillage de mémoire (fragments inutilisés)
Compactage coûteux de fichiers
Déplacement du fichier en cas de son
extension (Réallocation mémoire)
81
Allocation non contiguë
Allocation de blocs de fichier non forcément
consécutifs
MS
Blocs du Fichier 5 6 1 2 3 4
Pas de gaspillage mémoire
Extension de fichiers sans réallocation
Trois méthodes pour retrouver les blocs
Liste chaînée de blocs
Liste chaînée indexée (des numéros de blocs)
I-noeud
82
Liste chaînée de blocs
Un bloc contient des données et un pointeur
sur le numéro (en mémoire) du bloc suivant
Pointeurs
MS
0 34 6 8 910
Premier bloc du fichier
Accès lent : parcourir tous les blocs
précédents à un bloc pour le retrouver
Les pointeurs sont stockés sur le disque
83
Liste chaînée indexée
Listechaînée de numéros de blocs : File
Allocation Table (MS-DOS et OS/2)
Entrée=N° du bloc suivant | EOF | inutilisée
Le numéro du premier bloc du fichier se
trouve dans le catalogue
EOF 4 8 1 6 9 5 EOF 2
0 1 2 3 4 5 6 7 8 9 10 11
Début du fichier1 Début du fichier2
La FAT contient une entrée par bloc (utilisé
ou non) du disque
84
Avantage et inconvénients de la FAT
85
I-nœud (Unix)
86
Structure d'un i-noeud
87
Avantages des I-nœuds
88
Stockage des répertoires
89
Exemple de répertoire Unix
90
Recherche d'un fichier sous Unix
A partir d’un chemin absolu
1. accès à la table root directory
2. accès à l’i-nœud du sous-répertoire ou fichier
3. accès au N° du bloc du sous-répertoire ou
fichier
4. si sous-répertoire aller à 2
5. chargement du i-nœud en mémoire
96
Mémorisation des blocs libres
Deux méthodes
Liste chaînée de blocs
Table de bits
97
Liste chaînée de blocs
Numéros de blocs
42 230 86
136 162 234
210 612 897
97 342 422
41 214 140
63 160 223
Répertoires
DIR * opendir (char * chemin)
struct dirent readdir (DIR * pt_repertoire)
100
Chapitre 4 : Gestion mémoire
Introduction
Monoprogrammation
Notions de pagination
101
Introduction
Mémoire Centrale :
RAM : Random Access Memory
ROM : Read Only Memory (BIOS)
BUS
102
Un gestionnaire de mémoire est nécessaire
Gestionnaire de la mémoire
Fonctions
Connaître les zones libres et utilisées
Allouer et récupérer la mémoire
Offrir de la mémoire virtuelle : Utiliser la MS
Stratégies
Monoprogrammation
Multiprogrammation avec partitions fixes
Va et vient et partitionnement dynamique
Pagination…
103
Monoprogrammation
Un seul processus à la fois et entièrement en
MC
Organisation de la MC : cas de MS-DOS
Pilotes de
périphériques en ROM
Programme
SE en RAM
Avantages
Réaliser la translation et assurer la protection
Déplacer les programmes en MC de façon
transparente
111
Va et vient (swapping) et
Partitionnement dynamique
Déplacement de processus inactifs en MS si
la MC est insuffisante pour exécuter d'autres
processus
Partitions variables
Temps
Processus3
Processus2 Processus2
Processus1
Processus1 Processus1
Processus4 Processus4
112
Partitionnement dynamique
113
Réservation de mémoire pour extension
Extension de données Extension de données et pile
Pile B
Disponible
Disponible
Données B
Processus B Utilisé
Programme B
Pile A
Disponible Disponible
Données A
Processus A Utilisé
Programme A
SE SE
114
Mémorisation des zones libres
3 stratégies :
Table de bits
Liste chaînée
Mémoire subdivisée
115
Table de bits
Diviser la mémoire en unités (quelques mots
mémoire ou plusieurs KO)
Table de bits : associer à chaque unité 1 si
elle est utilisée, 0 sinon
A B C D
11111000
11111111
11001111
Recherche lente
116
Liste chaînée
Chaîner les segments libres (H : Hole) et
occupées (P : Processus)
Chaque nœud contient l'indicateur H ou P, le
début du segment et sa longueur
A B C D
P 0 5 H 5 3 P 8 6
P 14 4 H 18 2 P 20 4
117
Gestion de la liste chaînée
Mise à jour de la liste
facile (liste triée par adresses)
Nécessite la fusion du segment libéré avec ses
adjacents libres
A X B A B
A X A
X B B
X
Différents algorithmes pour l’allocation
118
Algorithmes de gestion de la mémoire
(1/2)
1ère zone libre (First fit)
Cherche la 1ère zone de taille suffisante
Rapide (peu de recherche)
121
Exemple de gestion par subdivision
Mémoire
0 128 256 384 512 640 768 896 1Mo
Initialement
A 128 256 512
Demande 70
A B 64 256 512
Demande 35
A B 64 C 128 512
Demande 80
128 B 64 C 128 512
A libéré
128 B D C 128 512
Demande 60
128 64 D C 128 512
B libéré
256 C 128 512
D libéré
1024
C libéré
122
Subdivisions: Avantage et Inconvénient
Inconvénient : fragmentation
123
Pagination
Charger uniquement les parties nécessaires
dans des pages en MC
Adopter des techniques de pagination
Utiliser une mémoire virtuelle (MV=MC+MS)
Diviser la MV et la MC en pages
Appliquer le va et vient si la page virtuelle ne se
trouve pas en MC
Utiliser des algorithmes de remplacement