Vous êtes sur la page 1sur 37

ISI 1CS/1IRS 2023/2024

cours
Systèmes d’exploitation II

Najar Yousra & olfa limam


Email : yousra.najar@isi.utm.tn
Olfa.limam@isi.utm.tn

1
Objectifs du cours
OBJECTIF

Ce cours vise à vous familiariser avec les concepts et les techniques


fondamentales des systèmes d'exploitation.
Entre autres les éléments suivants:
– Comprendre le fonctionnement d’un ordinateur en liaison avec le
système d’exploitation.
– Expliquer et analyser le fonctionnement des différents modules
liés à la gestion de processus.
– La compréhension du fonctionnement de la mémoire ainsi que sa
gestion.
– Comment assurer la synchronisation et la communication
interprocessus
– Ainsi que les solutions adoptées dans les systèmes modernes
(UNIX, WINDOWS)

2
Plan du cours

 Chapitre 1 : Gestion des Processus


 Chapitre 2 : Gestion de la mémoire
 Chapitre 3 : Synchronisation des processus

3
Plan du chapitre 1
Gestion des processus
1. Notions de base sur les systèmes
2. Gestion de Processus
3. Ordonnancement des processus
• Ordonnancement Monotâche
• Ordonnancement Multitâche

4
Notions de base
Afin de gérer tous les composants de l’ordinateur, il fallait une
interface ou une couche intermédiaire

 Un système informatique moderne comprend un ou plusieurs


processeurs, de la mémoire principale, des disques, des
imprimantes, un clavier, un écran, des interfaces réseaux et autres
périphériques d’E/S.

 C’est pour cela que les ordinateurs sont équipés d’une couche
logicielle appelée système d’exploitation

5
Notions de base
Qu’est ce qu’un système d’exploitation (SE)?

• C’est le Premier programme exécuté lors du


démarrage de l’ordinateur.
• Un système d’exploitation = Noyau +
Logiciels utilitaires + Bibliothèques
• Un SE est une Couche de logiciel (ensemble
de programmes) et un Gestionnaire de
ressources,

A quoi sert un système d'exploitation ?

- A simplifier l’utilisation d’un ordinateur à travers différentes applications


toute en cachant la complexité du matériel et de proposer des instructions
plus simples à l’utilisateur..
- A contrôler l'accès à toutes les ressources de la machine.
6
Notions de base
Différents types des système d’exploitation

7
Notions de base
 Types de système d’exploitation :

 Monoutilisateur/Multiutilisateur: Plusieurs utilisateurs actifs en


même temps en leur offrant des espaces de travail protégés avec des
terminaux locaux ou distants (UNIX et Linux, Windows 2003 ).

 Monoprocesseur/Multiprocesseurs: Système avec plusieurs


processeurs (le vrai multitâche )

8
Notions de base
 Types de système d’exploitation :

 Monotâche/Multitâche: Plusieurs taches peuvent être exécutés


simultanément. Le SE peut interrompre l’exécution d’un processus
pour exécuter un autre.
 Monoprogrammé/Multiprogrammé: Plusieurs processus en
Mémoire à la fois et permet au processeur d'être partager entre tous
les processus actifs.

 La plupart des ordinateurs personnels et portables modernes sont des


systèmes d'exploitation multitâches mono-utilisateur.

9
Gestion des Processus
Le SE est responsable de la gestion des processus :
- Création, terminaison des processus
- Suspension, reprise des processus

- Ordonnancement des processus

- Allocation des ressources


- Synchronisation, communication entre processus

Mots clés: Etat, processus, commutation, PCB, ordonnancement,

10
Gestion des Processus
 Processus est un concept fondamental de tout système d’exploitation.

 Un processus est un programme en exécution. Il définit un objet


dynamique tandis que le programme est un objet statique.

 Exemple: Courrier électronique, la compression d’un fichier, le


navigateur web.

11
Gestion des Processus
Création d'un processus :
 UNIX utilise un appel système fork() qui crée un clone du processus qui
s'exécute après duplication de l'espace mémoire et du contexte.
 WINDOWS utilise un appel système CreateProcess() qui crée un
processus et y charge un programme.

Terminaison d'un processus :


 Sortie normale, lorsque le processus a terminé sa tâche (sous Unix par
l’appel système exit)
 Sortie suite à une erreur (e.g. division par 0, inexistence d’un fichier
passé en paramètre)
 Tué par un autre processus (sous Unix par l’appel système kill)

12
Gestion des Processus
Hiérarchie des processus :

 LINUX/ UNIX: Les processus sont organisés


sous d’une arborescence ou chaque processus
a un seul père et peut avoir plusieurs fils. Processus père
Un processus est identifié par un PID
(Process IDentifier) et un PPID (Parent Processus fils
Process IDentifier).
Le premier processus init avec PID=1

 WINDOWS : Chaque processus est crée par un père mais


s'exécute Indépendamment de lui.

13
Gestion des Processus

14
Gestion des Processus
L'espace mémoire utilisé par un processus est divisé en plusieurs zones.
On trouve en particulier le segment de code, le segment de données, la
pile .

Segment code : représente ………………………………………..


placé dans des zones fixes de la mémoire.

Segment données :est composé d'un


…………………………………………………………………....……………..
(les variables globales et statiques)
et ……………………………………………………………………………..
(créé ……………………………………………………....)

Segment pile : pour stocker les …………………………………………………………

15
Gestion des Processus
 Les systèmes d'exploitation manipulent deux structures de données
principales pour gérer les processus créés sur une machine : la table
des processus et le bloc de contexte d'un processus (PCB).
 La table des processus comporte une entrée par processus qui
rassemble toutes les informations concernant un processus

16
Gestion des Processus
 Un processus est un programme en exécution + contexte
d’exécution.
 Un processus est caractérisé par un contexte d’un processus
appelé bloc de contrôle (Process Control Bloc: PCB).
 Attributs d’un PCB:
◦ PID et PPID,
◦ État,
◦ Priorité,
◦ Compteur ordinal,
◦ Fichiers ouverts,
◦ Pointeurs: seg. code, seg. données, seg. Pile,
◦ Temps d’exécution.

17
Gestion des Processus
La commutation de contexte
 Sur un système multitâche, le SE doit redonner le contrôle du
processeur d’un processus à un autre en effectuant des commutations
de contexte.
 La commutation de contexte consiste………………………………………………
……………..…………………………………….…………………………………………………………

18
Gestion des Processus
Les interruptions
 constituent un concept fondamental des systèmes d’exploitation.
Les interruptions peuvent être matérielles ou logicielles.
 Une interruption est signal produit par un périphérique et envoyé
vers le processeur pour l’informer de la fin d’une E/S, la
production d’une erreur …

19
Gestion des Processus
Processus Léger (Thread)
 Un processus contient au moins un thread de contrôle unique en plus
de l’espace d’adressage.
 Un thread est une unité d’exécution de code. il est issu d’un processus
mais ne contenant que la pile d’exécution.

Sous Unix
- Processus zombie est un processus qui s'est achevé, mais qui dispose
toujours d'un identifiant de processus (PID) et reste donc encore
visible dans la table des processus.
- Processus Orphelin est un processus dont le père s’est terminé avant
lui.

20
Gestion des Processus

21
Plan du Chapitre 1
Gestion des Processus
1. Notions de base sur les systèmes
2. Gestion de Processus
3. Ordonnancement des processus
3.1 Ordonnancement des processus : Définition
3.2 Types d’algorithmes d’ordonnancement
• Ordonnancement Monotâche
• Ordonnancement Multitâche

22
Ordonnancement des processus
Les concepts de base de l’ordonnancement :

 Un ordonnanceur (scheduler ou dispatcher): un programme qui


gère l’ordre de passage des processus dans le processeur (CPU).

 Une file d’attente qui va accueillir les processus prêts.

 Un algorithme d’ordonnancement (politique ou approche) se


traduit par un ensemble de règles pour organiser ou ordonner les
processus
• Le diagramme de GANTT: Représentation graphique de
l’ordonnancement relative à l’exécution d’un ensemble de
processus selon un algorithme d’ordonnancement.
Ordonnancement des processus
 Étant donnée un ensemble de processus prêts, l’Ordonnanceur
(scheduler) du SE doit choisir quel processus élire en utilisant un
algorithme d’ordonnancement.

Un bon algorithme d’ordonnancement :

1. Chaque processus doit avoir sa part de temps CPU : Equité.


2. Utiliser le temps processeur à 100% : efficacité.
3. Minimiser le temps de réponse en Mode Interactif.
Ordonnancement des processus
Etats des processus
Au fur et a mesure qu’un processus s’exécute; il change d’état.
Il peut se trouver dans l’un des trois états principaux suivants:

• Nouveau : le processus nouvellement crée


• Prêt (Ready) : le processus………………………………………………
• Élu (Running) : le processus…………..……...............................
• Bloqué (Sleep) : le processus………………………………………….
• Terminé : le processus se termine

25
Ordonnancement des processus
Graphe des états d’un processus

Transitions entre processus:


1. Création du processus
2. Allocation du processeur
3. Fin du temps alloué sur le processeur,
(l’exécution du processus n’est pas terminée)
4. Opération E/S
5. Fin opération E/S
6. Exécution terminé
Ordonnancement des processus
 L’ordonnanceur choisit un processus parmi les processus prêts et lui
alloue le processeur (2)

 Chaque fois que le processus exécutant est


interrompu
◦ un processus élu ………………………..……( )
◦ un processus change d’élu ………………..( )
◦ un processus exécutant ……………………( )

 Chaque fois qu’un nouveau processus est prêt


◦ un processus se présente en tant que ………………… ( )
◦ un processus change de bloqué à……………………….. ( )
Ordonnancement des processus
Deux paramètres sont utilisés pour juger de la performance et de
l’efficacité d’un algorithme d’ordonnancement : Temps de rotation et
Temps d’attente.
Critères d'ordonnancement fréquemment utilisées
 Temps de rotation est le temps passé dans le système y compris dans
l’état prêt
Temps de rotation = Date de fin – Date d’arrivée
Temps rotation moyen = ∑ temps rotation / nbr processus

 Temps attente est le temps passé dans la file des processus (prêts).
Temps attente = Temps de rotation – Temps d’exécution (te)
Temps attente moyen = ∑ temps attente / nbr processus
Ordonnancement des processus
Deux paramètres sont utilisés pour juger de la performance et de
l’efficacité d’un algorithme d’ordonnancement :
Temps de rotation et Temps d’attente.
Ordonnancement des processus
Deux types d’algorithmes d’ordonnancement se distinguent :
- Algorithmes Monotâche
- Algorithmes Mutlitâche
1. Les algorithmes monotâche/non préemptif/ sans réquisition
Le SE……………………………………………………………………………………………
………………………………………………………………………………………………
…….

RQ: Le processeur est réquisitionné :


- …………………………………………………………………………………………….…
- ………………………………………………………………………………………………..
Ordonnancement des processus
Deux types d’algorithmes d’ordonnancement se distinguent :
2. Les algorithmes multitâche/ préemptif/ avec réquisition
Le SE……………………………………………………………………………………………
...................................................................................................

RQ: Le processeur est réquisitionné :


- ……..…………………………………………………………………………………………
- ……………………………………………………………………………………………..…
Ordonnancement monotâche
I. FCFS / FIFO (First comes First Served )
Critère de priorité : temps d’arrivée à la RAM (ta)
ta : Temps d’arrivée à la RAM (temps de création du processus)
Principe : Le premier arrivée est le premier servi.

II. SJF (Shortest Job First )


Critère de priorité : temps d’exécution(te)
te: Temps estimé d’exécution du processus (unités d’horloge /ns
demandés dans le CPU)
Principe : Le processus qui demande le moins de te est élu.

III. Priorité sans interruption


Critère de priorité : Priorité statique (Pr)
Pr : Priorité du processus selon sa classe (système, utilisateur) peut être
dynamique/statique.
Principe : Le processus le plus prioritaire est élu.
Ordonnancement monotâche
Processus Ta Tex Pr croissante
Application 1 : Dans un
P1 0 5 3
système multiprogrammé et
P2 1 3 2
monotâche, les processus P1,
P3 2 1 4
P2, P3 et P4 ont les
P4 4 2 1
caractéristiques données par le
tableau suivant :

Application 2 : Le même système Processus Ta Tex Pr


admet des entrées sorties sur le P1 0 2C, 2E/S, 1C 3
même disque dur (les requêtes P2 1 1C,1 E/S, 1C 2
ne peuvent pas être P3 2 1 4
interrompues et sont gérées P4 4 2 1
avec FIFO) :
Ordonnancement multitâche
I. Tourniquet (RR)
Critère de priorité : temps d’arrivée à la RAM (ta)
Principe : Le premier arrivée est le premier servi. Le temps
processeur est divisé en intervalles de temps appelés Quantum Q,
chaque processus s’exécutera exactement pendant son quantum.

II. SRT (Shortest Remaining Time)


Critère de priorité : temps d’exécution(te)
Principe : Le processus qui demande le moins de te est élu. A
Chaque instant, l’ordonnanceur cherche parmi les processus prêts celui
ayant le plus petit temps d’exécution restant.
Ordonnancement multitâche
III. Priorité avec interruption

Critère de priorité : Priorité statique/dynamique (Pr)

Principe : Le processus le plus prioritaire est élu. Le système d’exploitation

ordonne les processus prêts selon l’ordre de leurs priorités et le processus à

élire est celui avec la plus haute priorité.


Ordonnancement multitâche
Application 1 : Dans un Processus Ta Tex Pr croissante
système multiprogrammé et P1 0 5 3
multitâche, les processus P1, P2 1 3 2
P2, P3 et P4 ont les P3 2 1 4
caractéristiques données par le P4 4 2 1
tableau suivant :

Application 2 : Le même système Processus Ta Tex Pr


admet des entrées sorties sur le P1 0 2C,2 E/S, 1C 3
même disque dur (les requêtes P2 1 1C,1 E/S, 1C 2
ne peuvent pas être P3 2 1 4
interrompues et sont gérées P4 4 2 1
avec FIFO) :
Algorithmes d’ordonnancement
•Sous Windows:

- l’ordonnanceur est de type « Multilevel feedback queue» :

-Plusieurs queues (FIF0) classées selon la priorité des processus,

-Chaque processus s’execute pendant un Q,

-Si un processus consomme beaucoup de temps processeur, il


passe à la queue de priorité inférieure.

•Sous Linux : Politique du tourniquet modifié = Tourniquet avec


priorités dynamiques

37

Vous aimerez peut-être aussi