Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005...

37
Tema 10.3: Asignación de Tema 10.3: Asignación de Espacio Espacio No Contiguo No Contiguo

Transcript of Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005...

Page 1: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: Asignación de EspacioTema 10.3: Asignación de EspacioNo ContiguoNo Contiguo

Page 2: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

SegmentaciónSegmentación

Esquema de gestión de memoria que apoya la visión que el usuario tiene de la memoria

Un programa es una colección de segmentos. Un segmento es una unidad lógica tal como:

programa principal,

procedimiento,

función,

método,

objeto,

variables locales, variables globales,

bloque común,

pila,

tabla de símbolos, arrays

Page 3: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 3 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Programa Visto por un UsuarioPrograma Visto por un Usuario

Page 4: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 4 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Vista Lógica de la SegmentaciónVista Lógica de la Segmentación

1

3

2

4

Espacio de usuario

1

4

2

3

Espacio de memoria física

Page 5: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 5 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Esquema de la Segmentación Esquema de la Segmentación

Una dirección lógica consiste en un par:

<número de segmento, desplazamiento>

Tabla de segmentos – contiene información sobre la ubicación de los segmentos en memoria; cada entrada tiene:

base – contiene la dirección física en la que comienza el segmento

límite – especifica la longitud del segmento

El Registro base de la tabla de segmentos (STBR) apunta a la localización en memoria de la tabla de segmentos

El Registro de longitud de la tabla de segmentos (STLR) indica el número de segmentos usados por un programa;

el número de segmento s es legal si s < STLR

Page 6: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 6 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Hardware de SegmentaciónHardware de Segmentación

Page 7: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 7 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Esquema de la SegmentaciónEsquema de la Segmentación

Protección

En cada entrada de la tabla de segmentos hay:

bit de validez = 0 segmento ilegal

privilegios de lectura/escritura/ejecución

Los bits de protección están asociados con los segmentos; la compartición de código ocurre a nivel de segmento

Ya que los segmentos varían en longitud, la asignación de memoria es un problema de asignación dinámica

Page 8: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 8 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Ejemplo de SegmentaciónEjemplo de Segmentación

Page 9: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 9 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

PaginaciónPaginación

El espacio de direcciones lógicas de un proceso puede ser no contiguo en memoria; así se puede asignar memoria al proceso siempre que haya alguna disponible

Se divide la memoria física en bloques de tamaño fijo llamados marcos (el tamaño es una potencia de 2 entre 512 y 8192 bytes)

Se divide el espacio de direcciones lógicas de los procesos en bloques llamados páginas

Se mantiene una lista con los marcos libres

Para ejecutar un programa de tamaño n páginas, hace falta encontrar n marcos libres y cargar el programa

Se usa una tabla de páginas para transformar las direcciones lógicas en direcciones físicas

En este esquema aparece la fragmentación interna

Page 10: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 10 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Esquema de Traducción de DireccionesEsquema de Traducción de Direcciones

Una dirección generada por un proceso es dividida en:

Página (p) – usado como índice en la tabla de páginas que contiene la dirección base de cada página en memoria física

Desplazamiento (d) – se combina con la dirección base para definir la dirección de memoria física que se envía a la unidad de memoria

Ej.: Dado un espacio de direcciones lógicas de 2m y tamaño de página 2n

número de página desplazamiento

p d

m - n n

Page 11: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 11 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Hardware de PaginaciónHardware de Paginación

Page 12: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 12 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Memoria Física y Lógica en la PaginaciónMemoria Física y Lógica en la Paginación

Page 13: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 13 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Ejemplo de PaginaciónEjemplo de Paginación

Memoria de 32 bytes y páginas de 4 bytes

Page 14: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 14 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Marcos LibresMarcos Libres

Antes de la asignación Después de la asignación

Page 15: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 15 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Implementación de la Tabla de PáginasImplementación de la Tabla de Páginas

La tabla de páginas se mantiene en memoria principal

El registro base de la tabla de páginas (PTBR) apunta al inicio de la tabla de páginas

El registro longitud de la tabla de páginas (PRLR) indica el tamaño de la tabla de páginas

En este esquema cada acceso a dato o instrucción requiere dos accesos a memoria. Uno para la tabla de páginas y otro para obtener el dato o instrucción

Se puede agilizar el proceso usando una pequeña memoria asociativa o TLB (translation look-aside buffer)

Page 16: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 16 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Memoria AsociativaMemoria Asociativa

Memoria asociativa – búsqueda en paralelo

Traducción de direcciones (p, d)

Si p está en un registro asociativo se obtiene el número de marco

Si no, se obtiene el número de marco de la tabla de páginas que está en memoria principal

# Página # Marco

Page 17: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 17 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Hardware de Paginación con TLBHardware de Paginación con TLB

Page 18: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 18 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Tiempo de Acceso EfectivoTiempo de Acceso Efectivo

Búsqueda asociativa = unidades de tiempo

Acceso a memoria = m

Tasa de acierto – probabilidad de encontrar una página en los registros asociativos; este valor depende de las peticiones de páginas y del número de registros asociativos

Tasa de acierto = Tiempo de acceso efectivo (Effective Access Time, EAT)

EAT = (m + ) + (2m + )(1 – )

= 2m – m +

Page 19: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 19 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Protección de la MemoriaProtección de la Memoria

La protección de la memoria se implementa asociando un bit de protección con cada página

Hay un bit de validez en cada entrada de la tabla de páginas:

“válido” indica que la página asociada está en el espacio de direcciones lógico del proceso, y por tanto es legal el acceso

“inválido” indica que la página no está en el espacio de direcciones lógico del proceso

Page 20: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 20 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Bit de Validez en una Tabla de PáginasBit de Validez en una Tabla de Páginas

Page 21: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 21 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Páginas CompartidasPáginas Compartidas

Gracias al uso de la tabla de páginas varios procesos pueden compartir un marco de memoria; para ello ese marco debe estar asociado a una página en la tabla de páginas de cada proceso

El número de página asociado al marco puede ser diferente en cada proceso

Código compartido

Los procesos comparten una copia de código reentrante de sólo lectura (ej., editores de texto, compiladores)

Los datos son privados a cada proceso y se encuentran en páginas no compartidas

Page 22: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 22 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Ejemplo de páginas compartidasEjemplo de páginas compartidas

Page 23: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 23 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Biblioteca Compartida con Memoria VirtualBiblioteca Compartida con Memoria Virtual

Page 24: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 24 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Copia en EscrituraCopia en Escritura

La copia en escritura (Copy-on-Write, COW) permite a los procesos padre e hijo compartir inicialmente las mismas páginas de memoria

Si uno de ellos modifica una página compartida la página es copiada

COW permite crear procesos de forma más eficiente debido a que sólo las páginas modificadas son duplicadas

Page 25: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 25 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

El Proceso 1 Modifica la Página C (Antes)El Proceso 1 Modifica la Página C (Antes)

Page 26: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 26 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

El Proceso 1 Modifica la Página C (Después)El Proceso 1 Modifica la Página C (Después)

Page 27: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 27 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Tabla de Páginas MultinivelTabla de Páginas Multinivel

Divide el espacio de direcciones lógicas en múltiples tablas de páginas

Un ejemplo simple es una tabla de páginas de dos niveles

Page 28: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 28 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Ejemplo de Paginación de Dos NivelesEjemplo de Paginación de Dos Niveles

Una dirección lógica (en una máquina de 32 bits con tamaño de páginas de 4K) se divide en: un número de página de 20 bits un desplazamiento dentro de la página de 12 bits

Ya que la tabla de páginas está paginada y cada entrada de la tabla de páginas ocupa 4 bytes, el número de página es de nuevo dividido en: un número de página de 10 bits un desplazamiento de 10 bits

Por tanto, una dirección lógica tiene el siguiente aspecto:

donde p1 es un índice en la tabla externa y p2 es un desplazamiento en la segunda tabla de páginas

número de página desplazamiento

p1 p2 d

10 10 12

Page 29: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 29 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Esquema de Traducción de DireccionesEsquema de Traducción de Direcciones

Page 30: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 30 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Esquema de Paginación de Tres NivelesEsquema de Paginación de Tres Niveles

Page 31: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 31 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Tabla de Páginas InvertidaTabla de Páginas Invertida

Una entrada por cada marco de memoria

Las entradas contienen la dirección virtual de la página almacenada en el marco con información sobre el proceso que la posee

Disminuye la memoria necesaria para almacenar cada tabla de páginas pero aumenta el tiempo requerido para buscar en la tabla cuando ocurre una referencia a memoria

Solución: usar una tabla hash para limitar la búsqueda a una entrada (o unas pocas como mucho)

Page 32: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 32 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Esquema de la Tabla de Páginas InvertidaEsquema de la Tabla de Páginas Invertida

Page 33: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 33 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Segmentación con PaginaciónSegmentación con Paginación

La paginación y la segmentación se pueden combinar en la segmentación con paginación

En este esquema de gestión de memoria los segmentos se paginan

Se apoya la visión de la memoria que tiene el usuario

Se resuelve el problema de la asignación dinámica

Es necesario una tabla de segmentos y una tabla de páginas por cada segmento

La traducción de direcciones es más compleja y puede requerir un mayor número de accesos a memoria en el peor caso

Page 34: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 34 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Ejemplo: El Intel PentiumEjemplo: El Intel Pentium

Soporta segmentación y segmentación con paginación

El proceso genera una dirección lógica

Se le da a la unidad de segmentación

Que produce una dirección lineal

La dirección lineal pasa a la unidad de paginación

Que genera la dirección física para la memoria principal

Page 35: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 35 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Segmentación del Intel PentiumSegmentación del Intel Pentium

Page 36: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 36 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Esquema de Paginación del PentiumEsquema de Paginación del Pentium

Page 37: Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),

Tema 10.3: 37 Silberschatz, Galvin and Gagne ©2005Fundamentos de los Computadores (ITT, Sist. Electr.), 2005-2006

Direcciones Lineales en LinuxDirecciones Lineales en Linux

Se dividen en cuatro partes (paginación de tres niveles):