0% ont trouvé ce document utile (0 vote)
477 vues140 pages

Introduction aux Systèmes d'Exploitation

Transféré par

Linda Gacha
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
477 vues140 pages

Introduction aux Systèmes d'Exploitation

Transféré par

Linda Gacha
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SYSTÈME

D’EXPLOITATION

Enseignante: Farah Farjallah


Contact: [Link]@[Link] 2022/2023
Organisation :
►12 séances de 3 h de cours / TD
Evaluation :
►un DS
►un examen
►Note de Participation

2
PLAN
01 Généralités sur les Systèmes d’exploitation

02 Gestion des processus

03 Gestion de la mémoire

04 Gestion de fichiers

05
3
Chapitre 1
Généralités sur les systèmes
d’exploitation

4
Objectifs spécifiques

Connaître la définition d’un système d’exploitation


Connaître le rôle d’un système d’exploitation
Connaître les classes des systèmes d’exploitation
Connaître les mécanismes de base d’un système d’exploitation

Pré-requis

Composants d'un ordinateur

Eléments de contenu
I. Définition de système d’exploitation
II. Rôles d’un système d’exploitation
III. Eléments de base des systèmes d’exploitation
IV. Types des systèmes d’exploitation

5
Pré-requis
Composants de l’ordinateur

6
Structure générale d'un
ordinateur
Les composants matériels de l'ordinateur sont structurés et soudés sur une carte appelée
carte mère. Cette carte mère est logée dans un boîtier (ou châssis).

7
Structure générale d'un
ordinateur

8
Structure générale d'un
ordinateur
 L’unité centrale: est constitué d’une Unité Centrale de traitement (CPU ou le microprocesseur et
la mémoire centrale.
 Les périphériques: composés de périphériques d'entrée, périphériques de sortie et périphérique
de sauvegardes(Mémoires externes).
Les entités citées ci-dessus sont reliées par des bus

9
Structure générale d'un
ordinateur
La mémoire principale se devise en 2 types de mémoire :

mémoire vive (RAM : Random Access Memory)

mémoire morte (ROM : Read Only Memory).

10
Structure générale d'un
ordinateur
Le CPU(central processing unit) possède sa propre mémoire de petite taille appelé registre, ou la lecture
et l’écriture se font très rapidement.
 Les registre sont chargé de stoker des résultats temporaires ou des informations de commande. Parmi
les quelles on cite :

Le compteur ordinal : pointe sur la prochaine instruction à exécuter,

Le registre d’instruction :contient l’instruction en cours d’exécution,

L’accumulateur : stocke les données en cours de traitement

11
Structure générale d'un
ordinateur

Le microprocesseur (CPU: central processing unit) est caractérisé par

Sa fréquence d’horloge en (GHZ)

Le nombre d’instruction qu’il peut exécuter par seconde en (MIPS)

La taille des données qu’il est capable de traiter en bits (32 bits ou 64 bits)

12
Structure générale d'un
ordinateur
Les périphériques sont composés de:

périphériques d'entrée,

périphériques de sortie et

périphériques de sauvegardes (Mémoires externes).

13
Exemples d’ordinateurs

1
4
Langage de l’ordinateur et
langage de l’utilisateur

15
Comment peut-on
assurer une bonne
Exploitation des
performances des
ordinateurs ?

16
Intermédiaire entre ordinateur et
utilisateur

Une suite d’opérations prédéterminées destinées à être exécutées de manière automatique par
un appareil informatique en vue d’effectuer des travaux, des calculs arithmétiques ou logiques.

17
18
La nécessité d’un SE
Deux besoins majeurs :
Point de vue utilisateur
Comment un utilisateur (ou plusieurs) peut exploiter les ressources matérielles.

Trouver des mécanismes pour optimiser l’utilisation du matériels (facilité, rapidité,


partage,...)

Point de vue système


Comment exploiter d’une manière optimale les ressources matérielles pour
améliorer leur fonctionnement

Trouver des mécanismes pour gérer efficacement les ressources matérielles


(mémoires centrales, disque dur, temps processeur, ...)
19
Description d’un système
d’exploitation
Définition :
Le système d'exploitation (noté SE ou OS, abréviation du terme anglais Operating System)
 Un ensemble de programmes et de sous programmes (fonctions) qui assurent la gestion des
ressources matérielles et logicielles pour coordonner les opérations d’un ordinateur

20
Description d’un système
d’exploitation

Le système d'exploitation permet ainsi de


"dissocier" les programmes et le matériel,
afin de simplifier la gestion des ressources
et offrir à l'utilisateur une interface homme-
machine (notée «IHM») simplifiée afin de
lui permettre de s'affranchir de la
complexité de la machine physique.

21
Les différents systèmes
d'exploitation
 MsDos : Quelques versions les plus connues : 2.2, 3.2, 4.0, 5.0, 6.00, 6.20, 6.22

Windows : Quelques versions les plus connues :2.0, 3.1, 3.11, 95, NT4 et NT4 serveur, 98,
98se, Me, 2000 et 2000 serveur, XP, 2003 serveur, Vista,seven,8

GNU / Linux : Quelques distributions parmi les plus connues : Red-Hat, Mandrake /Mandriva,
Slackware, Knoppix, Debian

Unix : Quelques versions ou distributions : AIX, OpenBSD, FreeBSD

Zeta : se veut le successeur de BeOS

OpenBeOS / Haïku : version libre de BeOS, puis remplaçant de BeOS lors de son extinction
et son rachat en 2001 Systémes d’exploitation - Généralités 18

22
Les différents systèmes
d'exploitation

LynxOS : , souvent appelé Lynx, est un système d'exploitation temps réel. Il ressemble à Unix et
est surtout employé pour des applications critiques comme l'aviation, l'armée... Il est aussi employé
dans l'industrie et les télécommunications.

Atheos, Système d'exploitation reprenant celui de Amiga et son interface graphique. En stagnation
depuis 2001, un autre projet a vu le nom s'en inspirant : Syllabe

23
Rôle du système
d’exploitation

Gestion du processeur :
Gérer l'allocation du processeur entre les différents programmes grâce à un algorithme.

Ordonnancement des tâches (ordre d’exécution).

Le type d'ordonnanceur est totalement dépendant du système d'exploitation, en fonction de


l'objectif visé.

Démarrage, initiation et mise en service de la machine.

Initiation déroulement et clôture des tâches.

24
Rôle du système
d’exploitation
Gestion de la mémoire vive :
Le SE est chargé de gérer l'espace mémoire alloué à chaque application et, le cas
échéant, à chaque usager.

En cas d'insuffisance de mémoire physique, le SE peut créer une zone mémoire sur
le disque dur, appelée «mémoire virtuelle».

La mémoire virtuelle permet de faire fonctionner des applications nécessitant plus de


mémoire qu'il n'y a de mémoire vive disponible sur le système. En contrepartie cette
mémoire est beaucoup plus lente.

25
Rôle du système
d’exploitation

Gestion des entrées/sorties :


Le SE permet d'unifier et de contrôler l'accès des programmes aux ressources
matérielles par l'intermédiaire des pilotes (appelés également gestionnaires de périphériques
ou gestionnaires d'entrée/sortie).

Gestion des différentes ressources physiques de la machine (clavier, souris,


imprimante, mémoire, …).

26
Rôle du système
d’exploitation

Gestion des fichiers :

Le SE gère la lecture et l'écriture dans le système de fichiers et les droits d'accès aux
fichiers par les utilisateurs et les applications.

27
Eléments de base des systèmes
d’exploitation
GUI
environnement « graphical user interface »
un environnement graphique (un environnement de
bureau ou un écran d'accueil.)
CLI
interface en ligne de commande « command
line interface » permet à l'utilisateur d'interagir avec le
système à partir de commandes
 API
Application Programming Interface: Interface de
Programmation d'application c'est un moyen pour faire
communiquer une application avec ce qui peut être en
interaction avec elle

28
Eléments de base des systèmes
d’exploitation

Le SE est composé d'un ensemble de logiciels permettant de gérer les interactions


avec le matériel. Parmi cet ensemble de logiciels on distingue généralement les
éléments suivants :

1. Le noyau (en anglais kernel) représentant les fonctions fondamentales du système


d'exploitation telles que la gestion de la mémoire, des processus, des fichiers, des
entrées-sorties principales, et des fonctionnalités de communication.

29
Eléments de base des systèmes
d’exploitation

2. L'interpréteur de commande (en anglais shell) permet la communication avec


le système d'exploitation par l'intermédiaire d'un langage de commandes, afin de
permettre à l'utilisateur de piloter les périphériques, de la gestion des adresses
physiques (nombre binaire représentant un emplacement dans le bus d'adresse de
la mémoire centrale.), etc.

[Link] système de fichiers (en anglais «file system», noté FS), permettant
d'enregistrer les fichiers dans une arborescence.

30
Types d’un SE

31
Types d’un SE
1- Systèmes multitâches

Un système d'exploitation est dit «multi-tâche» (en anglais multithreaded) lorsque


plusieurs «tâches» (également appelées processus) peuvent être exécutées
simultanément.
Les applications sont composées en séquence d'instructions que l'on appelle
«processus légers» (en anglais «threads»).

32
Types d’un SE
1- Systèmes multitâches

33
Types d’un SE
1- Systèmes multitâches

Un système est dit préemptif lorsqu'il possède un ordonnanceur (aussi appelé


planificateur), qui répartit, selon des critères de priorité, le temps machine entre les
différents processus qui en font la demande

Le système est dit à temps partagé lorsqu'un quota de temps est alloué à chaque
processus par l'ordonnanceur. Pour ce faire, le système alloue à chaque utilisateur
une tranche de temps.

34
Types d’un SE

2- Systèmes multi-processeurs

 Le multiprocessing est une technique consistant à faire fonctionner plusieurs


processeurs en parallèle afin d'obtenir une puissance de calcul plus importante que
celle obtenue avec un processeur haut de gamme ou bien afin d'augmenter la
disponibilité du système (en cas de panne d'un processeur).

 Un système multiprocesseur doit donc être capable de gérer le partage de la


mémoire entre plusieurs processeurs mais également de distribuer la charge de travail.

35
Types d’un SE

2- Systèmes multi-processeurs

On appelle SMP (Symmetric Multiprocessing ou Symmetric Multiprocessor) une


architecture dans laquelle tous les processeurs accèdent à un espace mémoire
partagé.

36
Chapitre 2
Gestion des processus

3
7
Partie 1
Notion de processus

3
8
Objectifs spécifiques
Connaître la notion de processus
Connaître les caractéristiques d’un processus ainsi que son contexte
Connaître la notion d’interruptions
Connaître les étapes du cycle de vie d’un processus

Eléments de contenu
I.Définition d’un processus
[Link] d’un processus
[Link]éristique d’un processus
[Link] d’interruptions
Définition d’un processus

Un processus est un programme en exécution


L’exécution d’un processus doit progresser séquentiellement, cad, à n’importe quel
moment une seule instruction au plus est exécutée au nom du processus

Processus # Programme
Définition d’un processus

 Un programme est statique: c’est un fichier contenant une suite d’instructions qui
lorsqu’elles sont exécutées modifient l’état du processeur et de la mémoire afin de réaliser
une tâche donnée.

 Un processus est dynamique: c’est une instance d’exécution d’un programme sur
une machine de son lancement jusqu’à sa fin.
Etat d’un processus

Quand un processus s’exécute, il change d’état.

 Chaque processus peut se trouver dans chacun des états suivants :

En exécution: Les instructions sont en cours d’exécution (en train d’utiliser la CPU).

Bloqué: Le processus attend qu’un événement se produise.

Prêt: Le processus attend d’être affecté à un processeur.

Un seul processus peut être en exécution sur n’importe quel processeur à tout moment.

 Toutefois, plusieurs processus peuvent être prêts et en attente


Etat d’un processus
Caractéristique d’un processus

 Chaque processus est représenté dans le SE par un PCB (process control block )
Caractéristique d’un processus
 PCB: contient plusieurs informations concernant un processus spécifique, comme par
exemple:

L’état du processus.

Compteur d’instructions: indique l’adresse de l’instruction suivante devant être


exécutée par ce processus.

Informations sur le scheduling de la CPU: information concernant la priorité du


processus.

Informations sur la gestion de la mémoire: valeurs des registres base et limite, des
tables de pages ou des tables de segments.

Informations sur l’état des E/S: liste des périphériques E/S allouées à ce processus,
une liste des fichiers ouverts, etc.
Interruption

Interruption
 arrêt temporaire de l’exécution

Catégorie : Matérielle vs. Logicielle:

Interruption Logicielle : Trappe ou déroutement


Si le CPU détecte une erreur dans le traitement d’une instruction (division par zéro par
exemple)
Arrêt de l’exécution pour exécuter une routine particulière ISR (Interrupt Service
Routine) par type d’erreur rencontrer (débordement de mémoire, division par zéro,...)
Interruption

Interruption Matérielle :
 Générée par les périphériques (clavier, disque, USB,…)

 Peut être masquées (interdites ou autorisés)

 Interruption : le périphérique signale au CPU les événements par interruption

Éviter au CPU d’attendre un délai supplémentaire (boucler) pour que les


données soient émises par le périphérique (technique de polling ou
questionnement)
Interruption par ordonnancement

 On utilise les interruptions d’horloge pour commuter les tâches dans les systèmes
multitâches.

 Généralement, une interruption périodique est déclenchée par une horloge


Partie 1
Ordonnancement des
processus

4
9
Objectifs spécifiques

Comprendre la problématique du multitâche


Connaître la notion d’ordonnancement des processus et l’utilité d’un
ordonnanceur
Connaître les différents critères d’ordonnancement
Connaître les algorithmes d’ordonnancement préemptifs
Connaître les algorithmes d’ordonnancement non préemptif

Eléments de contenu
[Link]âche et ordonnancement des processus
[Link]ères et types d’ordonnancement
[Link] d’ordonnancement
Motivation

Lorsqu’un ordinateur est multiprogrammé, il possède fréquemment plusieurs


processus/threads en concurrence pour l’obtention de temps processeur.

→ S’il n’y a qu’un seul processus, un choix doit être fait quant au prochain processus
à exécuter
Motivation
La partie du système d’exploitation qui effectue ce choix se nomme l’ordonnanceur
(scheduler) et l’algorithme qu’il emploie s’appel algorithme d’ordonnancement (scheduling
algorithm)

Outre le fait de sélectionner le bon processus à exécuter, l’ordonnancement doit également


se soucier de faire un usage efficace du processeur, car le passage d’un processus à
l’autre sont coûteux en termes de temps de traitement
Challenges

Temps de
changement de
contexte

Temps
d’exécution

Efficacité : Utiliser au mieux le processeur


Critères et types d’ordonnancement

Les critères permettant de comparer les stratégies d’ordonnancement :

•Le taux d’utilisation de l’unité centrale: le rapport entre la durée pendant laquelle
l’unité centrale est active et la durée totale.

•Le temps de traitement moyen: la moyenne des intervalles de temps séparant la


soumission et l’accomplissement d’un processus.

•Le temps d’attente moyen: la moyenne des intervalles de temps séparant le


lancement d’un processus et sa mise en exécution.
Critères et types d’ordonnancement

Un bon algorithme d’ordonnancement doit:

Maximiser le taux d’utilisation de l’UC et le débit;

Minimiser le temps moyen de traitement;

Minimiser le temps moyen d’attente;

Minimiser le temps de réponse.


Diagramme de Gantt

Représentation schématique de l’évolution dans le temps des processus.

Le diagramme de Gantt est un outil utilisé (souvent en complément d'un réseau PERT) en
ordonnancement et en gestion de projet et permettant de visualiser dans le temps les
diverses tâches composant un projet.
Gestion des priorité
Types d’ordonnancement

Deux types d’algorithmes d’ordonnancement:


•Les algorithmes non-préemptifs (sans réquisition) empêchent l’appropriation du
processeur par un processus avant la fin du processus courant

•Les algorithmes préemptifs (avec réquisition) : possibilité d’appropriation du processeur


par un processus avant la fin du processus courant

L’objectif d’un algorithme d’ordonnancement consiste à identifier le processus qui


conduira à la meilleure performance possible du système.
Algorithme non-préemptif: FIFO

FIFO traite les processus dans l’ordre de leur soumission (date d’arrivée) sans aucune
considération de leur temps d’exécution.

 L’organisation de la file d’attente des processus prêts est donc tout simplement du “First In
First Out”.

 L’algorithme FIFO consiste à choisir à un instant donné, le processus qui est depuis le plus
longtemps dans la file d’attente, ce qui revient à choisir celui disposant du temps d’arrivée
minimal et l’exécuter pendant un temps d’exécution bien définit.

 Ce procédé est répété jusqu’à épuisement des processus dans la file d’attente.
Algorithme non-préemptif: FIFO

 FIFo est une stratégie qui peut engendrer des temps d’attentes moyens
importants et très variables
Algorithme non-préemptif: FIFO

Exemple
Étant donnés trois processus P1, P2 et P3 dont les durées d'exécution sont données dans le
tableau suivant (Ces processus arrivent tous au temps 0) :

Processus Durée d’exécution

P1 24

P2 3

P3 3
Algorithme non-préemptif: FIFO
Exemple
Si les processus arrivent dans l’ordre P1, P2, P3, on aura le diagramme de Gantt suivant

Le temps d’attente de P1 est de 0ms, celui de P2 est de 24ms et enfin celui de P3 est 27ms
Le temps d'attente moyen = (0+24+27)/3 = 17ms.

L'algorithme d'ordonnancement FIFO possède l'avantage d'être simple à réaliser. Alors que, le temps
d'attente pour l'allocation du processeur au processus n'est pas optimal puisque les processus en
tête de la file peuvent être les processus les plus longs à exécuter.
Algorithme non-préemptif: FIFO

Exemple

Supposons que les processus arrivent dans l’odre P2, P3, P1, on aura la diagramme de Gantt
suivant :

 Le temps moyen d’attente devient (0+3+6)/3 = 3ms


Algorithme non-préemptif: SJF
SJF: Shortest Job First.

 SJF choisit de façon prioritaire les processus ayant le plus court temps d’exécution sans réellement
tenir compte de leur date d’arrivée.

 Ce procédé est répété jusqu’à épuisement des processus dans la file d’attente.
Algorithme non-préemptif: SJF

Exemple Les processus P1, P2, P3 et P4 arrivent tous au temps 0 et ont les temps
d’exécution suivant:

Processus Durée d’exécution

P1 6

P2 8

P3 7

P4 3
Algorithme non-préemptif: SJF

Exemple

Avec SJF, on aura le diagramme de Gantt suivant :

P1 attends 3ms, P3 9ms, P2 16ms et P4 0ms.


Le temps moyen d’attente est (3+16+9+0)/4 = 7ms
Algorithme non-préemptif: Métriques

 Temps de séjour = temps de terminaison – temps d’entrée

 Temps d’attente = temps de séjours – temps d’exécution


Ordonnancement non-préemptif: Exercice 1

Considérons cinq travaux A, B, C, D et E, dont les temps d'exécution et leurs


temps d’arrivée respectifs sont les suivants:
Ordonnancement non-préemptif: Exercice 1

Faire un schéma qui illustre l’exécution (diagramme de Gantt) et calculer le


temps de séjour de chaque processus, le temps moyen de séjour, le temps
d'attente et le temps moyen d'attente en utilisant :

 Premier arrivé premier servi (FCFS)

 Le plus court d'abord (SJF)


Ordonnancement non-préemptif: Exercice 1

FIFO, schéma d'exécution :

 Au temps 0, seulement le processus A est dans le système et il s'exécute.

 Au temps 1 le processus B arrive mais il doit attendre que le processus A termine son
exécution car il a encore 2 unités de temps.

 Ensuite B s'exécute pendant 4 unités de temps.

 Au temps 4, 6, et 7 les processus C, D et E arrivent mais B a encore 2 unités de temps.

 Une fois que B a terminé, C, D et E entrent au système dans l'ordre.


Ordonnancement non-préemptif: Exercice 1

Temps de séjour = temps de terminaison – temps d’entrée

Le temps moyen de séjour est : (3+8+9+9+9)/5=7.6


Ordonnancement non-préemptif: Exercice 1

Temps d’attente = temps de séjours – temps d’exécution

Le temps moyen d'attente est : (0+2+5+7+8)/5=4.4


Ordonnancement non-préemptif: Exercice 1

Il y a cinq tâches exécutées dans 16 unités de temps, alors 16/5=3.2 unité de temps
par processus en moyenne
Ordonnancement non-préemptif: Exercice 1

Le plus court d'abord, schéma d'exécution :


Ordonnancement non-préemptif: Exercice 1

Pour la stratégie SJF nous aurons la séquence d'exécution A,B,E,D,C, et le


temps de séjour est : temps de terminaison – temps d’entrée

Le temps moyen de séjour est: (3+8+3+6+12)/5 = 6.4


Ordonnancement non-préemptif: Exercice 1

Temps d’attente = temps de séjour –temps d’exécution

Le temps moyen d'attente est : (0+2+2+4+8)/5 = 3.2


Ordonnancement non-préemptif: Exercice 1

Il y a cinq tâches exécutées dans 16 unités de temps, alors 16/5=3.2 unité de temps par
processus
Algorithme non-préemptif: Algorithme
basé sur la priorité

 Les algorithmes fondés sur les priorités attribuées par le système d’exploitation aux processus
choisissent les processus les plus prioritaires sans prise en considération d’une manière générale des
données durée d’exécution et date d’arrivée des processus.

 Le principe de cet algorithme consiste à associer à chaque processus une priorité. Le processeur est
alloué au processus ayant la plus grande priorité. Ce procédé est répété jusqu’à épuisement des
processus se trouvant dans la file d’attente.
Algorithme non-préemptif: Algorithme
basé sur la priorité
Algorithme non-préemptif: Algorithme
basé sur la priorité
Exemple:

1. Donnez le digramme d’exécution des processus en utilisant l’algorithme


d’ordonnancement basé sur la priorité.
2. Calculez le TAM .
Ordonnanceurs préemptifs

 Si le processus courant doit suspendre son exécution au profit d'un autre :

–l’OS doit d'abord sauvegarder le contexte du processus


–avant de charger le contexte du processus à lancer.

 C'est qu'on appelle la commutation de contexte ou le changement de contexte

– Cette sauvegarde est nécessaire pour pouvoir poursuivre ultérieurement l'exécution du


processus suspendu.
Algorithme préemptif: Algorithme du
tourniquet

Le Round Robin (RR) décrit une stratégie dite du tourquinet où on procède à un recyclage des
processus sur le processeur tant que ceux-ci ne se sont pas terminés.

 Lorsqu’un processus est élu, on lui attribue une tranche de temps fixe, appelé quantum, pendant
laquelle il s’exécute. Au bout de ce temps, on ne poursuit plus l’exécution du processus, on lui
retire et on le réinsère dans la file des processus prêts.
Algorithme préemptif: Algorithme du
tourniquet

 Le RR choisit le premier processus sur la file d’attente et l’affecte au processeur pendant


un Quantum Q. Le passage d’un processus à un autre se fait selon l’ordre d’arrivée du
processus dans la file d’attente.

 Le tourniquet constitue donc une généralisation de l’algorithme FIFO.


Algorithme préemptif: Algorithme du
tourniquet

Il alloue le processeur au processus en tête de file, pendant un quantum de temps.


Si le processus se bloque ou se termine avant la fin de son quantum, le processeur est immédiatement
alloué à un autre processus (celui en tête de file).

Si le processus ne se termine pas au bout de son quantum, son exécution est suspendue.

- Le processeur est alloué à un autre processus (celui en tête de file).


- Le processus suspendu est inséré en queue de file.
- Les processus qui arrivent ou qui passent de l'état bloqué à l'état prêt sont insérés en queue de file.
Algorithme préemptif: Algorithme du
tourniquet
Exemple

Quantum = 4ms
Algorithme préemptif: Algorithme du
tourniquet
Algorithme préemptif: Algorithme du
tourniquet
Impact de la valeur du quantum dans RR

 Un quantum trop petit provoque trop de commutations de processus et abaisse l'efficacité du


processeur.

 Un quantum trop élevé augmente le temps de réponse des courtes commandes en mode interactif.

 Un quantum entre 20 et 50 ms est souvent un compromis raisonnable


Algorithme préemptif: Algorithme du
tourniquet
Algorithme préemptif: Algorithme du
tourniquet
Algorithme préemptif: SRT

•Appelé SRT: Shortest Remaining Time

•SRT choisit le processus dont le temps d’exécution restant est le plus court.

•On procède comme dans le cas de la stratégie du tourquinet à l’attribution d’un quantum
fixe au delà duquel on cherche à élire le processus le plus court en terme de temps
d’exécution restant pour atteindre sa terminaison.

•Le SRT est une généralisation avec réquisition de l’algorithme SJF. L’algorithme choisit la
tâche pour laquelle le temps d’exécution est minimal et l’affecte au processeur pendant un
quantum temps Q. Le passage d’un processus à un autre se fait en fonction du temps
d’exécution restant associé au processus se trouvant dans la file d’attente.
Algorithme préemptif: SRT
Algorithme préemptif: SRT

P1 commence à t=0, il est le seul processus dans la file d’attente P2 arrive à t=1ms
Le temps restant à P1 est de 7ms > temps demandé par P2, 4ms
→ P2 est exécuté et P1 retourne dans le file d’attente
Le temps moyen d’attente = [(10 -1) + (1-1) +(17-2) +(5-3)] /4 =6.5ms < 7.75ms le temps moyen
d’attente de SJF
Algorithme préemptif: SRT

Le temps moyen d’attente = (9+0+15+2) /4 =6.5ms < 7.75ms le


temps moyen d’attente de SJF
Ordonnanceurs préemptifs
Exercice 2

Soient deux processus A et B prêts tels que A est arrivé en premier suivi de B, 2 unités de
temps après. Les temps de processeur nécessaires pour l'exécution des processus A et
B sont respectivement 15 et 4 unités de temps.

Le temps de commutation est supposé nul. Calculer le temps de séjour de chaque


processus A et B, le temps moyen de séjour, le temps d'attente, le temps moyen d'attente, et
le nombre de changements de contexte pour:
 SRT
 Round robin (quantum = 10 unités de temps)
 Round robin (quantum = 3 unités de temps)
Ordonnanceurs préemptifs
Ordonnanceurs préemptifs
Ordonnanceurs préemptifs
Ordonnanceurs préemptifs
Exercice3-Round Robin

Considérons cinq Processus P1, P2, P3, P4, P5, dont les temps d'exécution et leurs temps
d’arrivée respectifs sont les suivants

Le temps de commutation est supposé nul. Dessiner le diagramme de GANTT pour


l’ordonnancement Round Robin (quantum = 3 unités de temps)
Ordonnanceurs préemptifs
Exercice3-Round Robin
Ordonnanceurs préemptifs
Exercice4-Round Robin
Considérons cinq Processus A, B, C, D, e, dont les temps d'exécution et leurs temps
d’arrivée respectifs sont les suivants

Le temps de commutation est supposé nul. Dessiner le diagramme de GANTT pour


l’ordonnancement Round Robin (quantum = 1 unités de temps ensuite quantum = 3)
Ordonnanceurs préemptifs
Exercice4-Round Robin
Ordonnanceurs préemptifs
Exercice4-Round Robin
Ordonnanceurs préemptifs
Ordonnancement avec priorité

Le principe de cet algorithme consiste à associer à chaque processus une


priorité.
Le processeur est alloué au processus ayant la plus grande priorité pendant un
quantum de temps Q.
 Ce procédé est répété jusqu’à épuisement des processus se trouvant dans la
file d’attente.
Il y a autant de files qu'il y a de niveaux de priorité.
Les priorités peuvent être dynamiques. Elles sont, dans ce cas recalculé après
chaque quantum de temps.
Ordonnanceurs préemptifs:
Attribution et évolution des
priorités
Pour empêcher les processus de priorité élevée de s'exécuter
indéfiniment, l'ordonnanceur diminue régulièrement la priorité du processus
en cours d'exécution.
● La priorité du processus en cours est comparée régulièrement à celle du
processus prêt le plus prioritaire (en tête de file). Lorsqu'elle devient
inférieure, la commutation a lieu.
● Dans ce cas, le processus suspendu est inséré en queue de le
correspondant à sa nouvelle priorité. L'attribution et l'évolution des priorités
dépendent des objectifs fixés et de beaucoup de paramètres.
Chapitre 3
Gestion de la mèmoire
Objectifs spécifiques

-Connaître le principe de gestion de mémoire en multiprogrammation


-Connaître le principe de gestion de mémoire Swap
-Connaître la notion de compactage
-Connaître le concept de pagination et son principe
-Connaître le concept de segmentation.

Eléments de contenu

[Link] à la gestion de la mémoire


[Link] sans recouvrement ni pagination
[Link] avec recouvrement sans pagination
[Link] avec recouvrement, avec pagination ou segmentation
Gestion de mémoire: Concepts de base

• Adresse physique et logique :


Mémoire physique: la mémoire principale RAM de la machine
Adresses physiques: les adresses de cette mémoire
Mémoire logique: l’espace d’adressage d’un programme
Adresses logiques: les adresses dans cet espace

 Il faut séparer ces concepts car normalement, les programmes sont à


chaque fois chargés à des positions différentes dans la mémoire

adresse physique ≠ adresse logique


Gestion de mémoire: Concepts de base

• Adresse physique et logique :


Gestion de mémoire: objectif

Le mécanisme de gestion de la mémoire par le SE a pour objectifs :

L’organisation de la mémoire en zone


La gestion de la mémoire ( allocation, libération)
La protection des processus et des segments de processus
La simulation d'une mémoire de grande taille (supérieure à la mémoire
physique)
La transparence des accès (quelque soit le type de mémoire physique ou
virtuelle)
Introduction

 La mémoire centrale est une ressource requise par tout processus

Un programme doit être chargé dans la mémoire centrale pour être
exécuté.

Opérations sur la mémoire:


- Démarrer_processus(p)  Allouer(taille(p))
-Terminer_processus(p)  Liberer zone_allouée_à(p)
Système mono-tache

Dans le cas des systèmes mono taches


la gestion de la mémoire est assez
simple.

Il suffit de réserver une partie de la


mémoire au système d’exploitation.

L’application est ensuite rangée dans


l’espace restant qui est libéré sitôt que
l’application est terminé
Système multi-tache

Il existe plusieurs méthodes d’allouer la mémoire aux processus:

 Allocation contigüe (le processus est considéré comme un seul


bloc individuel)
-Partitions fixes et partitions variables

 Allocation non contigüe (le processus peut être stocker sur des
zones mémoires éparpillées)
- Pagination et segmentation
Allocation contigüe : Partitions Fixes/ Variable
 La mémoire est divisée en partitions fixes dés le démarrage du
système ou bien de différents tailles.

 On peut définir une file d’attente par partitions, ou une file commune à
toutes les partitions.
Allocation contigüe : Partitions Fixes
Algorithme de placement pour partitions
fixes : cas de plusieurs files :
 Assigner chaque processus à la
partition de la plus petite taille pouvant le
contenir.

 1 file d’attente par partition

 Tente de minimiser le fragmentation


interne
Problème : certaines files seront vides s’il
y’a pas de processus de cette taille.
Allocation contigüe : Partitions Fixes

Algorithme de placement pour partitions


fixes : cas de file unique :
 On choisit la plus petite partition libre
pouvant contenir le prochain processus

 Problème : On pourrait allouer trop de


mémoire à un programme (fragmentation
interne).
Allocation contigüe : Partitions dynamique
L’espace mémoire est alloué dynamiquement, de façon contigüe, lors le
l’implantation des processus en mémoire
Allocation contigüe : Partitions Variables

Si plusieurs partitions sont susceptibles de recevoir un processus, on


peut adopter l’une des stratégies de placement suivantes:

 First Fit on range: le processus dans la première partition libre et


suffisamment garndes trouvée
 Best Fit : on va chercher la partition dont la taille approche au mieux
celle du processus à changer en mémoire
- Incontinent : création de bloc minuscules non réutilisables
(fragmentation externe)

 Worst Fit : on met le processus dans la plus grandes partition libre.


Allocation contigüe : Partitions Variables

Un processus de
taille 18Mo
Exercice:
Soit une mémoire centrale composé de 5 partitions: P1, P2, P3, P4 et
P5 ces partitions sont pour tailles respectives 100, 500, 200, 300 et
600 K (dans cet ordre) . Soient 4 processus A, B, C et D
De tailles respectives 212, 417, 112 et 426K.

Donner les différents états de mémoire centrale pour charger le


processus A, B,C et D (dans cet ordre) en utilisant les algorithmes
suivants :
 First Fit
 Best Fit
 Worst Fit
Allocation contigüe
Inconvénients :

 Fragmentation interne : partition fixe/variable

 Fragmentation externe: partition dynamique

 Impossibilité d’exécuter un programme de taille supérieur à celle de


la mémoire centrale

N.B : On parle de fragmentation interne, lorsque l’espace inutilisé est dans


les partitions. Tandis que pour la fragmentation externe, l’espace inutilisé
est entre les partition.
Allocation contigüe: Compactage

Une solution pour la fragmentation externe (partitions dynamique)

Définition: le compactage (ou défragmentation ) est une opération


réalisée par le système d’exploitation consiste à déplacer tous les
programmes vers des emplacements contigües pour avoir un grand
espace libre.

Inconvénients:
Temps de transfert programmes

Besoin de rétablir tous les liens entre adresse de différents


programmes (mise à jour de l’espace d’adressage des processus)
Allocation non contigüe

 A fin réduire le besoin de compression, le prochain


pas est d’utiliser l’allocation non contiguë
– diviser un programme en morceaux et permettre l’allocation
séparée de chaque morceau.
– les morceaux sont beaucoup plus petits que le programme
entier et donc permettent une utilisation plus efficace de la mémoire
• les petits trous peuvent être utilisés plus facilement
Allocation non contigüe

Il y a deux techniques de base pour faire ceci :


 Partitionnement fixe a taille égale (la pagination)
 Partitionnement dynamique (la segmentation)
 Segmentation paginé
Va-et-Vien (Swapping)

Un processus (dans son intégralité) peut être swappé temporairement en


dehors de la mémoire centrale vers un stockage secondaire (swap file sur
le disque dur ), et puis remis en mémoire pour continuer son exécution.
Va-et-Vien (Swapping)
Allocation non contigüe : La pagination

* L'espace d'adressage du programme est découpé en morceaux linéaires


de même taille : la page.

* L'espace de la mémoire physique est lui-même découpé en morceaux


linéaires de même taille : la case ou cadre de page ou Frames.

•La taille d'une case est égale à la taille d'une page

*Charger un programme en mémoire centrale consiste à placer les pages


dans n'importe quelle case disponible.
Allocation non contigüe : La pagination
Traduction du adresse logique en adresse physique:
 L’adresse logique est facilement traduite en adresse physique
L’adresse logique (p,d) est traduite en adresse physique (f,d) en utilisant p
comme indexe sur la table des pages et en le remplaçant par l’adresse f
trouvée depuis la table
 d ne change pas.
Allocation non contigüe : La pagination
Traduction du adresse logique en adresse physique:
Allocation non contigüe : La pagination
Traduction du adresse logique en adresse physique:
Allocation non contigüe : La pagination
Défaut de page:

La page virtuelle 2 n'est pas mappée. Une adresse virtuelle comprise entre 8192 et
12287 donnera lieu à un défaut de page.
Allocation non contigüe : La pagination
Principe de l’algorithme de remplacement de page:
Allocation non contigüe : La pagination
Algorithme de remplacement de page:
Allocation non contigüe : La pagination
Algorithme de remplacement de page:
Allocation non contigüe : La pagination
Algorithme de remplacement de page:
Merci de votre attention

14
0

Vous aimerez peut-être aussi