Info324 Memoire

  • Upload
    ismimi

  • View
    251

  • Download
    0

Embed Size (px)

Citation preview

  • 7/29/2019 Info324 Memoire

    1/71

    Info 324

    Les systmes dexploitation II

    1

    Dr. Samar TAWBI

  • 7/29/2019 Info324 Memoire

    2/71

    Gestion de la mmoire centrale

    2

  • 7/29/2019 Info324 Memoire

    3/71

    Gestion de mmoire: objectifs

    Optimisation de l utilisation de la mmoireprincipale = RAM

    Le plus grand nombre possible de processus actifsdoit y tre gard, de faon optimiser lefonctionnement du systme enmultiprogrammation

    garder le systme le plus occup possible, surtout lUCsadapter aux besoins de mmoire de l usager

    allocation dynamique au besoin

    3

  • 7/29/2019 Info324 Memoire

    4/71

    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, lesprogrammes sont chargs de fois en fois dans positionsdiffrentes de mmoire

    Donc adresse physique adresse logique

    4

  • 7/29/2019 Info324 Memoire

    5/71

    Traductionadresses logiques adr. physiques

    Dans les premiers systmes, un programme tait toujours charg dansla mme zone de mmoire

    La multiprogrammation et lallocation dynamique ont engendr lebesoin 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 enparallle avec autres fonctions d UCT

    P.ex. l MMU peut prparer l adresse d une instruction en mmetemps que l UCT excute l instruction prcdente

    5

  • 7/29/2019 Info324 Memoire

    6/71

    Traductionadresses logiques adr. physiques

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

    Registre de base (b): plus basse adresse mmoire utilise par unprocessus

    Longueur (l): la longueur de lespace physique alloue

    Peut tre formule sous la forme

    1) Si a l alors violation de la mmoire3) Sinon f(a) = a = b+a4) a est une adresse valable

    6

    F : S Ra b+a

  • 7/29/2019 Info324 Memoire

    7/71

    Traductionadresses logiques adr. physiques

    7

    MMU: unit de gestion de mmoireunit de traduction adresses

    (memory management unit)

    Registrede base

    Registre de base =la plus basse adresse mmoire utilise

  • 7/29/2019 Info324 Memoire

    8/71

    Permutation de programmes (swapping)

    Un programme, ou une partie de programme,peut tre temporairement enlev de mmoirepour permettre lexcution dautres programmes

    il est mis dans mmoire secondaire, normal. disque

    8

  • 7/29/2019 Info324 Memoire

    9/71

    Affectation contigu de mmoire

    Nous avons plusieurs programmes excuter

    Nous pouvons les charger en mmoire les uns

    aprs les autresLe programme en entier est chargle lieu o un programme est lu nest connu quaumoment du chargement

    9

  • 7/29/2019 Info324 Memoire

    10/71

    Affectation contigu de mmoire

    10

    SE

    progr. 1

    progr. 2

    progr. 3

    disponible

    Nous avons ici 4 partitions pour des programmes -

    chacun est charg dans une seule zone de mmoire

  • 7/29/2019 Info324 Memoire

    11/71

    Registres de relocation et de limite

    11

  • 7/29/2019 Info324 Memoire

    12/71

    Allocation contigu

    12

    Allocation partition multipleTrou bloc mmoire disponible; des trous de tailles variablessont parpills dans la mmoire.Quand un processus arrive, il est allou une zone mmoiredun trou suffisamment grand pour le contenir.

    Le systme dexploitation maintient les informations sur:a) les partitions alloues b) les partitions libres (trous)

    12

    OS

    process 5

    process 8

    process 2

    OS

    process 5

    process 2

    OS

    process 5

    process 2

    OS

    process 5

    process 9

    process 2

    process 9

    process 10

  • 7/29/2019 Info324 Memoire

    13/71

    Fragmentation: mmoire non utilise

    problme : Il y a assez d espace pourexcuter un programme, mais il estfragment de faon non contigu

    externe: lespace inutilis est entre partitions

    interne: lespace inutilis est dans lespartitions

    La fragmentation interne na pas de solution

    13

  • 7/29/2019 Info324 Memoire

    14/7114

    Partitions fixes

    Mmoire principalesubdivise en rgionsdistinctes: partitions

    Les partitions sont soitde mme taille ou detailles ingales

    Nimporte quel progr.peut tre affect unepartition qui soitsuffisamment grande

  • 7/29/2019 Info324 Memoire

    15/7115

    Algorithme de placement pourpartitions fixes

    Partitions de taillesingales: utilisation deplusieurs files

    assigner chaque processus la partition de la plus petite

    taille pouvant le contenir1 file par taille de partitiontente de minimiser lafragmentation interneProblme: certaines filesseront vides sil ny a pas deprocessus de cette taille(fr. externe)

  • 7/29/2019 Info324 Memoire

    16/7116

    Algorithme de placement pourpartitions fixes

    Partitions de taillesingales: utilisation duneseule file

    On choisit la plus petite

    partition libre pouvantcontenir le prochainprocessus

    le niveau demultiprogrammationaugmente au profit de lafragmentation interne

  • 7/29/2019 Info324 Memoire

    17/71

  • 7/29/2019 Info324 Memoire

    18/71

    18

    Partitions dynamiques

    Partitions en nombre et tailles variables

    Chaque processus est allou exactement la taille demmoire requise

    Probablement des trous inutilisables se formeront dansla mmoire: cest la fragmentation externe

  • 7/29/2019 Info324 Memoire

    19/71

    19

    Partitions dynamiques: exemple

    (d) Il y a un trou de 64K aprs avoir charg 3 processus: pas assezdespace pour autre processus

    Si P2 se bloquent (p.ex. attente dun vnement), il peut tre permut etP4=128Kpeut tre charg.

  • 7/29/2019 Info324 Memoire

    20/71

    20

    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 320-224=96K...Nous avons 3 petits trous et probablement inutiles. 96+96+64=256K defragmentation externeCOMPRESSION pour en faire un seul trou de 256K

  • 7/29/2019 Info324 Memoire

    21/71

    Compression (compaction)

    Une solution pour la fragmentation externe

    Les programmes sont dplacs en mmoire de faon rduire 1 seul grand trou plusieurs petits trousdisponibles

    Effectue quand un programme qui demande dtreexcut ne trouve pas une partition assez grande, mais sataille est plus petite que la fragmentation externe existante

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

    programmes 21

  • 7/29/2019 Info324 Memoire

    22/71

    22

    Algorithmes de Placement

    pour dcider de lemplacementdu prochain processusBut: rduire le besoin de lacompression (qui prend dutemps...)

    Choix possibles:Best fit: choisir le plus petit trou(meilleur accs)

    First-fit: choisir 1er trou partirdu dbut (premier accs)

    Next-fit: choisir 1er trou partirdu dernier placement (prochainaccs)

    Worst fit: le plus grand (pireaccs)

  • 7/29/2019 Info324 Memoire

    23/71

    Allocation non contigu

    Afin de rduire la fragmentationdiviser un programme en morceaux et permettre l`allocationspare de chaque morceaules morceaux sont beaucoup plus petits que le programmeentier et donc permettent une utilisation plus efficace de lammoire

    les petits trous peuvent tre utiliss plus facilement

    Deux techniques: la pagination et la segmentationla 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

    L t t d ti l i d

  • 7/29/2019 Info324 Memoire

    24/71

    Les segments sont des parties logiques duprogramme

    24

    AB

    C D

    Progr.

    Princ. Donnes

    Sous-

    progr.

    Donnes

    JUMP(D, 100)

    LOAD(C,250)

    LOAD(B,50)

    4 segments: A, B, C, D

  • 7/29/2019 Info324 Memoire

    25/71

    Les segments comme units dalloc mmoire

    25

    0

    2

    1

    3

    0

    3

    1

    2

    espace usager mmoire physique

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

  • 7/29/2019 Info324 Memoire

    26/71

    26

    Mcanisme pour la segmentation

    Un tableau contient ladresse de dbut de

    tous les segments dans un processus

    Chaque adresse dans un segmentest ajoute l adresse de dbutdu segment par la MMU

    Tableau de descripteursde segments

    0

    3

    1

    2

    mmoire physique

    Adr de 2Adr de 1

    Adr de 0

    Adr de 3

    segment courant

  • 7/29/2019 Info324 Memoire

    27/71

    DtailsLadresse logique consiste d une paire:

    o dcalage est l adresse dansle segment

    Le tableau des segments contient: descripteurs de segmentsAdresse (registre) de base

    longueur du segmentInfos de protection,

    Dans le PCB (Process Control Block) du processus il y aura unpointeur l adresse en mmoire du tableau des segments

    Il y aura aussi l dedans le nombre de segments dans leprocessus

    Au moment de la commutation de contexte, ces infos seront

    charges dans les registres appropris dUC 27

  • 7/29/2019 Info324 Memoire

    28/71

    28

    Traduction d`adresses dans la segmentation

    Aussi, si d > longueur: erreur!

    L i dt il (i l t d l

  • 7/29/2019 Info324 Memoire

    29/71

    Le mcanisme en dtail (implant dans lematriel)

    29

    Dans le programme

    Adresse finale

    P t d t

  • 7/29/2019 Info324 Memoire

    30/71

    Partage de segments:le segment 0 est partag

    30

    P.ex: Programme Word utilis pour diter

    diffrents documents

  • 7/29/2019 Info324 Memoire

    31/71

    Segmentation et protection

    Chaque descripteur de segmentpeut contenir des infos deprotection:longueur du segmentprivilges de lusager sur le segment: lecture, criture, excution

    Si au moment du calcul de ladresse on trouve que lusager na

    pas droit daccsinterruptionces infos peuvent donc varier d usager usager, par rapport aumme segment!

    31

    limite base read, write, execute?

    Tableau de descripteurs

    de segments

  • 7/29/2019 Info324 Memoire

    32/71

    32

    valuation de la segmentation simple

    Avantages: lunit dallocation de mmoire estplus petite que le programme entierune entit logique connue par le programmeurles segments peuvent changer de place en mmoirela 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 enutilisant des units d`allocation mmoire de tailles gales

    PAGINATION

  • 7/29/2019 Info324 Memoire

    33/71

    Segmentation contre pagination

    Le pb avec la segmentation est que lunit dallocation demmoire (le segment) est de longueur variable

    La pagination utilise des units dallocation de mmoirefixe, liminant donc ce problme

    33

  • 7/29/2019 Info324 Memoire

    34/71

    34

    Pagination simple

    La mmoire est partitionne en petits morceaux de mmetaille: les pages physiques ou cadres ou frames

    Chaque processus est aussi partitionn en petits morceauxde mme taille appels pages (logiques)

    Les pages logiques dun processus peuvent donc treassigns aux cadres disponibles nimporte o en mmoireprincipale

    Consquences:un processus peut tre parpill nimporte o dans la mmoirephysique.la fragmentation externe est limine

  • 7/29/2019 Info324 Memoire

    35/71

    35

    Exemple de chargement de processus

    Supposons que le processus B se termine ou est suspendu

  • 7/29/2019 Info324 Memoire

    36/71

    36

    Exemple de chargement de processusNous pouvons maintenant

    transfrer en mmoire un progr.D, qui demande 5 cadresbien qu`il ny ait pas 5 cadrescontigus disponibles

    La fragmentation externe estlimite au cas que le nombre depages disponibles nest passuffisant pour excuter unprogramme en attente

    Seule la dernire page dunprogr peut souffrir defragmentation interne (moy. 1/2cadre par proc)

  • 7/29/2019 Info324 Memoire

    37/71

    Tableaux de pages

    37

    Les entres dans le tableau depages sont aussi appelesdescripteurs de pages

  • 7/29/2019 Info324 Memoire

    38/71

    38

    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 pagecorrespondante 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)

    T d i d d

  • 7/29/2019 Info324 Memoire

    39/71

    39

    Traduction dadresses

    Ladresse logique est facilement traduite en adressephysiquecar la taille des pages est une puissance de 2

    les pages dbutent toujours des adresses quisont puissances de 2

    qui ont autant de 0s droite que la longueur deloffset

    donc ces 0s sont remplacs par loffset

    Ex: si 16 bits sont utiliss pour les adresses et que lataille 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 adressephysique (k,m) en utilisant n comme index sur la tabledes pages et en le remplaant par l adresse k trouve

    m ne change pas

  • 7/29/2019 Info324 Memoire

    40/71

    Mcanisme: matriel

    40

    Traduction dadresse (logique

  • 7/29/2019 Info324 Memoire

    41/71

    41

    Traduction d adresse (logique-physique) pour la pagination

  • 7/29/2019 Info324 Memoire

    42/71

    42

    Trad. dadresses: segmentation et pagination

    Tant dans le cas de la segmentation, que dans le casde la pagination, nous ajoutonsle dcalage ladressedu segment ou page.

    Cependant, dans la pagination, laddition peut trefaite par simple concatnation:

    11010000+1010=

    1101 1010

    Segmentation simple vs Pagination

  • 7/29/2019 Info324 Memoire

    43/71

    43

    Segmentation simple vs Paginationsimple

    La pagination se proccupe seulement du problme du chargement,

    tandis queLa segmentation vise aussi le problme de la liaisonLa segmentation est visible au programmeur mais la pagination ne lestpasLe segment est une unit logique de protection et partage, tandis que lapage ne lest pas

    Donc la protection et le partage sont plus aiss dans la segmentation

    La segmentation requiert un matriel plus complexe pour la traductiondadresses (addition au lieu d`enchanement)

    La segmentation souffre de fragmentation externe(partitionsdynamiques)La pagination produit de fragmentation interne, mais pas beaucoup (1/2cadre par programme)Heureusement, la segmentation et la pagination peuvent tre

    combines

  • 7/29/2019 Info324 Memoire

    44/71

    Pagination et segmentation combines

    Les programmes sont diviss en segments et les segmentssont pagins

    Donc chaque adresse de segment n`est pas une adressede mmoire, mais une adresse au tableau de pages dusegment

    Les tableaux de segments et de pages peuvent tre eux-mmes pagins

    Mthode invente pour le systme Multics de lMIT, approx. 1965.

    44

    Adressage (sans considrer la pagination des

  • 7/29/2019 Info324 Memoire

    45/71

    Adressage (sans considrer la pagination destableaux de pages et de segments)

    45

    segment table base register: unregistre de l`UCT

    s p d

    d

  • 7/29/2019 Info324 Memoire

    46/71

    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 utilisantlallocation 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 raliselallocation avec les stratgies Best Fit, First Fit.

    46

  • 7/29/2019 Info324 Memoire

    47/71

    Exercice 2-2

    Segmentation

    On considre la table des segments suivante:

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

    Segment Base Longueur

    0 540 2341 1234 128

    2 54 328

    3 2048 1024

    4 976 200

    47

  • 7/29/2019 Info324 Memoire

    48/71

    Exercice 2-3Pagination

    Dans un systme pagin, les pages font 256 mots chacune et lammoire centrale comprend 4 cadres. On considre la table des pagessuivantes

    Calculer la taille de la mmoire physiqueDonnez le nombre de bits ncessaires pourladresse du programme (logique)

    Calculer les adresses relles correspondantaux adresses logiques:

    (0,240), (2,34), (2,35), (6,42), (7,230)Trouver ladresse relle correspondant ladresse virtuelle 456

    0 3

    1 0

    2 i

    3 i

    4 2

    5 i

    6 i

    7 1

    48

    De la pagination et segmentation la

  • 7/29/2019 Info324 Memoire

    49/71

    49

    De la pagination et segmentation lammoire virtuelle

    Un processus est constitu de morceaux (pages ou segments) ne

    ncessitant pas doccuper une rgion contigu de la mmoire principaleRfrences la mmoire sont traduites en adresses physiques au momentdexcution

    Un processus peut tre dplac diffrentes rgions de la mmoire, aussimmoire secondaire!

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

    La somme des mmoires logiques des procs en excution peutdonc excder la mmoire physique disponible

    Le concept de base de la mmoire virtuelleUne image de tout lespace dadressage du processus est garde enmmoire secondaire (normal. disque) do les pages manquantes pourronttre prises au besoin

    Mcanisme de va-et-vien ou swapping

    Mmoire virtuelle:

  • 7/29/2019 Info324 Memoire

    50/71

    50

    Mmoire virtuelle:rsultat dun mcanisme qui combinela mmoire principale et les mmoires secondaires

    Nouveau format du tableau des pages

  • 7/29/2019 Info324 Memoire

    51/71

    51

    Nouveau format du tableau des pages(la mme ide pour les tableaux de segments)

    Adresse de la

    page

    Bit

    prsent

    bitprsent1 si en mm. princ.,

    0 si en mm second.

    Au dbut, bit prsent = 0 pour toutes les pages

  • 7/29/2019 Info324 Memoire

    52/71

    Pages en RAM ou sur disque

    52

    Page A en RAM et surdisque

    Page E seulement surdisque

    A t d h t ti l

  • 7/29/2019 Info324 Memoire

    53/71

    53

    Avantages du chargement partiel

    Plus de processus peuvent tre maintenus en excution en

    mmoireCar seules quelques morceaux sont chargs pour chaqueprocessus

    Plusieurs pages ou segments rarement utiliss nauront peut tre

    pas besoin d`tre chargs du tout

    Il est maintenant possible dexcuter un ensemble de processuslorsque leur taille excde celle de la mmoire principale

    Il est possible dutiliser plus de bits pour ladresse logique que lenombre de bits requis pour adresser la mmoire principale

  • 7/29/2019 Info324 Memoire

    54/71

    54

    Mmoire Virtuelle: Pourrait tre norme!

    Ex: 16 bits sont ncessaires pour adresser une mmoirecentrale de 64KB

    En utilisant des pages de 1KB, 10 bits sont requis pour ledcalage

    Pour le numro de pagede ladresse logique nous pouvonsutiliser un nombre de bits qui excde 6 (plus que 26 casesdans la table des pages), car toutes les pages ne doivent pasobligatoirement 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 virtuelleEst maintenue en mmoire secondaireLes pices sont amenes en mmoire principale seulement quand

    ncessaire, sur demande

    E i d P

  • 7/29/2019 Info324 Memoire

    55/71

    55

    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 unbit prsent qui indique si la page ou segment se trouve enmmoire principale

    Lensemble rsident (rsident set) est la portion du processusse trouvant en mmoire principale

    Une interruption est gnre lorsque ladresse logique rfre une pice qui nest pas dans lensemble rsidentdfaut de pagination, page fault

    Excution dun dfaut de page: va-et-vient

  • 7/29/2019 Info324 Memoire

    56/71

    Excution d un dfaut de page: va et vientplus en dtail

    56

    Mmoirevirtuelle

    Quand la RAM est pleine mais nous

  • 7/29/2019 Info324 Memoire

    57/71

    Quand la RAM est pleine mais nousavons besoin dune page pas en RAM

    57

  • 7/29/2019 Info324 Memoire

    58/71

    Remplacement de pages

    Quoi faire si un processus demande une nouvelle page et ilny 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 pourchoisir 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

  • 7/29/2019 Info324 Memoire

    59/71

    La page victime...

    59

    Algorithmes pour la politique de

  • 7/29/2019 Info324 Memoire

    60/71

    60

    Algorithmes pour la politique deremplacement

    Lalgorithme optimal (OPT) choisit pour page remplacer celle qui sera rfrence le plustardivement

    Ex.: mm. De 4 cadres1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

    6 dfauts de pages

    produit le + petit nombre de dfauts de pageimpossible raliser (car il faut connatre le futur)

    1

    2

    3

    4

    Algorithme Optimal

  • 7/29/2019 Info324 Memoire

    61/71

    61

    Algorithme Optimal

  • 7/29/2019 Info324 Memoire

    62/71

    Algorithme LRU (Least Recently Used)

    62

    Ordre chronologique dutilisation (LRU)Least Recently UsedRemplace la page dont la dernire rfrence remonte autemps le plus lointain (le pass utilis pour prdire le futur)

  • 7/29/2019 Info324 Memoire

    63/71

    6363

    Algorithme LRU

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

    Implmentation de compteur

    Chaque entre de page a un compteur; chaque fois que lapage est rfrence, on copie lhorloge dans le compteur

    Quand une page a besoin dtre change, on examine lescompteur pour savoir laquelle choisir.

    1

    2

    3

    5

    44 3

    5

    C i OPT LRU

  • 7/29/2019 Info324 Memoire

    64/71

    Comparaison OPT-LRU

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

    64

    P i i i ti (FIFO)

  • 7/29/2019 Info324 Memoire

    65/71

    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, ellesera remplace par FIFO!

    65

    C i d FIFO LRU

  • 7/29/2019 Info324 Memoire

    66/71

    66

    Comparaison de FIFO avec LRU

    Contrairement FIFO, LRU reconnat que les pages 2 and 5 sont

    utilises frquemmentDans ce cas, la performance de FIFO est moins bonne:LRU = 3+4, FIFO = 3+6

    I l t ti d FIFO

  • 7/29/2019 Info324 Memoire

    67/71

    Implantation de FIFO

    Facilement implantable en utilisant une queue de cadres de

    mmoireQui ne doit tre mis jour que chaque dfaut de pageExercice: concevoir limplantation de ce tampon (v. exemple prcdent)

    67

    2 32

    1

    2

    3 15

    3 1

    52 4

    5

    2

    2

    43

    4

    35

    3

    52

    Lalgorithme de lhorloge (deuxime

  • 7/29/2019 Info324 Memoire

    68/71

    68

    g gchance)

    Semblable FIFO, mais il tient compte de lutilisation rcente depagesStructure liste circulaire

    Les cadres qui viennent dtre utiliss (bit=1) ne sont pas remplaces(deuxime chance)

    Les cadres forment conceptuellement un tampon circulaireLorsquune page est charge dans un cadre, un pointeur pointe sur leprochain cadre du tampon

    Pour chaque cadre du tampon, un bit utilis est mis 1 (par lematriel) lorsque:

    une page est nouvellement charge dans ce cadresa page (celle de ce cadre) est utilise

    Le prochain cadre du tampon tre remplac sera le premierrencontr qui aura son bit utilis = 0.

    Durant cette recherche, tout bit utilis = 1 rencontr sera mis 0

    Algorithme de lhorloge: un exemple

  • 7/29/2019 Info324 Memoire

    69/71

    69

    Algorithme de l horloge: un exemple

    La page 727 est charge dans le cadre 4.

    La proch. victime est 5, puis 8.

    Comparaison: Horloge FIFO et LRU

  • 7/29/2019 Info324 Memoire

    70/71

    70

    Comparaison: Horloge, FIFO et LRU

    Astrisque indique que le bit utilis est 1Lhorloge protge du remplacement les pages frquemmentutilises en mettant 1 le bit utilis chaque rfrenceLRU = 3+4, FIFO = 3+6, Horloge = 3+5

    Dtail s le fonctionnement de lho loge

  • 7/29/2019 Info324 Memoire

    71/71

    Dtail sur le fonctionnement de lhorloge

    Tous les bits taient 1. Nous avons fait toutle tour et donc nous avons chang le bit detoutes les pages 0. Donc la 1re page est