Subido por Marilyn SC

S13.PRE01 - Memoria Virtual

Anuncio
7/14/2019
Sistemas Operativos
Memoria Virtual
Ing. Heiner López Sandoval
hlopezs@esan.edu.pe
01
Memoria virtual: antecedentes
• Hace muchos años aparecieron los primeros programas que
eran demasiado grandes para ser contenidos en la memoria
disponible.
• Solución: Se dividía el programa en fragmentos, llamados
superposiciones (overlays)
• La superposición 0 se ejecuta primero, al terminar invocaría
a otra
• Sistemas complejos permitían varias superposiciones
• El sistema operativo intercambiaba las superposiciones
entre disco y la memoria, en forma dinámica, según se les
necesitaba
• Alta carga de trabajo complejo para el programador al
dividir en partes un programa. Automatizar el proceso: que
lo realice la computadora
• Método ideado por Fotheringham (1961) conocido como
Memoria Virtual: El sistema mantiene en la memoria
principal las partes del programa que se están usando en
ese momento y el resto en disco.
pdfMachine
Is a pdf writer that produces quality PDF files with ease!
Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across
nearly all Windows platforms, if you can print from a windows application you can use pdfMachine.
Get yours now!
1
7/14/2019
02
•
•
•
•
•
Paginación
La mayoría de los sistemas con
memoria virtual utiliza una técnica
llamada: Paginación
El tamaño combinado del programa,
sus datos y su pila podrán exceder la
cantidad de memoria física que se le
puede asignar
No maneja al programa como
unidad integral sino por “paginas”
Por ejemplo, un programa de 16MB
puede ejecutarse en una máquina de
4MB si se escoge con cuidado con
cuidado cuáles 4MB se tendrían en
memoria en cada instante
Para
el
proceso
esto
es
“transparente”.
03
Limitaciones del intercambio
• Tanto las particiones de tamaño fijo como las de
tamaño variable hacen un uso ineficiente de la
memoria: fragmentación
• Solución: La memoria principal se encontrará dividida
en “trozos” o fragmentos iguales de tamaño fijo,
relativamente pequeños; así mismo cada proceso esta
dividido en pequeños trozos de tamaño fijo y del
mismo tamaño que los de memoria
• Los trozos del proceso se denominarán Páginas, y
podrán asignarse a los trozos libres de memoria, que
se denominarán Marcos
• El espacio desaprovechado en la memoria para cada
proceso por fragmentación interna consta sólo de una
fracción de la última página del proceso
• No hay fragmentación externa
pdfMachine
Is a pdf writer that produces quality PDF files with ease!
Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across
nearly all Windows platforms, if you can print from a windows application you can use pdfMachine.
Get yours now!
2
7/14/2019
04
Asignación de páginas
MEM Principal
# de marco
16 marcos
libres
Carga de C
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
A .0
A .1
A .2
A .3
0
1
2
3
4
5
Descarga de B
6
7
8
9
10
11
12
13
14
15
A .0
A .1
A .2
A .3
Carga de A
A .0
A .1
A .2
A .3
B .0
B .1
B .2
C .0
C .1
C .2
C .3
05
Carga de B
Carga de D
C .0
C .1
C .2
C .3
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
A .0
A .1
A .2
A .3
B .0
B .1
B .2
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
A .0
A .1
A .2
A .3
D .0
D .1
D .2
C .0
C .1
C .2
C .3
D .3
D .4
Tablas de páginas
•
•
•
•
•
•
•
Respuesta del mecanismo de paginación ante la
imposibilidad de gestionar los marcos sólo con un
“registro base” cuando se quiere aprovechar marcos no
contiguos.
El sistema operativo mantiene una Tabla de Páginas para
cada proceso
Esta muestra la posición del marco de cada página del
proceso
Dentro del programa, cada dirección lógica constará de
un número de página y de un desplazamiento dentro de
la página
En partición simple, una dirección lógica es la posición de
una palabra relativa al comienzo del programa
Con paginación, el HW del CPU también realiza la
traducción de direcciones “lógicas” a “físicas”
Dada una dirección lógica (número de página,
desplazamiento), el CPU emplea la tabla de páginas para
obtener una dirección física (número de marco,
desplazamiento)
pdfMachine
Is a pdf writer that produces quality PDF files with ease!
Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across
nearly all Windows platforms, if you can print from a windows application you can use pdfMachine.
Get yours now!
3
7/14/2019
05
Tablas de páginas
Dirección
física
Dirección
lógica
CPU
p
d
f
d
p
Memoria
Página
(virtual)
f
Página
(física)
-marco-
desplazamiento
Tabla de páginas
05
0
Tablas de páginas
Estructuras de datos
• Cada tabla de páginas contiene una entrada por cada página del proceso.
• La tabla se indexa por número de página (comenzando en la página 0)
• En cada entrada de la tabla de páginas se encuentra el número de marco de
la memoria principal (si lo hay), que alberga la página correspondiente
• El sistema operativo mantiene también, una lista de marcos libres
Tablas
de
Páginas
de
Procesos
0
1
2
3
0
1
2
3
Marcos
para
Proceso A
0
1
2
0
1
2
3
7
8
9
10
Marcos
para
Proceso C
0
1
2
3
4
4
5
6
11
12
13
14
15
Marcos
para
Proceso D
pdfMachine
Is a pdf writer that produces quality PDF files with ease!
Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across
nearly all Windows platforms, if you can print from a windows application you can use pdfMachine.
Get yours now!
4
7/14/2019
05
Tablas de páginas
Características de las tablas
•
•
•
•
•
Para aplicar convenientemente la paginación, el tamaño
de la página, y el tamaño del marco, deben ser una
potencia de 2.
La dirección relativa, definida con relación al origen del
programa, y la dirección lógica, expresada como un
número de página y un desplazamiento son las mismas
Por ejemplo, en un esquema de paginación, donde se
emplea direcciones de 16 bits y el tamaño de la página es
1K=1024 Bytes  La dirección relativa 1502 es
0000010111011110.
Con un tamaño de página de 1K, se necesitan 10 bits para
el campo de desplazamiento, dejando 6 bits para la página
La dirección relativa 1502 se corresponde con un
desplazamiento de 478 (0111011110) en la página 1
(000001), lo genera un número de 16 bits
000001|0111011110
06
Direcciones Lógicas
Tamaño de Página = 1K
Dirección relativa = 1502
Dirección Lógica=
Nro. de página=1, Desp.=478
0000010111011110
478
Página 0
Fragmentación
Interna
Página 1
Página 2
Proceso de Usuario
2700 Bytes
000001 0111011110
pdfMachine
Is a pdf writer that produces quality PDF files with ease!
Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across
nearly all Windows platforms, if you can print from a windows application you can use pdfMachine.
Get yours now!
5
7/14/2019
06
Direcciones Lógicas
Traducción de direcciones
• Para la traducción de direcciones hay que seguir los siguientes pasos:
► Extraer el número de página de los “n” bits más significativos de la
dirección lógica
► Emplear el número de página como índice en la tabla de páginas del
proceso para encontrar el número de marco k.
► El comienzo de la dirección física del marco es k x 2m y la dirección
física del byte referenciado es este número más el desplazamiento.
► No hace falta calcular la dirección física, se construye concatenando
el número de marco con el desplazamiento
06
Direcciones Lógicas
Dirección lógica de 16 bits
Nro. de página
Desplazamiento de 10 bits
0000010111011110
Tabla
de
Páginas
del
Proceso
1
0
1
2
000101
000110
011001
3
2
0001100111011110
Dirección física de 16 bits
Marco=6
Desplazamiento=478
pdfMachine
Is a pdf writer that produces quality PDF files with ease!
Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across
nearly all Windows platforms, if you can print from a windows application you can use pdfMachine.
Get yours now!
6
7/14/2019
07
Segmentación
•
•
•
•
•
•
•
07
Otro modo de subdividir un programa es la segmentación
El programa y sus datos asociados se dividen en “segmentos”
No es necesario que todos los segmentos de todos los
programas tengan la misma longitud, existe si una “longitud
máxima”.
Como en paginación una dirección lógica segmentada consta
de 2 partes: número de segmento y desplazamiento
Resulta similar a las particiones dinámicas
Diferencia: Con segmentación un programa puede ocupar
más de una partición y estas no tienen porque estar
contiguas.
Elimina fragmentación interna, si fragmentación externa,
pero esta será menor que en particiones dinámicas.
Segmentación
Direcciones Lógicas en Segmentación
Dirección Lógica=
Nro. de Segmento=1, Desp.=752
752
Segmento 0
750 Bytes
0001 001011110000
Segmento 1
1950 Bytes
• Consecuencia del tamaño desigual de los
segmentos, no hay una correspondencia
simple entre las direcciones lógicas y las
direcciones físicas
• Se tendrá un esquema de segmentación
basado en una tabla de segmentos para cada
proceso y una lista de bloques libres en la
memoria principal
• Cada entrada de la tabla de segmentos tendrá
que contener la dirección de comienzo del
segmento correspondiente en memoria
principal.
• La entrada deberá proporcionar también la
longitud del segmento para garantizar que no
se usan direcciones no validas
pdfMachine
Is a pdf writer that produces quality PDF files with ease!
Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across
nearly all Windows platforms, if you can print from a windows application you can use pdfMachine.
Get yours now!
7
7/14/2019
07
Segmentación
Traducción en segmentación
Dirección lógica de 16 bits
Nro. de segmento
de 4 bits
Desplazamiento de 12 bits
0001001011110000
2
1
Longitud
Base
0 001011101110 0000010000000000
1 011110011110 0010000000100000
+
Tabla de Segmentos del Proceso
3
0010001100010000
Dirección física de 16 bits
Preguntas
pdfMachine
Is a pdf writer that produces quality PDF files with ease!
Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across
nearly all Windows platforms, if you can print from a windows application you can use pdfMachine.
Get yours now!
8
7/14/2019
Muchas gracias por su atención
pdfMachine
Is a pdf writer that produces quality PDF files with ease!
Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across
nearly all Windows platforms, if you can print from a windows application you can use pdfMachine.
Get yours now!
9
Descargar