University of Rennes - IRISAStatic and dynamic linking File management Memory management in...

434
Foreword SGM Master program, computer science department Isabelle Puaut University of Rennes January 2007 Isabelle Puaut SGM

Transcript of University of Rennes - IRISAStatic and dynamic linking File management Memory management in...

Page 1: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

Foreword

SGMMaster program, computer science department

Isabelle Puaut

University of Rennes

January 2007

Isabelle Puaut SGM

Page 2: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

Foreword

Module organizationModule organizationConcepts introducedOutline

1 ForewordModule organizationModule organizationConcepts introducedOutline

2 / 440

Page 3: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 4: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 5: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 6: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 7: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 8: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

ObjectivesNaming and linkingMemory hierarchies

Premiere partie I

Memory management : generalities

8 / 440

Page 9: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

ObjectivesNaming and linkingMemory hierarchies

Plan

2 Chapter objectives

3 Naming and linking

4 Memory hierarchies - caches

9 / 440

Page 10: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 11: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 12: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 13: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 14: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 15: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 16: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 17: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 18: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 19: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 20: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 21: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 22: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 23: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 24: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 25: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 26: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 27: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 28: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 29: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 30: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 31: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 32: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 33: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 34: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 35: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 36: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 37: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 38: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 39: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 40: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 41: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 42: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 43: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 44: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 45: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 46: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 47: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 48: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 49: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 50: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 51: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 52: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 53: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 54: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 55: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 56: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 57: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 58: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 59: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 60: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 61: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 62: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 63: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 64: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 65: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 66: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 67: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 68: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 69: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 70: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 71: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 72: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 73: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 74: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 75: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 76: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 77: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 78: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 79: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 80: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 81: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 82: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 83: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 84: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 85: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 86: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 87: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 88: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 89: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 90: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 91: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 92: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 93: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 94: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 95: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 96: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 97: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 98: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 99: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 100: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 101: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 102: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 103: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 104: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 105: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 106: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 107: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 108: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 109: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 110: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 111: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 112: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 113: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 114: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 115: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 116: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 117: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 118: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 119: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 120: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 121: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 122: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 123: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 124: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 125: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 126: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 127: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 128: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 129: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 130: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 131: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 132: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 133: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 134: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 135: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 136: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 137: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 138: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 139: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 140: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 141: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 142: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 143: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 144: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 145: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 146: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 147: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 148: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 149: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 150: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 151: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 152: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 153: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 154: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 155: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 156: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 157: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 158: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 159: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 160: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 161: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 162: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 163: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 164: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 165: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 166: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 167: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 168: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 169: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 170: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 171: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 172: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 173: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 174: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 175: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 176: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 177: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 178: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 179: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 180: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 181: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 182: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 183: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 184: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 185: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 186: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 187: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 188: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 189: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 190: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 191: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 192: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 193: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 194: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 195: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 196: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 197: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 198: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 199: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 200: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 201: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 202: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 203: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 204: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 205: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 206: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 207: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 208: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 209: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 210: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 211: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 212: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 213: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

Problemes a resoudreAlgorithmes d’allocation dynamique

Ramasse miettes

Troisieme partie III

Dynamic memory allocation

213 / 440

Page 214: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

Problemes a resoudreAlgorithmes d’allocation dynamique

Ramasse miettes

Plan

11 Problemes a resoudre

12 Algorithmes d’allocation dynamique

13 Ramasse miettes

214 / 440

Page 215: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 216: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 217: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 218: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 219: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 220: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 221: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

Problemes a resoudreAlgorithmes d’allocation dynamique

Ramasse miettes

Fragmentation

Free areas to be coalesced

Area A

Deallocation of area A

221 / 440

Page 222: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 223: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 224: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 225: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 226: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 227: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 228: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 229: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 230: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 231: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 232: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 233: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 234: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 235: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 236: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 237: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 238: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 239: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 240: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 241: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 242: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

Problemes a resoudreAlgorithmes d’allocation dynamique

Ramasse miettes

Marquage et balayage (mark and sweep)

242 / 440

Page 243: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

Problemes a resoudreAlgorithmes d’allocation dynamique

Ramasse miettes

Marquage et balayage (mark and sweep)

243 / 440

Page 244: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 245: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 246: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 247: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 248: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 249: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 250: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 251: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 252: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 253: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 254: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 255: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 256: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 257: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 258: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 259: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 260: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 261: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 262: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 263: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 264: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 265: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 266: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 267: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 268: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 269: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 270: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 271: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 272: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 273: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 274: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 275: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 276: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 277: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 278: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 279: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 280: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 281: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 282: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 283: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 284: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 285: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 286: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 287: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 288: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 289: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 290: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 291: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 292: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 293: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 294: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 295: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 296: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 297: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 298: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 299: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 300: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 301: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 302: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 303: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 304: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 305: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 306: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 307: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 308: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 309: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 310: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

Rappels sur les SGFLe partage des fichiers

Exemple : le SGF d’UNIXPagination et gestion de fichiers

Cinquieme partie V

File systems

310 / 440

Page 311: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 312: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 313: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 314: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 315: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 316: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 317: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 318: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 319: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 320: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 321: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 322: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 323: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 324: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 325: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 326: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 327: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 328: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 329: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 330: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 331: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 332: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 333: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 334: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 335: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 336: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 337: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 338: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 339: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 340: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 341: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 342: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 343: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 344: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 345: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 346: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 347: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 348: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 349: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 350: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 351: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 352: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 353: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 354: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 355: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 356: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 357: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 358: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 359: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 360: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 361: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 362: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 363: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 364: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 365: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 366: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 367: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 368: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 369: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 370: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 371: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 372: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 373: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 374: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 375: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 376: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 377: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 378: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 379: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 380: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 381: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 382: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 383: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 384: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 385: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 386: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 387: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 388: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

Systemes de gestion de fichiers repartisMemoires virtuelles reparties

Sixieme partie VI

Memory management in distributed systems

388 / 440

Page 389: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

Systemes de gestion de fichiers repartisMemoires virtuelles reparties

Plan

22 Systemes de gestion de fichiers repartis

23 Memoires virtuelles reparties

389 / 440

Page 390: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 391: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 392: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 393: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 394: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 395: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 396: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 397: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 398: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 399: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 400: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 401: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 402: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 403: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 404: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 405: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 406: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 407: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 408: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 409: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 410: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 411: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 412: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 413: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 414: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 415: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 416: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 417: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 418: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 419: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 420: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 421: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 422: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 423: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 424: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 425: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 426: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 427: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 428: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 429: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 430: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 431: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 432: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 433: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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

Page 434: University of Rennes - IRISAStatic and dynamic linking File management Memory management in distributed systems 6/440 Foreword Module organization Module organization Concepts introduced

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