systèmes d'exploitation - processus et signaux / gestion

44
Notion de processus Les signaux Gestion de processus en C Gestion m´ emore : Probl´ ematique La Pagination La segmentation Syst` emes d’exploitation Processus et signaux / Gestion m´ emoire Stefan Schwoon ENS Cachan 26.11.2009 Stefan Schwoon Syst` emes d’exploitation

Upload: others

Post on 21-Jun-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 2: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 3: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 4: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 5: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 6: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 7: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 8: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 9: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 10: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 11: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 12: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 13: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 14: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 15: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 16: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 17: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 18: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 19: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 20: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 21: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 22: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 23: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 24: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 25: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 26: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 27: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 28: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 29: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 30: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 31: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 32: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 33: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 34: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 35: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 36: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 37: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 38: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 39: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 40: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 41: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 42: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 43: Systèmes d'exploitation - Processus et signaux / Gestion

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

Page 44: Systèmes d'exploitation - Processus et signaux / Gestion

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