Vous êtes sur la page 1sur 71

Info 324 Les systmes dexploitation II

Dr. Samar TAWBI


1

Gestion de la mmoire centrale

Gestion de mmoire: objectifs


Optimisation de l utilisation de la mmoire principale = RAM Le plus grand nombre possible de processus actifs doit y tre gard, de faon optimiser le fonctionnement du systme en multiprogrammation
garder le systme le plus occup possible, surtout lUC sadapter aux besoins de mmoire de l usager
allocation dynamique au besoin

Mmoire/Adresses physiques et logiques


Mmoire physique:
la mmoire principale RAM de la machine

Adresses physiques: les adresses de cette mmoire


Mmoire logique: lespace dadressage dun programme Adresses logiques: les adresses dans cet espace Il faut sparer ces concepts car normalement, les programmes sont chargs de fois en fois dans positions diffrentes de mmoire
Donc adresse physique adresse logique
4

Traduction adresses logiques adr. physiques


Dans les premiers systmes, un programme tait toujours charg dans la mme zone de mmoire La multiprogrammation et lallocation dynamique ont engendr le besoin de charger un programme dans positions diffrentes

Aujourdhui, ceci est fait par le MMU au fur et mesure que le progr. est excut
Ceci ne cause pas dhausse de temps d excution, car le MMU agit en parallle avec autres fonctions d UCT
P.ex. l MMU peut prparer l adresse d une instruction en mme temps que l UCT excute l instruction prcdente
5

Traduction adresses logiques adr. physiques


Un mcanisme de translation dadresse est alors ncessaire
Transformer les adresses symboliques en adresses relles

Registre de base (b): plus basse adresse mmoire utilise par un processus Longueur (l): la longueur de lespace physique alloue

Peut tre formule sous la forme

1) Si a<0 alors violation de mmoire 2) Sinon Si a > l alors violation de la mmoire 3) Sinon f(a) = a = b+a 4) a est une adresse valable

F:S a

R b+a

Traduction adresses logiques adr. physiques


Registre de base = la plus basse adresse mmoire utilise
Registre de base

MMU: unit de gestion de mmoire unit de traduction adresses


(memory management unit)
7

Permutation de programmes (swapping)


Un programme, ou une partie de programme, peut tre temporairement enlev de mmoire pour permettre lexcution dautres programmes
il est mis dans mmoire secondaire, normal. disque

Affectation contigu de mmoire


Nous avons plusieurs programmes excuter Nous pouvons les charger en mmoire les uns aprs les autres
Le programme en entier est charg le lieu o un programme est lu nest connu quau moment du chargement

Affectation contigu de mmoire


SE progr. 1 progr. 2

disponible
progr. 3 Nous avons ici 4 partitions pour des programmes chacun est charg dans une seule zone de mmoire
10

Registres de relocation et de limite

11

Allocation contigu
Allocation partition multiple
Trou bloc mmoire disponible; des trous de tailles variables
sont parpills dans la mmoire. Quand un processus arrive, il est allou une zone mmoire dun trou suffisamment grand pour le contenir. Le systme dexploitation maintient les informations sur: a) les partitions alloues b) les partitions libres (trous)
OS process 5 OS process 5 OS process 5 process 9 process 8 process 2 process 2 process 2 OS process 5 process 9 process 10 process 2

12

Fragmentation: mmoire non utilise


problme : Il y a assez d espace pour excuter un programme, mais il est fragment de faon non contigu
externe: lespace inutilis est entre partitions

interne: lespace inutilis est dans les partitions

La fragmentation interne na pas de solution


13

Partitions fixes
Mmoire principale subdivise en rgions distinctes: partitions
Les partitions sont soit de mme taille ou de tailles ingales Nimporte quel progr. peut tre affect une partition qui soit suffisamment grande
14

Algorithme de placement pour partitions fixes


Partitions de tailles ingales: utilisation de plusieurs files
assigner chaque processus la partition de la plus petite taille pouvant le contenir 1 file par taille de partition tente de minimiser la fragmentation interne Problme: certaines files seront vides sil ny a pas de processus de cette taille (fr. externe)

15

Algorithme de placement pour partitions fixes


Partitions de tailles ingales: utilisation dune seule file
On choisit la plus petite partition libre pouvant contenir le prochain processus

le niveau de multiprogrammation augmente au profit de la fragmentation interne

16

Partitions fixes
Simple, mais... Inefficacit de lutilisation de la mmoire: tout programme, si petit soit-il, doit occuper une partition entire. Il y a fragmentation interne.

Les partitions tailles ingales diminuent ces problmes mais ils y demeurent...

17

Partitions dynamiques
Partitions en nombre et tailles variables Chaque processus est allou exactement la taille de mmoire requise Probablement des trous inutilisables se formeront dans la mmoire: cest la fragmentation externe

18

Partitions dynamiques: exemple

(d) Il y a un trou de 64K aprs avoir charg 3 processus: pas assez despace pour autre processus Si P2 se bloquent (p.ex. attente dun vnement), il peut tre permut et P4=128K peut tre charg.
19

Partitions dynamiques: exemple

(e-f) P2 est suspendu, P4 est charg. Un trou de 224-128=96K est cr (fragmentation externe) (g-h) P1 se termine, P2 est repris : produisant un autre trou de 320224=96K... Nous avons 3 petits trous et probablement inutiles. 96+96+64=256K de fragmentation externe COMPRESSION pour en faire un seul trou de 256K 20

Compression (compaction)
Une solution pour la fragmentation externe Les programmes sont dplacs en mmoire de faon rduire 1 seul grand trou plusieurs petits trous disponibles Effectue quand un programme qui demande dtre excut ne trouve pas une partition assez grande, mais sa taille est plus petite que la fragmentation externe existante

Inconvenients:
temps de transfert programmes besoin de rtablir tous les liens entre adresses de diffrents programmes

21

Algorithmes de Placement
pour dcider de lemplacement du prochain processus But: rduire le besoin de la compression (qui prend du temps...) Choix possibles:
Best fit: choisir le plus petit trou
(meilleur accs)

First-fit: choisir 1er trou partir du dbut (premier accs) Next-fit: choisir 1er trou partir du dernier placement (prochain
accs) accs)

Worst fit: le plus grand (pire

22

Allocation non contigu


Afin de rduire la fragmentation
diviser un programme en morceaux et permettre l`allocation spare de chaque morceau les morceaux sont beaucoup plus petits que le programme entier et donc permettent une utilisation plus efficace de la mmoire les petits trous peuvent tre utiliss plus facilement

Deux techniques: la pagination et la segmentation


la segmentation utilise des parties de programme qui ont une valeur logique (des modules) la pagination utilise des parties de programme arbitraires (morcellement du programmes en pages de longueur fixe). elles peuvent tre combines
23

Les segments sont des parties logiques du programme

A
Progr. Princ.

JUMP(D, 100) LOAD(C,250)

B
Donnes

C Donnes

D Sousprogr.

LOAD(B,50)

4 segments: A, B, C, D

24

Les segments comme units dalloc mmoire


0 0 1 3

2 3

1 2

espace usager

mmoire physique

tant donn que les segments sont plus petits que les programmes entiers, cette technique implique moins de fragmentation (qui est externe dans ce cas)
25

Mcanisme pour la segmentation


Un tableau contient ladresse de dbut de tous les segments dans un processus Chaque adresse dans un segment est ajoute l adresse de dbut du segment par la MMU 0 3

segment courant

Adr de 3 Adr de 2 Adr de 1 Adr de 0

1 2

Tableau de descripteurs de segments

mmoire physique
26

Dtails
Ladresse logique consiste d une paire: <No de segm, dcalage>
o dcalage est l adresse dans le segment

Le tableau des segments contient: descripteurs de segments


Adresse (registre) de base longueur du segment Infos de protection,

Dans le PCB (Process Control Block) du processus il y aura un pointeur l adresse en mmoire du tableau des segments Il y aura aussi l dedans le nombre de segments dans le processus Au moment de la commutation de contexte, ces infos seront charges dans les registres appropris dUC

27

Traduction d`adresses dans la segmentation

Aussi, si d > longueur:

erreur!

28

Le mcanisme en dtail (implant dans le


matriel)

Dans le programme

Adresse finale

29

Partage de segments: le segment 0 est partag


P.ex: Programme Word utilis pour diter diffrents documents

30

Segmentation et protection
Chaque descripteur de segment peut contenir des infos de protection:
longueur du segment privilges de lusager sur le segment: lecture, criture, excution Si au moment du calcul de ladresse on trouve que lusager na pas droit daccsinterruption ces infos peuvent donc varier d usager usager, par rapport au mme segment!

limite

base

read, write, execute?

Tableau de descripteurs de segments


31

valuation de la segmentation simple


Avantages: lunit dallocation de mmoire est
plus petite que le programme entier une entit logique connue par le programmeur les segments peuvent changer de place en mmoire la protection et le partage de segments sont aiss (en principe)

Inconvvients: le problme des partitions dynamiques:


La fragmentation externe nest pas limine:
trous en mmoire, compression?

Une autre solution est dessayer simplifier le mcanisme en utilisant des units d`allocation mmoire de tailles gales PAGINATION
32

Segmentation contre pagination


Le pb avec la segmentation est que lunit dallocation de mmoire (le segment) est de longueur variable La pagination utilise des units dallocation de mmoire fixe, liminant donc ce problme

33

Pagination simple
La mmoire est partitionne en petits morceaux de mme taille: les pages physiques ou cadres ou frames Chaque processus est aussi partitionn en petits morceaux de mme taille appels pages (logiques) Les pages logiques dun processus peuvent donc tre assigns aux cadres disponibles nimporte o en mmoire principale Consquences:
un processus peut tre parpill nimporte o dans la mmoire physique. la fragmentation externe est limine
34

Exemple de chargement de processus

Supposons que le processus B se termine ou est suspendu


35

Exemple de chargement de processus


Nous pouvons maintenant transfrer en mmoire un progr. D, qui demande 5 cadres
bien qu`il ny ait pas 5 cadres contigus disponibles

La fragmentation externe est limite au cas que le nombre de pages disponibles nest pas suffisant pour excuter un programme en attente Seule la dernire page dun progr peut souffrir de fragmentation interne (moy. 1/2 cadre par proc)

36

Tableaux de pages

Les entres dans le tableau de pages sont aussi appeles descripteurs de pages
37

Tableaux de pages

Le SE doit maintenir une table de pages pour chaque processus Chaque descripteur de pages contient le numro de cadre o la page correspondante est physiquement localise Une table de pages est indexe par le numro de la page (logique) afin dobtenir le numro du cadre Une liste de cadres disponibles est galement maintenue
(free frame list)
38

Traduction dadresses
Ladresse logique est facilement traduite en adresse physique
car la taille des pages est une puissance de 2 les pages dbutent toujours des adresses qui sont puissances de 2 qui ont autant de 0s droite que la longueur de loffset donc ces 0s sont remplacs par loffset

Ex: si 16 bits sont utiliss pour les adresses et que la taille dune page = 1K: on a besoin de 10 bits pour le dcalage, laissant ainsi 6 bits pour le numro de page Ladresse logique (n,m) est traduite l adresse physique (k,m) en utilisant n comme index sur la table des pages et en le remplaant par l adresse k trouve
m ne change pas
39

Mcanisme: matriel

40

Traduction dadresse (logiquephysique) pour la pagination

41

Trad. dadresses: segmentation et pagination


Tant dans le cas de la segmentation, que dans le cas de la pagination, nous ajoutons le dcalage ladresse du segment ou page. Cependant, dans la pagination, laddition peut tre faite par simple concatnation:

11010000+1010
=

1101 1010

42

Segmentation simple vs Pagination simple


La pagination se proccupe seulement du problme du chargement, tandis que La segmentation vise aussi le problme de la liaison La segmentation est visible au programmeur mais la pagination ne lest pas Le segment est une unit logique de protection et partage, tandis que la page ne lest pas
Donc la protection et le partage sont plus aiss dans la segmentation

La segmentation requiert un matriel plus complexe pour la traduction dadresses (addition au lieu d`enchanement) La segmentation souffre de fragmentation externe (partitions dynamiques) La pagination produit de fragmentation interne, mais pas beaucoup (1/2 cadre par programme) Heureusement, la segmentation et la pagination peuvent tre combines
43

Pagination et segmentation combines


Les programmes sont diviss en segments et les segments sont pagins

Donc chaque adresse de segment n`est pas une adresse de mmoire, mais une adresse au tableau de pages du segment
Les tableaux de segments et de pages peuvent tre euxmmes pagins
Mthode invente pour le systme Multics de lMIT, approx. 1965.

44

Adressage

(sans considrer la pagination des tableaux de pages et de segments)


s p d d

segment table base register: un registre de l`UCT

45

Exercice 2-1
(Allocation Contigu, Partition Dynamique)
On considre la suite de demandes dallocation (+) et de libration (-) suivantes dans un espace mmoire de 1000 blocs, en utilisant lallocation contigu avec des partitions dynamiques: +300, +200, +260, -200, +100, -300, +250, +400, -260, +150, +120, -100, -120, +200, -150, -250, +100, -400, +600, -100, -200, -600 Indiquer comment, partir dune mmoire libre, lOS ralise lallocation avec les stratgies Best Fit, First Fit.

46

Exercice 2-2
Segmentation
On considre la table des segments suivante: Segment Base Longueur

0
1

540
1234

234
128

2
3 4

54
2048 976

328
1024 200

Calculer les adresses relles correspondant aux adresses virtuelles suivantes: (0, 128), (1, 99), (1, 100), (2, 465), (3, 888), (4, 100), (4, 344)
47

Exercice 2-3
Pagination
Dans un systme pagin, les pages font 256 mots chacune et la mmoire centrale comprend 4 cadres. On considre la table des pages suivantes
0 1 2 3 4 5 6 7 3 0 i i 2 i i 1
48

Calculer la taille de la mmoire physique Donnez le nombre de bits ncessaires pour ladresse du programme (logique) Calculer les adresses relles correspondant aux adresses logiques: (0,240), (2,34), (2,35), (6,42), (7,230) Trouver ladresse relle correspondant ladresse virtuelle 456

De la pagination et segmentation la mmoire virtuelle


Un processus est constitu de morceaux (pages ou segments) ne ncessitant pas doccuper une rgion contigu de la mmoire principale Rfrences la mmoire sont traduites en adresses physiques au moment dexcution
Un processus peut tre dplac diffrentes rgions de la mmoire, aussi mmoire secondaire!

Donc: tous les morceaux dun processus ne ncessitent pas dtre en mmoire principale durant lexcution
Lexcution peut continuer condition que la prochaine instruction (ou donne) est dans un morceau se trouvant en mmoire principale

La somme des mmoires logiques des procs en excution peut donc excder la mmoire physique disponible
Le concept de base de la mmoire virtuelle

Une image de tout lespace dadressage du processus est garde en mmoire secondaire (normal. disque) do les pages manquantes pourront tre prises au besoin
Mcanisme de va-et-vien ou swapping
49

Mmoire virtuelle:

rsultat dun mcanisme qui combine la mmoire principale et les mmoires secondaires

50

Nouveau format du tableau des pages


(la mme ide pour les tableaux de segments)
bit prsent 1 si en mm. princ., 0 si en mm second.

Bit Adresse de la prsent page

Au dbut, bit prsent = 0 pour toutes les pages

51

Pages en RAM ou sur disque


Page A en RAM et sur disque

Page E seulement sur disque

52

Avantages du chargement partiel


Plus de processus peuvent tre maintenus en excution en mmoire
Car seules quelques morceaux sont chargs pour chaque processus

Plusieurs pages ou segments rarement utiliss nauront peut tre pas besoin d`tre chargs du tout
Il est maintenant possible dexcuter un ensemble de processus lorsque leur taille excde celle de la mmoire principale
Il est possible dutiliser plus de bits pour ladresse logique que le nombre de bits requis pour adresser la mmoire principale

53

Mmoire Virtuelle: Pourrait tre norme!


Ex: 16 bits sont ncessaires pour adresser une mmoire centrale de 64KB En utilisant des pages de 1KB, 10 bits sont requis pour le dcalage

Pour le numro de page de ladresse logique nous pouvons utiliser un nombre de bits qui excde 6 (plus que 26 cases dans la table des pages), car toutes les pages ne doivent pas obligatoirement tre en mmoire simultanment
Donc la limite de la mmoire virtuelle est le nombre de bits qui peuvent tre rservs pour l adresse
La mmoire logique est donc appele mmoire virtuelle
Est maintenue en mmoire secondaire Les pices sont amenes en mmoire principale seulement quand ncessaire, sur demande

54

Excution dun Processus


Le SE charge la mmoire principale de quelques pices (seulement) du programme (incluant le point de dpart) Chaque entre de la table de pages (ou segments) possde un bit prsent qui indique si la page ou segment se trouve en mmoire principale Lensemble rsident (rsident set) est la portion du processus se trouvant en mmoire principale Une interruption est gnre lorsque ladresse logique rfre une pice qui nest pas dans lensemble rsident
dfaut de pagination, page fault

55

Excution dun dfaut de page:


plus en dtail

va-et-vient

Mmoire virtuelle

56

Quand la RAM est pleine mais nous avons besoin dune page pas en RAM

57

Remplacement de pages
Quoi faire si un processus demande une nouvelle page et il ny a pas de cadres libres en RAM?
1. Trouver la location de la nouvelle page sur le disque.

2. Trouver un cadre libre:


Sil y en a un libre, lutiliser Sinon, utiliser un algorithme de remplacement pour choisir une page victime! (page dj en mmoire principal).

3. Lire la page demande dans le nouveau cadre libr. 4. Mettre a jour les tableaux de pages et de cadres. 5. Recommencer le processus
58

La page victime...

59

Algorithmes pour la politique de remplacement


Lalgorithme optimal (OPT) choisit pour page remplacer celle qui sera rfrence le plus tardivement
Ex.: mm. De 4 cadres 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1
2 3 4

6 dfauts de pages

produit le + petit nombre de dfauts de page impossible raliser (car il faut connatre le futur)
60

Algorithme Optimal

61

Algorithme LRU (Least Recently Used)


Ordre chronologique dutilisation (LRU)
Least Recently Used Remplace la page dont la dernire rfrence remonte au temps le plus lointain (le pass utilis pour prdire le futur)

62

Algorithme LRU
Pages Rfrences : 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1 2 3 4 5 4

Implmentation de compteur
Chaque entre de page a un compteur; chaque fois que la page est rfrence, on copie lhorloge dans le compteur Quand une page a besoin dtre change, on examine les compteur pour savoir laquelle choisir.
63

Comparaison OPT-LRU
Exemple: Un processus de 5 pages sil ny a que 3 pages physiques disponibles. Dans cet exemple, OPT occasionne 3+3 dfauts, LRU 3+4.

64

Premier arriv, premier sorti (FIFO)


Logique: une page qui a t longtemps en mmoire a eu sa chance d excuter Lorsque la mmoire est pleine, la plus vieille page est remplace. Donc: first-in, first-out Simple mettre en application Mais: Une page frquemment utilise est souvent la plus vielle, elle sera remplace par FIFO!

65

Comparaison de FIFO avec LRU

Contrairement FIFO, LRU reconnat que les pages 2 and 5 sont utilises frquemment Dans ce cas, la performance de FIFO est moins bonne: LRU = 3+4, FIFO = 3+6

66

Implantation de FIFO
Facilement implantable en utilisant une queue de cadres de mmoire
Qui ne doit tre mis jour que chaque dfaut de page Exercice: concevoir limplantation de ce tampon (v. exemple prcdent)

3 2

1 3 2

5 1 3

2 5 1

4 2 5

3 4 2

5 3 4

2 5 3

67

Lalgorithme de lhorloge
chance)

(deuxime

Semblable FIFO, mais il tient compte de lutilisation rcente de pages


Structure liste circulaire

Les cadres qui viennent dtre utiliss (bit=1) ne sont pas remplaces (deuxime chance)
Les cadres forment conceptuellement un tampon circulaire Lorsquune page est charge dans un cadre, un pointeur pointe sur le prochain cadre du tampon

Pour chaque cadre du tampon, un bit utilis est mis 1 (par le matriel) lorsque:
une page est nouvellement charge dans ce cadre sa page (celle de ce cadre) est utilise

Le prochain cadre du tampon tre remplac sera le premier rencontr qui aura son bit utilis = 0.
Durant cette recherche, tout bit utilis = 1 rencontr sera mis 0
68

Algorithme de lhorloge: un exemple

La page 727 est charge dans le cadre 4. La proch. victime est 5, puis 8.

69

Comparaison: Horloge, FIFO et LRU

Astrisque indique que le bit utilis est 1 Lhorloge protge du remplacement les pages frquemment utilises en mettant 1 le bit utilis chaque rfrence LRU = 3+4, FIFO = 3+6, Horloge = 3+5
70

Dtail sur le fonctionnement de lhorloge

Tous les bits taient 1. Nous avons fait tout le tour et donc nous avons chang le bit de toutes les pages 0. Donc la 1re page est rutilise
71