View
4
Download
0
Category
Preview:
Citation preview
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Systemes d’exploitationProcessus et signaux / Gestion memoire
Stefan Schwoon
ENS Cachan
26.11.2009
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Rappels : un processus simple
Un processus travaille dans un espace d’adressage : segments detexte, de donnees, et pile.
Il ”agit” sur le microprocesseur : change les registres, le compteurordinal, le mot d’etat (cf mode utilisateur ou noyau)
Reciproquement, par le mot d’etat, le materiel peut interrompre(derouter) le programme.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Multiprogrammation
Dans les systemes multitaches, plusieurs processus s’executent ”enparallele” :
parallelisme simule par un ordonnanceur
processus = unite d’execution vue comme independante desautres
Concept assez ancient (ATLAS I, 1959), mais recent dans lessystemes d’exploitation grand public.Necessite un vrai travail du systeme : commutation, memoirevirtuelle, ordonnanceur...A remplace le traitement par lot (BATCH), cf MS-DOS.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Arborescence de processus
Un processus a une identite (pid), cfcommandes ps, top.
Par ailleurs (en UNIX), un processus sesitue dans une genealogie :
un processus est cree par son pere
heritage des attributs du pere
utile pour definir des ”groupes”
fils = ”fonction” (valeur de retour)
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Attributs d’un processus
processus = unite de ressources d’execution
Attributs d’ordonnancement
contexte (registres,mode, PC, etc)
etat (actif, pret, bloque,zombie)
parametres de priorite
identite et genealogie(pid, pere, groupe...)
signaux
temps (d’execution,d’attente,...)
Espace d’adressage
segments de code, dedonnees, et de pile
Attributs de fichiers
cwd,
descripteurs,
id d’utilisateur
Question
A votre avis, quels attributssont herites ?
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Vie et mort d’un processus
initial ready
kernel running
zombi
user running
stopped asleep
Des processus bloques
eviter l’attente active
possibilite depreemption (signaux)
Demos tube, CRTL+Z...
Questions
Ou sont les commutations decontexte ?
A quels evenements correspondchaque fleche ?
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Gestion de processus depuis le shell
Quelques commandes utiles :
processus lies au terminal ou au shell : commandes ps, jobs
activite : top
ordonnancement par le shell : &, bg, fg.
preemption : CRTL+Z, kill
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Notion de signal
Un signal est emis par un processus vers un autre (ou un grouped’autres) processus de meme proprietaire (sauf root).
Le signal peut etre rattrappe par le processus destinataire, ce quiprovoque (en general) un deroutement et le lancement d’uneroutine specifique de traitement.
Apres le traitement, le processus reprend ou il a ete interrompu.
En UNIX : la commande kill permet d’envoyer des signaux.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Les principaux signaux
Nom cause standard effet par defautSIGINT terminaisonSIGABRT appel a abort() terminaisonSIGFPE erreur de flottant terminaisonSIGKILL terminaison (non modifiable)SIGBUS bus error terminaisonSIGPIPE ecriture sur un tube sans lecteur terminaisonSIGALRM fin d’un timer terminaisonSIGSTOP suspension (non modifiable)SIGCONT repriseSIGCHLD un fils a fini son execution pas d’effetSIGUSR1 aucune terminaisonSIGUSR2 aucune terminaison
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Delivrance du signal
Elle depend de l’etat du processus.
En general, le signal est delivre au processus lorsqu’il devient actifen mode utilisateur, sinon elle est differee.
Pour certains appels systemes bloquants (ex : read), un signal plusprioritaire peut reveiller un processus endormi.
Un processus suspendu sera reactive par SIGKILL, SIGTERM etSIGCONT.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Creation de processus et recouvrement
UNIX distingue la creationd’un processus (fork) et lerecouvrement (exec)
Exemple : la commande launch
void launch(char * cmd){if ((child_pid = fork()) >0 ){ return ; // processus pere}else { execvp(cmd,cmd) ; }
}
Remarques
un exec ne cree pas de processus (meme pid).
un fork recopie les attributs, en particulier l’espaced’adressage (les variables ne sont pas aliasees).
un fork recopie les descripteurs, mais pointent sur la memeentree de la table des fichiers ouverts
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Commandes wait et waitpid
Attendre la fin d’un processus fils :
waitpid(child_pid,&status) ;/* traitement en fonction de la cause de terminaison */if (WIFEXITED(statut)) {printf("Terminaison avec valeur %d\n",WEXITSTATUS(statut)) ;
} else if (WIFSIGNALED(statut)) {printf("Terminaison par signal %d\n",WTERMSIG(statut)) ;} else if (WIFSTOPPED(statut)) {printf("Suspension par signal %d\n",WSTOPSIG(statut)) ;
}
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Definition d’un handler de signaux
exemple : reactivation d’un fils
struct sigaction action ;pid_t pid_fils ;
void hand(int sig){printf("signal %d recu par %d\n", sig, (int)getpid()) ;/* le processus reactive son fils */kill(pid_fils, SIGCONT) ;
}
int main(int argc,char *argv[]) {printf("lancement du processus %d\n", (int)getpid()) ;action.sa_handler = hand ;sigaction(SIGCHLD, &action, NULL) ;
demo : chld1.cStefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Les memoires
Trois facteurs majeurs :
la capacite
le cout
le temps d’acces
Quelques exemples de memoires :les registres, le cache memoire, la memoire vive (RAM), cle USB,le cache disque, le disque dur.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Role du gestionaire memoire
Quand intervient-t-il ?
creation d’un processus
activation/desactivation d’un processus
supression d’un processus
Que fait-il ?
partage la memoire disponible entre les processus⇒ protection.
cartographie la memoire
alloue/desalloue de la memoire dynamiquement pour lesbesoin d’un processus
assure la coherence de la memoire
optimise l’utilisation de la memoire
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Memoire etendue : le va-et-vient (ou SWAP)
Principe : On dispose d’un segment memoire ”mobile”, charge enmemoire vive par le systeme quand il est necessaire, remis surdisque sinon.
Deux solutions : une copie de surete sur disque ou pas.
Le probleme des entrees-sortie : quand un processus emet unerequete, il donne l’adresse en memoire physique ou il souhaiterecevoir le resultat. Deux solution : soit c’est un tampon enmemoire systeme (inamovible), soit la memoire d’un processus enattente d’E/S est declaree inamovible.
Question
Pourquoi la solution avec copie de surete, bien qu’offrant moins dememoire etendue, peut-elle etre plus efficace ?
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
La memoire vue par le processus... et en vrai
Vue du processusun segment :
CODE
TAS
PILE
En vrai
cache
0..FF
PARTITION SWAP
CODETAS
PILE
RAM
0..777
777...FFF
FFF7...FFFF
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Les premiers systemes : la place du systeme en memoire
Monoprogrammationsysteme en memoire RAM ou dans le BIOS :
Programme utilisateur
Programme utilisateur
Programme utilisateur
OS en RAM
OS en ROM
Gestionnaires periph. en ROM
OS en RAM
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Les premiers systemes : multiprogrammation a partitionsfixes (MFT)
Ordonnancement sur une ou plusieurs files
Partition 2
Partition 3
Partition 4
Partition 5
OS
Partitition 1
tâches en attente
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Translation d’adresse et protection
Comment le processus va-t-il lire/ecrire au bon endroit ?A la charge du systeme : traduire toutes les adresses.
Premiere approche (depassee, cf. OS/MFT) : La translation estfaite au chargement du programme.
Deuxieme approche Les registres base et limite : chaque adresseest recalculee par le microprocesseur.
Question
Comparer ces deux approches en terme d’efficacite et de surete.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
Partitions de tailles arbitraires
Probleme de la cartographiedeux approches : table de bits ou liste de blocs
blocs occupés
table de bit 101100111000
liste chaînée
B F B F B B F
1 bloc (octet,mot, etc.)
Lien avec allocation memoire pour un programme (malloc).
Questions
1 Comparer ces deux approches.
2 Comment se fait la mise a jour de la liste des blocs ?Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
La recherche d’un segment libre
Comment garer sa voiture en pensant aux autres ?
Deux (fausses) bonnes idees :best fit et worst fit.⇒ sur simulation, beaucoup de fragmentation interne
Marche mieux :first fit, next fit.
Avec plusieurs listes de blocs, selon leurs tailles :quick fit, on cherche dans la liste de taille adaptee a la demande.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
La fragmentation et le GC
La fragmentation : de nombreuses petites zones libresinexpoitables car non contigues.Defragmentation : operation delicate, il faut remettre a jour tousles liens.
Le Garbage Collector : desalloue les cellules qui ne peuvent plusetre utiliseeAnalyse d’accessibilite. Algorithme mark and sweep.
Stop and copy : le garbage collector defragmenteur : On recopietoutes les cellules utilisees en les placant de facon contigue.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Problematique
Que faire si un programme a besoin de plus de memoire que celledisponible en memoire vive ?
En pratique, un programme a besoin de certaines portions de lamemoire a certaines phases de son execution.
Les recouvrements (overlay) : solution aujourd’hui depassee,consistait pour le programmeur a definir les diverses phases duprogramme et les portions memoires associees a chacune (cf.Turbo Pascal).
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Memoire virtuelle et pagination
X
X
X
7
X
5
X
X
X
3
4
X
6
1
2
page virtuelle
MEMOIRE VIRTUELLE
MEMOIRE VIVE
cadre de page
0k-4k
4k-8k
8k-16k
16k-20k
20k-24k
24k-28k
28k-32k
32k-36k
36k-40k
40k-44k
44k-48k
48k-52k
52k-56k
56k-60k
60k-64k
0k-4k
4k-8k
8k-16k
16k-20k
20k-24k
24k-28k
32k-36k
Table des pages :consultee par la MemoryManagement Unit (MMU) pourfaire la traduction d’adresse.
Si page non chargee : defaut depage.Interruption de processus etderoutement systeme.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
La table des pages en pratique
La traduction d’adresse. On lit les bits de poids fort de l’adressevirtuelle (le numero de page), et on le remplace par le numero decadre correspondant.
Dimension de la table des pages NBPages = taille(MemVirtuelle)taille(page)
On veut taille(MemVirtuelle) grande et taille(page) petite.Exemple : adressage 32 bits, taille(MemVirtuelle)= 4Go,taille(page)= 4ko, on a 220 pages !Autre point : chaque processus a sa propre table des pages.
Morale : La table des pages prend beaucoup de place en memoire,et ne peut etre stockee au niveau de la MMU.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Memoire associative : Translation Lookaside Buffer
En pratique, on reutilise souvent les memes pages pendant uncertain temps ⇒ utilisons un cache !.
Le TLB est un petit cache de la table des pages, comportant engros entre 8 et 64 entrees de la table des pages.A chaque instruction, la MMU parcours tout le TLB pour faire laconversion d’adresse.
En cas de defaut de TLB : soit c’est le materiel qui met a jour siil connait l’adresse de la table des pages, soit il alerte le systemequi fait ce qu’il faut
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Contenu de la table des pages
Un exemple d’entree dans la table des pages
numéro du cadre de pag
cacheinhibé
référencé
modifié(dirty bit)
protection
présent/absent
N.B : pas l’adresse de la copie en swap (info reservee au systeme)Bit de cache : si resultat d’E/S attendu doit y etre sauve, sinoninutile.Application de la pagination : pages partagees, ”copy on write”pour le fork.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Autres cartographies
But : reduire la taille de la table des pages
table des pages multi-niveaux (une table de tables)
table des pages inverses (une entree par cadre de page)⇒ recherche + longue, mais on compte sur le TLB.Methode utilisee pour les adressages 64 bits.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Et si on changeait la taille des pages ?
Comment evaluer la bonne taille p a prendre pour une page ?Meme si facilites materielles, le systeme peut faire son propre choix.
Le cout de la fragmentation interneEn moyenne, la derniere page d’un segment est remplie a moitie. On perddonc p
2 octets par segment.
Le cout de la table des pagesSi chaque processus utilise en moyenne un espace s, il utilise s
p entreesdans la table des pages. Si e est la taille de chaque entree, on a une pertede s
p e
Choix de l’optimal On cherche donc a minimiser la perte ≈ p2 + s
p e.L’optimum est
p =√
2se
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Et les defauts de page ?
Comment choisir quelle page sera remplacee par celle demandee ?Le remplacement de page optimal :c’est celui qui ralentit le moins le systeme. Il y a plusieurs causesde ralentissement et donc plusieurs criteres qui guident le choix.
La page remplacee sera-t-elle utilisee a nouveau ?Si oui, on aimerait que ce soit le plus tard possible. Maiscomment savoir quelle page sera consultee le plus tard ?
La page remplacee doit-elle etre recopiee sur disque ?Si elle n’a pas ete modifiee, ce n’est pas la peine.
Problematique plus generale que la pagination : c’est la memechose quand on gere n’importe quel cache (cache disque, cachememoire, cache web,etc).
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Importance de la page remplacee
Une intuition trompeuse :”Avec davantage de memoire vive, j’aurais moins de defauts depage”.
L’anomalie de Belady pour le FIFO.Un processus utilise 5 pages virtuelles dans l’ordre suivant :0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4
Exercice
Comparer le nombre de defauts de pages avec 3 cadres de pages,puis avec 4, pour une politique de remplacement FIFO (c’est lapage la plus anciennement chargee qui est selectionnee). Ou estl’erreur ?
Solution : 9 defauts de pages avec 3 cadres, 10 avec 4.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Importance de la page remplacee
Une intuition trompeuse :”Avec davantage de memoire vive, j’aurais moins de defauts depage”.
L’anomalie de Belady pour le FIFO.Un processus utilise 5 pages virtuelles dans l’ordre suivant :0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4
Exercice
Comparer le nombre de defauts de pages avec 3 cadres de pages,puis avec 4, pour une politique de remplacement FIFO (c’est lapage la plus anciennement chargee qui est selectionnee). Ou estl’erreur ?
Solution : 9 defauts de pages avec 3 cadres, 10 avec 4.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Importance de la page remplacee
Une intuition trompeuse :”Avec davantage de memoire vive, j’aurais moins de defauts depage”.
L’anomalie de Belady pour le FIFO.Un processus utilise 5 pages virtuelles dans l’ordre suivant :0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4
Exercice
Comparer le nombre de defauts de pages avec 3 cadres de pages,puis avec 4, pour une politique de remplacement FIFO (c’est lapage la plus anciennement chargee qui est selectionnee). Ou estl’erreur ?
Solution : 9 defauts de pages avec 3 cadres, 10 avec 4.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Importance de la page remplacee
Une intuition trompeuse :”Avec davantage de memoire vive, j’aurais moins de defauts depage”.
L’anomalie de Belady pour le FIFO.Un processus utilise 5 pages virtuelles dans l’ordre suivant :0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4
Exercice
Comparer le nombre de defauts de pages avec 3 cadres de pages,puis avec 4, pour une politique de remplacement FIFO (c’est lapage la plus anciennement chargee qui est selectionnee). Ou estl’erreur ?
Solution : 9 defauts de pages avec 3 cadres, 10 avec 4.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Algos Not Recently Used (NRU) et seconde chance
Un heuristique tres sensee :Ce qui a ete utilise recemment sera utilise prochainement.
Bits R et M d’une page :
R=1 si la page a ete consultee depuis la derniere remise a 0.
M=1 si la page a ete modifiee depuis le chargement.
Algo NRU : remise a 0 des R periodique, (R = 1,M = 1) serachoisi, sinon (R = 0,M = 1), sinon (R = 1,M = 0), et sinon(R = 0,M = 0).
Algo de la seconde chance : Algo FIFO (cf Belady), mais avantde sortir une page, on teste R. Si c’est 1, on remet a 0 et on remeten fond de file. Si aucune page avec R = 0, on applique FIFO.
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Algorithme Least Recently Used (LRU)
Un heuristique tres sensee :Ce qui a ete utilise recemment sera utilise prochainement.Algo LRU : On sort la page utilisee le moins recemment.Differentes implementations :
on maintient la date de derniere utilisation de chaque page, eton liste toutes les pages chargees quand il y a un defaut depage pour selectionner la moins recente.
⇒ LENT !on maintient le classement. Une astuce au niveau materiel.
⇒ COUTEUX !
1 2 3 4 3 1pageréférencée
ancienneté=
nbre noirssur colonne
Approximation en adaptant NRU : les bits de vieillissementR contient n bits, Rt+1 = 1
2Rt + 2nδused .
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Algorithme Least Recently Used (LRU)
Un heuristique tres sensee :Ce qui a ete utilise recemment sera utilise prochainement.Algo LRU : On sort la page utilisee le moins recemment.Differentes implementations :
on maintient la date de derniere utilisation de chaque page, eton liste toutes les pages chargees quand il y a un defaut depage pour selectionner la moins recente.
⇒ LENT !on maintient le classement. Une astuce au niveau materiel.
⇒ COUTEUX !
1 2 3 4 3 1pageréférencée
ancienneté=
nbre noirssur colonne
Approximation en adaptant NRU : les bits de vieillissementR contient n bits, Rt+1 = 1
2Rt + 2nδused .
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Algorithme Least Recently Used (LRU)
Un heuristique tres sensee :Ce qui a ete utilise recemment sera utilise prochainement.Algo LRU : On sort la page utilisee le moins recemment.Differentes implementations :
on maintient la date de derniere utilisation de chaque page, eton liste toutes les pages chargees quand il y a un defaut depage pour selectionner la moins recente. ⇒ LENT !on maintient le classement. Une astuce au niveau materiel.
⇒ COUTEUX !
1 2 3 4 3 1pageréférencée
ancienneté=
nbre noirssur colonne
Approximation en adaptant NRU : les bits de vieillissementR contient n bits, Rt+1 = 1
2Rt + 2nδused .
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Algorithme Least Recently Used (LRU)
Un heuristique tres sensee :Ce qui a ete utilise recemment sera utilise prochainement.Algo LRU : On sort la page utilisee le moins recemment.Differentes implementations :
on maintient la date de derniere utilisation de chaque page, eton liste toutes les pages chargees quand il y a un defaut depage pour selectionner la moins recente. ⇒ LENT !on maintient le classement. Une astuce au niveau materiel.⇒ COUTEUX !
1 2 3 4 3 1pageréférencée
ancienneté=
nbre noirssur colonne
Approximation en adaptant NRU : les bits de vieillissementR contient n bits, Rt+1 = 1
2Rt + 2nδused .Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Algorithme Least Recently Used (LRU)
Remarque : LRU ne souffre pas de l’anomalie de Belady (algo dit”de pile”).Algo LRU : On sort la page utilisee le moins recemment.Differentes implementations :
on maintient la date de derniere utilisation de chaque page, eton liste toutes les pages chargees quand il y a un defaut depage pour selectionner la moins recente. ⇒ LENT !on maintient le classement. Une astuce au niveau materiel.⇒ COUTEUX !
1 2 3 4 3 1pageréférencée
ancienneté=
nbre noirssur colonne
Approximation en adaptant NRU : les bits de vieillissementR contient n bits, Rt+1 = 1
2Rt + 2nδused .Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Le remplacement de pages en pratique
LRU ideal mais lourd a implementer.
une notion commode : l’espace de travail (WS), ie les k dernierespages referencees. On maintient cette information, quand oncommute un processus, on peut retablir tout son espace de travail.
Une bonne approximationde WS : les pagesreferencees dans les τdernieres (nano)secondes.
Implementation : WSClockL’algo de la seconde chanceavec prise en compte dutemps de derniereutilisation
M5873 0
7368 1
M6743 1
M6265 1
5968 0
bit de saletétemps de dernière
utilisationbit R
Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
L’implementation d’encore plus pres
Le demon de paginationCopier des pages sales en tache de fond.
Pour le WSClock, on a deux aiguilles, une en tete pour le demon, une qui
suit pour selectionner la page a remplacer.
Savoir quelle page fait defaut au debut d’un defaut de pageAu mieux, le materiel stocke l’adresse non traitee par la MMU dans unregistre.
Au pire, le systeme doit relire l’instruction fautive et trouver tout seul...
Reprendre l’instruction apres remplacement de page.Plus ou moins facile suivant le cpu.Probleme avec certains cpus : le pc peut etre incremente entre le debutde lecture de l’instruction et le defaut de page, les instructions peuventetre de longueurs variables, etc.
move 6 21000 1002 1004
pc au moment du défaut de page
comment savoir que 6 n’est pas le code d’une instruction ?Stefan Schwoon Systemes d’exploitation
Notion de processusLes signaux
Gestion de processus en CGestion memore : Problematique
La PaginationLa segmentation
ProblematiqueRemplacement de pageDans la pratique
Les choix du concepteur
Quel algorithme de remplacement ?
Echelle du remplacement de pageLocal au processus ou global ? si un processus fait un defaut depage, je remplace sa plus vieille page ou la plus vieille page de tousles processus ?
Demand paging ou prechargement ?
Le tout noyau ou l’intelligence en espace utilisateur ?
un gestionnaire de defauts de page, calcule la page, dialogue avec laMMU, reprend l’instruction
un pager implemente l’algo de remplacement de page.
Pager en mode utilisateur ? Efficacite vs clarte et surete du code...
Stefan Schwoon Systemes d’exploitation
Recommended