0% ont trouvé ce document utile (0 vote)
6 vues35 pages

Gestion de la mémoire en systèmes d'exploitation

Le document traite de la gestion de la mémoire dans les systèmes d'exploitation, en abordant les rôles du gestionnaire de mémoire, les stratégies d'allocation, et les concepts de mémoire virtuelle et de swapping. Il décrit les différentes méthodes d'allocation de mémoire, y compris l'allocation contiguë et non contiguë, ainsi que les avantages et inconvénients de chaque méthode. Enfin, il explique les structures de données utilisées pour gérer la mémoire, telles que les tables de bits et les listes chaînées.

Transféré par

fredkidzeus
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues35 pages

Gestion de la mémoire en systèmes d'exploitation

Le document traite de la gestion de la mémoire dans les systèmes d'exploitation, en abordant les rôles du gestionnaire de mémoire, les stratégies d'allocation, et les concepts de mémoire virtuelle et de swapping. Il décrit les différentes méthodes d'allocation de mémoire, y compris l'allocation contiguë et non contiguë, ainsi que les avantages et inconvénients de chaque méthode. Enfin, il explique les structures de données utilisées pour gérer la mémoire, telles que les tables de bits et les listes chaînées.

Transféré par

fredkidzeus
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

Système d’exploitation 2 M.

Programme :
Chap. 1 – Gestion de la mémoire.
Chap. 2 – les systèmes d’entrée/sorties
Chap. 3- gestion d’entrée/ sorties
Système d’exploitation 2 M.

CHAP 1 : Gestion de la mémoire


Rappels.
Un processus est un programme chargé en mémoire en cours
d’exécution avec ses propres ressources logiques et physiques.
On dit qu’il y a interblocage lorsque deux processus ont le même
temps d’arriver.
Ordonnancement = Scheduler.
I- INTRODUCTION
La mémoire d’un ordinateur est une ressource limite pour
stocker :
- Les programmes en cours d’exécution
- Les données manipuler par ces programmes.
Le gestionnaire de mémoire d’un os : a pour rôle d’allouer,
de libérer et de protéger la mémoire.
A l’origine, la mémoire centrale était une ressource chère et de
taille limitée. elle devrait être gérée avec soin. Sa taille a
considérablement augmenté, plus que compatible sur PC ,a
souvent aujourd’hui la même taille de mémoire que les plus gros
ordinateurs à la fin des années 60. Néanmoins le problème de la
gestion reste important du fait des besoins croissantes des
utilisateurs.
Le but de ce chapitre, est de décrire les problèmes, et les
méthodes de gestions de la mémoires principales.
I-2 : NOTION PRELIMINAIRES.
I-2-1 : gestionnaire de mémoire. (MMU)
Le gestionnaire de mémoire est un sous ensemble du SE. son rôle
est de partager la mémoire entre le OS et les diverses
applications. Le terme mémoire fait toujours référence à la
mémoire principale c.-à-d. à la RAM mais la gestion de celle-ci
demande la contribution de la mémoire auxiliaire : la mémoire de
masse qui est spacieuse mais lente et la mémoire cache qui est
rapide mais de taille restreinte
Système d’exploitation 2 M.

I-2-1-1 : le rôle gestionnaire de mémoire


le rôle gestionnaire de mémoire :
- D’assurer que chaque processus a un espace mémoire
suffisant.
- De protéger les processus entre eux
- Optimiser l’utilisation de la mémoire
- Gérer la mémoire primaire et secondaire
Voici ce que l’on attend du gestionnaire des mémoires :
a- L’allocation de la mémoire au processus : c.-à-d :
- répertorier les emplacements libres dans la mémoire
- Allouer la mémoire nécessaire au nouveau processus
- Récupérer la mémoire des processus qui s’achève.
Cette récupération peut nécessiter une réallocation en cours, des
processus en cours pour optimiser l’emploie de la mémoire. La
zone mémoire attribuées, a un processus c.-à-d. : la partie ou on a
fait la réallocation peut changer en cours de son exécution.
b- La protection : elle consiste à vérifier que les adresses
mémoires de chaque processus ne concernent que la zone
mémoire qui lui est impartie, sans quoi l’intégrité du SE et les
autres processus n’est pas garanti.

c- La segmentation de l’espace d’adressage


Les programmes sont subdivisés en segment, on attend donc du
gestionnaire de la mémoire qu’il permet la segmentation de
l’espace d’adressage, des programmes pour les raisons
suivantes :
- Pouvoir coder les segments séparément et les paramétrer en
fonctions de l’application.
- Permettre des degrés de protection différents selon les
segments
- Accepter le partage de certains segments.

d- La mémoire virtuelle. Elle offre aux applications une mémoire


de taille supérieure à celle de la mémoire principale.
Système d’exploitation 2 M.

L’espace d’adressage que représente la mémoire centrale


est parfois insuffisant. Les disques suppléants à cette
insuffisance en fournissant une mémoire auxiliaire plus
vaste, mais plus lente, et qui n’est pas directement
accessible au processeur
1-2-1-2 : les stratégies d’allocations de la mémoire
Il en existe 3 mais nous allons considérer deux d’entre elle.
a- L’allocation contiguë : chaque processus occupe un bloc
contigu de mémoire.
b- L’allocation non contiguë : les blocs mémoire d’un processus
peuvent être disperser : (la pagination et la segmentation
c- Le swapping : déplacer temporairement un processus de la
mémoire principale vers le disque.
Objectif de l’allocation de la mémoire :
Un ordinateur possède plusieurs programmes :
- Où ces programmes sont-ils situés ? : dans le Disque dur.
- Peut-on les exécuter s’ils sont dans le dd ? : non car le dd est
un périphérique de stockage lent. Donc il nous faut les
transférer dans la mémoire principale. Alors l’objectif de la
gestion de la mémoire est de partager la mémoire RAM entre
les différents programmes à s’exécuter.
Objectif secondaire :
- d’utiliser la mémoire de façon simple pour un programme.
- Maximiser l’utilisation de la mémoire disponibles.
L’allocation de la mémoire connait deux stratégies : avec des
tailles fixes et des tailles variables.
2- allocation contiguës de la mémoire taille fixe
On divise la mémoire en bloc de taille fixe. Par exemple
considérons une mémoire dont la taille totale est de 6MO et
chaque processus est place dans un bloc libre de 1MO
Système d’exploitation 2 M.

P 1MO 512
1 Ko P4 : 1.5Mo
P 1MO 738 Et ne peut être transmis
2 Ko en mémoire
P 1MO 1Mo
3 quelles sont les problèmes avec
P 1MO l’allocation contiguës avec partition de
4 taille fixe ?
P 1MO R1 : ne peut allouer un programme si
5 la taille dépasse celle d’une partition
P 1MO
6 R2 : beaucoup d’espace mémoire
perdu : c’est la fragmentation.
Il existe deux types de fragmentation :
la fragmentation interne : l’espace perdue est à l’intérieur d’une
partition
la fragmentation externe : l’espace perdue est à l’extérieur d’une
partition
NB : Avec allocation a taille fixe, seule la fragmentation interne
est possible. Aucun espace à l‘extérieur d’une partition n’est
perdue. Il peut toujours être alloué à un autre processus peu
importe son emplacement.
1Mo
512 ko
Fragmentatio
n interne
1Mo
738ko
Fragmentatio
n interne
1Mo
1Mo
Aucune
fragmentation
.

3- allocation contiguë de la mémoire a taille variable.


Système d’exploitation 2 M.

On crée une partition de la bonne taille pour chaque processus


avec l’allocation contiguë de la mémoire a taille variable.
Il peut parfois y avoir plusieurs endroits ou une partition peut être
créée : il faudra déterminer la bonne stratégie à employer.
Taill P1 = P2 = P3= P4 = 1.5mo
e6 512 638 1 mo
Mo ko ko
P1 = P1 = P1 = P1 = 512 ko
512 512 512
ko ko ko
P2 = P2 = P2 = 638 ko
638 638
ko ko
P3 = P3 = 1mo
1mo
P4 = 1.5 mo
Fragmentati
on externe

Qu’arrive t’il si un processus p2 se termine ? Cela crée un trou


Quels sont les problèmes avec l’allocation à taille variable ? quand
un processus se termine il laisse un trou.
Avec les partitions de tailles variables seule la fragmentation
externe est possible car aucun espace à l’intérieur d’une partition
n’est perdu chaque partition est créée en fonction de la taille de
son processus.

3- la mono programmation
Exécution d’un seul programme en mémoire à la fois. Elle est
simple mais sous-utilisation fréquente de la mémoire

3-2- la multiprogrammation
Elle permet d’exécuter plusieurs programmes simultanément.
Système d’exploitation 2 M.

Il existe deux types de partition de la mémoire : les partition fixe


et les partitions variables.

a- Allocation contiguë de la mémoire avec partition de taille


fixe : le MMU : unité de gestion de mémoire
Le plus simple est de diviser la mémoire en taille fixe dès le
démarrage du SE.
Les partitions sont de différentes taille pour éviter que la
grande partition ne soit occupée que par des petits processus.
Le gestionnaire de mémoire, en fonction de la taille des
processus, décide quelle partition lui alloue pour ne pas
gaspiller trop de mémoire
En Allocation contiguë de la mémoire avec partition de taille
fixe, le MMU effectue le calcul suivant pour traduire une
adresse virtuelle en adresse physique : @physique =
@virtuelle + @partition.
@partition : 1ere adresse de la partition attribuer au processus.
Ex : @virtuelle = 0x00ab3 correspond à l’adresse physique =
0x100ab3
En allocation contiguë avec partition de taille variable, le MMU
effectue le calcul suivant pour traduire une adresse virtuelle en
adresse physique
Exo d’application
Dans un système en allocation contiguë à taille variable, un
processus p occupe des espaces en mémoire physique, de

3- le swapping
le swapping ou permutation est une technique de gestion de la
mémoire par le système d’exploitation pour échanger
temporairement un processus (ou une partie de celui-ci) entre la
mémoire principale (RAM) et le disque dur (mémoire secondaire).
Lorsque la mémoire vive est saturée, le système transfert un
processus inactif de la RAM vers la zone de disque appelée espace
Système d’exploitation 2 M.

d’échange appelée Swap area cela libère de la mémoire pour


d’autres processus plus actifs.

PRINCIPE DE FONCTIONNEMENT : le système choisit un


processus inactif ou en attente, il copie le contenue du
processus c’est-à-dire son espace mémoire vers le disque dur. Il
libère la zone mémoire qu’il occupait. Lorsque le processus doit
s’exécuter à nouveau, il est ramené en mémoire (swapping)

EXEMPLE : Soit une RAM qui fait 8GO de mémoire et 3


programmes (P1, P2, P3 =7Go) on veut faire exécuter un 4 e
processus P4 de 2Go. On constate qu’il n’y a pas assez de
mémoire libre pour exécuter le processus P4. Le système décide
donc de swapper P2 vers un disque et alors P4 peut alors être
chargé dans la RAM lorsque P2 est à nouveau sollicité, P4 peut
être swapper à son tour.
AVANTAGE DU SWAPPING : le swapping permet :
 d’exécuter plus de processus que la taille de la RAM
 améliore la flexibilité du système
INCONVENIENTS :
 très lent car le disque dur est beaucoup plus lent que la RAM
 Trop de swapping cause beaucoup ce qu’on appelle le
thrashing (ralentissement massif du système
4- opération sur les mémoires
Le système d’exploitation doit gérer l’allocation et la libération de
la mémoire.
Trois (3) principales structures peuvent être utilisées :
Système d’exploitation 2 M.

a- La table de bits ou Bitmaps


C’est une structure de donnée utilisée par le SE pour suivre l’état
de la mémoire ou du disque. Chaque bloc ou cadre mémoire est
représenté par 1 bit (0 ou 1). Lorsque le bit est 1, le bloc est
occupé et lorsque le bloc est 0 le bloc est libre. Cette méthode
permet de visualiser simplement quelles zones sont disponibles et
lesquelles sont utilisées.
Principe de fonctionnement : supposons qu’une mémoire soit
découpée en 8 blocs avec une mémoire de 1Mo chacun.
BLO 0 1 2 3 4 5 6 7
C
BIT 1 1 0 0 1 0 0 1

La lecture de cette mémoire que les blocs 2,3,5 et 6 sont


libres et les autres occupés.
Soit une mémoire de 4Go avec des blocs de 4Ko alors donner
le nombre de blocs que peut contenir la table de bit de cette
mémoire
Nombre = 4Go/4Ko = 4*(1024) ²/4 = 1 048 576 blocs
On a: 1 048 576/8 =131 072
131 072/1024 = 128 Ko
AVANTAGES:
 facile à implementer
 Elle permet l’économie de la mémoire en faisant 1 bit
par bloc
 Elle est bonne pour les systèmes fixes
INCONVENIENTS :
 elle peut être lente à parcourir si la mémoire est grande
 Nécessite parfois de scanner le bit pour trouver une zone
libre contiguë

b- Les listes chainées


Système d’exploitation 2 M.

Une liste chainée est une structure de donnée utilisée pour


représenter et gérer dynamiquement les zones de mémoires
libres ou occupés. Chaque élément de la liste appelé bloc ou
nœud contient :
 Des informations sur la taille du bloc
 Son adresse de début en mémoire
 un pointeur vers le bloc suivant
Le système d’exploitation utilise cette structure pour suivre les
zones libres et les zones allouées de la mémoire
Principe de fonctionnement : le système maintient 2 listes
principales :
 La liste des blocs libres : qui contient les zones des mémoires
non utilisées
 La liste des blocs allouées : qui contient les zones
actuellement attribuées au processus.
Chaque entrée de la liste indique comme suit :
[adresse de débit| taille du bloc| pointeur vers le suivant]

Ex :
BLOC Adresse début Taille du bloc Etat
(Ko)
A 0 200 occupé
B 200 100 Libre
C 300 300 occupé
D 600 150 Libre
E 700 274 occupé

supposons une même mémoire de 1024ko disposée comme suit.


Liste des blocs libres : [200,100] [600,150] NULL

Liste des blocs occupés : [0,200][300,300][700,274] NULL


La méthode de subdivision est une méthode de la gestion
dynamique de la mémoire utilisés par les SE pour allouer et libérer
la mémoire efficacement tout en réduisant la fragmentation
externe. Le principe est de diviser la mémoire en bloc de taille de
puissance de 2(2,4,8, 16…) et de fusionner les blocs libres
Système d’exploitation 2 M.

adjacents quand c’est possible. Ce système est appelé Buddy


system (système et copain)
Principe de fonctionnement : la mémoire totale disponible est
considérée comme un grand bloc unique. Lorsqu’un processus
demande une certaine quantité de mémoire :
 Le système cherche le plus petit bloc de taille puissance de 2
capables de le contenir
 Si le bloc est trop grand, il est divisé en 2 grands blocs
égaux (Buddy ou copain)
Lorsqu’un bloc est libéré, le système vérifie si son copain est aussi
libre :
 Si oui, les 2 sont fusionné pour renformer un bloc plus grand
 Sinon, il reste en liste libre séparés
Cas graphique pour un processus : soit une mémoire de 1024Ko
dont le bloc unique est de 1023Ko. Soit un processus P qui
demande 100Ko. Le système cherche la plus petite puissance de 2
le bloc de 1024Ko est divisé successivement (1024-512-256-128).
On alloue un bloc des 128Ko et la mémoire restante est découpé
en bloc de taille variée.
Exemple d’application : soit une mémoire de 1024Ko et 3
processus P1, P2 et P3 qui demandent de l’espace dans cette
mémoire (P1-100Ko ; P2-200Ko et P3-300Ko)
Etape1 : allocation de P1(100Ko)
 ^2>= 100 = 128Ko
Bloc alloué [0,127] occupé
 Reste [128,1023] libre
Etape2 : allocation de P2(200ko)
^2 >= 200 = 256Ko
Bloc alloué [128,383] occupé
 Reste [384,1023] libre
Etape3 : allocation de P3(300ko)
^2 >= 300 = 512Ko
Système d’exploitation 2 M.

Bloc alloué [384,895] occupé


 Reste [896,1023] libre 128Ko
Résultat final :
processus Taille Taille réelle Adresse de la
demandée allouée mémoire
P1 100 128 [0,127]
P2 200 256 [128,383]
P3 300 512 [384,895]
L - 128 [896,1023]

 Elle permet une allocation rapide c’est-à-dire quelle


recherche et découpe en puissance de 2
 la fusion automatique : les blocs libres se regroupent
facilement
 la réduction de la fragmentation externe car la mémoire
reste bien structurée
 la simplicité de gestion car chaque bloc a un seul « copain »
identifiable

4- allocation non contiguë


Contrairement à l’allocation contiguë où chaque processus doit
occuper un espace connu, dans l’allocation non contiguë, la
mémoire d’un processus peut être réparti dans plusieurs zones
distinctes.
Cette technique permet :
 Une meilleure utilisation de la mémoire
 D’éviter la fragmentation externe
Dans l’allocation non contiguë, il existe 2 :
 Les systèmes paginés
 Les systèmes segmentés

1- La mémoire virtuelle
Principe :
Système d’exploitation 2 M.

La mémoire virtuelle permet à un programme d’utiliser plus de


mémoire qu’il y en a réellement dans RAM.
Les données non utilisées sont stockées temporairement sur le
disque dur (appeler Swap file). Le système gère
automatiquement les échanges entre la RAM et le disque.
Exemple : un programme a besoin de 10Go mais l’ordinateur
n’a que 8Go de RAM. Le système stock les 2 go restant sur le
disque dur.

Avantages :
 Elle permet d’exécuter des grandes applications sur des
petites machine
 Elle simplifie la gestion de la mémoire pour les
programmeurs

4-2-1- les systèmes paginées


Définition et principe
Un système paginé est une méthode d’allocation non contiguë de
la mémoire qui permet à un processus d’être chargé en plusieurs
parties disperser dans la mémoire physique
Le principe est de diviser la mémoire logique (celle du
programme) et la mémoire physique (celle de l’ordinateur) en
blocs de tailles fixes appeler :
 Page pour la mémoire logique (qui est le programme)
 Couche ou frames pour la mémoire physique (RAM)
Chaque page logique est stockée dans n’importe quel cadre libre
de la mémoire physique
Objectifs :
Le but du système paginer est de :
 Permettre une utilisation efficace de la mémoire physique
 Eliminer la fragmentation externe c’est-à-dire les trous entre
les blocs libres
 Simplifier la gestion de la mémoire grâce a une taille fixe de
page
Système d’exploitation 2 M.

4-2-3- Structure de la pagination


a- Mémoire logique
Elle consiste à diviser la mémoire en page de taille fixe.
Exemple 4Ko par page.

b- La mémoire physique
Elle consiste à diviser en carde de taille identique à la page(4Ko)
Taille de page = taille des cadres
c- La table des pages
Elle est utilisée pour faire la correspondance entre :
 Le numéro de la page logique et au numéro de cadre
physique
Supposons que l’on a une page. Taille de page = 1Ko, Mémoire
physique = 8Ko
Soit les pages logiques suivantes :
pages logique Adresse
P0 Cadre(C)0 0-1023
P1 C1 1024-2047
P2 C2 2048-3071
P3 C3 3072-4095
C4 4096-5119
C5 5120-6143
C6 6144-7167
C7 7168-8191

Ici Le processus est donc reparti dans plusieurs cadres disperser


de la mémoire physique
4-2-4 -conversion d’une des adresses
Une adresse logique est composée de deux parties :
- Le numéro de la page
Système d’exploitation 2 M.

- Le déplacement (ou offset) a l’intérieure de la page


- Le MMU (memory managment Unit) permet d’effectuer la
conversion : l’adresse physique
@physique = (cadre physique * Taille de page) + offset
Exemple :
Soit une mémoire donc la taille de page est égale à 1Ko et la table
de page est la suivante
Calculer l’adresse physique de la page 2 ayant pour déplacement
20
@logique = (Page2, offset = 20)
@physique = (7*1024) + 20 = 7188

4-2-5- Le rôle du MMU (ou gestionnaire de mémoire)


- Le MMU est un composant physique de qui permet de traduire
automatique les adresses physiques en adresse logiques
- Gérer les tables de pages
- Vérifier les autorisations d’accès
- Gérer les interruptions de pages manquantes (c’est-à-dire le
défaut de page)
Sans le MMU chaque programme devrait gérer la mémoire
manuellement ce qui est impossible.

5- Pagination multiniveau
Pour les grandes espaces mémoire une table de pages simple
serait trop grande. une des solutions est de diviser en plusieurs
niveaux pour économiser la mémoire.

6- les mémoires associatives


Pour accélérer la traduction des adresses on utilise une mémoire
associative appeler TLB (Translation Look aside Buffer). Elle
conserve les correspondantes ressentes entre les pages et les
Système d’exploitation 2 M.

cadres. Si une correspondance est trouvée dans le TLB on a un


accès direct à la mémoire physique sinon, le MMU consulte la
table des pages principales.
Avantages :
- Reduction du temps d’accès a la mémoire

inconvénients des systèmes paginées :


- Fragmentation externe
- Surcharge de la mémoire
- Lenteur sans TLB
- Complexité du matériel
avantages des systèmes paginées
- Evite la pagination externe
- Bonne gestion de la mémoire
- Facilite le SWAPPING

4-3 – les systèmes segmentés


La segmentation est une allocation non contiguë de la mémoire
qui consiste à diviser l’espace d’adressage logique d’un
programme en plusieurs segments de taille variable selon la
structure logique du programme.

Chaque segment correspond à une unité logique du programme


comme :
- Le code (qui est l’instruction)
- Les données (les variables)
- Piles (stock) portions de code
- Les modules indépendants (tableaux, procédures, etc. ...)
NB : la segmentation reflète la logique du programme et non une
simple division en blocks fixes comme dans la pagination
Système d’exploitation 2 M.

Objectifs
- La segmentation permet une organisation logique de la
mémoire
- elle facilite le partage et la protection des segments
- elle permet une allocation flexible puis que les segments
peuvent avoir des tailles différentes

4-4- Structure de la mémoire segmentée


a- mémoire logique
c’est une mémoire divisée en 4 segments :
 segment 0 qui est le code du programme
 segment 1 qui sont les données globales
 segment 2 qui est la pile (stock)
 segment 2 qui est un tableau (module)

chaque segment a :
 un nom ou un numéro
 une taille
 une adresse de base (en mémoire physique)

b- la table des segments


chaque processus possède une table de segments contenant pour
chacun des segments :
N° segment Adresse de base Taille de segment
0 4000 1200
1 5200 600
2 5800 500
3 6300 800

Exemple : une adresse logique dans un système segmenté est


composée de :
- son numéro de segment
Système d’exploitation 2 M.

- son déplacement

@logique : (numéro de segment, déplacement)


(1, 50)
Signifie 1 segment et le 50 -ème octet à partir du début.

Pour convertir en adresse physique, on calcule la relation


suivante :
@physique : adresse de la base de segment + déplacement
soit la table de segments suivant :
segment Base Taille
0 1000 400
1 1400 600
2 2000 300

Calculez l’adresse physique du segment 1 ayant un


déplacement = 100
@logique (1, 100) = @physique ?
@physique = 1400 + 100 = 1500

4- conversion des adresses


Lorsqu’un programme accède à une adresse logique
- la MMU consulte la table des segments pour trouver :
 l’adresse de la base du segment
 la taille maximale su segment
- elle vérifie si l’offset est <= taille du segment
 si oui, ça implique un accès autorisé
 sinon, il y a erreur de déplacement de segment
(segmentation fault)
- l’adresse physique = base + offset

5- avantage de la segmentation
Système d’exploitation 2 M.

La segmentation permet :
 une organisation logique de la mémoire
 une adaptation de la taille dans le contenu de la mémoire
 partage facile de la mémoire entre les processus

6- inconvénients
 elle crée une fragmentation externe car les segments ont
des tailles variables ce qui crée des trous en mémoire
 la gestion est complexe avec la segmentation car il faut
maintenir une table par processus
 surcharge du système
 elle nécessite de la MMU pour faire la traduction segment
adresse physique

7- différence entre segmentation et pagination

Critères Pagination Segmentation


taille Fixe (ex : 4Ko) variable
Unité logique Page (bloc de Segment (partie
mémoire) logique du
programme)
Fragmentation interne externe
Objectifs Efficacité à la Organisation logique
mémoire du programme
Tables Table de page, Tables des
offset segments
Adresse logique (numéro de page, (numéro de
offset) segment, offset)

Exercice d’application
Soit la table des segments de taille logique suivante :
segment Base Taille @logique
0 2000 400 (0, 50)
1 2400 800 (1, 700)
2 3200 500 (2, 520)
Système d’exploitation 2 M.

Convertir les adresses logiques en adresses physiques


@physique = base + offset
Segment 0: @physique = 2000 + 50 = 2050
Segment 1 : @physique = 2400 + 700 = 3100
Segment 2 : @physique = 500 + 520 (impossible car la taille du
déplacement est supérieure à la base)

1.4.4- les algorithmes de remplacement des pages


Ils sont utilisés pour gérer la mémoire dans les systèmes
d’exploitation avec un nombre de page limité disponibles en
mémoire. Lorsqu’une nouvelle page doit être chargé en mémoire,
mais que celle-ci est pleine, un algorithme de remplacement de
page choisit une page victime qui doit être remplacé par la
nouvelle.
P1
P2 Frame 1
P3 Frame 2
P4 Frame 3
P5

Les emplacements
On appelle interruption ou exception ce qui se produit lorsqu’un
processus tente d’accéder à une page qui est présente dans son
espace d’adressage virtuel mais non présente dans la mémoire
physique c-à-d non chargé dans la RAM.
Le composant matériel qui prend en charge une détection de
défaut de page est le MMU tandis que le logiciel de la gestion des
exceptions fait partie du système d’exploitation.

Il existe des algorithmes de remplacement de pages :


Système d’exploitation 2 M.

 pagination à la demande qui consiste à remplacer une page


seulement si nécessaire
 Le remplacement de page FIFO : elle permet de remplacer la
page la plus ancienne
 L’algorithme optimal : elle permet de remplacer la page qui
ne sera pas utilisée pendant le plus longtemps
 L’algorithme LRU (Least Recently Used) : elle permet de
remplacer la page la moins récemment utilisée
 L’algorithme MFU (Most Frequently Used) : qui permet de
remplacer la page la plus utilisée
 L’algorithme NUR (Not Used Recently) : qui est basé sur les
bits de référence et de modification.

Exercice d’application
Soit une mémoire logique ayant des pages successives dans la
mémoire logique. Soit 19 pages de la mémoire logique pouvant
être remplacé en mémoire physique ayant 3 frames cadres.
1- ALGORITHME FIFO
3 2 1 3 4 1 6 2 4 3 4 2 1 4 5 2 1 3 4
Fx 3 3 3 3 4 4 4 4 4 3 3 3 3 3 5 5 5 5 4
1
Fx ❌ 2 2 2 2 2 6 6 6 6 4 4 4 4 4 2 2 2 2
2
Fx ❌ ❌ 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 3 3
3
D 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1

on a ici 13 défauts de pages (1 = défaut de page et 0 = pas de


défaut de page)

2- ALGORITHME LRU
3 2 1 3 4 1 6 2 4 3 4 2 1 4 5 2 1 3 4
Fx 3 3 3 3 3 3 6 6 6 3 3 3 1 1 1 2 2 2 4
1
Fx ❌ 2 2 2 4 4 4 2 2 2 2 2 2 2 5 5 5 3 3
Système d’exploitation 2 M.

2
Fx ❌ ❌ 1 1 1 1 1 1 4 4 4 4 4 4 4 4 1 1 1
3
D 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1

On a 14 défauts de pages.

3- ALGORITHME MFU
3 2 1 3 4 1 6 2 4 3 4 2 1 4 5 2 1 3 4
Fx 3 3 3 3 4 4 4 4 4 4 4 2 2 4 5 5 5 5 5
1
Fx ❌ 2 2 2 2 2 2 2 2 3 3 3 1 1 1 2 1 3 4
2
Fx ❌ ❌ 1 1 1 1 6 6 6 6 6 6 6 6 6 6 6 6 6
3
D 1 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1

On a 14 défauts de pages.

4- ALGORITHME OPTIMALE
3 2 1 3 4 C 6 2 4 3 4 2 1 4 5 2 1 3 4
1
Fx 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 3 4
1
Fx ❌ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2
Fx ❌ ❌ 1 1 1 1 6 6 6 3 3 3 1 1 1 1 1 1 1
3
D 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1

CHAPITRE 2 : LES SYSTEMES D’ENTREES/SORTIES

1- INTRODUCTION
Système d’exploitation 2 M.

Un système d’entrée/sortie désigne l’ensemble des mécanismes


matériels et logiciels permettant la communication entre l’unité
centrale (le processeur et la mémoire) et le monde extérieur
(périphériques). Exemple de périphérique : le clavier, la souris.
L’objectif principal est de transférer les données entre la mémoire
centrale et les périphériques tout en assurant la synchronisation
et la sécurité de ces échanges.

Rôles du systèmes d’E/S


 Gérer la communication entre le CPU et les périphériques
 Traduire les signaux c-à-d numérique vers physique et vice
versa
 Assurer la synchronisation c-à-d la vitesse du CPU vers les
périphériques
 Gérer les interruptions, les erreurs et les priorités
Les systèmes d’E/S permettent aussi :
a- Assurer la communication entre le processeur et les
périphériques car le système d’E/S sert d’interface entre
l’unité centrale et les périphériques. Il permet au processeur
d’envoyer ou de recevoir les données vers ou depuis les
téléphoniques.

b- Adapter la vitesse de fonctionnement

les périphériques fonctionnent beaucoup plus lentement que le


processeur, les systèmes d’E/S utilisent les tampons ou les Buffers
et des contrôleurs pour synchroniser les transferts de données
entre des unités à vitesses différentes. Exemple : le CPU peut
envoyer les données à un tampon pendant que l’imprimante
imprime lentement ligne/ligne

c- Conversion des formats de données


les périphériques utilisent souvent les signaux électrique ou
physique diffèrent de ceux du processeur ce qui implique que le
système E/S utilisent la conversion entre :
Système d’exploitation 2 M.

- Les données binaires internes


- Les signaux physiques (les impulsions, les tensions, lumières,
sons) exemple : la carte graphique convertit les signaux
numériques en signaux visuels affiché sur l’écran

d- Gérer la synchronisation et contrôle


Il veille à ce que les opérations d’E/S se passent dans le bon ordre
sans perte de données ni conflit d’accès. Ils utilisent les
mécanismes comme les intervalles d’attente, les interruptions et
le DMA (DIRECT MEMORY ACCESS)

e- Signaler les erreurs et interruption


Lorsqu’un périphérique rencontre un problème (erreur de lecture,
absence de papier etc.), le système d’E/S doit :
- Détecter l’erreur
- En informer le processeur
- Gérer la reprise de l’opération

f- Gérer les priorités entre les périphériques


Quand plusieurs périphériques demandent l’attention du CPU, le
système d’entrée/S doit établir un ordre de priorité. Exemple : une
demande du disque dur est plus urgente qu’une frappe au clavier

2- Les ports d’entrée/sorties


2.1- définition
Un port d’E/S est une interface (physique ou logique) qui
permet à l’ordi de communiquer avec les périphériques
externes.
C’est par ces ports que transitent les données, les commandes
et les signaux de contrôle entre le processeur et les
périphériques. Exemple : un port USB peut connecter une clé
USB ; un port HDMI pour envoyer l’image vers un écran ; un
port Ethernet pour la connexion réseau
Système d’exploitation 2 M.

2 .2- rôles des ports d’E/S


Les ports d’E/S servent d’intermédiaire entre eux :
- Le processeur pour la mémoire centrale
- Les périphériques
Les fonctions principales :
- Transférer les données entre l’unité centrale et les
périphériques
- Identifier les périphériques connectés
- Gérer le sens de transfert des données (entré, sortie ou
bidirectionnels)
- Contrôler le fonctionnement du périphérique via le registre
de commande
- Détecter les erreurs ou signaux d’états

3- Les types de ports d’E/S

A- Ports physiques
Ce sont les connecteurs matériels visibles à l’arrière ou sur le coté
de l’ordinateur et permettent la connexion des périphériques
externes. Les ports USB dont l’utilisation principale est le transfert
des données pour les périphériques externes, le port HDMI pour la
transmission audio vidéo numériques ; exemple : le moniteur et le
projeteur ; les ports audio (jack) pour l’E/S du son exemple : le
casque et le micro ; le port Ethernet (RJ45) pour les connexions
réseaux filaire exemple : le câble LAN ; les ports VGA ou Display
Port pour l’affichage vidéo exemple : l’écran ; les ports SATA pour
la connexion interne des disques exemple : les disques SSD et
HDD

B- Les ports logiques


Ce sont les adresses logiques (ou registre) utilisés par le
processeur par le logiciel avec les périphériques. Chaque
Système d’exploitation 2 M.

périphérique possède une adresse d’entrée/S dans l’espace


mémoire du système.
Exemples :
- le clavier peut être relier à l’adresse logique 0x60
- Le processeur lit ou écrit dans cette adresse pour échanger
les données
Ces adresses sont gérées par le système d’exploitation et le
pilote.

4- Les types de transfert selon le port


Il existe 2 types de transfert selon le port : le port série et le port
parallèle
a- Le port série
Les données sont transférées bit/bit sur une seule ligne. Il est plus
lent mais plus simple et utilisés sur des longues distantes.
Exemple : on a les RS232, USB et le Bluetooth
b- Le port parallèle
Les données sont transférées octet/octet c-à-d 8 bits en même
temps et sont plus rapide sur des courtes distantes exemple : les
anciens ports d’imprimante et les bus IDE.

5- Organisation interne des ports E/S


Un port E/S contient :
 Un registre de donnée pour stocker les bits à envoyer ou
reçu
 Un registre de commande pour indiquer l’opération à
effectuer
 Un registre d’état pour informer le processeur s’il est occupé,
prêt ou s’il contient les erreurs

6- Les périphériques d’entrée/sorties


Système d’exploitation 2 M.

a- Les périphériques d’entrées


Ce sont les périphériques qui permettent de faire transiter les
informations à l’intérieur de l’ordinateur ; exemple : le clavier, la
souris, le scanner…

b- Les périphériques de sorties


Ce sont les périphériques qui permettent de véhiculer les
informations de l’intérieur de l’ordinateur vers l’extérieur.

c- Les périphériques mixtes


Ce sont les périphériques qui ont à la fois les fonctions d’E/S.
exemple : le modem, le stylo à bille, le jet d’encre, les codes à
barres…

7- Les modes d’accès aux ports E/S

Il existe 2 fonctions 2 façons principales pour le processeur


d’accéder aux E/S :
a- Entrée/S isolés :
- les ports ont un espace d’adressage distincts de la mémoire
- le CPU utilise des instructions tels que IN et OUT
b- E/S mappés en mémoire :
- Les ports sont intégrés dans l’espace mémoire normale
- Le CPU les manipule comme des adresses mémoires
ordinaires
AVANTAGES : plus rapide et plus souple que le système
Schéma simplifié :

Processeur (CPU)

Ensemble d’E/S
Système d’exploitation 2 M.

PORTS
D’E/S(Contrôleur)

Périphérique (Clavier) Périphérique (Ecran)

En résumé
 le port d’E/S est l’interface entre le CPU et les périphériques.
 Un port physique est un connecteur matériel (Exemple : USB,
HDMI). Un port logique est l’adresse de communication
interne.
 Port série c’est pour le transfert bit à bit.
 Port parallèle pour le transfert octet par octet.
 Le registre de commande définit l’opération à effectuer.
 Le registre d’état informe le CPU du statut du périphérique

8- Les entrées/sorties programmés

1- Définitions
Les entrées/sorties programmés ou E/S par scrutation sont un
mode de communication simple entre le processeur et les
périphériques. Dans ce mode, le processeur contrôle directement
le déroulement de l’opération d’entrée ou de sortie sans
interruption ni accès directs à la mémoire.
Mécanisme : le fonctionnement se déroule en plusieurs étapes :
1- Le processeur envoi une commande au périphérique à
travers son port d’entrée/sorties (par exemple : « lit une
donnée ou écrit une donnée »)
Système d’exploitation 2 M.

2- Le processeur attend que le processus ait terminé son


opération ; pendant ce temps, il vérifie en boucle l’état du
périphérique
3- Quand le périphérique indique qu’il est prêt (bit d’état = 1),
le processeur lit ou écrit la donnée dans le registre des
données du périphérique
4- L’opération recommence pour chaque donnée à transférer

Exemple concret : lecture du clavier


1- Le processeur envoi une demande de lecture au contrôleur
du clavier.
2- Il vérifie sans arrêt c-à-d la scrutation de bit près du clavier
3- Dès que le clavier signale qu’une touche a été pressée, le
processeur lit le code ASCII dans le registre de données du
clavier
4- Le CPU peut ensuite afficher le caractère sur l’écran
5- Shema :

Processeur 1Envoi courante Périphérique (clavier)


A

2. vérifier l’état (prêt)

[Link] (écriture clavier)

Avantages :
- La simplicité : facile de mettre en œuvre matériellement et
logiciellement
- Contrôle totale c-à-d que le processeur maitrise chaque
contrôle de transfert
- Pas de materiel complexe c-à-d pas besoin de controleur
DRM ni d’interruption
INCONVENIENTS :
- Perte de temps CPU c-à-d que le processeur reste inactif en
attendant le périphérique
Système d’exploitation 2 M.

- Faible efficacité c-à-d un mauvais rendement quand le


périphérique est lent exemple : l’imprimante
- Non adapté au transfert massif c-à-d inefficace pour les ros
volume de données
EN RESUME :
Le principe des E/S programmés est que le CPU interroge en
boucle le périphérique jusqu’à ce qu’il soit prêt ; le rôle du CPU est
de contrôler entièrement le transfert ; la communication est
directe entre le CPU et le périphérique

9- Les interruptions

1- Définition
Une interruption est un signal envoyé au processeur pour attirer
son attention lorsqu’un évènement important se produit afin qu’il
suspende momentanément son activité courante et exécute une
tâche urgente. Autrement dit, c’est un moyen pour périphérique
ou un programme d’interrompre le CPU afin qu’il exécute une
routine spéciale appelée programme de service d’interruption
(ISR) ou routine d’interruption.

Mécanisme : le processus d’interruption se déroule en plusieurs


étape à savoir :
- Un périphérique (ou un logiciel) détecte un événement
nécessitant l’attention du processeur. Exemple : une touche
est pressée sur le clavier ; Un transfert disque est terminé et
une erreur matérielle est détectée
- Envoi du signal d’interruption : le périphérique envoi un
signal d’interruption au processeur via une ligne
d’interruption appelée INTERUPT REQUEST LINE (IRQ) qui est
la ligne matériel dédiée pour chaque périphérique
- Suspension du programme en cours
Le processeur :
- Termine l’instruction en cours
Système d’exploitation 2 M.

- Sauvegarde le contexte d’exécution (adresse, registre, état)


- Passe en mode superviseur (ou noyau) pour exécuter le
gestionnaire d’exécution
- Identification de l’interruption : le CPU détermine quel
périphérique est à l’origine de l’interruption grâce à un
vecteur d’exécution
- Exécution de la routine de l’interruption : le processeur
exécute le programme de service d’interruption (ISR)
correspondant. Cette routine effectue les actions nécessaires
à savoir :
 Lire ou écrire les données du périphérique
 Réinitialiser le signal d’interruption
 Signaler la fin du traitement
- Restauration du contexte et reprise du programme : une fois
la routine terminée :
 Le CPU restaure le contexte sauvegardé
 Et reprend l’exécution du programme interrompu comme
si rien ne c’était passé
RESUME :
Premièrement, le périphérique demande une interruption ;
deuxièmement le processeur termine l’instruction en cours ;
troisièmement le CPU sauvegarde le contexte du programme
actif ; le CPU identifie la source via le vecteur d’interruption ;
cinquièmement le CPU exécute la routine correspondante. Le CPU
restaure le contexte et reprend le programme initial ;
Les avantages des interruptions :
 le CPU ne perds pas de temps à attendre ; il travaille jusqu’à
être sollicité
 La réactivité : les périphériques peuvent signaler
immédiatement un événement
 Partage de ressource : plusieurs périphériques peuvent
fonctionner de manière asynchrone
Les inconvénients des interruptions :
 La complexité de gestion : il faut gérer la priorité, le
masquage
Système d’exploitation 2 M.

 Risque de surcharge : trop d’interruption peuvent ralentir le


système
 Difficulté de débogage c-à-d que le comportement
asynchrone rend le diagnostique plus difficile

10- Accès directs à la mémoire (DMA)


1- Définition
On appelle DMA (direct Memory Access) ou Accès direct à la
mémoire est un mode de transfert de données qui permet à un
périphérique d’échanger directement des données avec la
mémoire centrale sans passer par le processeur pour chaque
octet transféré. Le rôle du processeur se limite à initialiser
l’opération du DMA puis le contrôleur DMA prend le relais pour
effectuer le transfert.
Mécanisme : le fonctionnement du DMA se déroule en plusieurs
étapes :
a- Initialisation du transfert : le processeur configure le
contrôleur DMA en lui fournissant :
- L’adresse source (périphériques et mémoires)
- L’adresse de destination (mémoire ou périphérique)
- La taille du bloc de données à transférer
- Le sens du transfert (lecture ou écriture)
b- Lancement du transfert
Une fois les paramètres configurés,
- le processeur donne l’autorisation au contrôleur DMA de
commencer le transfert
- le périphérique signale au contrôleur qu’il est prêt à
transférer les données
c- prise de contrôleur du bus par le contrôleur DMA
- le contrôleur DMA prend temporairement le contrôle des bus
systèmes (bus d’adresse et bus de données)
- pendant ce temps, le processeur est mis en attente c-à-d il
cède le bus. Ce mécanisme est appelé arbitrage de bus
d- transfert direct des données
Système d’exploitation 2 M.

le contrôleur DMA transfère directement les données entre les


périphériques et la mémoire :
- sans passer par le registre du processeur
- de façon rapide et continue
e- le signal de fin de transfert
quand le transfert est terminé :
- le contrôleur DMA envoie un signal d’interruption au
processeur pour l’informer la fin de l’opération
- le processeur reprend alors le contrôle du bus et peut
continuer son exécution normale (je dois faire le schema)

Avantages
- gain de temps : le processeur n’intervient pas pendant le
transfert
- rapidité : les données sont transférées en bloc sans
instruction logicielle
- efficacité : le CPU peut exécuter d’autres tâches pendant que
la DMA travaille
- idéale pour les gros volumes très utiles pour les cartes
disques, audio, vidéos…
Inconvénients
- complexité matérielle : nécessite un contrôleur DMA
spécialisé
- conflit d’accès mémoire : le DMA et le CPU peuvent se
disputer le bus mémoire
- synchronisation nécessaire : il faut gérer les priorités entre le
CPU et le DMA

2.5- les pilotes de périphériques (ou drivers)


1- définition
Un pilote de périphérique (ou drivers) est un logiciel intermédiaire
qui permet au système d’exploitation de communiquer avec un
Système d’exploitation 2 M.

périphérique matériel (l’imprimante, la souris, le disque dur, la


carte réseau…)
Sans pilote, le système ne sait pas comment utiliser le
périphérique.
Rôle principale du pilote : le pilote agit comme un traducteur
entre :
- le SE qui parle en instruction logicielle
- le périphérique qui comprend des signaux matériels
spécifiques
en d’autres mots, le pilote traduit les ordres du système en
commande compréhensible par les périphériques
fonction principale du pilote de périphérique :
- communication : qui gère le dialogue entre le périphérique et
le SE
- traduction : convertit les instructions logicielles en
commande matérielle et inversement
- optimisation : améliore les performances de communication
entre l’ordinateur et les périphériques.
- Gestion des erreurs : signale au SE des erreurs matérielles
tels que les papiers manquants, les câbles débranchées …

2- Les types de pilotes


- Pilote de périphériques d’entrée : dont le rôle est
d’interpréter les signaux envoyés vers l’ordinateur
- Les pilotes de périphériques de sorties : qui envoient les
données à afficher ou à imprimer
- Les pilotes de stockage : qui gère la lecture, écriture des
données
- Les pilotes réseaux : qui gèrent la communication entre
l’ordinateur et le réseau

2.6- les performances d’un ordinateur


Les performances dépendent de :
Système d’exploitation 2 M.

- La vitesse du processeur exprimer en GHz


- La rapidité des entrées/sorties
- La taille du tampon et du cache
- Du type de bus utilisé tels que le bus USB 3.0 ou 2.0 ; les bus
SATA et NVMe
Un système performant doit minimiser les temps d’attente E/S
grâce à :
- Aux interruptions
- Au DMA
- A la mise en tampon
- A une bonne gestion des pilotes

Vous aimerez peut-être aussi