ENI-ABT-Mali Chargé de cours
Système d’exploitation Dr Yacouba GOITA
2024
Système d’exploitation
Fonctionnalités
Module4
© Copyright eni Dr Yacouba GOITA 1
OBJECTIFS
❶Multiprogrammation
❷Processus et allocation du CPU
❸Gestion de la mémoire
4 Système de fichiers
5 Programmation concurrente
© Copyright eni Dr Yacouba GOITA 2
MULTI-PROGRAMMATION
Deux processus à exécuter
Processus A
début attente attente attente fin
E/S E/S E/S
Processus B
début attente attente attente fin
E/S E/S E/S
© Copyright eni Dr Yacouba GOITA 3
Exécution sans multiprogrammation
Processus A
début attente attente attente fin
E/S E/S E/S
Processus B
attente attente attente attente
début fin
E/S E/S E/S
Exécution avec multiprogrammation
Processus A
début attente attente attente fin
E/S E/S E/S
Processus B
début attente attente attente fin
E/S E/S E/S
© Copyright eni Dr Yacouba GOITA 4
Processus A NOYAU Processus B
exécute
read / write
sauvegarde en attente
les registres
restaure les
registres
exécute
en attente
interruption
sauvegarde
les registres
restaure les
registres
en attente
exécute
© Copyright eni Dr Yacouba GOITA 5
NEW TERMINATED
admitted interrupt exit
scheduler
READY RUNNING
dispatch
completion of IO or event wait on IO or event
WAITING
Les états d'un processus
© Copyright eni Dr Yacouba GOITA 6
Process control block
pointer
process state
process number
program counter
registers
memory limits
list of open files
.
.
.
© Copyright eni Dr Yacouba GOITA 7
nouveau
travail
file d'attente des travaux
création
d'un
Disque
processus
ALLOCATION
DU CPU et SWAP
IN SWAP
stockage sur disque OUT
GESTION DES
sur disque
TRAVAUX chargement
en mémoire
transfert
sur disque
en mémoire
CPU
file d'attente CPU
E/S
© Copyright eni Dr Yacouba GOITA 8
file d'attente E / S
MULTI-PROGRAMMATION
0
NOYAU
processus # 1
0
P1
CPU processus # 2
0
P2
CPU
Translation d'adresse: logique --> physique
- lors du chargement
- à l'exécution - dynamique (matériel spécial)
Problèmes: protection et performance
© Copyright eni Dr Yacouba GOITA 9
ADRESSE LOGIQUE VS ADRESSE PHYSIQUE
0
MÉMOIRE
A quoi correspondent données 0
Processus
les adresses dans le mov ad_1, ad_2
code en mémoire ?
jmp ad_3
+ relatives au processus
CPU ad_3
+ doivent être traduites ad_1
( translation d'adresse ) MMU ad_2
adresse
© Copyright eni Dr Yacouba GOITA 10
Translation d'adresse
données
MÉMOIRE
CPU registre
+
adresse
© Copyright eni Dr Yacouba GOITA 11
Protection mémoire
données
MÉMOIRE
base
CPU
+
<
limite
adresse
© Copyright eni Dr Yacouba GOITA 12
PARTITIONS VARIABLES
Le nombre et la taille des partitions
sont variables
0
NOYAU
0
P1 P1
P2
P2
© Copyright eni Dr Yacouba GOITA 13
PAGINATION
mémoire
physique
adresse logique
0
p d mémoire
page déplacement
1
0
2
1
3
2
déplacement = adresse modulo taille des pages
no de page = adresse / taille des pages
© Copyright eni Dr Yacouba GOITA 14
ALLOCATION NON CONTIGÜE DES PAGES
mémoire physique
P1
0 P1 - 1
1 P2 - 1
P1 - 0
P2
0
1 P2 - 0
2 P2 - 2
© Copyright eni Dr Yacouba GOITA 15
TABLE DES PAGES
read only / valide /
read write invalide
Processus P1 Mémoire
0 Code A 0
0 6 ro v
1 Code B 1 10 ro v 1 Code C
2 Code C 2 1 ro v 2 Data 1
3 2 rw v
3 Data 1 4 5 rw v 3
4 Data 2 Table des pages 4 Code E
5 Data 2
Processus P2 6 Code A
0 Code D 0 7 ro v 7 Code D
1 Code E 1 4 ro v 8
2 10 ro v
2 Code B 3 9 rw v 9 Data 3
3 Data 3 4 i 10 Code B
Table des pages
11
12
© Copyright eni Dr Yacouba GOITA 16
SEGMENTATION
mémoire physique
P1
P1 - S 1
S0
P2 - S 1
S1
P1 - S 0
P2
S0
S1 P2 - S 0
P2 - S 2
S2
© Copyright eni Dr Yacouba GOITA 17
DISQUE
PRINCIPE DU CACHE
la mémoire rapide donne
l'impression qu'elle
remplace (cache) la
mémoire lente RAM
mémoire
cache
CPU
conserver dans la mémoire rapide
une partie de la mémoire lente
conserver l'information
immédiatement nécessaire
© Copyright eni Dr Yacouba GOITA 18
MÉMOIRE VIRTUELLE
▪ séparation entre
l'espace logique d'un
programme et la
mémoire physique
▪ l'espace logique peut
être plus grand que la
mémoire
▪ seulement une partie
du programme est en
mémoire
© Copyright eni Dr Yacouba GOITA 19
si la page est valide
→ alors accéder à la mémoire
sinon
→ traiter la faute de page
cas simple
→ il y a une page de libre
en mémoire
sinon
→ supprimer un processus
( swap-out )
ou faire un remplacement
de page
principe
→ garder en mémoire l'infor-
mation immédiatement
nécessaire ( active )
© Copyright eni Dr Yacouba GOITA 20
ENTRÉES / SORTIES
donnée Mémoire
CPU 0
adresse
cartes E/S
FFFF
d'interface
Disque Ruban
© Copyright eni Dr Yacouba GOITA 21
ORGANISATION DU NOYAU
PROC A PROC A
read
Procédure
N PCB PCB
E/S
O
Y
A
U DSC DSC
PILOTE 1 PILOTE 2
© Copyright eni Dr Yacouba GOITA 22
GESTION DES FICHIERS
Table des inodes et structure d'un répertoire
Disque
Répertoire Table
Super Bloc
ALPHA inode de
ALPHA Table des
inodes
Fichiers
Un fichier peut avoir plusieurs noms/chemins d'accès.
© Copyright eni Dr Yacouba GOITA 23
Commande ls
Listing court
% ls
SEEK.o io.h test1
cours oper
Listing long
% ls -l
total 10
-rwxr-xr-x 1 jean 217 Jul 14 09:47 SEEK.o
-rw-r--r-- 1 jean 0 Aug 20 14:05 cours
-r--r--r-- 1 jean 134 Jul 16 16:16 io.h
-rwxr-xr-x 1 Jean 1406 Jun 18 16:08 oper
drwxr-xr-x 2 Jean 512 Jul 17 11:28 test1
nombre Dimension Nom du
de liens (octets) fichier
types et
propriétaire date et heure
droit d'accès
© Copyright eni Dr Yacouba GOITA 24
Protection ou droit d'accès
drwxrwxrwx
o - other - autres
g - group - groupe
u - user - utilisateur / propriétaire
type de fichier
- : fichier standard Droit d'accès
d : répertoire
l : lien symbolique r : en lecture
b : périphérique "block" w : en écriture
c : périphérique "character" x : pour exécution
s : "socket"
© Copyright eni Dr Yacouba GOITA 25
2.14
Gestion des fichiers par le noyau
Mémoire usager Mémoire système Disque
bloc de
données
Table des
Table Table des
fichiers
globale i-nodes
ouverts par
des fichiers en mémoire
processus
read( 3, ...)
Table des
i-nodes
synchro-
nisation
© Copyright eni Dr Yacouba GOITA 26
Organisation des répertoires et des périphériques
/ bin ls
cat
etc
...
dev hda1
tty1
lib
...
usr bin
include sys types.h
stdio.h ...
opt lib
unistd.h
tmp man ...
...
proc
home bacc lumon lab1
.bashrc
home1 cours jagar7
...
var prof mitur3
... ...
sbin
...
Chemin d'accès (path) absolu ou relatif.
© Copyright eni Dr Yacouba GOITA 27
PROCESSUS CONCURRENT
Interrelation → considérer toutes les séquences possibles
P1 P2
S1 S3
S2 S4
→ S1 → S2 → S3 → S4
→ S1 → S3 → S2 → S4
→ S1 → S3 → S4 → S2
→ S3 → S1 → S2 → S4
→ S3 → S1 → S4 → S2
→ S3 → S4 → S1 → S2
© Copyright eni Dr Yacouba GOITA 28
Synchronisation → réduction des séquences
Sémaphore a = 0, b = 0 ;
P1 P2
S1 wait( a)
signal( a) S3
wait( b) S4
S2 signal( b)
une seule séquence possible :
→ S1 → S3 → S4 → S2
© Copyright eni Dr Yacouba GOITA 29
SECTION CRITIQUE:
Sémaphore ex = 1 ;
P1 P2
wait( ex) ? wait( ex)
S1 S3
S2 S4
signal( ex) signal( ex)
© Copyright eni Dr Yacouba GOITA 30
7-9
Problème de la section critique
Un seul processus peut exécuter le code
de sa section à la fois.
P0 P1
instructions instructions
code d'entrée code d'entrée
Section Section
Critique données Critique
communes
code de sortie code de sortie
instructions instructions
© Copyright eni Dr Yacouba GOITA 31