7/14/2019 Sistemas Operativos Memoria Virtual Ing. Heiner López Sandoval [email protected] 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