Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Foreword
SGMMaster program, computer science department
Isabelle Puaut
University of Rennes
January 2007
Isabelle Puaut SGM
Foreword
Module organizationModule organizationConcepts introducedOutline
1 ForewordModule organizationModule organizationConcepts introducedOutline
2 / 440
Foreword
Module organizationModule organizationConcepts introducedOutline
Module organization
First semester : processes, inter-process synchronization,physical input/output
Second semester : information management, whatever storagesupport is used (RAM, disk), information sharing,performance of memory management
Prerequisites :
Mapping of identifiers (identifying logical objects) ontophysical objects
Base software (assemblers, link editors)
Input/output and file management in monotask systems
=⇒ No reminder will be made
3 / 440
Foreword
Module organizationModule organizationConcepts introducedOutline
Module organization
First semester : processes, inter-process synchronization,physical input/output
Second semester : information management, whatever storagesupport is used (RAM, disk), information sharing,performance of memory management
Prerequisites :
Mapping of identifiers (identifying logical objects) ontophysical objects
Base software (assemblers, link editors)
Input/output and file management in monotask systems
=⇒ No reminder will be made
4 / 440
Foreword
Module organizationModule organizationConcepts introducedOutline
Module organization
Lectures : Isabelle Puaut
Tutorials : Jacques Barre, Patrice Burgevin, LaurentPerraudeau
Laboratories : same persons than tutorials
Labs on top of Nachos (university of Berkeley)Demand pagingMapped filesLarge piece of software, important personal work required
5 / 440
Foreword
Module organizationModule organizationConcepts introducedOutline
Module contents
Naming
Information sharing
Protection : confidentiality, integrity, access control
Efficient storage of information
CachesMemory hierarchies
Demand paging
Static and dynamic linking
File management
Memory management in distributed systems
6 / 440
Foreword
Module organizationModule organizationConcepts introducedOutline
Outline
Memory management : generalities
Virtual addressing and demand paging
Dynamic memory allocation/deallocation
Linking and sharing
File management
Memory management in distributed systems
7 / 440
ObjectivesNaming and linkingMemory hierarchies
Premiere partie I
Memory management : generalities
8 / 440
ObjectivesNaming and linkingMemory hierarchies
Plan
2 Chapter objectives
3 Naming and linking
4 Memory hierarchies - caches
9 / 440
ObjectivesNaming and linkingMemory hierarchies
2 Chapter objectives
3 Naming and linkingTerminologyNaming systemName lookupExample : file system
4 Memory hierarchies - cachesConcept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
10 / 440
ObjectivesNaming and linkingMemory hierarchies
Objectives
Observation : informations stored on various storage supports(RAM, ROM, flash memory, disks, CDs, DVDs, etc)
Existence of general concepts and mechanisms independent ofstorage support
Chapter objective : introduce such general concepts andmechanisms
naming and linkingefficiency of accesses to the informationprotection (to be described in chapter File Management)
11 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
2 Chapter objectives
3 Naming and linkingTerminologyNaming systemName lookupExample : file system
4 Memory hierarchies - cachesConcept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
12 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Terminology
Logical object : object defined by the user (variable, file)
Physical object : physical location a logical object is mappedonto (disk sector, memory location)
Name : purposes of a name
identify an object (distinguish it from the other objects)give an access to the object (find its physical representationand manipulate it)Term identifier used for logical objects, adresses used forphysical objects
Naming relation : associates a name to every object
Binding : establishment of the (name,object) association
13 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Naming system
Definition
A naming system describes (name, object) associations.
Remark
The (name, object) associations may vary : addition/removal ofnew names, change of the object referenced by a name (forinstance local variables in a program).
14 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Naming system
Components of a naming system :
Naming domain : set of objects to be referenced
Set of names : set of valid names
Naming context : associations between a set of names and aset of objects (dictionary)
Naming network : defines relationships between contexts
Operations on names :
Bind : link an object O to a name N within a context C
Lookup : find a name N in the naming context C (find thename of an object in context C)
15 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Example : naming in the 8086 processor
Example
Naming domain : set of bytes in physical memory
Set of names : relative addresses (offsets) in the interval[0..216 − 1]
Naming context : assuming the program is located at address10000 (DS=10000), 0 → 10000, 1 → 10001, etc.
Remarks
Assuming every process has its own DS register, there are asmany naming contexts as processes
A name (here, address) may reference different objects indifferent naming contexts
16 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Limited vs unlimited naming environments
Limited environnements (a priori limited set of names denoms). Need to take care of name allocation/deallocation,association (name,object) subject to change over time.Example : memory addresses.
Unlimited environment (huge number of names). No need forname reuse. Example : external file names, addresses in64-bits processors.
17 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Name lookup : static vs dynamic binding
Static binding : (name,object) binding made at compile-time,does not change at run-time
Dynamic binding : (name,object) binding recomputed atrun-time every time the object is accessed
18 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Name lookup : static vs dynamic binding
Static vs dynamic binding : relation with compiled/interpretedlanguages
Compiled languages : logical object names (identifiers)replaced by physical object names (addresses) at compile-timeInterpreted languages : address of physical object computedevery time a logical object is accessed
Interpreter
Compiler
identifier address
at run−time
at compile−time
at run−time
interpreter processor
location
location
processor
addressidentifier
compiler + linker
19 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Name lookup : static vs dynamic binding
Example
var ent x ; ... x :=0 ;
Compiled scheme : the compiler/linker decide before run-timeto assign object x to a given memory location (ex : 1020).The executable program will contain an instruction whoseoperand is 1020 (ex : mov ax,1020).
Interpreted scheme : the assignment will result in a call to theinterpreter like assign(x,0), whose code will determine theaddress of x at run-time.
20 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Name lookup : lookup chain
In general, finding the physical object bound to logical objectname (identifier) is achieved in an indirect manner (use ofnames/objects in-between)
Name lookup : traverse this lookup chain using differentaccess mechanisms
Descriptor data structure containing both the object location(physical name) and other information such as access rights,size, etc.
21 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Name lookup : lookup chain
f
Allocation table
disk block
add2add1
disk
Directory
File descriptor
22 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Name lookup : lookup chain
Example (Name lookup in case of a file)
Find descriptor address from external name : search thedirectory data structure
Find descriptor from descriptor address : indirect access
Find disk address from descriptor : index in file allocation table
Find disk sector from disk address : disk controller
ExternalName
Descriptoraddress
DiskAddressDesciptor Block
Lookup References Contains References
23 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Example : file system
Naming domain : files and other objects (in UNIX :directories, special files such as character/block peripherals,symbolic links, pipes, semaphores, etc.)
Set of names : file names given by users (character strings).They are called external names to distinguish them from theinternal names used by the operating system. Types ofexternal names :
simple names (strings without any /)access paths : simplename1/simplename2/... or/simplename1/simplename2/ ...
24 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Example : file system
Naming context : binds simple names to objects. A namingcontext is represented by a directory. A directory stores(simplename,internal name) pairs (an internal name in UNIXis called an i-node).
Répertoire
fichier f1
répertoire d1f1
d1
nom externe nom interne
25 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Example : file system
Naming network : composed by the hierarchy of directory andfiles. In the (common) case of a tree structure :
a directory may contain references to directories and/or filesparticular directory : root. Is not referenced from otherdirectories.
26 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Example : file system
f2
f1
f2 of r1
f1 of r1
f1 of r2
f3 of r2f3
f1
r2
r1
f1 f1
r2r1
f2 f3
Root environment Environment of r1
Environment of r2
27 / 440
ObjectivesNaming and linkingMemory hierarchies
TerminologyNaming systemName lookupExample : file system
Example : file system
Rules for name lookup :
Are needed to reference a file : file simple name + name ofdirectory containing the fileContaining directory : path from root directory (absoluteexternal filename) or working directory (relative filename).Search rules (PATH) : define a set of access paths to be used incertain conditions (PATH, LD LIBRARY PATH, CLASSPATH)
Binding : done when integrating a file in a directory (creation,copy, move)
28 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
2 Chapter objectives
3 Naming and linkingTerminologyNaming systemName lookupExample : file system
4 Memory hierarchies - cachesConcept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
29 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Concept of memory hierarchy
Various storage supports (RAM, disk, etc)
Highly heterogeneous storage capacity and access latencies
In general, the lower the latency the smaller the storagecapacity
Definition (Memory hierarchy)
Storage supports sorted by increasing access latency (or capacity)
30 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Concept of memory hierarchy : example
Processeur
Temps d’accès croissant
Capacité croissante
Disque
Mémoire centrale (DRAM)
Mémoire(s) cache
Registres
31 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Concept of memory hierarchy : example
Registers : fast memory, access latency = 1 cycle, capacity =tens to hundreds of bytes
Internal cache (L1) : on-chip fast memory, access latency =1-2 cycles, capacity of tens of Kbytes (ex : 16 KB)
External caches (L2 - L3) : slower but larger than L1 cache,off-chip
Main memory (Dynamic Random Access Memory) : capacity= tens of MB to GB, latency = tens of processor cycles(100-300 ns)
Disk : tens to hundreds of GB, latency of tens of ms
32 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Concept of memory hierarchy : example
Remark
Registers are particular cases since transfers from memory toregisters are explicit
Transfers from all other levels of memory hierarchy areimplicit and transparent to the programmer
33 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Concept of memory hierarchy : objective
Objective : provide the largest storage capacity with thelowest access latencyPrinciple : at any time, keep the “useful” information in thefastest memoryWhy does it work ? : locality of references
Definition (Locality of references)
Spatial locality : if an information is referenced at time t,neigbour information is likely to be referenced in the nearfuture (access(a, t) =⇒ high probability of access(a+d,t+ε))
Temporal locality : an information referenced at time t islikely to be referenced again in the near future (access(a, t)=⇒ high probability of access(a, t+ε))
34 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Principle of caches
Origin of term : hardware caches used to speed-up accesses toRAM
In practice : any hardware-implemented and/orsoftware-implemented mechanism to speed-up accesses to“slow” memory
General principles, and implementation differences (dependingof types of memory, and hardware vs software implementation)
35 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Principle of caches
Assume two contiguous levels in the memory hierarchy : fastmemory and slow memory :
Addressing : addresses of the information in slow memory,accesses in fast memory
Access : if the information is not in the fast memory (miss),the missing information is then transfered to the fast memory
Write : the information is written into fast memory, immediateor deferred update of slow memory
Cache fault when fast memory is full : need to evictinformation from fast memory (cache replacement). Objective= keep the most “useful” (likely to be reused) information infast memory.
36 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Principle of caches
Slow memory
Write ReadFast memory − "cache"
Write read
loadupdate
Slow memory
Abstraction Implementation
37 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Principle of caches
Fast memory plays the role of cache of slow memory : it storesthe “useful” information of slow memory
Metric of cache efficiency : fault ratio or miss ratio : numberof misses / number of accesses
Miss ratio is program dependent
38 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Implementation
Common set of policies independent of the type of cache
Cache structureUpdate policyReplacement policy
39 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Implementation : cache structure
Fast memory (cache) and slow memory divided into fixed-sizeblocks
Unit of transfer from slow memory to cache : cache block(takes benefit of spatial locality)
A block may be in the slow memory and in the cache at thesame time
Example
Hardware caches : blocks of a couple of bytes (8, 16, 32, 64)
Disk caches : blocks of a couple of sectors
40 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Implementation : cache structure
������������������������������������������ ���������������������
�������������������������������������������������������������������������������������
���������������������
������������������������������
��������������� � � � � � � � � ��������������� ���������������
���������������
Location in fast memory
Block number
Fast memory − "cache"
Slow memory
0 1 2 3
6543210
41 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Implementation : cache structure
Mapping function allows to know if a block is in cache andwhere
Example
Hardware cache : simple mapping function (one-cycle latency)
Software cache : mapping function may be more complex(using data structures such as trees, hash tables, lists, etc.)
42 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Implementation : cache structure
Cache access :
Information is in the cache (cache hit) : immediate access
Information is not in the cache (cache miss) : the informationis loaded from slow memory, the data structures used my themapping function are updated and then the information isaccessed
43 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Implementation : update policy
Observation : when an information is modified in the cache, itis more recent than its version in slow memory (the cachedcopy is said to be modified or dirty)
Why updating slow memory ?
Makes modifications persistentAnticipates the eviction of the dirty cache block
Types of updates
Write-through : slow memory is updated every time a cacheblock is mofifiedWrite-back : deferred update of slow memory (at last beforethe block is evicted)What is the best strategy ?
44 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Implementation : replacement policy
Why is is needed ? : cache smaller than slow memory =⇒cache will eventually get full
To be done when the cache is full on a cache miss :1 Requisit one cache block : update slow memory if the block is
dirty + update the data structures used by the mappingfunction
2 Load the requested block from slow memory (+update cachedata structure)
45 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Implementation : replacement policy
Selection of evicted block (replacement policy) :
No optimal policy : would need to know the futureLRU (Least Recently Used) : evict the least recently used blockRandomAvoid the eviction of dirty blocks to shorten replacementlatency
Hardware caches usually implement the simplest replacementpolicies
46 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Hardware-implemented caches : cache structure
Unit of transfer to/from memory : block of a couple of bytes
Addressing : memory address
Constraints on block location :
Unique location : direct mapped cacheAny location : fully associative cacheFixed number of locations : set associative cache
47 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Hardware-implemented caches : cache structure
Direct-mapped cache
Mapping functionLocation = @ MODnb blocs
Bits
valid (V)modified (M)
Tag : indication of blockcontents
Hit : V=1 and tag=searched @
offsetindexMSB
Address
MSB Line
Values BitsTag
48 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Hardware-implemented caches : cache structure
Fully-associative cache
A memory block may bemapped onto any location
Parallel search for a block inthe cache
Tag : contains almost all theaddress bits
In practice, small capacitycaches (parallel searchcostly)
searchassociativeTotally
LineMSB
Tag Values Bits
offsetMSB
Address
49 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Hardware-implemented caches : cache structure
Set-associative cache
Set : fixed-size group of cache blocks
Associativity degree : number of cache blocks per set
Term n-way set associative cache used when n blocks per way
Mapping function :1 Set selection
set = @ MOD nb sets2 Search for the block in set
Highly used in practice
50 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Hardware-implemented caches : etat du cache
2-ways set associative cache
MSB Line MSB Line
Values BitsTagBitsValuesTag
Associative search
offsetindexMSB
Address
Set
Way
51 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Hardware-implemented caches : replacement policy
Usual replacement policy :
LRU (Least Recently Used) : evicts the least recently usedblock
FIFO (First In, First Out)
Random
Remark
No need for a replacement policy in a direct-mapped cache
Implementation cost of LRU increases with associativitydegree
Implementation cost influences the choice of a replacementpolicy (LRU > FIFO > random) =⇒ approximate versions ofLRU like pseudo-LRU
52 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Hardware-implemented caches : update policies
Update policies
Write through : memory is updated at every write accessWrite back : memory update is delayed (when a cache block isevicted)
Allocation policies :
Write allocate : a cache block is allocated at every write(load+write)Nowrite allocate : no allocation, direct update of slow memory
Usual combinations : write allocate + write back or nowriteallocate + write through
53 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Hardware-implemented caches : further details
Cache hierarchies
Instruction and data caches may be separated or unified(usually, L1 caches separated)
Issue of cache consistency in multiprocessor architectures
54 / 440
ObjectivesNaming and linkingMemory hierarchies
Concept of memory hierarchyPrinciple of cachesImplementationHardware-implemented cachesSoftware-implemented caches
Software-implemented caches
Caches of disk controller (to avoid disk accesses)
Caches of local file system (to avoid disk accesses, speciallyfor directories)
Caches of network file systems (ex : NFS, Network FileSystem) : avoid network and disk latencies
Caches of Web servers
Virtual memory and demand paging, etc.
55 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Deuxieme partie II
Virtual memory, paging and swapping
56 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Plan
5 Introduction
6 Mecanisme de pagination
7 Pagination a la demande
8 Amelioration des performances
9 Limitation de la consommation memoire
10 Gestion memoire et gestion du processeur
57 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
5 IntroductionRole du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
6 Mecanisme de paginationAdresse virtuelle et adresse physiqueFonction de pagination
7 Pagination a la demandePrincipeElements de mise en œuvreExemple : le systeme utilise en TP
8 Amelioration des performancesCaches de traductionEcroulement du systeme
9 Limitation de la consommation memoireInfluence de la taille des pagesFonctions de pagination adaptees
10 Gestion memoire et gestion du processeur 58 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Objectifs
Premier semestre : elements charges de gerer le processeur etles entrees/sorties
Deuxieme semestre : elements charges de gerer la memoire
Accent mis sur les points suivants :
memoires pagineesliens existants avec gestion processeur et E/S
59 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Concepts et notations
Espace virtuel (ou espace logique) : ensemble des informationsaccessibles par un processeur virtuel executant un processusAdresse virtuelle : adresse dans l’espace virtuel d’un processus
Example (Adresse virtuelle)
Un processeur 32 bits peut acceder a 4 Go d’espace memoire,independamment de la capacite de memoire physique disponible.Les adresses virtuelles vont de 0 a 232-1
Adresse physique (ou reelle) : adresse dans la memoire vive dela machine
Example (Adresse physique)
Les adresses physiques sur un processeur dote de 128 Mo dememoire vont de 0 a 227-1
60 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Concepts et notations
Objets manipules par les programmes : objets logiques(variables, procedures, “objets”)
Mise en œuvre finale de ces objets logiques en utilisant desobjets physiques (emplacement en memoire physique)
Passage des objets logiques aux objets physiques en deuxphases :
implantation des objets logiques dans l’espace virtuel (liaisonlogique, i.e. attribution d’adresses virtuelles) : voir partie 4mise en œuvre de cet espace virtuel sur des supports physiques(adresses physiques, disque). C’est l’objectif de ce chapitre
Virtual memory Physical memory
Logical binding
Logical objects
Addresstransformation
61 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Role du sous-systeme de gestion de la memoire
gerer l’allocation des emplacements logiques sur les supportsphysiques (disque, memoire centrale)
gerer les transferts entre les differents supports
realiser la correspondance entre adresses virtuelles et adressesphysiques
62 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Role du sous-systeme de gestion de la memoire : choix
importants
Politique d’implantation des programmes en memoireimplantation statique : correspondance entre espace virtuel etespace physique etablie une fois pour toute avant le debut del’execution d’un programmereimplantation dynamique : correspondance entre espacevirtuel et espace physique peut varier dans le temps, pendantl’execution
Choix de la taille des zones gereespar zone : gestion de morceaux de memoire de taillequelconque, dependant directement des besoins de l’utilisateurpar page, gestion de morceaux de memoire de taille fixe
Interet essentiel ici : gestion par page et reimplantationdynamique
63 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique
Correspondance espace virtuel / espace physique est faite unefois pour toute avant execution du programme (adressesphysiques des emplacements ou sont implantes les objets duprogramme sont fixees avant l’execution)
Remark
Ce mode d’allocation est aborde uniquement pour montrer qu’il estdifficilement utilisable dans des systemes multiprogrammes
64 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique : cas d’un systeme monoprogramme
Une partie de la memoirecontient la partie residentedu systeme
Une autre partie est reserveepour le programmeutilisateur
Un seul processus =⇒adresse d’implantation detous les programmestoujours la meme. Peut etrefixee a l’edition de liens etelle rester la meme pendanttoute l’execution
Resident OS
Prog A
65 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique : extension aux systemes
multiprogrammes
Plusieurs programmes en cours d’execution simultanement
Strategies possibles :
Un seul programme en memoire a un instant donnePartitions fixes de la memoire physiquePartitions variables de la memoire physique
66 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique et systemes multiprogrammes : Un
seul programme resident
Conservation du modele memoire du systeme monoprogrammeCommutation de processus
1 recopie sur disque de tout l’espace memoire utilise par leprocessus perdant l’UC
2 chargement en memoire du code et les donnees du nouveauprocessus actif (mecanisme de va-et-vient)
Disk Memory
Processor allocation
Blocking
Inconvenient : cout lors des commutations de contexte
67 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique et systemes multiprogrammes :
Partitions de taille fixe
Decoupage de la memoire en partitions fixes (debut+taille)
Liaison d’un programme particulier pour une partition donnee(un programme s’execute toujours dans la meme partition, etdonc toujours a la meme adresse physique)
Si un processus bloque perd sa memoire il devra etre rechargeulterieurement dans la meme partition pour pouvoir reprendreson execution.
68 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique et systemes multiprogrammes
Partitions de taille fixe
Programme A lie pour s’executer dans la partition 1, B et Cont ete lies pour s’executer dans la partition 2
��������������������������������������������������������������������������
��������������������������������������������������������������������������
������������������������������������������������������������������������
��������������������������������
Partition 1Partition 1
Partition 2
Prog A
Prog BPartition 2
Prog A
Prog C
Resident OS Resident OS
end of Bstart of C
69 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique et systemes multiprogrammes
Partitions de taille fixe
Inconvenients :
Mauvaise utilisation de la memoire : discordance entre taille dela partition et taille des programmes =⇒ perte de placememoireMauvaise utilisation de l’UC : il se peut que l’on n’ait plus deprogramme a executer dans une partition particuliere, alors quel’on en a plusieurs devant s’executer dans les autres partitions
Sur l’exemple, si a partir de la situation initiale A se termine(partition 1), on ne peut pas pour autant executer C puisqu’ilest lie pour s’executer dans la partition 2
Solution envisageable : determination du nombre et de la tailledes partitions en fonction de la charge previsible
70 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique et systemes multiprogrammes
Partitions de taille variable
On fixe l’endroit ou va etre implante un programme auchargement de ce dernier (liaison au chargement)
Au chargement le systeme cherche une zone de memoire libresuffisamment grande pour loger le programme, qui ne bougepas pendant son execution
Lors de deux executions completes successives, le programmepourra etre implante a des adresses differentes
71 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique et systemes multiprogrammes
Partitions de taille variable
end of Astart of B (2nd run)
end of B (first run)start of C
Prog B
Prog A Prog A
Prog C
Prog B
Prog C
Resident OS Resident OS Resident OS
72 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique et systemes multiprogrammes
Partitions de taille variable
Inconvenients
Ca ou pas de va-et-vient : fonctionnement correct, maisoccupation possible de la memoire avec des processus bloquesce qui n’est pas forcement efficace
Ca d’un mecanisme de va-et-vient : un programme ayantperdu son espace memoire a la suite d’un blocage peut ne paspouvoir etre recharge apres son deblocage, si la zone ou ildevrait etre recharge est occupee (voir exemple)
73 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Implantation statique et systemes multiprogrammes
Partitions de taille variable
Resident OS
saving of A
Prog CProg C
Prog BProg B
Prog A
Resident OS Resident OS
start of Cend of Breactivation of A, whichcannot be reload at the same address anymore
74 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Interet de la reimplantation dynamique
Partage de l’UC entre de nombreuses taches interactives
Trop de processus en cours d’execution pour les maintenirtous en memoire en meme temps
Attente lors des entrees/sorties =⇒ on ne souhaite pasconserver memoire un processus bloque pendant troplongtemps
Dans ces cas, strategies statiques trop contraignantes ouinefficaces
=⇒ Utilisation du mecanisme de va-et-vient (swapping)
75 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Interet de la reimplantation dynamique
Definition (Mecanisme de va-et-vient)
Un processus bloque peut perdre, au moins en partie, l’espacememoire qui lui etait attribue, l’etat de cet espace memoireest recopie sur disque (swap out)
Lors de sa reactivation il faudra lui redonner de l’espacememoire et recharger son etat de memoire a partir du disque(swap in)
=⇒ Necessite de pouvoir recharger le programme en memoire aune adresse differente de celle de son chargement initial :reimplantation dynamique. L’adresse d’implantation d’unprogramme peut varier pendant l’execution du programme
76 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Mecanismes d’adressage necessaires a la reimplantation
dynamique
Example
Si l’edition de lien produit un programme destine a etre implante al’adresse physique 10 000, ce programme, pour designer sonpremier emplacement utilisera une instruction (code,10 000) et ilne s’execute pas correctement s’il est implante en 20 000.
=⇒ Reimplantation dynamique impossible
=⇒ Besoin de mecanismes d’adressage particuliers
=⇒ Il faut que la liaison ne soit terminee qu’a l’execution,l’adresse physique d’un objet doit etre re-calculee a chaqueacces a l’objet, et aucune adresse physique ne etre manipuleedirectement
77 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Reimplantation dynamique : mecanismes d’adressage
utilisables
Utilisation de registres de base (adressage “base”)
Segmentation
Pagination
78 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Reimplantation dynamique : adressage par registres de base
Definition (Adressage par registre de base)
Toutes les adresses figurant dans les instructions, oumanipulees par les instructions, sont des adresses relatives
Les mecanismes d’adressage logique (indirection,indexation,...) produisent une adresse relative (adresse relativefinale)
Seul le registre de base contient une adresse physique qui estajoutee a l’adresse relative finale pour produire l’adressephysique
79 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Reimplantation dynamique : adressage par registres de base
InstructionLogical
addressing schemesFinal relatove address
Base register
Physicaladdressing schemesbase physical address
Physical address =final relative address +base physical address
80 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Reimplantation dynamique : adressage par registres de base
Deplacement programme en cours d’execution de adphys1 aadphys2 : modification contenu du registre de base (adphys2)
0code
0code
Relocation
20000
10000
10000Baseregister
Baseregister
20000
at @ 20000
81 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Reimplantation dynamique : adressage par registres de base
Remarks
On peut avoir plusieurs registres de base, comme sur le 8086(CS, DS, SS, ES)
L’existence de registres de base ne garantit pas pour autantque tout programme peut etre re-implante, il faut les utilisercorrectement (exemple ci-dessous avec une reimplantationentre (1) et (2))
Permet la reimplantation dynalique mais pas de va-et-vientpas bloc (va-et-vient global seulement)
X RW 1MOV X,DS (1)...MOV DS,X (2)
82 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Reimplantation dynamique : adressage segmente
Variation de d’adressage par registre de base
Segment = unite de structuration, partage et protection del’information
Descripteur de segment : contient les informations de taille,protection, et l’adresse d’implantation du segment
Reimplantation dynamique : modification du descripteur desegment (changement adresse d’implantation)
83 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Reimplantation dynamique : adressage segmente
s
Segment number
logical address
d
offset in segment
size right address
segment sSegment descriptor
d
Table of segment descriptors
84 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Reimplantation dynamique : mecanisme de pagination
Decoupage de l’espace virtuel en morceaux de taille fixee,nommes pages
Adresse virtuelle = couple (no de page virtuelle, deplacementdans la page virtuelle).
Le mecanisme d’adressage remplace, a chaque acces, lenumero de page virtuelle par un numero de page physique
=⇒ Permet la reimplantation dynamique
=⇒ Autres bonnes proprietes (va-et-vient page par page,utilisation de programmes dont la taille cumulee depassel’espace memoire physique disponible)
85 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Reimplantation dynamique : mecanisme de pagination
Instruction Addressing schemesFinal virtual address
Logical
FunctionPaging
Physical address
pv off
pr
pr off
Page table
86 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Role du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
Reimplantation dynamique : mecanisme de pagination
0
1
2
3
4
1000
1001
1002
1003
1004
Page table Page table
Program relocationat physical page 1000
87 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
5 IntroductionRole du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
6 Mecanisme de paginationAdresse virtuelle et adresse physiqueFonction de pagination
7 Pagination a la demandePrincipeElements de mise en œuvreExemple : le systeme utilise en TP
8 Amelioration des performancesCaches de traductionEcroulement du systeme
9 Limitation de la consommation memoireInfluence de la taille des pagesFonctions de pagination adaptees
10 Gestion memoire et gestion du processeur 88 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Mecanisme de pagination
Presentation des notions :1 Cas simples
espace virtuel lineairefonction de pagination simple (simple table de correspondance)
2 Extensions
fonctions de pagination plus elaboreesacceleration des acces memoire, etc.
89 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Adresse virtuelle
Decoupage de l’espace virtuel en pages virtuelles (pageslogiques) de taille fixeUne adresse virtuelle peut etre interpretee comme un coupleno de page virtuelle, deplacement dans la pageSi les pages font 2m octets, et s’il y a 2v pages virtuelles, uneadresse virtuelle fait m + v bits, organises de la manieresuivante :
Virtual address
virtual offset
v bits m bits
page number
On notera une adresse virtuelle (pv , d) uniquement pour plusde lisibilite, en realite, c’est une simple suite de bits
90 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Adresse virtuelle
Remark
L’ensemble des pages virtuelles constitue un espaced’adressage unique : le dernier mot de la page o est suivi dupremier mot de la page i + 1
Par exemple, si une page fait 28 octets et s’il y a 26 pages,l’adresse a=(2,255) est suivie de l’emplacement d’adresse a+1= (3,0). a= 000010 11111111, a+1 = 000011 00000000
91 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Adresse virtuelle : exemple
Systeme avec pages de 28 (256) octets, 26 pages
3 2
Virtual address
000011 00000010
Virtual addresses
000000 00000000
000000 11111111
000001 00000000
000010 00000000
page 0
page 1
page 2
page 3
012000011 00000010
Virtual address space
92 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Adresse physique
Decoupage de la memoire physique en pages physiques (pagesreelles) de taille fixeUne adresse physique (adresse reelle) peut etre interpreteecomme un couple no de page physique, deplacement dans lapageSi les pages font 2m octets, et s’il y a 2p pages physiques, uneadresse virtuelle fait m + p bits, organises de la manieresuivante :
Physical offset
m bitsp bits
Physical address
page number
Physical offset
m bitsp bits
Physical address
page number
93 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Adresse physique
Remark
En general :
On a v 6= p, et v >> p
Taille des adresses virtuelles >> taille des adresses reelles
Espace virtuel adressable >> espace physique disponible
94 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Fonction de pagination
Mise en œuvre par materiel : Unite de Gestion memoire(UGM), Memory Management Init (MMU)
Transforme a chaque acces memoire un numero de pagevirtuelle en numero de page physique
Fonction non totale : il peut y avoir des adresses virtuelles nontraduites par la fonction de pagination. Il s’agit alors d’uneexception signalee au systeme : defaut de page
Deux issues lors d’un appel a la fonction de pagination :
la traduction est possible : retourne l’adresse physique resultatsinon, deroutement pour defaut de page
95 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Fonction de pagination
Paging
Physical page number(if no page fault)
numberVirtual page
function Page faultexception
96 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Fonction de pagination
Physical memoryVirtual memory
virtualpage
number0
1
10
11
physicalpage
number
23
24
25
26
function
...
...
page fault
paging
97 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Fonction de pagination : mise en œuvre par table des
pages lineaire
Tableau avec une entree par page virtuelle (no page = indicedu tableau)
Bit de presence (bit V) indiquant si une page physique estassociee a la page virtuelle (sinon, deroutement pour defautde page)
Table stockee en memoire
On parle de table des pages lineaire
98 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Fonction de pagination : mise en œuvre par table des
pages lineaire
10 d 26 d
11 d’ page fault
virtual address
virtual address
physical address
0
1
10
11
1
1
1
0
24
26
23
Physical memoryVirtuak memory
virtualpage
number0
1
10
11
physicalpage
23
24
25
26
...
...
number
V pr
Page table
99 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Fonction de pagination : mise en œuvre par table des
pages lineaire
Ralentissement de l’execution par rapport a un systeme sansadressage virtuel. Pour chaque acces a une adresse virtuelle,au moins deux acces a la memoire physique :
1 Un acces a la table des pages, situee un memoire, pourrecuperer le numero de page physique
2 Un acces a l’emplacement contenant l’information proprementdite
Table des pages en memoire =⇒ probleme d’espace memoireoccuppe et de temps d’acces. Mecanismes de traitement deces problemes vus plus loin.
100 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Fonction de pagination : mise en œuvre par table des
pages lineaire
Format typique d’une entree de la table des pages (DPV,descripteur de page virtuelle)
present (V) : indique si une page physique est associee a lapage virtuelledroit : bits specifiant les droits d’acces a la page (lecture,ecriture, execution)pphys : numero de la page physique associee (si present=1)
101 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Fonction de pagination : mise en œuvre par table des
pages lineaire
“Code” de la fonction de pagination (realisee par materiel) :
type adVirt = (v bits pv, m bits d)adPhys = (p bits pp, m bits d)DPV = ( bit present, bits droit,p bits pphys)typeAcces = {lire, ecrire, ...}
var [0 :2v -1]DPV tpages ; {table des pages}fonction pagination (adVirt adv, typeAcces acces) resultat adPhysdebut
si acces incompatible avec tpages[adv.pv].droitalors deroutement pour violation de protection memoiresinon si tpages[adv.pv].present = 0
alors deroutement pour defaut de pagesinon resultat (tpages[adv.pv].pphys, adv.d)
fsi
fsi
fin102 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Contiguite des pages en memoire
Remark
Des pages contigues dans l’espace virtuel ne le sont pasobligatoirement dans l’espace physique.
5
615
6 1
15
3
3
15
Virtual memory Physical memory
Physicalpagenumber
Virtualpagenumber
103 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Fonction de pagination
Dans le cas d’un adressage indirect avec relais en memoire, lerelais contient une adresse virtuelle. Pour acceder a l’operandefinal on passe donc deux fois par le mecanisme de pagination :
une premiere fois lors de l’acces au relaisune seconde fois lors de l’acces a l’operande
Transformation d’adresse a l’execution lors de chaque acces=⇒ liaison n’est terminee qu’au dernier moment =⇒permet la reimplantation dynamique (simple mise a jour destables de traduction)
104 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Adresse virtuelle et adresse physiqueFonction de pagination
Fonction de pagination
Un programme peut etre ”partiellement present” en memoirephysique : certaines pages sont effectivement presentes enmemoire centrale, d’autres ne le sont pas
Les espaces virtuels et physiques n’ont pas forcement la memetaille. Si on a 2v pages virtuelles et 2p pages physiques :
Si v > p, l’espace virtuel ne tient pas entierement en memoirephysique. On verra que l’on peut executer quand meme de telsprogrammesSi v < p, on peut mettre plus d’un espace virtuel en memoirephysique (un seul accessible a la fois, mais plusieurs peuventetre residents)
Protection a l’execution, espaces memoire separes
105 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
5 IntroductionRole du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
6 Mecanisme de paginationAdresse virtuelle et adresse physiqueFonction de pagination
7 Pagination a la demandePrincipeElements de mise en œuvreExemple : le systeme utilise en TP
8 Amelioration des performancesCaches de traductionEcroulement du systeme
9 Limitation de la consommation memoireInfluence de la taille des pagesFonctions de pagination adaptees
10 Gestion memoire et gestion du processeur 106 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Principe
Fonction de pagination =⇒ non contiguite=⇒ Allocation memoire simplifiee. Il suffit de trouver n pages,
quelles que soient leurs adresses=⇒ Mise en œuvre d’un mecanisme de va-et-vient global aisee
(changement contenu tables de traduction)Constats :
Localite des applications =⇒ a un instant donne, uneapplication n’a besoin que d’un sous-ensemble de sesinformationsLe mecanisme de pagination permet de n’avoir en memoirequ’un sous-ensemble des pages virtuelles
=⇒ Chargement d’une page en memoire physique que si elle estreferencee : pagination a la demande
=⇒ Au lieu d’un va-et-vient global sur tout le programme, on peuteffectuer un va-et-vient au niveau de la page en fonction desbesoins 107 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Principe
Principe du cache :
memoire lente =espace virtuel, donton a l’image surdisque
memoire rapide(cache) = memoireprincipale de lamachine
page faultAddress translation
Physical memory
update
Swap area
softwaredemand paging
load(on page faults)
implementation
of virtual address space
Access tovirtual space
108 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Principe
Initialement, aucune page en memoire physique (espacevirtuel sur disque, cache vide)
Acces a une page non presente =⇒ deroutement pour defautde page. La routine executee doit rendre possible l’executionde l’instruction fautive :
1 trouver une page physique disponible2 la remplir avec l’image disque de la page virtuelle3 modifier la table des pages pour noter la presence de la page
virtuelle en memoire physique4 re-executer l’instruction fautive
109 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Elements de mise en œuvre
Identiques aux problemes a resoudre pour les memoires cache :
Representation de l’etat du cache : supportee par structure dedonnee de la fonction de pagination (au plus simple, table despages lineaire)
Representation de l’etat de la memoire lente (disque)
Politique de recopie : quelle strategie adopter pour la recopiedes pages modifiees ?
Politique de remplacement : quelle page supprimer du cachequand il est plein ?
110 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Representation de l’image sur disque
Principe : associer une image sur disque a chaque pagevirtuelle
Utilite :
Savoir a quel emplacement lire une page virtuelle lors de sonchargement (defaut de page)Savoir a quel emplacement recopier une page virtuelle modifiee(recopie)
Emplacements possibles de stockage de l’adresse disque :
Dans le descripteur de page virtuelle (table des pages)Dans une table separee, ayant une entree par page virtuelle
111 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Representation de l’image sur disque
Remarks
Un espace virtuel par processus =⇒ une image disque parprocessus
Certaines pages virtuelles ne seront jamais modifiees (code)=⇒ pas necessaire d’allouer une image disque pour ceszones : utilisation directe du fichier executable
112 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Representation de l’image sur disque
Zones du disque dediees au stockage de l’image disque des pagesvirtuelles :
Zones non modifiables : fichier executable
Zones modifiables : zone d’echanges (ou swap) (partition,fichier)
113 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Representation de l’image sur disque
Instants de mise en correspondance d’une page virtuelle et de sonimage disque :
Correspondance statique (au chargement) : au “chargement”d’un programme, on alloue l’image de toutes ses pagesvirtuelles modifiables dans la zone d’echanges
Correspondance dynamique (a l’execution) : on etablit lacorrespondance au plus tard, lors de la recopie d’une pagevirtuelle sur disque. Interets de la correspondance dynamique :
On n’alloue sur disque que ce qui est strictement necessaire(utilite pour les pages de pile)On peut optimiser les deplacements du bras en placantintelligemment les donnees sur disque
Instants de liberation de l’image disque :
Fin de programme
114 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Strategie de recopie
Recopie immediate (write-through) : beaucoup trop couteuxet inutile (information en memoire n’est pas permanente)
D’ou Recopie differee (write-back). Quand recopier ?Lors d’un remplacement de page, quand une page estsupprimee de la memoire et qu’elle est modifiee
=⇒ Deux E/S disque pour le traitement du defaut de page(recopie de la page requisitionnee si modifiee + lecture de lapage manquante depuis le disque)
De maniere decorrelee avec le remplacement de page, par unprocessus independant
=⇒ On peut requisitionner uniquement les pages non modifiees=⇒ On risque d’effectuer des recopies inutiles
115 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Forte probabilite qu’au bout d’un certain temps, il n’y ait plusde page physique disponible dans le systeme
Il faut alors lors d’un defaut de page requisitionner une pagepour l’attribuer au processus en defaut (remplacement depage)
Chronologie (defaut sur page pv1) :1 Selection de la victime pr (requisition), la page pr va etre
videe. La memoire etant pleine, pr supporte deja une pagevirtuelle pv2.
2 On note dans on descripteur que pv2 n’est plus presente3 Recopie de pv2 si necessaire (depend de la strategie de recopie)4 Reste du traitement de defaut de page pr est maintenant
disponible
116 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Structures de donnees
Necessaire d’avoir un etat d’allocation des pages physiques :occupees ou libres, et si occupees, ou se trouvent lesinformations relatives a la page virtuelle supportee(descripteur, adresse disque)
Ces informations sont dans un descripteur de page physique,contenant :
Un lien inverse vers le descripteur de page virtuelle supportee :pointeur, ou couple (processus proprietaire, numero de pagevirtuelle)Un bit de modification (M) indiquant si la page a ete modifieedepuis son chargement en memoireun bit d’utilisation (U) indiquant si la page a ete referencee
117 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Structures de donnees
Remarks
Il serait trop couteux de mettre a jour les bits U et M parlogiciel (a chaque acces memoire) =⇒ mise a jour par lemateriel (UGM)
En general, bits M et U, bien qu’utilises pour la gestion despages physiques, sont localises dans les descripteurs de pagesvirtuelles, car ils sont visites par l’UGM a chaque accesmemoire
118 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Exemple
1 L’ARP choisit la page physique pr pour faire le remplacement
2 l’entree pr de la table des pages physiques fournit (P2, pv2)
3 on met l’entree pv2 de la table des pages de P2 a (0,-)
4 l’entree pv1 de la tables des adresses disque de P1 fournitaddpv1
5 on fait une lecture disque depuis addpv1 vers la page physiquepr
6 on met l’entree pv1 de la table des pages de P1 a (1, pr )
7 on met l’entree pr de la table des pages reelles a (P1, pv1)
119 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Exemple - etat avant defaut
of P1page table
0 addpv1
Table of disk @for P1
1 pr addpv2pv2
pv2
pr P2 pv2
tablephysical page
pr
Physical memory
of P1
pv1
of P2
pv1
pv2
Virtual address space Virtual address space
page tableof P2
Table of disk @for P2
120 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Exemple - etat apres defaut
addpv2pv2
de P1Virtual address space
pv1
pv1
pv2
of P1page table
addpv1
0
pr pv1
physical
pr P1 pv1
1 pr
Virtual address spaceof P2
page tableof P1
table of disk @for P1
table of disk @for P1
page tablePhysical memory
121 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Remark
Certaines pages doivent etre temporairement exclues dumecanisme de remplacement.
C’est le cas par exemple des pages sur lesquelles uneentree/sortie est en cours (recopie sur disque, chargementsuite a un defaut de page)
=⇒ Il faut pouvoir verrouiller ces pages (les marquer pour lesexclure du remplacement). Cela peut se faire en rajoutant uneinformation dans le descripteur de page virtuelle ou physique
122 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Algorithme de remplacement de page
Definition (Algorithme de remplacement de page)
On nomme algorithme de remplacement de page (ARP)l’algorithme de selection d’une page a requisitionner lors d’undefaut de page lorsqu’il n’existe plus aucune page disponible
Mesure de l’efficacite de l’ARP = taux de defauts de page(nombre de defauts / nombre de references)
ARP optimal (algorithme de Belady) n’est pas realisable enpratique (necessite de connaıtre le futur)
=⇒ Algorithmes utilises utilisent les references passees et lesproprietes de localite des programmes
123 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Algorithmes de remplacement de page classiques
FIFO (First In First Out) : selection de la page la plusanciennement chargee
ne respecte pas le principe de localite : une page souventreferencee sur une longue periode finira par etre la plusancienne, et donc sera videefacile a mettre en œuvre
LRU (Least Recently Used) : la page victime est celle dont laderniere reference est la plus ancienne
utilise la propriete de localite : les pages utilisees recemment nesont pas videesdifficile a mettre en œuvre : il faudrait maintenir une liste despages virtuelles presentes triee par date de derniere reference(liste mise a jour a chaque reference)
124 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Algorithmes de remplacement de page classiques
Algorithme de la seconde chance (horloge) : approximation del’algorithme LRU, qui choisit comme victime une page nonreferencee “recemment” (pas pas necessairement la plusanciennement referencee)
Utilisation du bit U mis a 1 a chaque reference a la page. U=1signifie que la page a ete referencee “recemment”. Si a t1 onremet a 0 le bit U de la page i, la valeur de ce bit a t2>t1permet de decider si la page a ete utilisee ou non entre t1 et t2
t1 t2
U[i]:=0 test U[i]
U[i]=1 => page referenced between t1 and t2
U[i]=0 => page i not referenced between t1 and t2
time
on ordonne les pages physiques circulairement par rapport aleur numero, en conservant le numero (note derniere) de laderniere page videelors d’une demande de remplacement, parcourt de la liste despages physiques a partir de derniere, jusqu’a avoir trouve unepage dont le bit U est a 0. Pour toutes les pages entre derniereet la victime choisie, on remet le bit U a 0, ce qui assure quel’algorithme fournira bien une reponse dans tous les cas
125 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Algorithmes de remplacement de page classiques
Exemple d’execution de l’algorithme de l’horloge(∀k ∈ [i , j − 1]U[k ] = 1) )
2 −1p 0 1 2
i
i+1
j−1j
2 −1p
last
last
Before executing PRA After executing PRA
0 1 2
i
i+1
j−1j
U[j]=0 U[j−1]=1
U[i+1]=1
U[i]=1 U[i]=0
U[i+1]=0
U[j−1]=0U[j]=1victim
126 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Remplacement de page
Performances des algorithmes
Performances obtenues surdes chaınes de referencesprovenant d’applicationsreelles
Remark
La taille de la memoire a plusd’impact que l’ARP choisi
Size of memory
Page fault
rate
FIFO
LRU
Clock algorithm
127 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
“Chargement” d’un programme
Contenu d’un fichier executable :
Description (adresse en memoire et contenu) des zonescontenant du code et des donnees initialiseesDescription (adresse en memoire et taille) des zones contenantdes donnees non initialisees
Objectif du chargement : Initialiser la memoire pour que leprogramme puisse commencer a s’executer
128 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
“Chargement” d’un programme
Sans pagination (travail directement en adresse physique) :consiste a implanter le programme en memoire a partir dufichier executable
reservation de memoire pour les differentes zonesremplissage de ces zones a partir du disqueinitialisation des registres du processeur (SP,PC)
Avec pagination a la demande : pas de chargement enmemoire avant le debut de l’execution, mais a la placeinitialisation des tables des pages. Le chargement se fera lorsdes defauts de page
bit present = 0 (toutes les pages sont absentes)initialisation des adresses disque pour referencer la zoned’echangesinitialisation des registres du processeur (SP,PC)
129 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
“Chargement” d’un programme
Trois types de zones vis a vis du chargement :
code : son image reste dans le fichier executable (nonmodifiable)
donnees initialisees : leur etat initial doit etre obtenu a partirdu fichier executable, mais leur image sera ensuite sur la zoned’echange (une copie par processus)
donnees non initialisees et pile : pas d’etat initial fixe, leurimage sera tout le temps dans la zone d’echange.
130 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
“Chargement” d’un programme
Solution simple
Principeallocation statique (au chargement) de l’image disqueinitialisation de la partie de la zone d’echanges correspondantaux donnees initialisees
Chronologie1 reservation d’espace virtuel (table des pages) pour les
differentes zones (code, data, bss, stack)2 reservation disque dans la zone d’echanges pour data, bss,
stack3 recopie de l’etat initial des donnees initialisees (fichier
executable) vers la partie de la zone d’echange correspondante4 initialisation de la table des pages (V=0) et la table des
adresses disques
131 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
“Chargement” d’un programme
Solution simple
code
datasection
Executable file
code
datasection
bsssection
stack
datasection
bsssection
stack
Table of disk @
0
0
0
0
...
...
...
...
Physical memoryVirtual address space Disk
Page table
Swap area
132 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
“Chargement” d’un programme
Ameliorations
Allocation dynamique d’espace disque pour les donnees noninitialisees et la pile. Allocation au plus tard (lors duremplacement de page)
Allocation paresseuse d’espace disque pour les donneesinitialisees. Tant qu’une page de cette zone n’est pas modifieeen memoire, on continue a utiliser l’image disque du fichierexecutable. Allocation d’espace disque au plus tard (lors de larecopie)
133 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
“Chargement” d’un programme
Ameliorations
code
datasection
Executable file
code
datasection
bsssection
stack
Table of disk @
0
0
0
0
...
...
...
...
DiskPhysical memoryVirtual address space
RO
CW
ND
ND
RO = read onlyCW = copy on writeND = no disk image Page table
Swap area
134 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Zones licites vs illicites
Definition (Zone illicite)
Zone d’adresses virtuelles dont l’acces entraıne une erreur al’execution. Zone licite = zone pour laquelle les tables des pagessont allouees.
135 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Exemple : systeme Nachos utilise en TP
Concepts de base :
tache : ensemble forme d’un espace d’adressage et d’un fil decontrole (Thread)
thread : un fil de controle (processus). s’execute dans unespace d’adressage prive
Interface :
Exec : creation d’une nouvelle tache a partir d’un fichierexecutable
Exit : fin de la tache courante
Join : attente de la fin d’une tache donnee
synchronisation par semaphores, entrees/sorties, gestion defichiers, etc
136 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Nachos : structure du systeme
Gestion des processus : creation et synchronisation de”processus legers” (threads). Threads utilises comme elementdu systeme ou constituants d’une tache utilisateur
Gestion de fichiers : gestion des fichiers, realisation des accesaux fichiers et des d’entree/sortie physiques
Gestion de la pagination : gestion des tables de pages reelleset virtuelles, traitement des defaut de page, realisation duremplacement de page, recopie des pages modifiees
Gestion des espaces virtuels : realise les allocation dansl’espace virtuel d’une tache
Gestion des taches : creation, autres operations
Traitement des exceptions recuperation des exceptions (appelssystemes, interruptions, defauts de page).
137 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Nachos : structure du systeme
Usertask
Usertask
Task management
Memory management
Managt. ofvirtual spaces
Swap in/outmanagement
Exceptions
Management of system calls
File managementI/O
Pagefaulthandler
Processmanagement
138 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Nachos : materiel pour la pagination
Table des pages lineaire en memoire. Constituants d’un DPV :
valid : bit de validite indiquant si la page virtuelle estsupportee par une page physiquephysicalPage : numero de la page physique associee (pertinentuniquement si valid=vrai)bits d’utilisation use et de modification dirty (pertinentsuniquement si valid=vrai)deux bits de droits d’acces (acces et readOnly)
acces readOnly acces autorises
vrai vrai lecture seulevrai faux lecture et ecriturefaux - aucun acces
Un registre de la machine reference la table des pages courantes(mise a jour lors de changements de contexte)
139 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Nachos : representation d’un espace virtuel
objet : zone manipulee par un processus associe a une tache(code donnees initialisees, etc)
region : support d’un objet dans l’espace virtuel. Suite depages contigues dans l’espace virtuel
=⇒ une tache est composee d’un ensemble de regions
objet systeme : support d’un objet sur disque. Dans Nachos,c’est une partie constituee de blocs contigus, d’un fichier(fichier permanent du SGF ou fichier de “swap”)
140 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Nachos : representation d’un espace virtuel
Fichier swap
objet systèmecode
objet systèmedonnées
pileobjet système
régioncode
région données
région pile
Espace virtuel
Fichier exécutable
141 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Nachos : structures de donnees
ObjSyst
fichier OpenFile
Region
pageDebnbPages
suivantobjetAssocie
Region
Task
AddrSpace
ObjTabV
Thread
VirtualSpaceprocess
pageTablelisteReg
142 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Nachos : structures de donnees
tableau global gestTabTache− >Tabtaches : tableau desdescripteurs de toutes les taches existantes
variable globale noTacheCourante : indice dans ce tableau dela tache dont le processus s’execute
methode RestoreState de la classe AddrSpace est appelee lorsdes changements de contexte : son role est de mettre en placel’espace virtuel associe au processus auquel on alloue l’UC
143 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Nachos : gestion de la pagination
Structures de donnees utilisees :
representation des espaces virtuels decrits auparavant
table des pages physiques (variable globale tabPagesReelles dela classe ObjTabrR. Format des entrees :
bit de validite (si la page reelle supporte une page virtuelle)pointeur sur le descripteur d’espace virtuel (AddrSpace)numero de la page virtuelle supporteebit de verrouillage
144 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
PrincipeElements de mise en œuvreExemple : le systeme utilise en TP
Nachos : gestion de la pagination
Structure du code de gestion de la pagination :
traitement de l’exception pour defaut de page :1 obtention d’une page physique, en faisant eventuellement
appel a l’ARP (methode de la classe ObjTabrR)2 chargement la page manquante en memoire physique
processus systeme de recopie des pages modifiees
145 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
5 IntroductionRole du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
6 Mecanisme de paginationAdresse virtuelle et adresse physiqueFonction de pagination
7 Pagination a la demandePrincipeElements de mise en œuvreExemple : le systeme utilise en TP
8 Amelioration des performancesCaches de traductionEcroulement du systeme
9 Limitation de la consommation memoireInfluence de la taille des pagesFonctions de pagination adaptees
10 Gestion memoire et gestion du processeur 146 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Caches de traduction
Introduction du mecanisme de pagination =⇒ ralentissementimportant des acces memoire
a chaque acces, acces memoire proprement dit + lecture dudescripteur de la page virtuelle (plusieurs cycles memoirepeuvent etre utiles selon sa taille)
Amelioration possible basee sur la propriete de localite et leprincipe du cache applique a la table des page (pendant uneperiode assez longue, le programme va referencer un petitsous-ensemble de ses pages)
147 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Caches de traduction
Definition (Cache de traduction d’adresses)
Un cache de traduction d’adresses ou TLB (Translation LookasideBuffer) est une memoire cache materielle contenant lescorrespondances page virtuelle / page physique les plus utilisees
Remark
Un TLB est souvent un cache totalement associatif (petit nombrede correspondances stocke, de 8 a 64)
148 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Caches de traduction
Page table (memory)
update addresstranslation
Abstraction
Page table (memory)
update read
Translation cache
addresstranslation
update
Implementation
149 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Caches de traduction
Deroulement d’un acces a une page virtuelle pv :
1 Recherche dans le TLB. Si trouve, on obtient directement lenumero de la page physique associee pp
2 Sinon, recherche dans la table des pages pour trouver la pagephysique associee pp et stockage du couple (pv,pp) dans leTLB (a la place d’un autre couple si le TLB est plein)
150 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Caches de traduction
Translationcache (TLB)
Pagetablepv
prpv found
pv notfound
Memory management unit (MMU)
pv found
pv not foundpage fault
151 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Caches de traduction
Remark
Si le taux de succes dans le TLB est important, le surcoutintroduit par le mecanisme de pagination est imperceptible.
Example
Soit un systeme avec :
un temps d’acces a la memoire, hors pagination, de 100 ns
un temps d’acces au TLB de 5 ns
un descripteur de page virtuelle lu en un cycle memoire
un taux de succes du TLB de 90%
Le temps d’acces memoire moyen est de 5 + 0.1*100 + 100 =115ns, contre 200ns sans TLB
152 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Caches de traduction
Remarks
Comme certains acces ne passent plus par le descripteur depage virtuelle, si celui-ci comporte des informationssupplementaires (droits d’acces, bit de modification...) ellesdoivent egalement figurer dans le TLB et etre utilisees(verification de droits) et mises a jour (bits U et M) a chaqueacces
Quand une entree du TLB est remplacee, son contenu doitetre reporte en memoire dans le descripteur de page virtuelles’il est different (bits U/M)
153 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Caches de traduction et changements de contexte
En general, les processus possedent un espace d’adressagevirtuel prive
=⇒ deux processus differents peuvent utiliser la meme adressevirtuelle avec un contenu different
=⇒ mise a jour de la table de traduction courante lors d’unchangement de contexte
=⇒ contenu du TLB incorrect apres un changement de contexte
Solutions
Vidage du TLB lors des changements de contexteAjout d’un champ ASID (Address Space Identifier) dans leTLB pour eviter le vidage
154 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Architectures avec TLB uniquement
Le materiel de pagination offre uniquement un cache detraduction, les structures de donnees pour la fonction depagination etant alors entierement gerees par logiciel
Translationcache (TLB)pv
pr
Memory management unit
pv notfound
pv found
TLB fault(the pagemight be in main memory)
155 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Architectures avec TLB uniquement : MIPS R2000
Adresses virtuelles et physiques de 32 bits, pages de 512octets (4 Ko)
Le CPU contient un TLB de 64 entrees
Il n’y a pas de table de pages geree par le materiel
Table des pages geree par logiciel. Sur “defaut de TLB”,deroutement vers le systeme d’exploitation qui parcourt latable des pages pour savoir si c’est reellement un defaut depage, puis met a jour le TLB
156 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Memoires virtuelles et caches
Index et Tags : adresses virtuelles ou reelles ?
Tags : pas d’importance (bits de poids faible)
Index en adresse virtuelle
Interet : Recherche en cache en parallele avec traductiond’adresseInconvenient : Duplication en cache en cas de partage(probleme de coherence)
157 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Memoires virtuelles et caches
Index et Tags : adresses virtuelles ou reelles ?
Tags : pas d’importance (bits de poids faible)
Index en adresse virtuelle
Interet : Recherche en cache en parallele avec traductiond’adresseInconvenient : Duplication en cache en cas de partage(probleme de coherence)
158 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Phenomene d’ecroulement
Premiers systemes multiprogrammes : diminution brutale desperformances quand nombre d’usagers depasse un certainseuil : phenomene dit d’ecroulement (”thrashing”)
Le systeme passe tout son temps a traiter des defauts de pageplutot que d’executer les programmes utilisateurs
Proprietes des programmesOrigine(s) du phenomene d’ecroulementStrategies de controle de l’ecroulement
159 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Comportement des programmes
Caracteristiques communes independantes des programmes :
Non-uniformite des references aux pages : la frequence dereference aux pages varie d’une page a l’autre. Un petitepartie des pages du programme totalise la plus grande partiedes references (ordre de grandeur : 75% des referencesconcernent moins de 20% des pages).
Localite temporelle : pendant une periode d’execution, unprocessus utilise un sous ensemble reduit de ses pages. Cesous-ensemble est stable sur la periode consideree
=⇒ Phases de stabilite relativement longues, utilisant un sousensemble reduit de pages, separees par des phases detransition, pendant lesquelles le sous-ensemble des pagesutilisees change brusquement
160 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Comportement des programmes
Application Espresso, these S. Johnstone, 1997
161 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Comportement des programmes
Notion d’ensemble de travail
Definition (Ensemble de travail)
Un ensemble de travail (working set) a un instant t est l’ensembledes pages differentes referencees entre t − T et T . T represente lalargeur de la fenetre de calcul de l’ensemble de travail
162 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Comportement des programmes
Notion d’ensemble de travail
E(W(T))
Treferences
number of pages
Quand on augmente la taille de la fenetre de calcul (T), lenombre de pages differentes referencees croit rapidement puistend a se stabiliser 163 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Comportement des programmes
Notion d’ensemble de travail
Remark
Si T est bien choisi (assez grand pour correspondre a la partieasymptotique de la courbe), W(t,T) evolue en general lentement etest une bonne approximation des pages qui seront utilisees dans unfutur proche
164 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Origine du phenomene d’ecroulement
Mesure du temps moyen entre defauts en fonction de l’espacememoire disponible :
met
Number of allocatedpages
Mean delay betweenpage faults(nb. of references)
165 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Origine du phenomene d’ecroulement
Augmentation rapide jusqu’aun palier
Palier : espace memoiresuffisant pour logerl’ensemble de travail
Augmentation de l’espacememoire au dela de ce seuilest quasiment inutile met
Number of allocatedpages
Mean delay betweenpage faults(nb. of references)
166 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Origine du phenomene d’ecroulement
Augmentation du nombre de processus =⇒ diminution del’espace memoire disponible par processus
Si memoire disponible pour un processus passe en dessous deson met , alors l’intervalle entre deux defauts chutebrusquement
Consequences :
controleur disque sature, ce qui ralentit d’autant le traitementdes defauts de pagependant les E/S on execute les autres processus, mais euxmeme declenchent des defauts de page, etc.
167 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Origine du phenomene d’ecroulement
Calcul du taux de ralentissement de l’UC ρ du au mecanisme depagination :
Soient :
t le temps moyen d’execution d’une instructionp la probabilite d’un defaut de pageT le temps moyen de resolution d’un defaut de page(T >> t, facteur minimum de 10000)
ρ = tt+p.T
= 11+p.
Tt
Facteur ayant un impact important : p.Tt
=⇒ Pour que ρ soit le plus proche possible de 1, il faut que p soitle plus petit possible
=⇒ Il faut qu’un processus ait assez de place pour loger sonensemble de travail
168 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Origine du phenomene d’ecroulement
Taux de ralentissement de l’UC ρen fonction du degre demultiprogrammation :
Degre faible : pas assez deprocessus a executerpendant les defauts de page
Zone optimale
Ecroulement : pas assez dememoire pour loger lesensembles de travail
1
rho
Multiprogrammingdegree
trashingoptimalarea
169 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Origine du phenomene d’ecroulement
Remark
Pendant les defauts de page, grace a la multiprogrammation,on recupere une grande partie du temps d’E/S pour executerun autre processus
Peu d’impact sur les performances, sauf si cet autre processusfait egalement un defaut de page ...
170 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Solutions au phenomene d’ecroulement
Objectif : faire en sorte que chaque processus dispose d’assezde memoire pour y loger son ensemble de travail
Moyens :
Action sur l’espace memoire alloue a chaque processus et/ouAction sur le nombre de processus se partageant la memoire
171 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Action sur l’espace memoire
Remplacement local ou global
Pages sur lesquelles s’applique l’algorithme de remplacement depages :
Remplacement global : choix effectue sur l’ensemble des pagesphysiques, quel qu’en soient les processus proprietaires
risque d’accaparation de la memoire par un processus audetriment des autrescompetition peut empecher tous les processus de s’executerdans de bonnes conditions
Remplacement local : choix parmi les pages physiquespossedees par le processus faisant le defaut
=⇒ Necessite de controler la memoire disponible pour chaqueprocessus
172 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Action sur l’espace memoire
Remplacement local
Partition fixe : nombre de pages divise a priori entre lesprocessus ( =⇒ degre de multiprogrammation connu ouborne). Solution peu souple :
taille de l’espace de travail peut evoluer au cours du temps=⇒ un processus peut avoir trop de memoire a un moment,et pas assez ensuitemanque d’equite entre processus : on risque de brimer unprocessus qui est a l’etroit dans l’espace qui lui est affecte,alors qu’il y a peut etre assez de memoire par ailleurs
Partition variable : re-calcul periodique de la taille de l’espacememoire affecte a chaque processus
173 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Action sur l’espace memoire
Evaluation espace de travail
Directe
evaluation precise trop couteuseapproximation avec les bits U et une horloge
Indirecte : evaluation du taux de defaut de page par processusP
si taux < Dmin on enleve une page physique a Psi taux > Dmax on alloue une page physique supplementaire aP
174 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Controle de la charge par processus
Principe :
On tente de conserver pour chaque processus son ensemble detravail en memoire
Si on n’y arrive pas, c’est qu’il y a trop de processus =⇒ onrequisitionne toutes les pages physiques possedees par unprocessus (le moins prioritaire par exemple)
175 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Caches de traductionEcroulement du systeme
Regulation globale de la charge
Choix empirique d’un indicateur de fonctionnement dusysteme, permettant de savoir si on est dans la zone optimaleou la zone d’ecroulement
Exemples d’indicateurs : taux de defaut de page, temps moyenentre defauts de page, taux d’occupation du controleur disque
Mesure reguliere de cet indicateur
Ajustement du degre de multiprogrammation pour maintenirle facteur dans une fourchette acceptable (requisition de toutl’espace memoire d’un processus)
176 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
5 IntroductionRole du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
6 Mecanisme de paginationAdresse virtuelle et adresse physiqueFonction de pagination
7 Pagination a la demandePrincipeElements de mise en œuvreExemple : le systeme utilise en TP
8 Amelioration des performancesCaches de traductionEcroulement du systeme
9 Limitation de la consommation memoireInfluence de la taille des pagesFonctions de pagination adaptees
10 Gestion memoire et gestion du processeur 177 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Influence de la taille des pages
Impacts de l’augmentation de la taille des pages p sur laconsommation memoire du systeme :
Positifs
Diminition taille de la table des pages : a espace virtuel detaille egale, moins de pages)Diminution temps de transfert disque : amortissement dutemps de positionnement sur une piste
Negatifs
Fragmentation interne : espace perdu venant du fait qu’unprogramme de fait pas un nombre entier de pages. En moyennep/2 par region
178 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Influence de la taille des pages
Taille optimale pour limiter la consommation memoire :
Soient
p la taille d’une pagev la taille de l’espace virtueld la taille d’un descripteur de page virtuelle (la taille occuppeepar la table des pages est d . v
p)
on suppose une seule region par processus
Place totale perdue par processus : p2 + d . v
p
Quand p croit, cette fonction commence par croıtre puisdecroit
Taille optimum quand derivee nulle, a savoir p =√
2dv
179 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Influence de la taille des pages
Taille optimale pour limiter la consommation memoire :
Example
d = 8
Optimum atteint pour une taille de page entre 211 et 212
p place perdue %place perdue
256 16 512 3,1512 8448 1,61024 4608 0,82048 3072 0,64096 3062 0,68192 4608 0,8
180 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Influence de la taille des pages
Remarks
La place perdue reste limitee par rapport a une gestion parzone (une demi-page par region)
Le calcul precedent ne tient pas compte de l’amelioration destransferts disque avec des grosses pages
Taille typique des pages de 512 octets a 8Ko
181 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Limitation de la consommation memoire
par utilisation de fonctions de pagination adaptees
Constat : plus l’espace virtuel est grand, plus la table despages est grande
Example
(taille de DPV de 32 bits, espace virtuel de 32 bits)taille des pages taille table nombre pages(octets) des pages (octets) table des pages
512 225 (32 Mo) 216 (65 536)1024 224 (16 Mo) 214 (16 384)2048 223 (8 Mo) 212 (4 096)4096 222 (4 Mo) 210 (1 024)
182 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Limitation de la consommation memoire
par utilisation de fonctions de pagination adaptees
Table des pages d’un processus doit resider en memoirephysique (accedee par l’UGM)
Adressage claiseme (trous parmi les zones licites)
Si on a un espace virtuel par processus, il y a une table despages par processus
Conserver en memoire uniquement la table des pages duprocessus actif trop couteux (regarchement lors deschangements de contexte) =⇒ on laisse donc en memoirephysique les tables des pages des processus presents enmemoire
=⇒ Volume memoire occuppe par les tables est un reel probleme
183 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Limitation de la consommation memoire
par utilisation de fonctions de pagination adaptees
Solutions possibles
Tables des pages a plusieurs niveaux : decoupage des tables enun arbre de tables, on ne conserve en memoire que les niveauxutiles a un instant donneTable des pages inverse : on stocke les DPV dans la table despages reellePagination table des pages : possible, si recursivite bornee
184 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
Principe :
Decoupage de la table des pages en pages
On conserve en memoire uniquement les morceaux de tables(pages) utiles a un instant donne
Detection d’une page de la table des pages manquante :second niveau de pagination, permettant de savoir si elle estpresente, et si oui, a quelle adresse physique elle est implantee
185 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
0 1
0
of level 2
Page tables
Page tables
of level 1
page 0
page 1
Virtual memory
1
0
0
non resident
physical page
186 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
Entree dans la table de niveau 1 donne acces a une pagevirtuelle
Entree dans la table de niveau 2 : donne acces a un ensemblede pages virtuelles contigues (hyperpage, ou livre)
Revient a considerer que la memoire virtuelle est decoupee enhyperpages, elles memes decoupees en pages
Une adresse virtuelle peut etre interpretee comme un triplet(n hyperpage, n page, deplacement)
187 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
...
...
(0,0,0)
(0,1,0)
(0,2^10−1, 0)
(1,0,0)
(1,2^10−1,0)
Page 0 of
hyperpage 0
Page 1 of
Page 0 of
hyperpage 0
hyperpage 1
hyperpage 0
hyperpage 1
Virtualaddresses
188 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
Contenu table des hyperpages (table de niveau 2)
Chaque entree hp contient :
present (V) : bit indiquant si la table des pages de l’hyperpagehp est presente en memoire physique
adphys : l’adresse physique de debut de cette table des pagessi elle est presente
Remark
Cette table des hyperpages joue le meme role vis a vis de la tablede pages, que la table de pages vis a vis de la memoire
189 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
Interpretation d’une adresse virtuelle
hp pv d
hp
1
Page p of
hyperpage hp
d1
pv
Hyperpages table
Virtual address
Page table
of hyperpage hp
Address of hyperpages table
MMU register
190 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
Interpretation d’une adresse virtuelle (hp, pv, d)
bit de presence de l’entree hp de la table des hyperpages vaut0 : defaut d’hyperpage
bit de presence de l’entree pv de la table des pages del’hyperpage hp vaut 0 : defaut de page
191 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
Interpretation d’une adresse virtuelle (hp, pv, d)
0
2^10−1
1 120
...
1
0
1
0
0
01
25
26
2^10−1
...
...
0
10
11
2^10−1
10
65
...
...
0
2^12−1
Hyperpage table
Page table
page nb
hyperpage nb
physical page 120
physical page 65
d1
d2
192 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
Interpretation d’une adresse virtuelle (hp, pv, d)
Example
Exemple precedent, avec hyperpages de 210 pages et pages de 212
pages
acces a (0, 0, d1) : fournit l’adresse physique (120, d1)(emplacement bleu)
acces a (25, 10, d2) : fournit l’adresse physique (65,d2)(emplacement rose)
acces a (25, 11, d3) : provoque un defaut de page
acces a (26, 50, d4) : provoque un defaut d’hyperpage
193 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
Traitement d’un defaut d’hyperpage
1 Verification du caractere licite de l’adresse
2 Recherche d’une page physique libre pp pour la table despages manquante
3 Initialisation de cette table des pages.
En general, tous les bits de presence sont a faux. Il fauteventuellement transferer vers la page physique pp, l’imagedisque de la table des pages manquante.
4 Re-executer l’instruction, qui va probablement provoquer undefaut de page
194 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
Remarks
Le decoupage en hyperpage sert uniquement au mecanisme detraduction d’adresse. On a toujours un seul espaced’adressage : le dernier mot de l’hyperpage h est suivi dupremier mot de l’hyperpage h+1
On peut envisager d’avoir plus de 2 niveaux de pagination(exemple, 3 niveaux sur des stations SPARC)
195 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages a plusieurs niveaux
Volume occuppe par les tables
Remarks
Si on utilise tout l’espace virtuel, avec pages de 4Ko :
pagination a un niveau : 220 ∗ 22 = 222 octets de tables (4Mo)
pagination a deux niveaux : il faut en plus 212 octets (tabledes hyperpages), mais seuls ces 4 Ko doivent resider enpermanence en memoire physique, les autres sont soumis auva-et-vient
Si on n’utilise qu’une partie de l’espace virtuel :
la pagination a deux niveaux permet de ne decrirecompletement que la partie utile de cet espace (exemple :marqueur dans la table des hyperpages pour les zones illicites)
196 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages inverse
Volume des tables “directes” (lineaires, a plusieurs niveaux)proportionnelles a la taille des espaces virtuels adressables
Incompatible avec les architectures a grands espacesd’adressage (64 bits)
Table des pages inverse : on stocke les informations detraduction d’adresse dans la table des pages physiques
197 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages inverse
Structures de donnees pour une page physique p
identification de l’espace virtuel auquel elle appartient(numero de processus s’il y a un espace virtuel par processus),ou marqueur si page disponible
numero de la page virtuelle dans cet espace virtuel
Remark
Ces deux elements sont necessaires, car a un instant donne, onpeut avoir en memoire physique des pages appartenant a plusieursespace virtuels
198 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages inverse
Structures de donnees
Virtualpage number
Physicalpage number
0
100 20
0
20 Pi 100
Page table
of process Pi
System
inverted page table
Inverted page tableDirect page table
199 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages inverse
Traduction d’adresse
1 Cache de traduction2 Si absent, recherche dans la table des pages reelles d’une
entree (Pi,pv)
on ne travaille plus par indexationacceleration des acces : techniques de dispersion (hachage)Parcours listes par hardware ou software ?
3 Si absent de la table des pages en memoire, defaut de page,que l’on resout comme d’habitude (sauf identification desadresses disque)
200 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Tables des pages inverse
Traduction d’adresse
1 Cache de traduction2 Si absent, recherche dans la table des pages reelles d’une
entree (Pi,pv)
on ne travaille plus par indexationacceleration des acces : techniques de dispersion (hachage)Parcours listes par hardware ou software ?
3 Si absent de la table des pages en memoire, defaut de page,que l’on resout comme d’habitude (sauf identification desadresses disque)
201 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Influence de la taille des pagesFonctions de pagination adaptees
Fonctions de pagination
Tables des pages directes
a un seul niveau (lineaires)a plusieurs niveaux (hierarchiques)
Tables des pages inverses
Caches de traduction
Variations non etudiees
Pagination automatique des tables des pages en les mettantdans l’espace virtuel (superviseur)Utilisation conjointe avec le mecanisme de segmentation
202 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
5 IntroductionRole du sous-systeme de gestion de la memoireImplantation statique vs. reimplantation dynamique
6 Mecanisme de paginationAdresse virtuelle et adresse physiqueFonction de pagination
7 Pagination a la demandePrincipeElements de mise en œuvreExemple : le systeme utilise en TP
8 Amelioration des performancesCaches de traductionEcroulement du systeme
9 Limitation de la consommation memoireInfluence de la taille des pagesFonctions de pagination adaptees
10 Gestion memoire et gestion du processeur 203 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Gestion memoire et gestion du processeur
Premier semestre : notion de processus, gestion de processus(ordonnancement), synchronisation entre processus
=⇒ Les processus utilisent de la memoire =⇒ lien entre gestionde la memoire et gestion du processeur
Objectifs : examiner les liens entre gestion memoire et gestionprocesseur
Modele d’execution : lien entre unite d’execution (processus,thread) et espaces virtuelsEtats d’un processus vis a vis de la memoire
204 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Modele d’execution
Un processus par espace virtuel
Lien un a un entre unite d’execution et espace virtuel
On parle de processus lourd
Protection des processus les uns par rapports aux autres(acces memoire incorrects intentionnellement ou non)
Mise en œuvre
Registre contenant l’adresse de la table des pages courantesdans l’UGMSauvegarde de ce registre lors des changements de contexteVidage du TLB lors des changements de contexte (sauf bitASID)
=⇒ Changements de contexte plus longs que sans pagination.Rechargement TLB, registre de plus a sauvegarder
205 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Modele d’execution
Un processus par espace virtuel
Descr. of P1(active)
Descr. of P2(blocked)
MMU
Page table of P2
Page table of P1
Register(@ of page table)
206 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Modele d’execution
Plusieurs processus se partageant le meme espace virtuel
Deux notions differentes :Processus leger (thread)Tache : comprend un espace virtuel et un ensemble de thread
Pas de protection en threads de la meme tache, protectionentre threads de taches differentes ( =⇒ change les moyensde communication entre threads)Mise en œuvre
Pas de contexte memoire (registre de debut de table despages) dans un thread =⇒ changement de contexte entrethreads legerChangement de contexte entre threads de taches differentesplus lourd (sauvegarde/restauration du contexte memoire,vidage du TLB)
207 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Modele d’execution
Un espace virtuel pour tous les processus
Utilise dans les architectures a grands espaces d’adressage (64bits)
Jamais de changement d’espace virtuel =⇒ partage desobjets en memoire tres simple
En l’absence de segmentation, protection des objets enmemoire difficile a assurer
208 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Etats d’un processus
Cadre utilise : un processus par espace virtuel (processuslourds), mais transposables aux autres modeles d’execution
Sans pagination : implantation de l’ensemble de l’espacevirtuel du processus en memoire s’il y a de la place. Leswappeur fait le chargement quand c’est possible
Avec pagination a la demande : chargement/dechargementpage par page. Cependant, pour eviter l’ecroulement, onlimite le nombre de processus en memoire pour que chaqueprocessus puisse utiliser son ensemble de travail
=⇒ Plusieurs etats possibles d’un processus vis a vis de la memoire
209 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Etats d’un processus
resident en memoire, qui a suffisamment de memoire pourranger son ensemble de travail
non resident en memoire, qui n’ont pas du tout de memoirecar il n’est pas possible d’y loger leur ensemble de travail
210 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Etats d’un processus
En prenant en compte l’etat du processus vis a vis de l’UC et vis avis de la memoire, etats suivants :
actif : processus qui a l’UC (necessairement resident)
activable/resident : processus qui n’est pas bloque, et a quiest alloue de la memoire
activable/non resident : processus qui n’est pas bloque, maisqui ne possede pas de memoire
bloque/resident : processus qui ne peut pas logiquements’executer, mais dispose encore de memoire
bloque/non resident : processus qui ne peut pas logiquements’executer et ne dispose plus de memoire.
211 / 440
IntroductionPagination
Pagination a la demandeAmelioration des performances
Limitation de la consommation memoireGestion memoire et gestion du processeur
Etats d’un processus
Diagramme de transition possible entre etats
1 creation processus
2 allocation de memoire
3 perte de memoire
4 allocation de l’UC
5 perte de l’UC
6 blocage(synchronisation)
7 deblocage(synchronisation)
Active
resident
Non resident
Blocked
Blockednon resident
2 3
1 7
7
4
56
3
Ready
Ready
resident
212 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Troisieme partie III
Dynamic memory allocation
213 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Plan
11 Problemes a resoudre
12 Algorithmes d’allocation dynamique
13 Ramasse miettes
214 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Allocation dynamique de memoire
Objectif :
Demande de memoire supplementaire a l’executionTailles et durees d’utilisation des zones de memoirequelconques
Interface typique :
void *malloc(size t size) : demande d’une zone de memoire detaille size et retour de son adressevoid free(void *ptr) : liberation d’une zone de memoire alloueeau prealable (remarque : on ne passe pas la taille enparametre)
Domaines d’utilisation :
Systemes sans pagination : allocation de memoire reelleSystemes avec pagination : allocation de zones dans l’espaced’adressage virtuel d’un processus (on alloue l’espace a lademande) 215 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Allocation dynamique de memoire
Terminologie
Zone : suite d’emplacements memoire contigus, de taille nonfixee a priori
Zone caracterisee par son adresse de debut et sa taille
Zone libre (trou) : zone de memoire non allouee par le systeme
Zone occupee : partie de memoire allouee a un processus
216 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
11 Problemes a resoudre
12 Algorithmes d’allocation dynamiqueClasses d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
13 Ramasse miettes
217 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Problemes a resoudre
Distinction entre zones libres et zones occupees
=⇒ Structure de donnees adaptee
Allocation : parcours de la structure de donnees pour trouverune zone libre
Liberation : reintegration du bloc dans la structure de donnees
218 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Fragmentation
Fragmentation externe
Au fil des allocations/liberations, l’espace memoire estconstitue d’un melange de zones libres et occupeesFusion de trous adjacents en memoire lors de la liberationLa place prise par les zones libres peut etre perdue si les zoneslibres sont de trop petites taille
Fragmentation interne :
Taille allouee ≥ taille demandee (multiple d’une taille minimumde bloc Tmin, ou autres contraintes sur tailles de blocs)Motivation : limitation taille de structures de donneesConsequence : place perdue (taille allouee - taille demandee)
219 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Fragmentation
Internal fragmentation
External fragmentation
Requested size (random)
Allocation size (multiple of Tmin)
FreeareasOccupied (busy) areas
220 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Fragmentation
Free areas to be coalesced
Area A
Deallocation of area A
221 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
11 Problemes a resoudre
12 Algorithmes d’allocation dynamiqueClasses d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
13 Ramasse miettes
222 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Classes d’algorithmes d’allocation dynamique
Bitmap : table de bits (1 bit par bloc)
Sequential fits : structure de liste stockee dans les trous
Indexed fits : autre structure de donnees (e.g. arbre) stockeedans les trous
Buddy systems
Politiques hybrides : dependante de la taille de bloc demandee
223 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Bitmap
Allocation par multiple de bloc de taille fixee Tmin
Un bit par bloc (1 = bloc occupe, 0 = bloc libre)
Tmin
Bitmap
1111010110110000000
224 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Bitmap
Allocation
Arrondir la taille demandee au Tmin superieur =⇒ tailleallouee = n ∗ Tmin
Recherche de n blocs consecutifs a 0, puis mise a 1
Liberation
Verification dans la bitmap que la liberation correspond bien aune zone allouee (bits a 1)Mise des bits concernes a 0
225 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Bitmap
11110101001100000
11110101001100000
malloc(30), (Tmin = 16)
free(p);p11110101111100000
226 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Sequential fits
Chaınage des trous dans une liste
Memorisation de la structure de liste dans les trous
Libre
t2
t3t1 t2
t1 t3
Allocation : parcours de la liste des blocs libres
Liberation : insertion dans liste des blocs libres (+ fusion avecblocs adjacents si applicable)
227 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Sequential fits
Organisation de la liste :
Par adresse croissantes : facilite le regroupement des zones encas de liberation
Par taille croissante : facilite la recherche d’un bloc d’unetaille donnee
228 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Sequential fits : technique pour la fusion
Boundary tags : pour tout bloc (libre ou occupe)
Entete (header) et prologue (footer) contenant :
la taille du blocl’etat du bloc (libre - 0 - ou occupe - 1)
t2 1 t3 0 t3 0
t1 t2 t3
t1 0 t1 0 t2 1
229 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Sequential fits
Strategies courantes de recherche d’un bloc :
First fit : liste des trous triee par adresse, recherche dupremier trou de la liste de taille ≥ a la taille demandee
Next fit : variation du first fit ou on gere la file circulairementen repartant lors de la recherche de la derniere zone allouee
Best fit : on recherche la plus petite zone convenable(paradoxalement, mauvaise utilisation de la memoire due aune multiplicite de petits trous - residus)
230 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Indexed fits
Structure de donnees elaboree pour memoriser les blocs libres :
Arbre binaire equilibre permettant de trier les blocs par taille
Arbre cartesien trie a la fois selon la taille des trous et leuradresse
Stockee dans les trous eux memes
Segregated fits : structure de donnees et algorithmed’allocation different par taille de bloc
231 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Buddy systems
On n’alloue que certaines tailles de blocs
Binary buddy : puissances de deuxFibonacci buddy : taille membres d’une suite de Fibonacci
Chaque bloc a son bloc compagnon (buddy) adjacent qui estle seul bloc avec qui il peut etre fusionne en cas de liberation
Gros taux de fragmentation interne a cause des choix detailles de blocs
232 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Buddy systems
Tmin=2^min
2 Tmin
4 TminBuddies
8 Tmin = 2^max
233 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Buddy systems
Liste de trous de taille2i
Initialement, listes videssauf 2max
char *allouer(int T) {calcul de i tel que 2i−1 < T ≤ 2i
adr=trouver trou(2i) ;return (adr) ;
}
char *trouver trou ( 2i ) {if (i > max) return -1 ;if (liste(i) vide) {
ad=trouver trou(2i+1) ;if (ad != -1) {
diviser ce trou en 2 trous de taille 2i
placer ces 2 trous 2i dans la liste(i)} else return -1 ;
}adresse trou = extraire 1er trou liste(i) ;retour adresse trou ;
}
234 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Classes d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
Questions de cours
Buddy systems :
Initialement, la memoire consiste en un bloc de 256K
Representer l’etat d’occupation de la memoire apres lesallocations memoire suivantes : A (5K), B(25K), C(35K), etD(20K) puis les liberations dans l’ordre A, D, C, et B
Fragmentation externe :
Peut-on regrouper les trous d’une memoire fragmentee, et sioui, sous quelle condition ?
En supposant les informations de gestion accessibles, que sepasse t’il en cas de : double liberation ? utilisation apresliberation ? Ecrasement des informations de gestion ?
235 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
11 Problemes a resoudre
12 Algorithmes d’allocation dynamiqueClasses d’algorithmes d’allocation dynamiqueBitmapSequential fitsIndexed fitsBuddy systems
13 Ramasse miettes
236 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Ramasse miettes
Danger de la liberation manuelle de memoire (free)
Oubli de liberation
Double liberation
Utilisation d’une zone apres liberation
=⇒ Liberation automatique de la memoire (Ramasse-miettes,Garbage Collection)
237 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Ramasse miettes
Objet racine : utile par definition (ex : pile)
Objets utiles : accessibles directement ou indirectement apartir de l’objet racine via une chaıne de references
Remark
Necessite de distinguer les references des donnees simples dans lesobjets
238 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Comptage de references (Reference Counting)
Compteur de references par objet
Ajout d’une reference : incrementation du compteurRetrait d’une reference : decrementation du compteurDestruction de l’objet quand son compteur de referencesatteint 0
Utilise dans les SGF pour la destruction des fichiers (lienssymboliques)
239 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Comptage de references (Reference Counting)
Remark
Ne libere pas les structures cycliques
1
1
1
12
1
1
1
240 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Marquage et balayage (mark and sweep)
Marquage
Marquage des objets racinesMarquage de tout objet non marque reference par un objetmarque(Parcours du graphe des references)
Balayage : liberation de la memoire de tout objet non marque
241 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Marquage et balayage (mark and sweep)
242 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Marquage et balayage (mark and sweep)
243 / 440
Problemes a resoudreAlgorithmes d’allocation dynamique
Ramasse miettes
Que se produit t’il si le ramasse-miette s’execute en paralleleavec l’application ?
Proposez une solution au probleme
244 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Quatrieme partie IV
Linking and sharing of memory objects
245 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Plan
14 Partage d’objets
15 Rappels sur la liaison des objets en memoire
16 Edition de liens dynamique
17 Espace virtuel segmente
246 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
14 Partage d’objetsDefinitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
15 Rappels sur la liaison des objets en memoireMoment de la liaisonAdressage et liaison dans le 8086
16 Edition de liens dynamiqueEdition de liens au chargementEdition de liens au premier acces
17 Espace virtuel segmenteSegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
247 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Definitions
Definition (Partager)
Sens commun : “Posseder avec d’autres”, “mettre encommun” (petit Larousse)
Sens informatique : ne pas dupliquer de l’information utile aplusieurs processus (disque, memoire)
248 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Motivations
Interfaces utilisateur (graphique, son, bibliothequesd’execution de langages)
=⇒ Mise du code dans des bibliotheques volumineuses
=⇒ Integration des bibliotheques dans les executables (disque) demoins en moins raisonnable
Code executable potentiellement partage entre plusieursprocessus
=⇒ Duplication de ce code en memoire inutile
249 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Objets partages
Modules (typiquement bibliotheques)
Objets (au sens de la programmation a objets)
250 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Modules
Procedures
Variables locales
duree de vie de laprocedure1 copie par appel en cours
Parametres formels
Variables globales
duree de vie ≥ procedureen general, en un seulexemplaire
Objets externes : definis al’exterieur du module
Module M1;
...
procedure p3 ;
...
var int g1,g2; // globals
procedure p1 (int x) : external;
procedure p2 (int y);var int u,v;begin
end
var int w;begin
end
251 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Proprietes attendues d’un mecanisme de partage
Connaissance de l’interface du module uniquement
Pas de connaissance :
de la mise en œuvre du module (variables et proceduresinternes, utilisation d’autres modules)de son utilisation par d’autres processus (adressed’implantation)
=⇒ Nommage du module dans un environnement de designationillimite
252 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Cadre
Processus dotes d’espaces virtuels lineaires pagines
Espaces d’adressages prives (une table des pages parprocessus)
Objet a partager : objet O forme de pages contigues (region)
Region de codeBibliotheque
253 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Implantation de O dans les espaces virtuels des processus lepartageant
Les adresses d’implantation peuvent etre differentes
Les contenus des tables de pages doivent etre identiques
Physical memoryVirtual address space of P1
av1
av1
Virtual address space of P2
av2
av2
254 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Mise en œuvre (table des pages lineaires)
50
4
101112
151617
1 50 add00 add11 4 add2
1 50 add00 add11 4 add2
av2
av2 = (15,0)av1
av1 = (10,0)Page table of P1 Page table of P2
Virtual address space of P2Virtual address space of P1
Physical memory
255 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Mise en œuvre (table des pages lineaires)
Remarks
Objets a partager ont une taille multiple de la taille d’une page
Adresse(s) de l’objet partage sur une frontiere de page
Deux DPV referencent la meme page reelle
Impact sur l’algorithme de remplacement de pageDuplication inutile de l’information information contenue dansles DPV ( =⇒ partage des DPV ?)
256 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Mise en œuvre (table des pages hierarchiques)
Principe :
Partage non seulement des pages en memoire, mais des DPVles decrivant
Mise en œuvre :
Table des hyperpages (livres) privee a chaque processus
Pour la region partagee, pages des tables des pages partageespar les processus se partageant l’objet
257 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Mise en œuvre (table des pages hierarchiques)
Book table of P2
1 7
1 7
Book table of P1
Physical memory
50
4
(private) (private)
15
4
av1
av1 = (4,10,0)
av2
av2 = (15,10,0)
Virtual address space of P1 Virtual address space of P2
101112
1 50 add00 add11 4 add2
Page table (shared)
258 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Mise en œuvre (table des pages hierarchiques)
Remarks
Adresses des objets a partager sur des frontieres d’hyperpages(livres)
Un seul DPV par page reelle
=⇒ Pas d’impact sur l’algorithme de remplacement de page
259 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Partage d’un objet contenant une reference
Si O est partage, la reference a O ′ l’est egalement=⇒ La reference doit pouvoir etre interpretee correctement par
tous les processus utilisant O
Physical memoryVirtual address space of P1
av1
av1
Virtual address space of P2
av2
av2
ref O’
ref O’
ref O’
Cas a considerer :
Reference a O ′ est une adresse virtuelle directement utiliseepar le mecanisme de pagination (adressage direct)Reference a O ′ utilise un adressage calcule qui ne fourniral’adresse virtuelle finale qu’a l’execution (ex : adressage base)
260 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Partage d’un objet contenant une reference
Adressage direct pour references entre objets :
Physical memory
Virtual address space of P1 Virtual address space of P2
av1
O’
av2
1 44
ref O’= (10,0)
10 10
44
ref O’= (10,0)
ref O’= (10,0)
Page table of P1 Page table of P2
1 44
261 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Partage d’un objet contenant une reference
Adressage direct pour references entre objets :
Interpretation correcte =⇒ O ′ doit etre a la meme adressevirtuelle dans tous les processus
=⇒ Partage non modulaire : le partage de l’objet O necessite deconnaıtre les objets utilises par O
=⇒ Provient du fait que les objets sont designes dans un espace dedesignation limite
N’est pas un mecanisme de partage general
Utilisable dans des cas particuliers : partage de code entreprocessus executant le meme code
262 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Partage d’un objet contenant une reference
Adressage calcule pour references entre objets :
Virtual address space of P1 Virtual address space of P2
Physical memory
44
ref O’= (B,0)
ref O’= (B,0)
(20,0)
(16,0)
(2,0)
(2,0) (16,0)
1 44
1 7
1 44
1 7 16
20
2
15
B for P1 (O’) B for P1 (O’)
(15,0)ref O’= (B,0)
Page table of P2Page table of P1
263 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Definitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
Mecanisme de partage
Partage d’un objet contenant une reference
Adressage calcule pour references entre objets :
Pas d’adresses virtuelles dans le code des programmes =⇒pas de contrainte sur le placement des objets partages
Contenu du registre de base different par processus separtageant l’objet
Partage modulaire, si registre de base different par objetpartage (environnement de designation illimite)
264 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Moment de la liaisonAdressage et liaison dans le 8086
14 Partage d’objetsDefinitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
15 Rappels sur la liaison des objets en memoireMoment de la liaisonAdressage et liaison dans le 8086
16 Edition de liens dynamiqueEdition de liens au chargementEdition de liens au premier acces
17 Espace virtuel segmenteSegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
265 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Moment de la liaisonAdressage et liaison dans le 8086
Rappels sur la liaison
Objets logiques (variables, procedures, fichiers)
Objets physiques (valeurs, emplacements memoire)
Liaison : passage du
nom de l’objet logique (identificateur de variable, procedure)a sa representation concrete, au moins les noms des objetsphysiques supportant cette representation.
Remark
Dans le cas de systemes a pagination, on considerera uniquementle passage identificateur → adresse virtuelle, le passage de l’adressevirtuelle a l’adresse physique etant pris en charge par le mecanismede pagination.
266 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Moment de la liaisonAdressage et liaison dans le 8086
Rappels sur la liaison
Logiciels contribuant a la liaison (vus en licence) :
Traducteur (compilateur ou assembleur).
Traduction de code source en code machineTraduction des identificateurs d’objets dans une representationinterne (ex : deplacement par rapport a la zone adequate dumodule + table des symboles)
Editeur de liens : regroupement du code et des donnees deplusieurs modules en resolvant les references externes
Chargeur : initialisation de la machine (processeur +memoire) pour que le programme puisse etre execute
267 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Moment de la liaisonAdressage et liaison dans le 8086
Moment de la liaison
(Instant ou les identificateurs sont associes a des adresses)
A l’ecriture du programme. Nom des objets physiques dans letexte source (generalement assembleur)A l’edition de liens. L’adresse d’implantation des programmesest fixee par l’editeur de liens et pas par le chargeur
Systemes a pagination : l’adresse d’implantation est uneadresse virtuelle =⇒ permet la reimplantation dynamiqueSystemes a adressage reel : l’adresse d’implantation est uneadresse reelle =⇒ la reimplantation dynamique est difficile
Au chargement : l’adresse d’implantation est fixee auchargement pas ne change pas pendant l’execution
A l’execution (liaison dynamique) : les adresses sont fixees al’execution, le programme ne contient plus aucune adresse etpeut donc toujours etre deplace en cours d’execution
268 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Moment de la liaisonAdressage et liaison dans le 8086
Moment de la liaison
Remarks
Plus la liaison est tardive, meilleure sera l’adaptation duprogramme a une evolution de son environnement d’execution
Plus la liaison est tardive, plus les informations necessaires ala liaison devront etre conservees longtemps
269 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Moment de la liaisonAdressage et liaison dans le 8086
Moment de la liaison
Edition de liens statique : tous les identificateurs ont etetraduits avant execution (meme si la liaison n’est pas tout afait terminee)
Edition de liens dynamique : il reste des identificateurs dereferences externes non resolus au debut de l’execution
270 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Moment de la liaisonAdressage et liaison dans le 8086
Edition de liens statique
Tous les identificateurs ont ete transformes en adresses avantexecution
main () {
}
f1(); // Function of B f2(); // Function of B
20020
10000
20000call 20020
call 20000 Program code
Library B
code of f1code of f2
271 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Moment de la liaisonAdressage et liaison dans le 8086
Mecanismes d’adressage du 8086
Espace virtuel constitue de quatre zones (code, donnees, pile,extra)
Registre de base associes (CS, DS, SS, ES)
Les mecanismes d’adressage logique (indirection,indexation,...) produisent une adresse relative (adresse relativefinale)
Seul le registre de base contient une adresse physique qui estajoutee a l’adresse relative finale pour produire l’adressephysique
272 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Moment de la liaisonAdressage et liaison dans le 8086
Mecanismes d’adressage du 8086
InstructionLogical
addressing schemesFinal relatove address
Base register
Physicaladdressing schemesbase physical address
Physical address =final relative address +base physical address
273 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Moment de la liaisonAdressage et liaison dans le 8086
Liaison dans le 8086
Liaison dynamique : l’adresse finale de l’operande est calculeependant l’execution
Editions de liens (telle que vue en licence) statique : lecompilateur, puis l’editeur de liens, traduit tous lesidentificateurs en adresses relatives dans les differentssegments (CS, DS)
274 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
14 Partage d’objetsDefinitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
15 Rappels sur la liaison des objets en memoireMoment de la liaisonAdressage et liaison dans le 8086
16 Edition de liens dynamiqueEdition de liens au chargementEdition de liens au premier acces
17 Espace virtuel segmenteSegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
275 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Motivations pour l’edition de liens dynamique
Limites de l’edition de liens statique dans un environnement avecpartage :
Liaisons inutiles quand des objets sont lies et non utilises(appels conditionnels)
Gestion des evolutions difficile (versions, corrections de bugs).Necessite de refaire l’edition de liens pour beneficier d’unenouvelle version
Consommation d’espace disque et memoire inutiles pour lescopies des objets lies
276 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Edition de liens dynamique
Instants possibles de la liaison :
Au chargement du module contenant une reference externe,ou
A la premiere reference a un objet externe
Remark
Edition de liens dynamique va de pair avec partage desbibliotheques =⇒ les bibliotheques partagees doivent etrereentrantes
Edition de liens dynamique =⇒ les symboles non resolusdoivent etre conserves plus longtemps qu’avec une edition deliens statique
Resolution des liens inconnus plus tardive ...
277 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Edition de liens au chargement
Principe :
Edition de liens statique avec une bibliotheque amorce quicontient un element par fonction non resolue
Initialisation de cette table au chargement du programmeutilisant la bibliotheque
Exemple : DLL (Dynamic Link Library) de Windows NT
278 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Edition de liens au chargement
Production d’une DLL :
pident @dans dll
Code of p
pqr
p() { ...}
...}
q() {
B.c
B.lib
B.dll(library code)
(library stub)
Names ofexported objects
Compiler+ linker
279 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Edition de liens au chargement
Production d’une programme utilisant une DLL :
extern p();
main() {
... p(); ...
}
user.c
B.lib
pqr B.dll p /
dll ident @
call indir
(library stub)user.exe
Import table(indirect)
Executable codeof program
Compiler+ linker
=⇒ pas d’incorporation de la bibliotheque au programmeexecutable
280 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Edition de liens au chargement
Liaison (au chargement du programme) :
Implantation de la bibliotheque dans l’espace d’adressage duprocessus (reservation table des pages)
“Chargement” bibliotheque si c’est le premier processus al’utiliser
Chargement partie residenteInitialisation table des pages pour partie paginee
Remplissage de la table d’importation avec les informations dufichier DLL
281 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Edition de liens au chargement
Remarks
Liaison des bibliotheques meme si elles ne sont pas utiliseespendant l’execution
Solution dans Windows NT : liaison explicite des bibliotheques
pas de liaison statique avec la bibliotheque amorce, ni tabled’indirectionfonctions systeme LoadLibrary, GetProcAddress, FreeLibraryeffort de programmation
Fonctions appelees au chargement et dechargement desbibliotheques
282 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Edition de liens au premier acces
Principe :
Edition de liens statique avec une bibliotheque amorce quicontient un element par fonction non resolue
Chaque reference externe provoque une exception pour defautde lien (defaut de page, deroutement vers le superviseur)
Resolution du defaut de liens dans la routine de traitement decette exception :
Chargement de la bibliotheque si necessaireRemplacement du code declenchant l’exception par un coded’appel
Exemples : Multics, Sun-OS
283 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Edition de liens au premier acces
Avant appel d’une fonction de la bibliotheque :
stubLibrary
call indir
"bib" "fn"
Executable codeof program
MARKER
284 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
Edition de liens au chargementEdition de liens au premier acces
Edition de liens au premier acces
Apres appel et (eventuel) chargement de la bibliotheque :
Loaded
stub
library
Library
call indir
"bib" "fn"jmp fn
Executable codeof program
Code of fn
285 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
14 Partage d’objetsDefinitions et motivationsProprietes attendues d’un mecanisme de partagePartage dans un espace pagine
15 Rappels sur la liaison des objets en memoireMoment de la liaisonAdressage et liaison dans le 8086
16 Edition de liens dynamiqueEdition de liens au chargementEdition de liens au premier acces
17 Espace virtuel segmenteSegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
286 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Segmentation
Variation de d’adressage par registre de base
Segment = unite de structuration, partage et protection del’information
Adresse segmentee = couple (nom segment,deplacement)
Descripteur de segment : contient les informations de taille,protection, et l’adresse d’implantation du segment
Tentative d’acces invalide (droits, longueur) =⇒deroutement vers le systeme d’exploitation
287 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Segmentation
s
Segment number
logical address
d
offset in segment
size right address
segment sSegment descriptor
d
Table of segment descriptors
288 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Segmentation
Remark
Un segment constitue un espace d’adressage independant del’espace d’adressage des autres segments
Pas de rapport entre le dernier emplacement du segment i etle premier emplacement du segment i + 1
289 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Organisation de la table des segments
Objectifs :
Partager les segments =⇒ ne pas dupliquer l’informationcommune (taille, adresse d’implantation)
Permettre d’exprimer des droits d’acces differents selon lesprocessus
Organisations possibles :
Table unique
Tables multiples
Organisation mixte
290 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Organisation de la table des segments
Table unique
Environnement de designation universel
Nom de segment = nom unique, identique pour tous lesutilisateurs
Descripteur de segment unique =⇒ memes droits d’accespour tous les utilisateurs
Segment partage =⇒ meme adresse virtuelle dans lesprocessus le partageant
291 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Organisation de la table des segments
Table unique
dr lg addressi
j
Segment i
Segment j
Segment table
Glibalname
292 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Organisation de la table des segments
Tables multiples
Plusieurs environnement de designation (en general, un parprocessus)
Nom de segment = nom local a l’environnement dedesignation
Segment partage peut etre vu a deux adresses virtuellesdifferentes
293 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Organisation de la table des segments
Tables multiples
Segment i
Segment j
Env. A Env. B
s2
dr2 lg address
Segment table
s1
dr1 lg address
Segment table
294 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Organisation de la table des segments
Organisations mixtes
Informations independantes de l’environnement (longueur,adresse) dans un descripteur central unique
Une table par environnement donnant les caracteristiquespropres a l’environnement (droits d’acces)
295 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Organisation de la table des segments
Organisations mixtes
Segment i
Segment j
Env. B
Env. A
s1
s2
dr1
dr2
lg
Local segment table
Local segment table
Global (central)segment table
296 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Segmentation dans Multics
Developpe entre 1965 et 1970 au MIT
Materiel specifique (GE645)
Grand systeme temps-partage, organiser pour faciliter lepartage d’informations entre utilisateurs
Toute l’information est structuree en segments, a prioripartageables par tous les usagers
297 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Designation des segments
Descriptif par processus : table des descripteurs de segmentsutilises
Descripteur contient (entre autres) l’adresse (virtuelle) dedebut du segment
Adresse segmentee = (num segment,deplacement)
Nom de segment local au processus
298 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Designation des segments
s2
Process P2 Descriptor
b−descr
d
s1b−descr
Segment
Process P1 Descriptor
299 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Acces aux objets
Registres de base : contiennent une adresse segmentee
Adressage base ou indirect
Adresse dans Contenu du Adresse segmenteeinstruction registre de base finale
(RB,dep) (s,d) (s,d+dep)*(RB,dep) (s,d) contenu mot d’@ (s,d+dep)
Objets manipules par un module regroupes dans troissegments : procedure, pile, liaison
Registres de base : b descr, b proc, b liaison, b pile, b param
300 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Externes et edition de liens
Utilisation d’un objet externe : adressage indirect dans lesegment de liaison
Initialement, marque non lie dans le segment de liaison =⇒deroutement pour defaut de liaison
Edition de liens dynamique, au premier acces
301 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Segmentation et pagination
Pagination : facilite l’implantation des programmes enmemoire physique d’un espace virtuel lineaire
Segmentation : offre a l’utilisateur un espace virtuel composede plusieurs espaces lineaires independants (resout lesproblemes de partage, protection, gestion des donnees de taillevariable)
=⇒ Ces mecanismes sont complementaires et peuvent etre utilisesde maniere conjointe
Manieres de combiner segmentation et pagination :
Paginer chaque segment (exemple : Multics)Implantation des segments dans un grand espace lineaire, quel’on pagine ensuite
302 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Paginer les segments
Principe :
Chaque segment est un espace lineaire que l’on pagine
Une table des pages (ou hierarchie de tables) par segment
Descripteur de segment contient (hors taille + droits)l’adresse physique de la table des pages du segment
Adresse virtuelle = (nom segment, deplacement segment)
deplacement segment interprete comme un couple(numero page, deplacement page)
303 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Paginer les segments
Exemple de Multics :
addressVirtual
dp
Page pof segment s
dp
ps
b−descr
num_segment
s p
Descriptor
1 pr
Page tableof segment s
page number offset in page
offset in segment
304 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Paginer les segments
Remarks
Force chaque segment a avoir sa propre table des pages(inefficace pour les petits segments)
La segmentation rend l’allocation de la table des pages pourla taille adressable maximale d’un segment inutile
Une adresse de numero de segment s ne permet d’accederqu’a s =⇒ bien que l’on ait deux niveaux de tables, il nes’agit pas d’une pagination a deux niveaux
Partage d’un segment possible en partageant sa table despages
305 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Paginer les segments
Partage de segment dans Multics :
1
@ (s2,p,dp)@ (s1,p,dp)
Process P2Process P1
b−descr
Descriptor
s1pb−descr
Descriptor
s2
Pages
of segment
dp
1 pr
Page table
p
of segment
306 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Paginer l’espace ou sont implantes les segments
Principe :
Implantation des segments dans un espace lineaire
Pagination de cet espace lineaire
307 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Paginer l’espace ou sont implantes les segments
num. segment
ds
Virtual address
offset in segment
s
lg
Table ofsegmentdescriptors
lg
b
0
b
b+d
Linear spacesubject to paging
308 / 440
Partage d’objetsRappels sur la liaison des objets en memoire
Edition de liens dynamiqueEspace virtuel segmente
SegmentOrganisation de la table des segmentsExemple : MulticsSegmentation et pagination
Paginer l’espace ou sont implantes les segments
Remarks
Il faut resoudre le probleme d’implantation d’un segment dansl’espace lineaire (cf. gestion memoire par zones)
Plus de table des pages par segment
Deux segments differents peuvent etre situes dans la memepage et se partagent alors le meme DPV =⇒ interessant sion a beaucoup de petits segments
309 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Cinquieme partie V
File systems
310 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Plan
18 Rappels sur les SGF
19 Le partage des fichiers
20 Exemple : le SGF d’UNIX
21 Pagination et gestion de fichiers
311 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
18 Rappels sur les SGFGestion de l’espace disqueMise en œuvre des accesDesignation et liaison
19 Le partage des fichiersControle des acces simultanesProtection
20 Exemple : le SGF d’UNIX
21 Pagination et gestion de fichiers
312 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Systeme de gestion de fichiers (SGF)
Gestion et acces a des informations stockees en dehors de lamemoire centrale
Supports assurant la persistance de l’information
313 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Fichier
Definition (Fichier)
“Reservoir” d’informations stockees sur un support destockage permanent
Roles :
stockage permanent : conservation d’informations sur unelongue dureecommunication : echange d’informations entre usagers ouentre programmes
314 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Fichier
Statistiques d’utilisation des fichiers (tires de File System usage inWindows NT 4.0, Operating System Review, vol. 33, n. 5,decembre 1999 ) :
60% des acces sont sequentiels
40% des operations d’E/S concernent des fichiers de moins de2K
80% des fichiers crees sont supprimes dans les 4 secondessuivant leur creation
74% des ouvertures de fichiers concernent des controles oudes operations sur les repertoires
=⇒ Le role de communication des fichiers est important
315 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Systeme de gestion de fichiers (SGF)
Interface :
Creation, destruction
Ouverture ou fermeture (session de travail sur le fichier)
Positionnement dans le fichier
Lecture et ecriture
Gestion des repertoires et des droits d’acces
Interface systeme + bibliotheque des langages (ex : E/Stamponnees dans la bibliotheque standard C)
316 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Systeme de gestion de fichiers (SGF)
Problemes a resoudre :
Gestion de l’espace disque (allocation des blocs sur disque a lacreation ou a l’allongement)
Gestion des acces au contenu
Gestion de l’ensemble des fichiers (nommage et hierarchie defichiers, controle d’acces)
317 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Gestion de l’espace disque
Unite d’allocation (bloc ou granule) : suite de secteursconsecutifs de la meme piste. Bloc = plus petite uniteallouable
Crieres de choix de la taille d’un bloc :
performances de l’allocation de bloc (temps d’allocation, taillede la structure representant l’etat du disque)fragmentation interneperformance des acces disque
318 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Gestion de l’espace disque
Example
Pistes de 128 Ko, rotation en 8 ms, positionnement bras en 10 ms,fichiers de la taille moyenne 1 Ko
0
100
200
300
400
500
600
128 256 512 1024 2048 4096 8192
Taille de bloc (octets)
Tau
x d
e tr
ansf
ert
(Kb
/s)
0%
20%
40%
60%
80%
100%
120%
uti
lisat
ion
du
dis
qu
e (%
)
Débit (Kb/sec)
Utilisation (pourcents)
319 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Gestion de l’espace disque
Structures de donnees pour reperer les blocs libres :(a) Liste de blocs libres
17
4213621097416321
4818
230162612342214150664
482
86234897442160126141
... ...
Block 16 Block 17 Block 18
(b) Bitmap
1011010101010111
0000101110110111
1011010101110111
0010011011010101
1110110101010111
1111110101110101
1111101101110101
...
1110111010110111
320 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Gestion de l’espace disque
Allocation des fichiers sur disque :
Allocation contigue : blocs consecutifs de la meme piste et/oupistes adjacentes
diminution des nombres de mouvements du brasstructure d’implantation d’un fichier simple (@debut + taille)difficulte d’allocation de l’espace disque (idem gestion dememoire par zones de taille quelconque)
Allocation non contigue : blocs disque repartis sans contrainte
allocation de l’espace disque simple (zones de taille fixe)description de l’implantation d’un fichier sur disque est pluscomplexerisque d’avoir plus de mouvements du bras
=⇒ defragmentation (probleme d’adressage ?)
321 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Gestion de l’espace disque
Example (La FAT – File Allocation Table – MS-DOS)
Table unique contenant : les blocs disque libres + les listesdes blocs disque des fichiers
Concu a l’origine pour les disquettes de 320K, passe mal al’echelle (ne peut plus etre stockee integralement en memoire)
322 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Gestion de l’espace disque
Example (La FAT – File Allocation Table – MS-DOS)
6 8 4 2
5 9 12
10 3 13
FREE : free blockEOF : last block of a fileBAD : bad blockOther : number of next block in file
File A
File B
File C
EOF13298
FREE4
123
FREEEOF
0
123456
78910111213
14BAD
FREEEOF
15
Disksize
323 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Gestion de l’espace disque
Example (Un Inode – Unix)
file type
uid of owner
gid of owner
Size (bytes)
Time created
Time last accessed
Time last modified
Number of
Single indirect
Double indirect
Triple indirecy
12 first blocks
128bytes
i−node
number of links to file
324 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Gestion de l’espace disque
Example (Un Inode – Unix)
En supposant des blocs de 1Ko, un disque de 100 Go, des numerosde blocs sur 32 bits.
Quelle est la taille maximale d’un fichier ?
En supposant l’i-node charge en memoire, combien aumaximum d’acces disque sont necessaires pour retrouver lenumero de bloc disque d’un emplacement dans un fichier ?
Reprendre les questions en utilisant une FAT
325 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Mise en œuvre des acces
Structuration logique des informations (suite de caracteres, destructures, etc)
Fonctions d’acces logiques : acces direct, acces sequentiel,acces indexe
Entrees/sorties physiques : par blocs de taille fixe
Un des roles du SGF : mettre en œuvre les E/S logiques enutilisant les E/S physiques
326 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Mise en œuvre des acces
Structures de donnees
Table d’implantation du fichier : informations de mise enœuvre du fichier (taille, organisation logique)
Informations permanentesChargees en memoire a l’ouverture pour accelerer l’acces aufichierExemple : inode Unix, FAT MS-DOS
Bloc de controle d’entree/sortie (descripteur, file handle) :informations liees par les acces en cours (prochain article a lirepour les fichiers a acces sequentiel, tampons d’entree/sortie)
Duree de vie = duree d’ouverture d’un fichierEn general, une copie par processus ayant ouvert le fichier
327 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Mise en œuvre des acces
Cache disque
Unite de transfert = bloc
Gere entierement par logiciel
block readblock write
loadupdate
Disk
Disk cache (RAM)
328 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Mise en œuvre des acces
Cache disque
Remark
Tout acces logique n’implique pas un acces physique
Permet les politiques de prechargement en cas d’accessequentiel
329 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Mise en œuvre des acces
Cache disque
Representation de l’etat du cache : table inverse (blocspresents dans le cache uniquement)Politique de recopie
recopie immediate : E/S physiques inutiles, mais disquetoujours a jourrecopie retardee : moins d’E/S physiques, mais disque n’estpas toujours a jour ( =⇒ problemes en cas de defaillance,d’utilisation de fichiers pour communiquer)compromis : recopies periodiques, fonctions de vidage (sync)strategie depend du type de bloc a recopier (repertoire pluscritique que fichier)
Politique de remplacement : taille du cache disque +espacement des acces =⇒ on peut envisager une politiqueLRU
330 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Designation
Proprietes des noms :
Duree de vie : permanent ou temporaire
Portee : globale ou locale
Nature de l’utilisation : utilisateur ou systeme
331 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Designation
Types de noms utilises dans un SGF :
Nom externe : nom donne par l’utilisateur (permanent, global,utilisateur)
Nom interne : nom utilise par le systeme pour designerl’ensemble des informations du fichier (permanent, global,systeme)
Nom logique : nom utilise par l’utilisateur pour designer lefichier ouvert (temporaire, local, utilisateur)
Nom local : identification systeme du bloc de controled’entree/sortie (temporaire, local, systeme)
332 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Designation
Types de noms utilises dans un SGF :
Nom global Nom local
permanent temporaire
Utilisateur Nom externe Nom logique
Systeme Nom interne Nom local
333 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Designation
Example (Exemple d’Unix)
Noms et liaison des noms dans Unix
{main ()
FILE *f;
fread(buf,1,10,f);
fclose(f);}
f = fopen("/udd/puaut/toto","r");
inode
inode
Logical name
External name
Local name
Internal name
User program System
descriptor
(1 per open file)
334 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Liaison
Liaison (Nom externe, Nom interne)
etablie a la creation du fichierpassage Nom externe → Nom interne se fait grace auxrepertoires
Liaison (Nom externe, Nom logique) : etablie a l’execution(ouverture du fichier)
Liaison (Nom local, Nom interne) : etablie a l’execution(ouverture du fichier), par chaınage dans le descripteur defichier
335 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Liaison
Allocation table
Internal name(ex: inode number)(ex: "/udd/puaut/toto")
Fichier(Disk block numbers)
External name
(ex: inode in Unix)
336 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Liaison
inode
inode
(ex: f) (ex: inode)
{main ()
FILE *f;
fread(buf,1,10,f);
fclose(f);}
f = fopen("/udd/puaut/toto","r");
User program System
Logical name
External name
Local name
Internal name
FileFile allocation table
(Disk block numbers)(ex: inode number)
Internal name
descriptor
(1 per open file)
DescriptorLocal name
(I/O control block)
337 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Gestion de l’espace disqueMise en œuvre des accesDesignation et liaison
Structure des noms externes
Repertoires
Structure arborescente ou graphe sans cycles (liens)
Chemins absolus ou relatifs
Regles de recherche
Voir chapitre 1 du cours
338 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
18 Rappels sur les SGFGestion de l’espace disqueMise en œuvre des accesDesignation et liaison
19 Le partage des fichiersControle des acces simultanesProtection
20 Exemple : le SGF d’UNIX
21 Pagination et gestion de fichiers
339 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Controle des acces simultanes
Probleme :
Execution parallele (ou pseudo-parallele) des processus
Les processus peuvent acceder au(x) meme(s) fichier(s)
=⇒ Coherence du contenu des fichiers
=⇒ Synchroniser les acces aux fichiers
340 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Controle des acces simultanes
Example
FILE *f = fopen(“toto,”r”) ;for (int i=0 ;i<N ;i++) {
fread(buf,1,sizeof(int),f) ;}fclose(f) ;
FILE *f = fopen(“toto,”w”) ;for (int i=0 ;i<N ;i++) {
fwrite(&i,1,sizeof(int),f) ;}fclose(f) ;
=⇒ Avec un fichier initialement rempli de 0, quelle valeurs rendentles operations read ?
341 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Controle des acces simultanes
Classes de politiques de controle :
Controle a l’ouverture vs controle lors des acces elementaires(lecture/ecriture)
Politique de controle systematique (ex : lecteur/redacteur) vspolitique de controle laissee a l’utilisateur (verrous)
342 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Controle des acces simultanes
Exemples de politiques de controle
Politique systematique a l’ouverture : interdire deuxouvertures simultanees du meme fichier
Politique utilisateur au niveau des acces elementaires enutilisant des verrous sur des portions du fichier
343 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Protection
Proprietes a assurer :
Confidentialite : empecher la divulgation des informations sansautorisation
Integrite : empecher la corruption des donnees par des fautes(accidentelles ou intentionnelles)
Disponibilite : l’utilisateur peut acceder au service offert
Fiabilite : le service rendu est correct
=⇒ Domaine general de la surete de fonctionnement (ici, ons’interessera principalement a la confidentialite et a l’integrite
Remark
Les fichiers ne sont pas les seuls objets a proteger
344 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Protection
Elements necessaires pour assurer la confidentialite et l’integrite :
Mecanisme d’authentification : moyens de s’assurer del’identite d’un usager (ex : mot de passe)
Mecanisme de controle d’acces : moyens de limiter les accesaux objets
Politique de securite : regles sur la facon d’accorder des droitsaux usagers
=⇒ Accent mis par la suite sur les mecanismes de controle d’acces
345 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Protection
Protection memoire vs protection des fichiers :
Protection memoire
Acces elementaire par des instructions machineControle par materiel (bits de droits dans les descripteurs desegments et/ou les tables des pages)
Protection des fichiers
Acces demandes par logiciel (appels explicites au systemed’exploitation)Verification d’acces par logiciel, execute par le systemed’exploitationNecessite tout de meme un mecanisme de protection materielpour controler l’acces aux procedures systeme
346 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Domaines et droits d’acces
Sujet : entite possedant des droits d’acces (processus,s’executant pour le compte d’un utilisateur au sens large)
Objet : entite a proteger (fichier, zone de memoire, etc)
Domaine de protection : ensemble d’objets accessibles a uninstant donne et droits d’acces associes, couples (objets,droits)
Remarks
Les droits d’un processus pour un objet peuvent evoluer aucours du temps
Un ensemble de processus peuvent avoir les memes droits
347 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Domaines et droits d’acces
Example
Processus P1 (execute par U1) peut dans certainescirconstances lire et ecrire dans f 1 et lire f 2 mais pasimprimer. Dans d’autres, il peut lire f 1 et imprimer, mais pasacceder a f 2
Processus P2 (execute par U2) peut lire et ecrire dans f 1 etf 3 mais pas imprimer ni acceder a f 1
348 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Domaines et droits d’acces
Example
Domain 1
Domain 2
Reachable
à U1(f1,read,write)
(f2,read)
(f2,read,write)
(f3,read,write)
Reachable
à U2
Domain 3
(f1,read)
(printer,use)
Domainchange
domains
domains
349 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Domaines et droits d’acces
Matrice de droits : droits[i , j ]=ensemble des droits sur l’objet jquand on est dans le domaine i .
Example
f1 f2 f3 imprimante
Domaine 1 lire, ecrire ecrire
Domaine 2 lire, ecrire lire, ecrire
Domaine 3 lire ecrire utiliser
350 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Domaines et droits d’acces
On veut modifier la matrice de maniere controlee =⇒ on peutintroduire de nouveaux droits sur les objets :
Proprietaire sur un objet O dans un domaine D : permet a unprocessus s’executant dans D de modifier tous les droits sur O(colonne de la matrice)
Copie : droit de recopier un droit
Transfert : droit de transferer un droit
351 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Domaines et droits d’acces
Changement de domaine a l’execution :
Doit etre controleOn peut considerer un domaine d comme un objet particulieravec des droits specifiques :
Entrer : accorde a d ′, permet a un processus s’executant dansd ′ de poursuivre son execution dans dModifier droits : accorde a d ′, permet a un processuss’executant dans d ′ de modifier les droits de d
Example
f1 f2 f3 impr. d1 d2 d3
d1 L, E E modif. entrer
d2 L, E L, E
d3 L E U entrer
352 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Representation des domaines
Remark
La matrice des droits est grosse et vide =⇒ il faut trouver unmoyen de stocker uniquement les cases “pleines” :
Par colonne (par objet) : mecanisme de liste de controled’acces
Par ligne (par domaine) : mecanisme de capacite
353 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Listes de controle d’acces (ACL)
Associee a chaque objet
Liste de couples (domaine, droits)
Recherche dans la liste a chaque acces sur l’objet
354 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Listes de controle d’acces
Process P
fopen("toto","r");
Process Q
fopen("toto","w");
d1, RW
d2, R
Domain d1
Domain d2
"toto"
ACL
Access controlmachanism
Reject
Object
Remark
ACL stockees avec l’objet =⇒ faciles a proteger (mememecanisme de protection que l’objet)
La verification peut etre longue (parcours de liste)
355 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Listes de controle d’acces
Example (Controle d’acces dans Multics)
Usager identifier par son nom + groupes d’usagers possibles
Groupe d’usager choisi a la connexion =⇒ usager identifiepar un couple (usager, groupe)
Un domaine est associe a un ensemble de tels couples, *representant tous les usagers/groupes (ex : (u1,*), (*,g),(*,*))
356 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Listes de controle d’acces
Example (Controle d’acces dans Multics)
"toto"
fopen("toto","w");
fopen("toto","r"); ACLProcess P1 (group g1)
Process P2 (group g2)
Reject
Access controlmechanism
Object (*,g1) : R(u1, g1) : RW(*,g2) : R
357 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Listes de controle d’acces
Example (Controle d’acces dans Windows NT)
Un domaine est associe a un ensemble de couples (usager,groupe)
ACL par objet
Expression de droits positifs et negatifs
358 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Capacites
Definition (Capacite)
“ticket” donnant acces a un objet
Integre le moyen d’acceder a l’objet (nom) et les droits surl’objet
Une liste de capacites (c-liste) par domaine : decrit les objetsaccessibles a partir de ce domaine
359 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Capacites
Access controlmechanism
Reject
Object"toto"
Process P
fopen("toto","r");
Process Q
fopen("toto","w");
C−list
"toto", RW
C−list
"toto", R
Capability"toto", R
Capability"toto", RW
Domain d1
Domain d2
360 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Capacites
Remarks
Acces a l’objet rapide
Revocation des droits sur les objets difficile (dispersion descapacites dans les processus utilisateur)
Protection des capacites plus difficile qu’avec les ACL :
Protection au niveau machine : marquage d’un mot memoirecontenant une capaciteStockage dans une zone systeme controlee (protection globale)Stockage dans une zone utilisateur, sous forme cryptee
361 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces simultanesProtection
Capacites vs Listes de controle d’acces
Remark
Souvent, le systeme utilise les deux techniques pour assurer laprotection d’un fichier :
Controle d’acces par liste de controle d’acces lors del’ouverture du fichier =⇒ nom local
Utilisation du nom local comme capacite lors des acces enlecture ou ecriture
362 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
18 Rappels sur les SGFGestion de l’espace disqueMise en œuvre des accesDesignation et liaison
19 Le partage des fichiersControle des acces simultanesProtection
20 Exemple : le SGF d’UNIX
21 Pagination et gestion de fichiers
363 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Le SGF d’UNIX
Structure generale
Cache
User
process
User
process
User mode
Supervisor mode
System calls interface
File SystemProcessand memorymanagement
Block
peripheral
adapter
Character
péripheral
adapter
364 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Fichiers UNIX
Suite d’octets
Appels systemes : lecture/ecriture de sequences d’octets,positionnement dans le fichier
Structure de fichiers tres simple. Definition de structures pluscomplexes (notion d’article, acces indexe, ...) laissee au niveauutilisateur (directement, bibliotheque)
Interface fichier utilisee pour tout objet ayant un nom externevisible dans la hierarchie des fichiers (peripheriques, tubes, etc)
365 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Volume
Representation bas niveau d’un disque ou d’une partie dedisque
Organise logiquement comme une suite de blocs de taille fixe
Constitue le support d’un systeme de gestion de fichiers
366 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Volume
Notion de superbloc :
Bloc special decrivant unvolume
Contenu d’un superbloc :
Taille du systeme defichiersNombre de bloc libresListe des blocs libresNombre d’inodes libresListe des inodes libres
Superblock
Inodes area
Files area
Structure of a Unix volume
367 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Montage
Operation permettantd’integrer plusieurs systemesde fichiers dans une seulehierarchie de designation
Commande mount
=⇒ Possible que deuxutilisateurs n’aient pas lameme hierarchie de fichiers
d1 d2
File system A File system B
d1 d2
File hierarchy after mounting Bat point /d2 of file system A
368 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Representation permanente des fichiers
Inode
Informations de propriete et droits d’accesTailleTable d’implantationNom interne d’un fichier = couple (no volume, no inode)
Repertoire : memorise la correspondance entre nom externe etinode
369 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Representation permanente des fichiers
file type
uid of owner
gid of owner
Size (bytes)
Time created
Time last accessed
Time last modified
Number of
Single indirect
Double indirect
Triple indirecy
12 first blocks
128bytes
i−node
number of links to file
370 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Representation permanente des fichiers
Contenu du volume contenant le systeme de gestion de fichiers :
etcbin
ls
dev
...
...
371 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Representation permanente des fichiers
Superblock
Inodes area
File area
2nilk
inode of /
inode of /bin
inode of /bin/ls
. (current dir.)
.. (father dir.)bindevetc
. (current dir)
.. (father dir.)ls
2
k
l
Directory /bink2l
Code fileof "ls"
Rootdirectory
372 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Representation des fichiers utilises (ouverts)
Inode memoire, global a tous les processus
Copie de l’inode disqueCompteur d’utilisationVerrou (acces exclusif a l’inode)
Table des fichiers, table systeme globale a tous les processus,contient pour chaque fichier ouvert :
Pointeur sur inode memoireCompteur d’utilisationDroits d’acces pour cette ouverturePointeur de fichier (caractere courant)
Table des descripteurs de fichiers, table utilisateur propre a unprocessus. Pour chaque fichier ouvert, pointe sur une entreede la table des fichiers. Indices 0, 1 et 2 reserves.
373 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Ouverture d’un fichier
fonction open (chaine nomfich, acces m) resultat no descripteur
debut
Utilise nomfich pour retrouver l’inode disque et le copie en memoiresi fichier inexistant ou acces demande interditalors resultat erreursinon
alloue une entree dans la table des fichiers et l’initialisealloue un descripteur de fichier et l’initialiseresultat numero du descripteur alloue
fsi
fin
374 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Ouverture d’un fichier
Example
Structures de donnees lors de l’ouverture d’un fichier
1 0 R
1 0 RW
1 4 W
345
2
(cpt,pt,dr,inode)
P1fd1 = open("f1",R);fd2 = open("f2",W);fd3 = open("f1",RW);lseek(fd2,4,SEEK_SET);
User System
Table offile descriptors
1
Blocks of f1
Blocks of f2
(count, ...)
Memory inodesFile table (shared)
375 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Ouverture d’un fichier
Remarks
fd1, fd2 et fd3 sont des noms logiques, ils n’existent pas endehors du programme. Il sont locaux au processus.
Entree dans la table des fichiers peut etre vue comme unecapacite pour l’acces au fichier (fd1 et fd3 permettentd’acceder au meme fichier avec des noms differents)
Ces structures de donnees permettent de partager les inodesmemoire entre processus
Partage d’une entree de la table des fichiers entre processuspossible : utilise en cas de duplication des processus (fork) : latable des descripteurs du fils est au depart identique a celle dupere
376 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Ouverture d’un fichier
Example
Structures de donnees et duplication de processus (fork)
345
345
345
(cpt,pt,dr,inode)
1 0 RW
2 4 W
2 0 R 1
1
UserSystem
File table (shared)
Blocks of f1
Blocks of f2
Memory inodes
(count, ...)
P1
P2
P1’(son of P1)
377 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Controle des acces concurrents
Initialement, aucun controle d’acces prevu
Ajouts ulterieurs via l’appel systeme fcntl
Verrous :
Possibles sur des parties de fichiers (offset+taille)Verrous exclusifs ou partagesPolitique de controle a la charge de l’utilisateur ( =⇒possibilites d’interblocages)
378 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Protection
Representation simplifiee des droits (“liste” de taille fixee)
Trois domaines d’utilisation possibles pour un fichier :proprietaire, groupe, autres
Trois droits possibles pour chaque fichier normal : lire, ecrire,executer
=⇒ 9 bits suffisent pour decrire tous les droits associes au fichier
379 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Protection
"toto"
fopen("toto","r");
fopen("toto","w");
−−−
Process P1 (group g1)
Process P2 (group g1)
Reject
Access controlmechanism
Object
Rights on "toto"
Id owner : P1Gr owner : g1RW−R−−
(ls −l prints −rw−r−−−−−)
Remark
Pas possible de dire facilement que dans un groupe g1, seul u1 acertain droits ( =⇒ comment faire ?)
380 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
18 Rappels sur les SGFGestion de l’espace disqueMise en œuvre des accesDesignation et liaison
19 Le partage des fichiersControle des acces simultanesProtection
20 Exemple : le SGF d’UNIX
21 Pagination et gestion de fichiers
381 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Pagination et gestion de fichiers
(x=y;)
Pages
(fread,fwrite)
File system Système de pagination
Diskcache
RAM
Disk
Explicit transfers disk−>RAM Implicit transfers disk−>RAM
382 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Pagination et gestion de fichiers
Remarks
Problemes communs a resoudre : gestion d’une memoirecache
Ne maintenir en memoire qu’une partie de l’information totaleRemplacement et recopie
Outils differents pour l’utilisateur
=⇒ Integrer acces aux fichiers et gestion memoire
=⇒ Mecanisme d’acces unifie, memoire a un seul niveau, fichiersmappes
383 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Fichiers mappes
Taille de bloc disque = taille d’une page virtuelle
Primitive (mmap UNIX) etablissant une correspondanceentre :
Une zone de memoire virtuelleUn fichier
Utilisation de la zone de memoire virtuelle comme une zonestandard
C’est l’algorithme de remplacement de page qui met en œuvrele cache disque
384 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Fichiers mappes
Physical memory
File
function
Virtual address space
Paging
385 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Fichiers mappes
525150
44
5
100
102101
505152
0 1011 44
1 5 102
100
Virtual address space
Physical memory
File
Pagetable
Table ofdisk @
Access to page 51 −> page fault
386 / 440
Rappels sur les SGFLe partage des fichiers
Exemple : le SGF d’UNIXPagination et gestion de fichiers
Fichiers mappes
Interface UNIX
void *mmap(void *ad, size t l, int prot, int fl, int fd, off t of) ;
ad : adresse de visibilite (0 =⇒ le systeme choisit)l : longueur zone a rendre visible, of = offset dans le fichierprot : droits d’accesfl : indique si en cas de modification le fichier lui-meme estmodifie (MAP SHARED) ou si les modifications sont priveesau processus (MAP PRIVATE)fd : descripteur du fichier (ouvert)
Example
f = open(“toto”,O RDWRITE) ;char *ad = mmap(0,1024,PROT WRITE,MAP SHARED,f,0) ;for (i=0 ;i<1014,i++) ad[i] = i ;
387 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Sixieme partie VI
Memory management in distributed systems
388 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Plan
22 Systemes de gestion de fichiers repartis
23 Memoires virtuelles reparties
389 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Architecture des systemes repartis
Machines connectees par un reseau
Pas de memoire commune
Pas d’horloge commune
Moyen de communication entre processeurs : echanges demessages
Message
memory 1 memory 2 memory 3
processor 3processor 2processor 1
Network
390 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Gestion memoire dans les systemes repartis
Quelle machine virtuelle offrir a l’utilisateur ?
Envoi de messages
Outils differents des outils habituelsManipulation differentes des informations locales et distantes
Cacher les envois de messages : manipulation de donneesclassiques, identiques pour les informations locales etdistantes :
Fichiers : systemes de gestion de fichiers repartisMemoire : memoire virtuelle repartie
391 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Systeme de gestion de fichiers (SGF) reparti
Proc Proc Proc Proc... ...
Abstraction of
File System
distributed file system Implementation of distributed file system
local FS local FS
Distributed FS
Network
392 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Memoire virtuelle repartie
Proc Proc Proc Proc... ...
MPR
Abstraction ofshared virtual memory
Memory
Implementation of SVM
disk diskMemory Memory
Network
393 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
22 Systemes de gestion de fichiers repartisProprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
23 Memoires virtuelles repartiesPrincipeModele de coherenceElements de mise en oeuvre
394 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Acces a l’information distante
Non transparent : utilisation de commandes realisant unecopie locale avant utilisation (ftp, rcp)
ftp nom-machineget nom-fich-distant nom-fich-localquit
<acces au fichier local grace au SGF local>
Transparent : mecanismes semblables aux acces fichierslocaux : systeme de gestion de fichier reparti (ex : NFS)
Pr1 Pr2
network
communication kernel
communicationkernel
395 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Principe d’un SGF reparti
Stations peuvent etre specialisees dans le stockage des fichiers(serveurs de fichier)
Fonction de systeme de gestion de fichiers assure latransparence d’acces en engageant un dialogue avec le serveurde fichiers (echanges de messages via un noyau decommunications)
396 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Principe d’un SGF reparti
Messages
User
DFS − client
Client site Server site
localFS
DFS − server
Communicationkernel
Communicationkernel
397 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Proprietes d’un SGF reparti
Transparence a la distribution
Transparence d’acces : toutes les operations applicables auxfichiers locaux sont applicables aux fichiers distants
Transparence a la localisation : les utilisateurs voient unespace de noms uniforme ; les fichiers peuvent etre deplacessans changer de noms externes
Surete de fonctionnement
Fiabilite : aucune donnee ne sera perdue ou corrompue suite ala defaillance d’un serveur
Disponibilite : le service de fichiers sera toujours disponible endepit de la defaillance d’un serveur
Transparence aux defaillances : la defaillance d’un serveur seratransparente a ses clients
398 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Proprietes d’un SGF reparti
Gestion des acces concurrentsCoherence stricte : lecture retourne la derniere ecriture
Facile a assurer pour les systemes sans cachesPlus problematiques dans les systemes avec cache
1 2 3ReadWriteRead
f
C2C1C2C1
f A
B
B
C2C1
f A
A
A
A
AB
B
A
Coherence de session : copie locale du fichier a l’ouverture,modifications visibles aux autres uniquement a la fermeture
Coherence faible : une operation de lecture retournera unevaleur ayant ete ecrite au prealable au meme emplacement
399 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Problemes lies a la repartition d’un SGF
Localisation : determiner sur quelle machine se trouve unfichierConstitution de l’espace des noms externes : quelle est lastructure de l’espace des noms vue par un utilisateur ? parquel mecanismes est-il construit ?Mode d’acces aux informations : comment est realisee unelecture, une ecriture ? comment minimiser les transferts ?comment gerer les caches ?Disponibilite : comment faire face aux fautes materielles ? quelest l’impact de la duplication sur l’acces aux fichiers ?comment gerer les repliques ?Securite : comment assurer la confidentialite et l’integrite enpresence de machines sur lesquelles on peut “manipuler” lemateriel et le logiciel ? comment authentifier un usager ?
400 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Choix generaux de conception
Stations banalisees : toute station peut a priori etre serveur defichier ou client
Stations specialisees : une station ne peut pas etre client etserveur de fichiers a la fois
permet de definir des regles de securite adapteesexemple : serveurs de fichiers dans des locaux surs, confiancedans le materiel et le logiciel installes
401 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Choix generaux de conception
Serveurs avec etat : le serveur stocke des informations sur lesclients en cours d’utilisation des fichiers
Moins d’informations a transiter dans les requetesFacilite de lectures avec anticipationPossible de gerer des verrous d’acces au fichierDefaillance du client et du serveur peuvent laisser le systemedans un etat malsain (sessions jamais fermees, sessions fermeesde maniere autoritaire)
Serveurs sans etat : le serveur ne memorise rien sur ces clients
Exemple : NFS
402 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Espace des noms externes
A. Inclusion du nom du serveur dans les noms externes(/serveur/usr/fich)
Localisation du fichier triviale
Migration difficile : pas de transparence a la localisation
403 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Espace des noms externes
B. Montage a distance
...a
Local file sytem of A File system exported by B
f2f1 f3 f4
f3 f4f2f1
me shared
me sharedHierarchy after mounting a
at mount point shared
Liaison (nom externe,localisation) dynamique, re-calculee achaque montage. Localisation relativement simpleMigration possible avec modification des sequences demontage
404 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Espace des noms externes
C. Espace de nommage unique independant de la localisation :
Localisation recalculee dynamiquement (au moins a chaqueouverture)
Migration dynamique possible
=⇒ Localisation plus complexe
405 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Localisation
Noms internes doivent permettre de designer le fichier danstout le systeme distribue =⇒ identificateurs uniques (UID -Unique Identifiers)
Le nom unique peut contenir une aide a la localisation(exemple : site de creation)
406 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Gestion des caches
Envoi systematique d’une requete au serveur inefficace (latencereseau + disque) =⇒ utilisation de caches
U2U1
U1 U2
Client1 Client2
Abstraction Implementation
R/W R/W
load/update load/update
ServerFile f
R/W R/W
407 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Gestion des caches
Localisation possible des caches :
RAM
DiskDisk
RAM
Network
machineClient
machineServer
A
AA
A
408 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Gestion des caches
Granularite du cache
BlocPlusieurs blocsFichier complet
Taille plus importante
taux de presence dans le cache elevetemps de chargement importantprobleme de coherence de cache
409 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Gestion des caches
Politique de recopieEcriture immediate
Couteux (latence, bande passante reseau)Semantique claire en presence de defaillance
Ecriture retardeeBonnes performancesQuand les fichiers sont detruits rapidement, le serveur n’en apas connaissanceN’autorise qu’une coherence faibleSemantique peu definie en presence de defaillance
Ecriture a la fermeture : mise a jour du serveur uniquement ala fermeture du fichier
Bonnes performancesPermet de mettre en œuvre la coherence de sessionOptimisations possibles pour les fichiers de faible duree de vie
Compromis : recopies periodiques410 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Gestion des caches
Coherence des cachesCoherence faible
Aucun protocole necessaireRecopie reguliere du cache client peut assurer que les valeurslues ne seront pas trop anciennes
Coherence de sessionAucun protocole necessaireSeul probleme : avoir assez de cache client pour conserver lesmodifications sur le site client ( =⇒ cache client sur disqueest le mieux adapte)
Coherence stricteNecessite un protocole particulierSprite : invalidation des caches client quand il existe au moinsun ecrivain sur un fichier (detecte a l’ouverture)Echo : protocole a invalidation (n jetons de lecture ou un jetonunique en ecriture)
411 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Network File System (NFS)
Generalites
Concu par SUN en 1985, version 2 et 3 en 1989 et 1994
Serveur sans etat =⇒ le serveur ne gere pas les accesconcurrents
Montage a distance =⇒ pas necessairement d’espace denommage unique
Communication client/serveur par appel de procedure adistance (RPC : Remote Procedure Call, equivalent RMI =Remote Method Invocation)NFS definit le protocole de communication client/serveur, pasl’implantation des clients/serveur=⇒ haute disponibilite dependante de l’implantation=⇒ la gestion des caches n’est pas definie dans le protocole
412 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Network File System (NFS)
Generalites
Client Server
(file handle)
Virtualinodes
remotei−node
localinode
local file
localinode
file
413 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Network File System (NFS)
Mise en œuvre SUN
Mise en œuvre des acces :
Majorite des requetes idempotentes (meme resultat siexecutees plusieurs fois) =⇒ envoi repete des requetes auserveur s’il ne repond pas (NFS server not responding stilltrying)
Transferts de donnees par blocs de grande taille (8Ko)
Lecture avec anticipation pour optimiser les acces sequentiels
Fichiers lus integralement si leur taille est inferieure a uncertain seuil
414 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Network File System (NFS)
Mise en œuvre SUN
Gestion des caches
Caches clients en memoire (un pour les repertoire, un pour lesfichiers)
Caches organises en blocs, estampilles avec une date dederniere modification
Recopie retardee des caches (periodiquement, toutes les 30 s)
A l’ouverture d’un fichier contenu en cache, verification de lavalidite de la copie
Invalidation periodique des blocs (30 s)
=⇒ Pas de semantique de coherence precise
415 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Andrew File System (AFS)
Generalites
Concu par l’universite de Carnegie Mellon dans le debut desannees 90 (1000 serveurs en 1996, 20000 clients repartis dans10 pays)
Ensemble de stations de travail avec disque connectees a unreseau de serveurs de fichiers
Workstation
Workstation
Workstation
Network ofservers
416 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Andrew File System (AFS)
Nommage et localisation
Hierarchie de fichiers unique integrant tous les fichiersaccessibles
Noms internes uniques (fid)
Localisation dynamique. Base de donnees dupliquee utiliseepour localiser les fichiers
Protocole pour assurer la coherence des copies de cette base
417 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Andrew File System (AFS)
Gestion des acces et caches
Serveurs avec etat
Disque local des clients utilise comme cache
Semantique d’acces de type session
Transfert du fichier complet en cache a l’ouvertureAcces entierement locaux apres ouvertureRecopie des donnees vers le serveur a la fermetureA la fermeture, le client conserve une copieLe serveur memorise les clients ayant une copie. Demanded’invalidation envoyee quand le serveur recoit une nouvelleversion du fichier (fermeture par un autre client)
418 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
Proprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
Andrew File System (AFS)
Open 3
Close
Open 2
Close
write
Open 1
Close
write
Open. 1
Cache
Inv.
Cache
Client 1 Client 2Server
419 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
22 Systemes de gestion de fichiers repartisProprietes d’un SGF repartiSGF reparti : elements de mise en oeuvreExemples
23 Memoires virtuelles repartiesPrincipeModele de coherenceElements de mise en oeuvre
420 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Principe des memoires virtuelles reparties
Manipulation des donnees comme si elles etaient dans unememoire unique partagee par tous les processeurs
d2
d1=0
processeur 1
d1=1
processeur 3
d2=0
processeur 2
Mémoired1
421 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Principe des memoires virtuelles reparties
En realite, la memoire partagee est mise en œuvre en utilisant lesmemoires des processeurs constituant le systeme
d1=0 d2=0 d1=1
d1d2memory 1 memory 2 memory 3
network
processor 1 processor 2 processor 3
422 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Coherence dans les memoires virtuelles reparties
Modele de coherence
Definit la/les valeur(s) pouvant etre retournees par uneoperation de lecture (pas d’horloge commune)Garanties fournies au programmeurGaranties fortes =⇒ latence des acces memoire eleveeGaranties faibles =⇒ latence plus faible
Protocole de coherence
Implantation particuliere d’un modele de coherenceUn modele de coherence peut etre implante par plusieursprotocoles de coherence
423 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Modeles de coherence
Coherences fortes
Coherence stricte : toute operation de lecture d’une variablepartagee retourne la derniere valeur ecrite dans cette variable
Demande l’existence d’un ordre total entre evenements pourque le sens de derniere soit bien definiLe maintien de cet ordre total est tres couteux
Coherence sequentielle : le resultat de toute execution est lememe
que si les operations de tous les processeurs etaient executeesdans un ordre sequentiel donne, etque les operations de chaque processus apparaissent dans cetteexecution dans l’ordre du programmeReformulation : tous les acces a la memoire partagee serontvus dans le meme ordre par tous les processus
424 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Modeles de coherence
Coherences faibles
Coherence faible : distinction des acces de synchronisation etdes acces ordinaires :
les acces aux variables de synchronisation sontsequentiellement coherentsacces a une variable de synchronisation n’est permis que quandtous les acces en ecriture sur tous les processeurs sont terminesacces a une variable ordinaire (lecture ou ecriture) n’est permisque quand tous les acces aux variables de synchronisation surtous les processeurs sont termines
Coherence a la liberation : distinction de l’acquisition desverrous de leur liberation
Aquisition : attente de la propagation des modificationsRelachement : propagation des modifications locales auxautres machines
425 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Unite de transfert
Variable (ou objet)
necessite d’un support langage pour detecter l’absence d’unevariable de la memoire
Page :
l’absence d’une page peut etre detectee par le mecanisme dedefaut de pagerisque de faux partage : donnees non reliees peuvent etreallouee dans la meme page =⇒ probleme de performance(effet ping-pong)
426 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Replication et migration
Duplication : duplication de la donnee pour autoriser lesmanipulations paralleles sur des processeurs differents
Migration : la donnee migre dans la memoire du sitedemandeur. Memoire = cache de la memoire virtuelle repartie
Classification des MVP :
SRSW (Single Reader, Single Writer) : pas de duplication.Efficacite limitee car aucune parallelisation des accesconcurrents sur des nœuds differentsMRSW (Multiple Reader, Single Writer) : acces concurrents enlecture autorises, mais pas en ecritureMRMW (Multiple Reader, Multiple Writer) acces concurrentsen lecture et ecriture autorises
427 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Gestion de la localisation et des acces
Structures de donnees necessaires :
Proprietaire : nœud ayant ecrit en dernier sur la page
Gestionnaire : nœud qui connait le proprietaire d’une page etqui est charge de gerer les acces en ecriture a la page
Ensemble de copies : ensemble des nœuds possedant descopies de la page
428 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Protocole de Li & Hudak (gestionnaire centralise)
MRSW (Multiple Reader, Single Writer) : n exemplaires enlecture ou un seul en ecriture
Modele de coherence sequentielle
Protocole de coherence a invalidation sur ecriture
Gestionnaire unique par page partagee
429 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Protocole de Li & Hudak (gestionnaire centralise)
Defaut de page en lecture sur page p :
Obtenir une copie de p aupres du gestionnaire de p, quicontacte le proprietaire
Relancer l’instruction
430 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Protocole de Li & Hudak (gestionnaire centralise)
Defaut de page en lecture sur page p :
copies : 2, 4
(1) (2)
(3)
copies :1, 2, 4
memory 1 memory 2 memory 3 memory 4
memory 4memory 3memory 2memory 1
Manager site Owner site
Owner siteManager site
owner : 4
owner : 4
Read access to the pageby processor 1
431 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Protocole de Li & Hudak (gestionnaire centralise)
Defaut de page en ecriture sur page p :
Obtenir une copie de p aupres du gestionnaire de p, quicontacte le proprietaire
Invalider les autres copies de p
Changement de proprietaire
Relancer l’instruction
432 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Protocole de Li & Hudak (gestionnaire centralise)
Defaut de page en ecriture sur page p :
copies : 2, 4(1)
(2−3)(2−3)
(4)
copies :1
memory 1 memory 2 memory 3 memory 4
Owner siteManager site
Write access by processor 1
Owner sire
memory 1 memory 2 memory 3
Manager site
memory 4
owner : 1
owner : 4
433 / 440
Systemes de gestion de fichiers repartisMemoires virtuelles reparties
PrincipeModele de coherenceElements de mise en oeuvre
Non traites
A traiter si le temps ...
Duplication de processus dans Unix (mecanisme de recopie surecriture - copy-on-write)
Un peu de tolerance aux fautes (dans la partie systemesrepartis surtout)
fautes processeur : strategies de redondance active/passivefautes reseau et impact sur SGF repartis (deconnexions)
Les skewed caches
Recopie paresseuse de messages (copy-on-write)
434 / 440