L6a: Introduction to memory management (v2f)
-
Upload
alejandro-calderon-mateos -
Category
Education
-
view
91 -
download
1
Transcript of L6a: Introduction to memory management (v2f)
![Page 1: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/1.jpg)
Lesson 6 (a)Memory management
Operating System Design
Bachelor in Informatics Engineering
ARCOS Group
Universidad Carlos III de Madrid
![Page 2: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/2.jpg)
Alejandro Calderón Mateos
Goals
ARCOS @ UC3M2
� To know the internal methods for memory management within an Operating System
� To use tools for monitoring, management, and fine-tuning on Operating Systems.
![Page 3: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/3.jpg)
Alejandro Calderón Mateos
Recommended readings
ARCOS @ UC3M3
1. Carretero 2007:
1. Chapter 4
1. Tanenbaum 2006(en):
1. Chapter 4
2. Stallings 2005:
1. Part three
3. Silberschatz 2006:
1. Chapter 4
Base Additional
![Page 4: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/4.jpg)
Alejandro Calderón Mateos
Remember…
ARCOS @ UC3M4
To study the associated theory.1. To study the associated theory.� Better study the bibliography readings because the
slides are not enough.
� To add questions with answers, and proper justification.
2. To review what in class is introduced.� To do the practical Linux task step-by-step.
3. To practice the knowledge and capacities.� To do the practical tasks as soon as possible.
� To do as much exercises as possible.
![Page 5: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/5.jpg)
Alejandro Calderón Mateos
Overview
1. Introduction
2. Process memory regions
3. How to prepare an executable
4. Virtual memory support
ARCOS @ UC3M5
![Page 6: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/6.jpg)
Alejandro Calderón Mateos
Image2
Image1
Overview
1. Introduction
2. Process memory regions
3. How to prepare an executable
4. Virtual memory support
ARCOS @ UC3M6
OperatingSystem
Pro
cess
Application
ExecutableFile
![Page 7: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/7.jpg)
Alejandro Calderón Mateos
Basic usage of memoryaddress, value, and size
� Value
� Element stored in memory.
Address
Place in memory.
Size
Number of bytes needed to stored the value.…
00
01
02
03
…
‘a’
222
0x3F
‘&’
ARCOS @ UC3M7
![Page 8: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/8.jpg)
Alejandro Calderón Mateos
Basic usage of memoryaddress, value, and size
� Value
� Element stored in memory.
� Address
� Place in memory.
Size
Number of bytes needed to stored the value.…
00
01
02
03
…
‘a’
222
0x3F
‘&’
ARCOS @ UC3M8
![Page 9: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/9.jpg)
Alejandro Calderón Mateos
Basic usage of memoryaddress, value, and size
� Value
� Element stored in memory.
� Address
� Place in memory.
� Size
� Number of bytes needed to stored the value.…
00
01
02
03
…
‘a’
222
0x3F
‘&’
ARCOS @ UC3M9
![Page 10: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/10.jpg)
Alejandro Calderón Mateos
Basic usage of memoryfunctional interface
� Value = read (Address)
� write (Address, Value)
� Before to access into a address, it must point to a memory area previously allocated.
…
00
01
02
03
…
‘a’
222
0x3F
‘&’
ARCOS @ UC3M10
![Page 11: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/11.jpg)
Alejandro Calderón Mateos
Introduction
ARCOS @ UC3M11
� Definitions
� Environments
![Page 12: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/12.jpg)
Alejandro Calderón Mateos
Introduction
ARCOS @ UC3M12
� Definitions
� Environments
![Page 13: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/13.jpg)
Alejandro Calderón Mateos
Application and Process
ARCOS @ UC3M13
� Application: set of data and instruction sequence that is able to perform a specific task or work.
Disk
Executablefile
![Page 14: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/14.jpg)
Alejandro Calderón Mateos
Application and Process
ARCOS @ UC3M14
� Application: set of data and instruction sequence that is able to perform a specific task or work.
� In order to be executed it has to be in memory.
Disk
Executablefile
Main memory
![Page 15: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/15.jpg)
Alejandro Calderón Mateos
Application and Process
ARCOS @ UC3M15
� Process: executing application.
Disk
Executablefile
Main memory
Process1
![Page 16: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/16.jpg)
Alejandro Calderón Mateos
Application and Process
ARCOS @ UC3M16
� Process: executing application.
� It is possible that the same application executes several times (we will found several process in memory)
Disk
Executablefile
Main memory
Process2
Process1
![Page 17: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/17.jpg)
Alejandro Calderón Mateos
OperatingSystem
Application and Process
ARCOS @ UC3M17
� Process: executing application.
� The Operating System is loaded in memory andit performs the memory management in order to shared the memory among all process (in a similar way like it does with the CPU).
Disk
Executablefile
Main memory
Process2
Process1
![Page 18: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/18.jpg)
Alejandro Calderón Mateos
OperatingSystem
Image2
Image1
Process image
ARCOS @ UC3M18
� Memory image: sequence of memory addresses (and its contents) allocated for a process.
Disk
Executablefile
Main memory
Process2
Process1
![Page 19: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/19.jpg)
Alejandro Calderón Mateos
OperatingSystem
Image2
Image1
Process image
ARCOS @ UC3M19
� Memory image: sequence of memory addresses (and its contents) allocated for a process.
� Part of the control information is not in the PCB because efficiency reasons and sharing reasons.
Disk
Executablefile
Main memory
Process2
Process1
![Page 20: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/20.jpg)
Alejandro Calderón Mateos
Introduction
ARCOS @ UC3M20
� Definitions
� Environments
![Page 21: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/21.jpg)
Alejandro Calderón Mateos
Monoprogramming Systems
� Only one process is executed at a time.
� Memory is shared between the operating system and the process.
� Ej.: MS-DOS, DR-DOS, etc.
ARCOS @ UC3M21
memoria
Process
Operating System
![Page 22: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/22.jpg)
Alejandro Calderón Mateos
Multiprogramming systems
� More than one process is kept in main memory.
� It improves the CPU occupancy:
� Process blocks -> execute another
� The memory management work is basically a constrained optimization task.
� E.g.: Unix, Windows NT, etc.
ARCOS @ UC3M22
memoria
Process 1
Operating System
Process 2
Process 3
![Page 23: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/23.jpg)
Alejandro Calderón Mateos
Multiprogramming systems
� More than one process is kept in main memory.
� It improves the CPU occupancy:
� Process blocks -> execute another
� The memory management work is basically a constrained optimization task.
� E.g.: Unix, Windows NT, etc.
ARCOS @ UC3M23
memoria
Process 1
Operating System
Process 2
Process 3
![Page 24: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/24.jpg)
Alejandro Calderón Mateos
Multiprogramming systemsexample of computing the CPU usage
p = % of time that a process is blocked
pn = probability of n independent processes being all blocked
1- pn = probability of CPU not being idle
� n = 5 independent process
� p = 0,8 of time blocked (20% on CPU)
� usage = 5*20% →→→→ 111100%
usage = 1-0,85 →→→→ 67% 1-0,810 →→→→ 89%
ARCOS @ UC3M24
memoria
Process 1
Operating System
Process 2
Process 3
http://wwwithcs.rutgers.edu/~pxk/416/notes/content/09-memory_management-slides-6.pdf
![Page 25: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/25.jpg)
Alejandro Calderón Mateos
Multiprogramming systemsexample of computing the CPU usage
� p = % of time that a process is blocked
� pn = probability of n independent processes being all blocked
� 1- pn = probability of CPU not being idle
� n = 5 independent process
� p = 0,8 of time blocked (20% on CPU)
� usage = 5*20% →→→→ 111100%
� usage = 1-0,85 →→→→ 67% 1-0,810 →→→→ 89%
ARCOS @ UC3M25
memoria
Process 1
Operating System
Process 2
Process 3
http://wwwithcs.rutgers.edu/~pxk/416/notes/content/09-memory_management-slides-6.pdf
![Page 26: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/26.jpg)
Alejandro Calderón Mateos
Introductionsummary
ARCOS @ UC3M26
� Definitions
� Environments
![Page 27: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/27.jpg)
Alejandro Calderón Mateos
Overview
1. Introduction
2. Process memory regions
3. How to prepare an executable
4. Virtual memory support
ARCOS @ UC3M27
code
data
stack
Process2
OperatingSystem
code
data
stack
Main memory
Process1
![Page 28: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/28.jpg)
Alejandro Calderón Mateos
Logical organization (applications)process memory model
� One process consists of a list of memory regions.
� One region is one contiguous memory area of the process address space where all elements have the same properties.
� Main properties:
� Permissions: read, write, and execution.
� Shared among threads: private or shared
� Size (fixed/variable)
� Initial value (with or without support)
� Static or dynamic creation
� Growth direction
28 ARCOS @ UC3M
code
stack
0xFFFF..
0x0000..
Sistemas operativos: una visión aplicada
data
![Page 29: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/29.jpg)
Alejandro Calderón Mateos
Main process regionscode (text)
29 ARCOS @ UC3M
int a; int b = 5;
void f(int c) {int d;static e = 2;
b = d + 5;.......return;
}
main (int argc, char **argv) {char *p;p = (char *) malloc (1024)f(b).......free (p)....exit (0)
}
code
static dataw/o initial val.
stack
0xFFFF..
0x0000..
static datawith initial val.
![Page 30: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/30.jpg)
Alejandro Calderón Mateos
Main process regionscode (text)
30 ARCOS @ UC3M
int a; int b = 5;
void f(int c) {int d;static e = 2;
b = d + 5;.......return;
}
main (int argc, char **argv) {char *p;p = (char *) malloc (1024)f(b).......free (p)....exit (0)
}
code
static dataw/o initial val.
stack
0xFFFF..
0x0000..
static datawith initial val.
code
• Static (fixed)
• It is known at compilation time.
• Instruction sequence to be executed.
![Page 31: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/31.jpg)
Alejandro Calderón Mateos
Main process regionsdata (data)
31 ARCOS @ UC3M
int a; int b = 5;
void f(int c) {int d;static e = 2;
b = d + 5;.......return;
}
main (int argc, char **argv) {char *p;p = (char *) malloc (1024)f(b).......free (p)....exit (0)
}
code
stack
0xFFFF..
0x0000..
static dataw/o initial val.
static datawith initial val.
![Page 32: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/32.jpg)
Alejandro Calderón Mateos
Main process regionsdata (data)
32 ARCOS @ UC3M
int a; int b = 5;
void f(int c) {int d;static e = 2;
b = d + 5;.......return;
}
main (int argc, char **argv) {char *p;p = (char *) malloc (1024)f(b).......free (p)....exit (0)
}
code
stack
0xFFFF..
0x0000..
static dataw/o initial val.
static datawith initial val.
Global variables
• Static (fixed)
• They are allocated when application starts.
• They exits during the execution.
• Fixed address on memory and executable.
![Page 33: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/33.jpg)
Alejandro Calderón Mateos
Main process regionsstack (stack)
33 ARCOS @ UC3M
int a; int b = 5;
void f(int c) {int d;static e = 2;
b = d + 5;.......return;
}
main (int argc, char **argv) {char *p;p = (char *) malloc (1024)f(b).......free (p)....exit (0)
}
code
stack
0xFFFF..
0x0000..
static dataw/o initial val.
static datawith initial val.
![Page 34: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/34.jpg)
Alejandro Calderón Mateos
Main process regionsstack (stack)
34 ARCOS @ UC3M
int a; int b = 5;
void f(int c) {int d;static e = 2;
b = d + 5;.......return;
}
main (int argc, char **argv) {char *p;p = (char *) malloc (1024)f(b).......free (p)....exit (0)
}
code
stack
0xFFFF..
0x0000..
static dataw/o initial val.
static datawith initial val.
Local variables and parameters
• Dynamics
• They are created on function invocation
• They are destroyed on function call return
• Recursivity: several instances of a variable
![Page 35: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/35.jpg)
Alejandro Calderón Mateos
Main process regionsstack (stack)
35 ARCOS @ UC3M
int a; int b = 5;
void f(int c) {int d;static e = 2;
b = d + 5;.......return;
}
main (int argc, char **argv) {char *p;p = (char *) malloc (1024)f(b)....... pthread_create(f…)free (p)....exit (0)
}
code
stack
0xFFFF..
0x0000..
stack’
static dataw/o initial val.
static datawith initial val.
![Page 36: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/36.jpg)
Alejandro Calderón Mateos
Logical organization (applications)process memory model
� Code or text
� Shared, RX, Fixed Size, executable support
� Data
� With initial value
� Shared, RW, Fixed size, executable support
� Without initial value
� Shared, RW, Fixed size, w/o support (0 filled)
� Stack
� Private, RW, Variable size, w/o support (0 filled)
� It grows toward lower addresses.
� Initial stack: application arguments.
36 ARCOS @ UC3M
code
stack
0xFFFF..
0x0000..
Sistemas operativos: una visión aplicada
data
![Page 37: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/37.jpg)
Alejandro Calderón Mateos
Logical organization (applications)process memory model
� Heap
� Soporte de memoria dinámica (C malloc)
� Shared, RW, Variable size, w/o support (0 filled?)
� It grows toward higher addresses.
� Mapped files
� Region associated to a mapped file.
� Private/Shared, variable size, support on file.
� Protection depends on projection.
37 ARCOS @ UC3M
stack
0xFFFF..
0x0000..
Sistemas operativos: una visión aplicada
…
data
code
![Page 38: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/38.jpg)
Alejandro Calderón Mateos
Logical organization (applications)process memory model
� Heap
� Soporte de memoria dinámica (C malloc)
� Shared, RW, Variable size, w/o support (0 filled?)
� It grows toward higher addresses.
� Mapped files
� Region associated to a mapped file.
� Private/Shared, variable size, support on file.
� Protection depends on projection.
38 ARCOS @ UC3M
stack
0xFFFF..
0x0000..
Sistemas operativos: una visión aplicada
…
data
code
![Page 39: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/39.jpg)
Alejandro Calderón Mateos
Main process regionsdynamic data (heap)
39 ARCOS @ UC3M
int a; int b = 5;
void f(int c) {int d;static e = 2;
b = d + 5;.......return;
}
main (int argc, char **argv) {char *p;p = (char *) malloc (1024)f(b).......free (p)....exit (0)
}
code
dynamicdata
stack
0xFFFF..
0x0000..
static data
![Page 40: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/40.jpg)
Alejandro Calderón Mateos
Main process regionsdynamic data (heap)
40 ARCOS @ UC3M
int a; int b = 5;
void f(int c) {int d;static e = 2;
b = d + 5;.......return;
}
main (int argc, char **argv) {char *p;p = (char *) malloc (1024)f(b).......free (p)....exit (0)
}
code
dynamicdata
stack
0xFFFF..
0x0000..
static data
Dynamic variable
• Variables with no memory space assigned on
compilation time.
• The memory space is allocated (and free) on
runtime.
![Page 41: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/41.jpg)
Alejandro Calderón Mateos
Logical organization (applications)process memory model
� Heap
� Soporte de memoria dinámica (C malloc)
� Shared, RW, Variable size, w/o support (0 filled?)
� It grows toward higher addresses.
� Mapped files
� Region associated to a mapped file.
� Private/Shared, variable size, support on file.
� Protection depends on projection.
41 ARCOS @ UC3M
stack
0xFFFF..
0x0000..
Sistemas operativos: una visión aplicada
…
data
code
![Page 42: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/42.jpg)
Alejandro Calderón Mateos
Memory mapped file (1/3)
� One process region is associated with one file.
� Some file blocks (pages) are in main memory.
� The process gets the file contents like it are consecutively in memory (access in memory rather than traditional read/write).
42 ARCOS @ UC3M
Memorymappedfile
Processmemoryimage
Mainmemory
swap
file
![Page 43: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/43.jpg)
Alejandro Calderón Mateos
Memory mapped file (2/3)
void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off);
� Set a map between the process address space and the file descriptor or shared memory object.
� It returns the memory address where the maps is.
� addr where mapping. If NULL then the O.S. will choose one.
� len is the number of bytes to be mapped.
� prot type of access (reading, writing, or executing).
� flags options for the mapping operation (shared, privated, etc.).
� fildes file descriptor of a file or memory object to be mapped.
� off offset within the file where the mapping is going to start.
void munmap(void *addr, size_t len);
� Unmaps part of the process address space that was mapped on the addr address.
43 ARCOS @ UC3MSistemas operativos: una visión aplicada
![Page 44: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/44.jpg)
Alejandro Calderón Mateos
Memory mapped file (3/3)
� How many times a character appears in a memory mapped file.
44 ARCOS @ UC3MSistemas operativos: una visión aplicada
/* 1) To open the file descriptor */fd =open (argv[2], O_RDONLY)); fstat( fd , & fs ); /* Get the file size */
/* 2) To map the file */org =mmap((caddr_t)0, fs .st_size, PROT_READ, MAP_SHARED, fd , 0));close( fd ); /* close the file descriptor */
/* 3) Access loop */p=org ;for (i=0; i< fs .st_size; i++)
if (*p++==caracter) contador++;
/* 4) To unmap the file */munmap( org , fs .st_size);printf("%d\n", contador);
![Page 45: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/45.jpg)
Alejandro Calderón Mateos
Logical organization (applications)process memory model
� Heap
� Soporte de memoria dinámica (C malloc)
� Private, RW, Variable size, w/o support (0 filled?)
� It grows toward higher addresses.
� Mapped files
� Region associated to a mapped file.
� Shared, variable size, support on file.
� Protection depends on projection.
� Dynamic libraries
� Particular case of mapped files.
� Code & data library is mapped to be executed.
45 ARCOS @ UC3M
stack
0xFFFF..
0x0000..
Sistemas operativos: una visión aplicada
…
data
code
![Page 46: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/46.jpg)
Alejandro Calderón Mateos
Example of a process memory map
46 ARCOS @ UC3M
code
Dynamic data (heap)
Process’ stack
0xFFFF..
0x0000..
static data with initial value
Sistemas operativos: una visión aplicada
Thread 1 stack
static data w/o initial value
Memory mapped file F
Share memory zone
Dynamic library B
![Page 47: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/47.jpg)
Alejandro Calderón Mateos
To inspect a process
� Details of the sections of a process:
ARCOS @ UC3M47
Memory
O.S.
P1Disk
Executable
acaldero@phoenix:~/infodso/$ cat /proc/1/mapsb7688000-b7692000 r-xp 00000000 08:02 1491 /li b/libnss_files-2.12.1.sob7692000-b7693000 r--p 00009000 08:02 1491 /l ib/libnss_files-2.12.1.sob7693000-b7694000 rw-p 0000a000 08:02 1491 /l ib/libnss_files-2.12.1.so
b7694000-b769d000 r-xp 00000000 08:02 3380 /li b/libnss_nis-2.12.1.sob769d000-b769e000 r--p 00008000 08:02 3380 /l ib/libnss_nis-2.12.1.sob769e000-b769f000 rw-p 00009000 08:02 3380 /l ib/libnss_nis-2.12.1.so
b769f000-b76b2000 r-xp 00000000 08:02 1414 /li b/libnsl-2.12.1.sob76b2000-b76b3000 r--p 00012000 08:02 1414 /l ib/libnsl-2.12.1.sob76b3000-b76b4000 rw-p 00013000 08:02 1414 /l ib/libnsl-2.12.1.so
b76b4000-b76b6000 rw-p 00000000 00:00 0 ..b78b7000-b78b8000 r-xp 00000000 00:00 0 [vd so]
b78b8000-b78d4000 r-xp 00000000 08:02 811 /li b/ld-2.12.1.sob78d4000-b78d5000 r--p 0001b000 08:02 811 /l ib/ld-2.12.1.sob78d5000-b78d6000 rw-p 0001c000 08:02 811 /l ib/ld-2.12.1.so
b78d6000-b78ef000 r-xp 00000000 08:02 1699 /sb in/initb78ef000-b78f0000 r--p 00019000 08:02 1699 /s bin/initb78f0000-b78f1000 rw-p 0001a000 08:02 1699 /s bin/init
b81e5000-b8247000 rw-p 00000000 00:00 0 [h eap]bf851000-bf872000 rw-p 00000000 00:00 0 [s tack]
address perm. offset dev i-node nameaddress perm. offset dev i-node name
![Page 48: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/48.jpg)
Alejandro Calderón Mateos
Exercicefill the attribute of typical regions
ARCOS @ UC3M48
Region Support Protection Shared/Priv. Size
code File RX Shared Fixed
… … … … …
![Page 49: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/49.jpg)
Alejandro Calderón Mateos
Overview
1. Introduction
2. Process memory regions
3. How to prepare an executable
4. Virtual memory support
ARCOS @ UC3M49
Memory
O.S.
P1Disk
Executable
![Page 50: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/50.jpg)
Alejandro Calderón Mateos
Example of executable file format
50 ARCOS @ UC3M
0
Sistemas operativos: una visión aplicada
Magic number
1000
5000
8000
Initial PC
…
Sections table
code
data with i.v.
data w/o i.v.
…
Symbol T.
1000
5000
---
…
8000
4000
1000
500
…
1000
Offset Size
He
ad
er
Se
ctio
ns
code
data with initial value
data w/o initial value
. . .
Symbol table
![Page 51: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/51.jpg)
Alejandro Calderón Mateos
Build memory map from exe.
51 ARCOS @ UC3MSistemas operativos: una visión aplicada
0
1000
5000
8000
Magic number
Initial PC
…
Sections table
code
data with initial val.
data w/o initial val.
. . .
Symbol table
Memory
O.S.
P1Disk
Executable
code
data with initial value
data w/o initial value
stack
0
4000
5000
Memory map
Executable file
Application arguments
![Page 52: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/52.jpg)
Alejandro Calderón Mateos
Inspect an executable
� Dependences of one executable (dynamic libraries):
� Symbols in one executable:
ARCOS @ UC3M52
Memory
O.S.
P1Disk
Executable
acaldero@phoenix:~/infodso/$ ldd main.exelinux-gate.so.1 => (0xb7797000)libdinamica.so.1 => not foundlibc.so.6 => /lib/libc.so.6 (0xb761c000)/lib/ld-linux.so.2 (0xb7798000)
acaldero@phoenix:~/infodso/$ nm main.exe08049f20 d _DYNAMIC08049ff4 d _GLOBAL_OFFSET_TABLE_0804856c R _IO_stdin_used
w _Jv_RegisterClasses08049f10 d __CTOR_END__08049f0c d __CTOR_LIST__...
![Page 53: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/53.jpg)
Alejandro Calderón Mateos
To inspect an executable
� Details of the executable sections:
ARCOS @ UC3M53
Memory
O.S.
P1Disk
Executable
acaldero@phoenix:~/infodso/$ objdump –x main.exe...
Program Header:
...DYNAMIC off 0x00000f20 vaddr 0x08049f20 paddr 0x08 049f20 align 2**2
filesz 0x000000d0 memsz 0x000000d0 flags rw-
...STACK off 0x00000000 vaddr 0x00000000 paddr 0x0000 0000 align 2**2
filesz 0x00000000 memsz 0x00000000 flags rw-
...
Dynamic Section:
NEEDED libdinamica.soNEEDED libc.so.6INIT 0x08048368
...
![Page 54: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/54.jpg)
Alejandro Calderón Mateos
To inspect an executable
ARCOS @ UC3M54
Memory
O.S.
P1Disk
Executable
(contd.)
Sections:
Idx Name Size VMA LMA File off Algn
0 .interp 00000013 08048134 08048134 00000134 2* *0
CONTENTS, ALLOC, LOAD, READONLY, DATA
...
12 .text 0000016c 080483e0 080483e0 000003e0 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
...
23 .bss 00000008 0804a014 0804a014 00001014 2**2
ALLOC
...
SYMBOL TABLE:
08048134 l d .interp 00000000 .interp
08048148 l d .note.ABI-tag 00000000 .n ote.ABI-tag
08048168 l d .note.gnu.build-id 00000000 .note.gnu.build-id
...
0804851a g F .text 00000000 .hidden __i686.get_pc_thunk.bx
08048494 g F .text 00000014 main
08048368 g F .init 00000000 _init
![Page 55: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/55.jpg)
Alejandro Calderón Mateos
Overview
1. Introduction
2. Process memory regions
3. How to prepare an executable
4. Virtual memory support
ARCOS @ UC3M55
![Page 56: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/56.jpg)
Alejandro Calderón Mateos
Virtual memory based systems
ARCOS @ UC3M56
Virtual M.Main M. Secondary M.
Virtual
addressMMU
1
2
3a 3b
![Page 57: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/57.jpg)
Alejandro Calderón Mateos
Virtual memory based systems
ARCOS @ UC3M57
Virtual M.Main M. Secondary M.
Virtual
addressMMU
1
2
3a 3b
� Each application has its own
address space.
� The virtual (and physical) space is
divided in block (power of 2), being
this block the allocation unit.
![Page 58: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/58.jpg)
Alejandro Calderón Mateos
Virtual memory based systems
ARCOS @ UC3M58
Virtual M.Main M. Secondary M.
Virtual
addressMMU
1
2
3a 3b� The MMU (memory management unit)
will translate the virtual address into
the physical address.
![Page 59: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/59.jpg)
Alejandro Calderón Mateos
Virtual memory based systems
ARCOS @ UC3M59
Virtual M.Main M. Secondary M.
Virtual
addressMMU
1
2
3a 3b� The O.S. has a translation table. It
translate where each block is located.
� There are one table per process.
� Additionally the O.S. has:
� Frame table (which one is free)
� Regions table per process.
![Page 60: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/60.jpg)
Alejandro Calderón Mateos
Virtual M. Main M. Secondary M.
Virtual memory introduction
60 ARCOS @ UC3M
![Page 61: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/61.jpg)
Alejandro Calderón Mateos
Virtual M. Main M. Secondary M.
Virtual memory introduction
61 ARCOS @ UC3M
…
lw $t0 vector
…
![Page 62: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/62.jpg)
Alejandro Calderón Mateos
Virtual M. Main M. Secondary M.
Virtual memory introduction
62 ARCOS @ UC3M
…
lw $t0 vector
…
![Page 63: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/63.jpg)
Alejandro Calderón Mateos
Virtual M. Main M. Secondary M.
Virtual memory introduction
63 ARCOS @ UC3M
…
lw $t0 vector
…
![Page 64: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/64.jpg)
Alejandro Calderón Mateos
Virtual M. Main M. Secondary M.
Page fault
Virtual memory introduction
64 ARCOS @ UC3M
� The page fault is an exception that executes the associated handler in the O.S.
� The handler requests the associated disk blocks, and blocks the process.
![Page 65: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/65.jpg)
Alejandro Calderón Mateos
Virtual M. Main M. Secondary M.
Virtual memory introduction
ARCOS @ UC3M65
� The disk hardware interruption handler transfers the requested blocks into main memory, and fire a disk software interruption.
![Page 66: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/66.jpg)
Alejandro Calderón Mateos
Virtual M. Main M. Secondary M.
Virtual memory introduction
66 ARCOS @ UC3M
� The disk software interruption updates the ‘block’ table, and turns the process’ status into ready for execution.
![Page 67: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/67.jpg)
Alejandro Calderón Mateos
Virtual M. Main M. Secondary M.
Virtual memory introduction
67 ARCOS @ UC3M
…
lw $t0 vector
…
� It is resumed the execution of the instruction that leads to the page fault.
Hit
![Page 68: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/68.jpg)
Alejandro Calderón Mateos
Virtual M. Main M. Secondary M.
Virtual memory introduction
68 ARCOS @ UC3M
Hit
…
lw $t0 vector+4
…
� The next instruction from the same block will not lead to page fault.
![Page 69: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/69.jpg)
Alejandro Calderón Mateos
Summary of
page fault exception
ARCOS @ UC3M69
S.O.(kernel)
HW.
App.
P.F. excep.
CPU Disk RAM
• Req. Block• Go to Pi+1
Hw. Int.
• Copy into RAM• Fire Soft.Int.
Sw. Int.
• Updatetable
• Pi ready
• char buffer[1024];…
• buffer[1020]=‘\0’; …
Óscar Pérez Alonso y
![Page 70: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/70.jpg)
Alejandro Calderón Mateos
Virtual memory introductionWorkspace and multiprogramming
70 ARCOS @ UC3M
………
………
………
………
………
Process 1
![Page 71: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/71.jpg)
Alejandro Calderón Mateos
Virtual memory introductionWorkspace and multiprogramming
71 ARCOS @ UC3M
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Process 3
Process 2
Process 1
![Page 72: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/72.jpg)
Alejandro Calderón Mateos
Virtual memory introductionWorkspace and multiprogramming
72 ARCOS @ UC3M
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Process 3
Process 2
Process 1
![Page 73: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/73.jpg)
Alejandro Calderón Mateos
Virtual memory introductionWorkspace and multiprogramming
73 ARCOS @ UC3M
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Process 3
Process 2
Process 1
![Page 74: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/74.jpg)
Alejandro Calderón Mateos
Virtual memory: Windows 7
ARCOS @ UC3M74
![Page 75: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/75.jpg)
Alejandro Calderón Mateos
Virtual memory: Windows 8.x
ARCOS @ UC3M75
![Page 76: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/76.jpg)
Alejandro Calderón Mateos
Virtual memory: Linux
ARCOS @ UC3M76
![Page 77: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/77.jpg)
Alejandro Calderón Mateos
Windows: perfmon
ARCOS @ UC3M77 http://technet.microsoft.com/en-us/library/cc958290.aspx
![Page 78: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/78.jpg)
Alejandro Calderón Mateos
Linux: ps, top, …
ARCOS @ UC3M78 http://wwwithcyberciti.biz/faq/linux-command-to-see-major-minor-pagefaults/
arcos:~$ ps -o min_flt,maj_flt 1
MINFL MAJFL
18333 25
Major fault: it needsto access to Disk
Minor fault: itbookings a page
![Page 79: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/79.jpg)
Alejandro Calderón Mateos
Linux: ps, top, …
ARCOS @ UC3M79 http://wwwithcyberciti.biz/faq/linux-command-to-see-major-minor-pagefaults/
arcos:~$ vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 140 3092132 1575132 2298820 0 0 12 19 20 32 1 2 97 0
0 0 140 3092124 1575132 2298820 0 0 0 0 128 250 0 0 100 0
0 0 140 3092124 1575132 2298820 0 0 0 16 143 281 0 0 100 1
0 0 140 3092124 1575132 2298820 0 0 0 0 137 247 0 0 100 0
0 0 140 3092124 1575132 2298820 0 0 0 0 138 270 0 0 100 0
Procsr: The number of processes waiting for run time.b: The number of processes in uninterruptible sleep.
Memoryswpd: the amount of virtual memory used.free: the amount of idle memory.buff: the amount of memory used as buffers.cache: the amount of memory used as cache.inact: the amount of inactive memory. (-a option)active: the amount of active memory. (-a option)
Swapsi: Amount of memory swapped in from disk (/s).so: Amount of memory swapped to disk (/s).
IObi: Blocks received from a block device (blocks/s).bo: Blocks sent to a block device (blocks/s).
Systemin: The number of interrupts per second, including the clock.cs: The number of context switches per second.
CPUThese are percentages of total CPU time.us: Time spent running non-kernel code. (user time, including nice time)sy: Time spent running kernel code. (system time)id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
![Page 80: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/80.jpg)
Alejandro Calderón Mateos
Virtual memory based systems
ARCOS @ UC3M80
Virtual M.Main M. Secondary M.
Virtual
addressMMU
1
2
3a 3b
![Page 81: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/81.jpg)
Alejandro Calderón Mateos
Virtual Memory
� Paging
� Segmentation
� Segmentation w. paging
ARCOS @ UC3M81
N.º
seg
men
to
N.º seg.
base
Virtual address
Segment Table
segm
ento
Puntero a tabla de segmentos
Programa Mecanismo de segmentación Memoria principal
Desplaza-miento (d)
base + d
+
Dirección real
long.
d
+
N.º
pág
ina
N.º pág.
N.º marco
Virtual address
Registro
Page TableFrame
depágina
Puntero a tabla de páginas
Programa Mecanismo de paginación Memoria principal
Offs
et
Desplaza-miento
N.º marcoDesplaza-
miento
+
Dirección real
N.º
seg
men
to
N.º seg.
Virtual address
Tabla de segmentos
Fra
me
depá
gina
Puntero a tabla de segmentos
Programa Mecanismo de segmentación Memoria principal
Desplaza-miento
+
Dirección real
desp
.
N.º pag.
N.º
pág
.
Tabla de página
+
Mecanismo de paginación
N.º marcoDesplaza-
miento
![Page 82: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/82.jpg)
Alejandro Calderón Mateos
Virtual Memory
� Paging
� Segmentation
� Segmentation w. paging
ARCOS @ UC3M82
N.º
seg
men
to
N.º seg.
base
Virtual address
Segment Table
segm
ento
Puntero a tabla de segmentos
Programa Mecanismo de segmentación Memoria principal
Desplaza-miento (d)
base + d
+
Dirección real
long.
d
+
N.º
pág
ina
N.º pág.
N.º marco
Virtual address
Registro
Page TableFrame
depágina
Puntero a tabla de páginas
Programa Mecanismo de paginación Memoria principal
Offs
et
Desplaza-miento
N.º marcoDesplaza-
miento
+
Dirección real
N.º
seg
men
to
N.º seg.
Virtual address
Tabla de segmentos
Fra
me
depá
gina
Puntero a tabla de segmentos
Programa Mecanismo de segmentación Memoria principal
Desplaza-miento
+
Dirección real
desp
.
N.º pag.
N.º
pág
.
Tabla de página
+
Mecanismo de paginación
N.º marcoDesplaza-
miento
![Page 83: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/83.jpg)
83
Virtual address
011010001001010
32 bits
Example
Physical address
1111100100000
22 bits
Secondary memory
ARCOS @ UC3M
![Page 84: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/84.jpg)
84
Virtual address
011010001001010
32 bits
Example
Physical address
1111100100000
22 bits
Divided into equal sized blocks -> pages
Secondary memory
ARCOS @ UC3M
![Page 85: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/85.jpg)
85
Virtual address
Example
Physical address
1111100100000
22 bits
Divided into equal sized blocks -> pages
Page ID Offset
12 bits20 bits
Page ID
ARCOS @ UC3M
![Page 86: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/86.jpg)
86
Virtual address
Example
Physical address
Divided into equal sized blocks -> pages
Page ID Offset
12 bits20 bits
Frame Offset
12 bits10 bits
Page ID
Frame
ARCOS @ UC3M
![Page 87: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/87.jpg)
87
Virtual address
Example
Physical address
Translation from Page ID to Frame -> Page Table
Page ID Offset
12 bits20 bits
Frame Offset
12 bits10 bits
Page Table
Page ID
Frame
ARCOS @ UC3M
![Page 88: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/88.jpg)
88
Virtual address
Example
Physical address
Page ID Offset
12 bits20 bits
Frame Offset
12 bits10 bits
P M + control bits Frame ID
Page Table
… …
Translation from Page ID to Frame -> Page Table
Page ID
Frame
ARCOS @ UC3M
![Page 89: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/89.jpg)
89
Virtual address
Example
Physical address
Page ID Offset
12 bits20 bits
Frame Offset
12 bits10 bits
1 M + control bits Frame ID
Page Table
… …
Page ID
Frame
09
10
11
10
ARCOS @ UC3M
![Page 90: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/90.jpg)
90
Virtual address
Example
Physical address
Page ID Offset
12 bits20 bits
Frame Offset
12 bits10 bits
0 M + control bits Frame ID
Page Table
… …
Frame
Secondary memory
Swap space
09
10
11
10Page ID
ARCOS @ UC3M
![Page 91: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/91.jpg)
Alejandro Calderón Mateos
Virtual Memory
� Paging
� Segmentation
� Segmentation w. paging
ARCOS @ UC3M91
N.º
seg
men
to
N.º seg.
base
Virtual address
Segment Table
segm
ento
Puntero a tabla de segmentos
Programa Mecanismo de segmentación Memoria principal
Desplaza-miento (d)
base + d
+
Dirección real
long.
d
+
N.º
pág
ina
N.º pág.
N.º marco
Virtual address
Registro
Page TableFrame
depágina
Puntero a tabla de páginas
Programa Mecanismo de paginación Memoria principal
Offs
et
Desplaza-miento
N.º marcoDesplaza-
miento
+
Dirección real
N.º
seg
men
to
N.º seg.
Virtual address
Tabla de segmentos
Fra
me
depá
gina
Puntero a tabla de segmentos
Programa Mecanismo de segmentación Memoria principal
Desplaza-miento
+
Dirección real
desp
.
N.º pag.
N.º
pág
.
Tabla de página
+
Mecanismo de paginación
N.º marcoDesplaza-
miento
![Page 92: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/92.jpg)
92
Virtual address
011010001001010
32 bits
Example
Physical address
1111100100000
24 bits
ARCOS @ UC3M
![Page 93: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/93.jpg)
93
Virtual address
011010001001010
32 bits
Example
Physical address
1111100100000
24 bits
Variable sized regions -> segments
ARCOS @ UC3M
Paging uses fixed sizedregions (pages)
![Page 94: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/94.jpg)
94
Virtual address
Example
Physical address
1111100100000
24 bitsSegment ID Offset
16 bits16 bits
Variable sized regions -> segments
ARCOS @ UC3M
![Page 95: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/95.jpg)
95
Virtual address
Example
Physical address
Segment ID Offset
16 bits16 bits
Base Offset
16 bits8 bits
Variable sized regions -> segments
ARCOS @ UC3M
![Page 96: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/96.jpg)
96
Virtual address
Example
Physical address
Segment ID Offset
16 bits16 bits
Base Offset
16 bits8 bits
Translation from V.M. to P.M. -> segment table
Segment Table
Segment ID
Base
ARCOS @ UC3M
![Page 97: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/97.jpg)
97
Virtual address
Example
Physical address
Segment ID Offset
16 bits16 bits
Base Offset
16 bits8 bits
Translation from V.M. to P.M. -> segment table
Segment Table
Segment ID
Base
P M + bits
… …
Length Base
ARCOS @ UC3M
![Page 98: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/98.jpg)
98
Virtual address
Example
Physical address
Segment ID Offset
16 bits16 bits
Base Offset
16 bits8 bits
Segment Table
Segment ID
Base
1 M + bits
… …
Length Base
ARCOS @ UC3M
![Page 99: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/99.jpg)
99
Virtual address
Example
Physical address
Segment ID Offset
16 bits16 bits
Base Offset
16 bits8 bits
Segment Table
Segment ID
Base
0 M + bits
… …
Length Base
ARCOS @ UC3M
Swap space
![Page 100: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/100.jpg)
Alejandro Calderón Mateos
Virtual Memory
� Paging
� Segmentation
� Segmentation w. paging
ARCOS @ UC3M100
N.º
seg
men
to
N.º seg.
base
Virtual address
Segment Table
segm
ento
Puntero a tabla de segmentos
Programa Mecanismo de segmentación Memoria principal
Desplaza-miento (d)
base + d
+
Dirección real
long.
d
+
N.º
pág
ina
N.º pág.
N.º marco
Virtual address
Registro
Page TableFrame
depágina
Puntero a tabla de páginas
Programa Mecanismo de paginación Memoria principal
Offs
et
Desplaza-miento
N.º marcoDesplaza-
miento
+
Dirección real
N.º
seg
men
to
N.º seg.
Virtual address
Tabla de segmentos
Fra
me
depá
gina
Puntero a tabla de segmentos
Programa Mecanismo de segmentación Memoria principal
Desplaza-miento
+
Dirección real
desp
.
N.º pag.
N.º
pág
.
Tabla de página
+
Mecanismo de paginación
N.º marcoDesplaza-
miento
![Page 101: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/101.jpg)
Alejandro Calderón Mateos
Virtual Memory: segmentation with paging
ARCOS @ UC3M101
� An entry of the segment table “points to” a page table associated with the segment.
� The variable sized segments are build up from fixed sized pages.
![Page 102: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/102.jpg)
Alejandro Calderón Mateos
Address translationsegmentation with paging
ARCOS @ UC3M102
Seg
men
tID
Seg. ID
Virtual address
Segment Table
Pag
e fr
ame
Segment tablepointer
Process Segmentation Main Memory
Offset
+
Physical address
offs
et
Pag. ID
Pag
e ID
Page Table
+
Paging
Frame ID Offset
![Page 103: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/103.jpg)
Alejandro Calderón Mateos
Virtual Memory:
segmentation with paging
ARCOS @ UC3M103
� An entry of the segment table “points to” a page table associated with the segment.
� The variable sized segments are build up from fixed sized pages.
� Best from both worlds:
� Segmentation:
� It facilitates memory regions management
� It avoids the inner framentation (it has outter one)
� Paging:
� It optimizes the secondary memory access
� It avoids the outter fragmentation (it has inner one)
inner
outter
![Page 104: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/104.jpg)
Alejandro Calderón Mateos
Virtual Memorysummary
� Paging
� Segmentation
� Segmentation w. paging
ARCOS @ UC3M104
N.º
seg
men
to
N.º seg.
base
Virtual address
Segment Table
segm
ento
Puntero a tabla de segmentos
Programa Mecanismo de segmentación Memoria principal
Desplaza-miento (d)
base + d
+
Dirección real
long.
d
+
N.º
pág
ina
N.º pág.
N.º marco
Virtual address
Registro
Page TableFrame
depágina
Puntero a tabla de páginas
Programa Mecanismo de paginación Memoria principal
Offs
et
Desplaza-miento
N.º marcoDesplaza-
miento
+
Dirección real
N.º
seg
men
to
N.º seg.
Virtual address
Tabla de segmentos
Fra
me
depá
gina
Puntero a tabla de segmentos
Programa Mecanismo de segmentación Memoria principal
Desplaza-miento
+
Dirección real
desp
.
N.º pag.
N.º
pág
.
Tabla de página
+
Mecanismo de paginación
N.º marcoDesplaza-
miento
![Page 105: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/105.jpg)
Alejandro Calderón Mateos
Memory managementadvanced aspects
ARCOS @ UC3M105
M. virtualM. principal M. secundaria
Dirección
virtual
MMU
1
2
3a 3b
� TLB
� Multi-level tables
![Page 106: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/106.jpg)
Alejandro Calderón Mateos
Translatation cache
ARCOS @ UC3M106
� Virtual memory based on page tables:
� Problem: two access to memory (slow)
� To the segment/paging table + to the data/instruction itself
� Solution: TLB
� Translation cache
� TLB (Translation Lookaside Buffer)
� Associative Cache Memory that stores the page table entries most used recently.
� It is used to speedup the search stage
![Page 107: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/107.jpg)
Alejandro Calderón Mateos
Address translation (with TLB)
ARCOS @ UC3M107
Page ID Offset
Main Memory Second. Memory
Page loads
Frame ID Offset
Physical address
Offset
TLB Miss
TLB hit
Virtual address
Page Table
Page fault
![Page 108: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/108.jpg)
Alejandro Calderón Mateos
Multilevel paging
ARCOS @ UC3M108
� Virtual memory based on page tables:
� Problem: amount of memory needed for all tables
� E.g.: 4KB pages, 32 bits v. address, and 4 bytes per entry: 220 * 4 = 4MB per process
� Solution: multilevel tables
� Multi-level table
� Two level translation scheme:
� The first level page table is always in main memory
� Only the second level page tables needed are in main memory
� More compact tables: 210 * 4 = 4KB per table
![Page 109: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/109.jpg)
Alejandro Calderón Mateos
Multi-level table
ARCOS @ UC3M109
P.T.
ID
Level
Virtual address
Page table(level 1)
Pag
e F
ram
e
P.T. Base register
Process Main memory
Offset
+
Physical address
offs
et
level2
Pag
e ID
Page table(level 2)
+
Multilevel paging
Frame ID Offset
![Page 110: L6a: Introduction to memory management (v2f)](https://reader030.fdocuments.us/reader030/viewer/2022011721/58a952f61a28ab77408b521f/html5/thumbnails/110.jpg)
Lesson 6 (a)Memory management
Operating System Design
Bachelor in Informatics Engineering
ARCOS Group
Universidad Carlos III de Madrid