Vous êtes sur la page 1sur 43

Introduction

aux systèmes d'exploitation


multiprogrammés

Principes de base, processus et ordonnancement

Licence pro ACSID 2006-2007 J. Delacroix 1


Structure générale de l’ordinateur

Processeur CO
Horloge
Central PSW

Bus Réseau

d' échange
Mémoire
Centrale Unités d’échanges

9CO : compteur ordinal


9PSW : registre d’état
Licence pro ACSID 2006-2007 J. Delacroix 2
Parallélisme sur la machine SYSTEME D'EXPLOITATION
physique VECTEUR D'INTERRUPTIONS
PROGRAMME A : CALCUL
E/S DISQUE

CPU PROGRAMME C :
E/S IMPRIMANTE

PROGRAMME B : CALCUL

DMA
UE • Plusieurs programmes en MC
¾ le DMA gère les entrées/sorties
¾ parallèlement, le CPU effectue les
"calculs"
UE

Licence pro ACSID 2006-2007 J. Delacroix 3


Entrées/Sorties avec DMA et interruption
Système --> multiprogrammé
Lire/Ecrire
Actif
Prog A
En E/S
Actif
Prog B
En E/S
E/ S prog A Interruption
Actif
DMA
Inactif
prog A prog B prog B
Actif
Routine d’Interruption
Cpu
Inactif
Licence pro ACSID 2006-2007 J. Delacroix 4
Table des vecteurs
Les Interruptions d'interruptions
It 3 0017

Une interruption est un signal Prog B 0017 Sous traitant It3


qui arrête le traitement courant du processeur
CO Prog B
1002
Prog A
Programme (Prog B) It 3

1002 DMA Entrées-sorties Prog A

Latence
Interruption
n°3 Sous-Traitant d'IT n°3
(fin d’entrées-sortie DMA CO <-- 0017
prog A) 0017
Traitement It

1002
CO <-- 1002
RTI

Licence pro ACSID 2006-2007 J. Delacroix 5


le SE pour partager la machine physique

Mémoire centrale
SE
Programme A
Programme B
CPU
Programme C

• Partager la machine physique


¾ le processeur : qui s'exécute?
¾ la mémoire centrale :
UE UE ¾ protection SE/ Programmes
Utilisateurs
¾ protection entre programmes
Utilisateurs
¾ les périphériques

Licence pro ACSID 2006-2007 J. Delacroix 6


le SE pour faciliter la machine physique

ECRIRE(données) Exécuter (Programme)

Charger le programme
Initialiser DMA Gestion par It (pagination / segmentation...)
nb @p
@m UE
sens

DMA

UE
MC
Licence pro ACSID 2006-2007 J. Delacroix 7
le SE pour faciliter la machine physique

MACHINE VIRTUELLE
ECRIRE(données) Exécuter (Programme)

SE Interface pour masquer les caractéristiques matérielles


Appels Système Commandes
Matériel Mémoire
MACHINE CPU
centrale
PHYSIQUE

UE UE

Licence pro ACSID 2006-2007 J. Delacroix 8


DEFINITION D'UN SYSTEME D'EXPLOITATION

• C'est un ensemble de programmes qui réalisent l'interface entre le


matériel de l'ordinateur et les utilisateurs. Il a deux objectifs
principaux :

¾ construction au dessus du matériel d'une machine virtuelle


plus facile d'emploi et plus conviviale
¾ prise en charge de la gestion de plus en plus complexe des
ressources et partage de celle-ci

) Comme son nom le suggère, le SE a en charge l'exploitation


de la machine pour en faciliter l'accès, le partage et pour
l'optimiser

Licence pro ACSID 2006-2007 J. Delacroix 9


Applications FONCTIONS D'UN SYSTEME D'EXPLOITATION

Editeur de texte Tableur Programmes Utilisateurs


Navigateur
Bases de données
Compilateur Editeur de liens Chargeur Assembleur Debogeur

Appels systèmes Commandes


Gestion de Gestion de la protection Gestion des objets
SE la concurrence externes (fichiers)
Gestion du Gestion de la Gestion Gestion des
processeur mémoire du réseau E/S
Mécanisme des interruptions
MACHINE PHYSIQUE
Licence pro ACSID 2006-2007 J. Delacroix 10
NOTIONS DE BASE

• Les fonctionnalités du système d'exploitation sont accessibles par


le biais des commandes ou des appels système

Pg U Interpréteur de
> cd .. commandes
Appels open (fichier) > print
système Commandes

_open _chdir _print Routines du SE


Système de Gestion des
gestion de SE
entrées /sorties
fichiers
Licence pro ACSID 2006-2007 J. Delacroix 11
NOTIONS DE BASE : modes d'exécutions
• Lors de l'exécution d'un appel système, le programme utilisateur
passe d'un mode d'exécution dit utilisateur à un mode
d'exécution dit superviseur.

Mode Superviseur

protection
Mode utilisateur (gestionnaire de processus)
main()
{
Exécution de _open()
int i, fd; char texte[5];
i = 0; j = 5;
fd = open("fichier", "O_RDWR");
read (fd, texte, 5); Exécution de
j = j / i; } _read ()

Licence pro ACSID 2006-2007


ªJ. Delacroix
Chemins de contrôle du noyau
12
NOTIONS DE BASE : modes d'exécutions
• Le passage du mode utilisateur au mode superviseur
s'accompagne d'opérations de commutation de contexte :
sauvegarde de contexte utilisateur

protection
Mode Superviseur
Mode utilisateur (privilège supérieur)

main() Exécution de _open()


{
int i, fd; char texte[5];
i = 0; j = 5;
fd = open("fichier", "O_RDWR");
read (fd, texte, 5); sauvegarde CO, PSW utilisateur
j = j / i; } chargement CO Å adresse de la fonction open
chargement PSW Å mode superviseur
Licence pro ACSID 2006-2007 J. Delacroix 13
NOTIONS DE BASE : modes d'exécutions
• Le passage du mode superviseur au mode utilisateur
s'accompagne d'opérations de commutation de contexte :
restitution de contexte utilisateur

protection
Mode utilisateur Mode Superviseur
(privilège supérieur)
main()
{ Exécution de _open()
int i, fd; char texte[5];
i = 0; j = 5;
fd = open("fichier", "O_RDWR");
read (fd, texte, 5);
j = j / i; } restitution du contexte utilisateur
chargement CO Å CO sauvegardé
chargement PSW Å PSW sauvegardé
Licence pro ACSID 2006-2007 J. Delacroix 14
NOTIONS DE BASE : commutations de contexte
Mode Superviseur

protection
Mode utilisateur

Exécution de open()
APPELS SYSTEME
main()
{
int i, fd; char texte[5]; TRAPPE
i = 0; j = 5; erreur irrécouvrable
fd = open("fichier", "O_RDWR"); arrêt du programme
read (fd, texte, 5);
j = j / i; }
IT
Exécution du
traitant d'it Horloge

IT HORLOGE
Trappe = interruption synchrone
MATERIEL
IT = interruption asynchrone
Licence pro ACSID 2006-2007 J. Delacroix 15
Processus

Un processus est une exécution de programme

Licence pro ACSID 2006-2007 J. Delacroix 16


Notion de processus
9CO : compteur ordinal
9PSW : registre d’état
CO 9RI : registre instruction
103
RI
load im R1 20

Rg
100
101
102 load im R1 20
103 add im R1 5
104 store dir R1 15
UAL 105

UE
S
PSW
Mémoire
CPU

Bus externe

Licence pro ACSID 2006-2007 J. Delacroix 17


Notion de processus
• Définition

¾ Un processus est un programme en cours d ’exécution


auquel est associé un environnement processeur (CO,
PSW, registres généraux) et un environnement mémoire
appelés contexte du processus.

¾ Un processus est l ’instance dynamique d ’un


programme et incarne le fil d ’exécution de celui-ci

) programme réentrant

Licence pro ACSID 2006-2007 J. Delacroix 18


Du programme au processus

Compilateur
Editeur de texte cc -c prog.c
prog.c
source prog.o
objet
Editeur de liens
ld -o prog.o prog.exe Bibliothèques

prog.exe : programme
exécutable sur disque
prog.exe Chargeur
exécutable en mémoire
processus
Licence pro ACSID 2006-2007 J. Delacroix 19
Système multiprocessus
Etats des processus

Fin

Election Elu En exécution


Réveil
Prêt
En attente
du processeur Blocage

Déblocage
Bloqué

En attente de ressources
Licence pro ACSID 2006-2007 J. Delacroix 20
bloc de contrôle de processus PCB
identificateur processus

état du processus

compteur instructions

contexte pour reprise


(registres et pointeurs, Bloc de contrôle
piles,..)
de processus
pointeurs sur file d' attente
et priorité(ordonnancement) ou PCB
informations mémoire
(limites et tables
pages/segments
informations de
comptabilisation
et sur les E/S, périphériques
alloués, fichiers ouverts,..

Licence pro ACSID 2006-2007 J. Delacroix 21


Ordonnancement

Licence pro ACSID 2006-2007 J. Delacroix 22


Ordonnancement dans un système multiprocessus

Licence pro ACSID 2006-2007 J. Delacroix 23


Système multiprocessus
Mémoire Centrale

P1 elu
P2 attente E/S
P3 attente cpu
P4 attente E/S
Processeur P2 P4
P51 attente cpu

P6 attente cpu P1 UE

Bus

Licence pro ACSID 2006-2007 J. Delacroix 24


Système multiprocessus
Etats des processus

Fin

Election Elu En exécution


Réveil
Prêt
En attente
Préemption
du processeur Blocage
(réquisition)

Déblocage
Bloqué

En attente de ressources
Licence pro ACSID 2006-2007 J. Delacroix 25
Fin Système multiprocessus
Réveil
Prêt
Election Elu En exécution
Etats des processus
En attente Préemption
du processeur Blocage
(réquisition)
Déblocage
Bloqué

En attente de ressources

• Election : allocation du processeur

• Préemption : réquisition du processeur


¾ ordonnancement non préemptif : un processus élu le demeure
sauf s ’il se bloque de lui-même
¾ ordonnancement préemptif : un processus élu peut perdre
le processeur
- s ’il se bloque de lui-même (état bloqué)
- si le processeur est réquisitionné pour un autre processus
(état prêt)

Licence pro ACSID 2006-2007 J. Delacroix 26


Système multiprocessus
Ordonnancement

Processus P0 Système d ’exploitation Processus P1

ELU
appels système (read(disque))
Sauvegarde PCB 0
PRET
élection

Recharge PCB 1

BLOQUE
ELU

Interruption (DMA disque)

PRET
Routine d’interruption

Sauvegarde PCB 1
PRET
ELU élection

Recharge PCB 0
Licence pro ACSID 2006-2007 J. Delacroix 27
Système multiprocessus
Ordonnanceur et répartiteur

Préemption

Cpu
Ordonnanceur
Election

PCB
PCB
Cpu

PCB

PCB
PCB

PCB
Répartiteur
Prêts
Cpu Classement selon une
Politique d'ordonnancement
Déblocage
Blocage

PCB

PCB
PCB
PCB
PCB
PCB
Bloqués

Licence pro ACSID 2006-2007 J. Delacroix 28


Politiques d'ordonnancement

• Premier arrivé, premier servi


¾ FIFO, sans réquisition

• Par priorités constantes

• Par tourniquet (round robin)

• Par files de priorités de priorités constantes


multiniveaux avec ou sans extinction de priorité

Licence pro ACSID 2006-2007 J. Delacroix 29


Algorithme : Premier Arrivé Premier Servi
• FIFO, sans réquisition

Prêt
Prêt Actif

P1 P2 P3 Bloqué

24 3 3
Temps de cycle

P3
Temps moyen d'attente
P2
17 millisecondes
P1 (0 + 24 + 27)/3

24 27 30

Licence pro ACSID 2006-2007 J. Delacroix 30


Algorithme : Premier Arrivé Premier Servi
Prêt

Prêt Actif
P2 P3 P1
3 3 24 Bloqué
Temps de cycle

P3
Temps moyen d'attente
P2
3 millisecondes
P1 (6 + 0+ 3) /3

3 6 30

Licence pro ACSID 2006-2007 J. Delacroix 31


Politiques d'ordonnancement

• Premier arrivé, premier servi

• Par priorités constantes


¾ chaque processus reçoit une priorité
¾ le processus de plus forte priorité est élu
¾ Avec ou sans réquisition

• Par tourniquet (round robin)

• Par files de priorités de priorités constantes


multiniveaux avec ou sans extinction de priorité

Licence pro ACSID 2006-2007 J. Delacroix 32


Algorithme : avec priorités
Prêt P1
3 10
1 1
P2
4 2
2 5 P3
Prio Tps de cycle P4
ªPriorité : la plus petite valeur correspond à la plus forte priorité

P4
P3 Temps moyen d'attente

P2 8,2 millisecondes

P1

Licence pro ACSID 2006-2007 J. Delacroix 33


Algorithme : avec priorités préemptif
Prêt P1
0 3 10
1 1
P2
5
0 4 2
3 2 5 P3
Date de soumission Prio Tps de cycle P4
ªPriorité : la plus petite valeur correspond à la plus forte priorité

P4
P3
P2
P1

0 3
5 6
P1,P3 Arrivée de P4
Arrivée de P2 Fin de P2
Préemption
Préemption P4, P1, P3
Licence pro ACSID 2006-2007 J. Delacroix 34
Politiques d'ordonnancement

• Premier arrivé, premier servi


• Par priorités constantes

• Par tourniquet (round robin)


¾ Définition d'un quantum = tranche de temps
¾ Un processus élu s'exécute au plus durant un quantum;
à la fin du quantum, préemption et réinsertion en fin de
file d'attente des processus prêts

• Par files de priorités de priorités constantes


multiniveaux avec ou sans extinction de priorité

Licence pro ACSID 2006-2007 J. Delacroix 35


Algorithme : tourniquet
Prêt

P1 P2 P3 Quantum = 4

20 7 3
Temps de cycle

Fin P3 Fin P2

P3

P2

P1

4 8 11 15 18 22 26 30
P1 P2 P3 P1 P2 P1
P2 P3 P1 P2 P1
P3 P1 P2
Licence pro ACSID 2006-2007 J. Delacroix 36
Politiques d'ordonnancement

• Premier arrivé, premier servi


• Par priorités constantes
• Par tourniquet (round robin)

• Par files de priorités de priorités constantes multiniveaux


avec ou sans extinction de priorité
¾ chaque file est associée à un quantum éventuellement
différent
¾ sans extinction : un processus garde toujours la même priorité
¾ avec extinction : la priorité d'un processus décroit en fonction
de son utilisation de la cpu

Licence pro ACSID 2006-2007 J. Delacroix 37


Algorithme : multifiles sans extinction
Prêt
Arrivée
F1 q1

F2 q2
Election
F3 q3

Fn qn

Licence pro ACSID 2006-2007 J. Delacroix 38


Algorithme : multifiles avec extinction

Prêt Priorité
Arrivée
F1 q1

F2 q2
Election
F3 q3

--
Fn FCFS
Licence pro ACSID 2006-2007 J. Delacroix 39
Ordonnancement dans le système LINUX

Licence pro ACSID 2006-2007 J. Delacroix 40


Système multiprocessus
Ordonnancement LINUX

Le système Linux est un gestionnaire de processus.

Il offre des services aux processus

Il ne comporte pas à proprement parler de processus qui


exécutent son code.
Ce sont les processus utilisateurs qui en passant en mode noyau
exécutent le code du système

L’ordonnancement est lancé à chaque fois qu’un processus


utilisateur s’apprête à repasser en mode utilisateur depuis
le mode noyau.

Licence pro ACSID 2006-2007 J. Delacroix 41


Ordonnancement dans le système LINUX

Utilisateur Noyau
(pas de processus noyau)
P1 (u)
Interruption
Appels système Sauvegarde de contexte (CO, PSW)
Trappe
P1 (n)
P1

Traitement It
(C

Appel système
O,

P2 (u)
PS

P2
(C O
W

,P
)

SW
)
Ordonnancement
P1 P2 Prêt
Restitution
de contexte Election
Licence pro ACSID 2006-2007 J. Delacroix 42
Ordonnancement : système LINUX
• Trois classes d ’ordonnancement (norme POSIX) :

Prio ++
¾ SCHED_FIFO : Priorité préemptif
Priorité fixe
¾ SCHED_RR : Tourniquet (quantum)

Priorité variable
¾ SCHED_OTHER : politique Unix
Fonction de l’utilisation
du processeur

A l’instant t, le système élit (fonction GOODNESS du noyau)


-Le processus SCHED_FIFO de plus forte priorité qui s’exécute jusqu’à sa fin ou
jusqu’à préemption par un processus FIFO plus prioritaire
-Le processus SCHED_RR de plus forte priorité pour un quantum
-Le processus SCHED_OTHER de plus forte priorité
Licence pro ACSID 2006-2007 J. Delacroix 43