Está en la página 1de 72

Instituto Tecnolgico de Roque

Carrera: TIC's 6 A Materia: Sistemas Operativos 1 Tema:Memoria Virtual Integrantes: Adrin Olivares Arreola. Gaspar Reyes Sanchez. Jorge Israel Tapia Hernndez. Salvador Guerrero Hernndez. Vicente Prez Palma.

Memoria virtual

Memoria virtual: Definicin


La memoria virtual es una tcnica para proporcionar la simulacindeunespacio dememoria mucho mayor que la memoria fsica de una mquina. Esta "ilusin" permite que los programas se hagan sin tener en cuenta el tamao exacto de la memoria fsica.

Memoria Virtual: Caractersticas


Se considera como una memoria secundaria, esta localizada en un espacio de disco con compartimiento de memoria. Su principal funcin es intercambiar procesos con la memoria principal. A la memoria virtual llegan aquellos procesos que han sido bloqueados por algn recurso, donde los procesos cambian a un estado de suspensin.

Los procesos pueden dividirse ya sea en fragmentos o segmentos para su ejecucin La memoria principal solo usara los fragmentos de procesos que utilice para la ejecucin del procesos como tal.

Memoria Virtual: Funcionamiento


Debido a que slo la parte de memoria virtual que est almacenada en la memoria principal, es accesible a la CPU, segn un programa va ejecutndose, la proximidad de referencias a memoria cambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginacin).

En la memoria slo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener ms procesos en la memoria. La memoria virtual tambin simplifica la carga del programa para su ejecucin llamado reubicacin, este procedimiento permite que el mismo programa se ejecute en cualquier posicin de la memoria fsica.ms procesos en la memoria.

En un estado estable, prcticamente toda la memoria principal estar ocupada con fragmentos de procesos, por lo que el procesador y el S.O tendrn acceso directo a la mayor cantidad de procesos posibles, y cuando el S.O traiga a la memoria un fragmento, deber expulsar otro.

Memoria Virtual: Desventajas


Demasiados intercambios de fragmentos conducen a lo que se conoce comohiperpaginacin: Donde el procesador consume ms tiempo intercambiando fragmentos que ejecutando instrucciones de usuario.

Hiperpaginacin: Solucin
Para evitarlo el S.O intenta adivinar, en funcin de la historia reciente, qu fragmentos se usarn con menor probabilidad en un futuro prximo.

Estos parmetros los describe el principio de cercana: afirma que las referencias a los datos y el programa dentro de un proceso tienden a agruparse.

En perodos cortos de tiempo, se necesitarn slo unos pocos fragmentos de un proceso.

Memoria Virtual: Efectividad


Para que la memoria virtual sea prctica y efectiva, se necesitan dos ingredientes. Primero, tiene que existir un soporte de hardware y, en segundo lugar, el S.O debe incluir un software para gestionar el movimiento de pginas o segmentos entre memoria secundaria y memoria principal.

Justo despus de obtener la direccin fsica y antes de consultar el dato en memoria principal se busca en memoria-cache, si esta entre los datos recientemente usados la bsqueda tendr xito, pero si falla, lamemoria virtualconsulta memoria principal , ,en el peor de los casos se consulta de disco (swapping).

Mtodos de manejo de memoria


1.- Paginacin 2.- Segmentacin 3.- Paginacin y Segmentacin

Paginacin

Paginacin: Introduccin.
El termino memoria virtual se asocia normalmente con sistemas que emplean paginacin, aunque tambin se puede usar memoria virtual basada en la segmentacin. El uso de la paginacin en la memoria virtual fue presentado por primera vez en el computador Atlas.

Paginacin: Definicin.

La paginacin es una estrategia de organizacin de la memoria similar a la segmentacin pero con ciertas diferencias, por ejemplo la memoria se considera un espacio continuo dividido en porciones de igual tamao fijo (frente a la divisin en segmentos de tamao variable de la segmentacin), a dichas porciones se las conoce como marcos de pgina o simplemente como pginas. Las pginas estn definidas por un nmero de pgina, que identifica de forma nica a cada pgina (dentro del espacio de memoria de un proceso). Cada pgina se asigna en exclusividad a un proceso.

Paginacin: Funcionamiento.
Cada proceso tiene su propia tabla de paginas y cuando carga todas sus paginas en la o memoria principal. Puesto que solo algunas de las pginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la pagina perteneciente esta presente en la memoria principal o no. Si el bit indica que la pagina esta en la memoria, la entrada incluye tambin el nmero de marco para esa pagina.

Otro bit de control necesario en la entrada de la tabla de pginas es el bit de modificacin (M), para indicar si el contenido de la pgina correspondiente se ha alterado desde que la pgina se cargo en la memoria principal. Si no ha habido cambios, no es necesario escribir la pgina cuando sea sustituida en el marco que ocupa actualmente.

Estructura de la tabla de pginas


Con la memoria virtual, la CPU produce direcciones virtuales que son traducidas por una combinacin de hardware y software a direcciones fsicas, pues pueden ser utilizadas para acceder a memoria principal. Este proceso se denomina correspondencia de memoria o traduccin de direcciones.

Actualmente los dos niveles de la jerarqua de memoria controlados por la memoria virtual son las DRAM y los Discos magnticos. Puesto que la tabla de pginas es de longitud variable, en funcin del tamao del proceso, no es posible suponer que quepa en los registros.

La figura anterior sugiere una implementacin en hardware de este esquema. Cuando se est ejecutando un proceso en particular, la direccin de comienzo de la tabla de pginas para este proceso se mantiene en un registro. El nmero de pgina de la direccin virtual se emplea como ndice en esta tabla para buscar el nmero de marco correspondiente. Este se combina con la parte de desplazamiento de la direccin virtual para generar la direccin real deseada.

Cuando un proceso se est ejecutando, al menos una parte de su tabla de pginas debe estar en la memoria principal, incluyendo la entrada de la tabla de pginas para la pgina actualmente en ejecucin.

Algunos procesadores usan un esquema de dos niveles para organizar grandes tablas de pginas, donde hay un directorio de pginas en el que cada entrada seala a una tabla de pginas. As pues, si la longitud del directorio de pginas es X, y la longitud mxima de una tabla de pginas es Y, un proceso puede estar formado por hasta X x Y pginas. Normalmente, la longitud mxima de una tabla de pginas est limitada a una pgina.

Buffer de Traduccin Adelantada


Cada referencia a la memoria virtual puede generar dos accesos a la memoria: uno para obtener la entradade la tabla de pginas correspondientes y otro para obtener el dato deseado.

Un esquema sencillo de memoria virtual podra tener el efecto de doblar el tiempo de acceso a la memoria. Para solucionar este problema, la mayora de los esquemas de memoria virtual hacen uso de una cache especial para las entradas de la tabla de pginas, llamada generalmentebuffer de traduccin adelantada que contiene aquellas entradas de la tabla de pginas usadas hace menos tiempo.

Dada una direccin virtual, el procesador examinar primero la TLB. Si la entrada de la tabla de pginas buscada est presente se obtiene el nmero de marco y se forma la direccin real. Si no se encuentra, el procesador emplea el nmero de pgina como ndice para buscar en la tabla de pginas del proceso y examinar la entrada correspondiente de la tabla de pginas.

Si no se encuentra activo el bit de presencia, es que la pgina est en la memoria principal y el procesador puede obtener el nmero de marco de la entrada de la tabla de pginas para formar la direccin real. El procesador, adems, actualiza la TLB para incluir esta nueva entrada de la tabla de pginas. Si el bit de presencia no est activo, es que la pgina buscada no est en la memoria principal y se produce un fallo en el acceso a la memoria, llamado fallo de pgina.

Existe una serie de detalles adicionales sobre la organizacin real de la TLB. Puesto que la TLB contiene slo algunas de las entradas de la tabla de pginas completa, no se puede indexar simplemente la TLB por el nmero de pginas.

Cada entrada debe incluir el nmero de pgina, adems de la entrada completa a la tabla de pginas. El procesador estar equipado con un hardware que permita consultar simultneamente varias entradas de la TLB para determinar si hay coincidencia en el nmero de pgina. Esta tcnica se denomina correspondencia asociativa y contrasta con la correspondencia directa, que se emplea para buscar en la tabla de pginas de la figura de Bsqueda directa y asociativa.

El diseador de la TLB tambin debe considerar la forma en que se organiza las entradas en la TLB y que entrada reemplazar cuando se introduce una nueva.

Esquema de Correspondencia Directa

Esquema de Correspondencia Asociativa

Por ltimo, el mecanismo de la memoria virtual debe interactuar con el sistema de cache de la memoria principal. La de traduccin con buffer ilustra esta interaccin. Una direccin virtual estar formada por el nmero de pgina ms el desplazamiento. Una vez que se ha generado la direccin real, que est en forma de etiqueta(formada por los bits ms significativos de la direccin real) y un resto, se consulta la cache para ver si est presente el bloque que contiene dicha palabra. Si lo est, es devuelto a la CPU. Si no, se toma la palabra de la memoria principal.

Tamao de Pagina
Hay varios factores que considerar. Uno es la fragmentacin interna. Sin duda, cuanto menor sea el tamao de pgina, menor ser la cantidad de fragmentacin interna. Para optimizar el uso de la memoria principal, es positivo reducir la fragmentacin interna.

Por otro lado, cuanto menor sea la pgina, mayor ser el nmero de pginas que se necesitan por proceso. Un nmero mayor de pginas por proceso significa que las tablas de pginas que se necesitan por proceso sern mayores. As pues, pueden suceder dos fallos de pgina para una nica referencia a la memoria: primero, para traer la parte necesaria de la tabla de pginas y, segundo, para traer la pgina del proceso.

Segmentacin

Segmentacin
La segmentacin es un esquema de administracin de memoria y se referencia a la divisin de un programa o una aplicacin en segmentos, bloques con una longitud desigual o variable. Estas divisiones tambin pueden presentar longitudes dinmicas, al igual que en una pagina el segmento contiene una direccin virtual

Cada segmento tiene informacin lgica del programa. Las direcciones especifican el nombre del segmento y el desplazamiento dentro de l, de manera que el usuario especifica cada direccin con dos cantidades: el nombre del segmento y un desplazamiento.

Segmentacin: Ventajas
El programador puede conocer las unidades lgicas de su programa dndoles un tratamiento particular Es fcil compartir los segmentos Es posible que los segmentos crezcan dinmicamente segn las necesidades del programa en ejecucin La segmentacin tambin facilita el uso deprocedimientosodatoscompartidos entre varios procesos.

Si el programador no conoce que tan larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandir o reducir el segmento cuando se necesite.

Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volvera montar el conjunto de programas por completo.

Segmentacin: Desventajas
Hay un incremento en los costos del software y del hardware, as como un mayor consumo de recursos como: memoria, tiempo de cpu, etc. Debido a que los segmentos tiene longitud variable se pueden presentar problemas de fragmentacin externa

Sistema de paginacin / segmentacin

La paginacin y la segmentacin puras son mtodos de manejo de memoria bastante efectivos, aunque la mayora de los sistemas operativos modernos implantan esquemas combinados, es decir, combinan la paginacin y la segmentacin.

La idea de combinar estos esquemas se debe a que de esta forma se aprovechan los conceptos de la divisin lgica de los programas (segmentos) con la granularidad de las pginas. De esta forma, un proceso estar repartido en la memoria real en pequeas unidades (paginas) cuya liga son los segmentos. Tambin es factible as el compartir segmentos a medida que las partes necesitadas de los mismos se van reverenciando (paginas).

Para la paginacin y segmentacin puras se puede decir que el direccionamiento es `bidimensional' porque se necesitan dos valores para hallar la direccin real. Para el caso combinado, se puede decir que se tiene un direccionamiento `tridimensional'.

En un sistema con paginacin y segmentacin combinadas, el espacio de direcciones de un usuario se divide en varios segmentos segn el criterio del programador. Cada segmento se vuelve a dividir en varias pginas de tamao fijo, que tienen la misma longitud que un marco de memoria principal. Si el segmento tiene menor longitud que la pgina, el segmento ocupar slo una pgina.

Desde el punto de vista del programador, una direccin lgica todava est formada por un nmero de segmento y un desplazamiento en el segmento. Desde el punto de vista de sistema, el desplazamiento del segmento se ve como un nmero de pgina dentro del segmento y un desplazamiento dentro de la pgina

La entrada de la tabla de segmentos contiene la longitud del segmento. Los bits de presencia y modificacin no son necesarios, puesto que estos elementos se gestionan en la pgina. Pueden usarse otros bits de control para comparticin y proteccin. La entrada de la tabla de pginas es, la misma que se usa en un sistema de paginacin pura. Cada nmero de pgina se convierte en el nmero de marco correspondiente si la pgina est presente en la memoria. El bit de modificacin indica si se necesita escribir la pgina en el disco cuando se asigna el marco a otra pgina.

Se usan ms comnmente dos estrategias: cargado de pginas por demanda y cargado de pginas anticipada. La estrategia de cargado por demanda consiste en que las pginas solamente son llevadas a RAM si fueron solicitadas, es decir, si se hizo referencia a una direccin que cae dentro de ellas.

La carga anticipada consiste en tratar de adivinar que paginas sern solicitadas en el futuro inmediato y cargarlas de antemano, para que cuando se pidan ya no ocurran fallos de pagina.

Ventajas

Se garantiza la facilidad de implantar la comparticin y enlaces. Se simplifican almacenamiento. las estrategias de

Se elimina el problema de la fragmentacin externa y la necesidad de compactacin.

Desventajas

Las tres componentes de la direccin y el proceso de formacin de direcciones hace que se incremente el costo de su implementacin. El costo es mayor que en el caso de de segmentacin pura o paginacin pura. Se hace necesario mantener un nmero mayor de tablas en memoria, lo que implica un mayor costo de almacenamiento. Sigue existiendo el problema de fragmentacin interna de todas o casi todas las pginas finales de cada uno de los segmentos. Bajo paginacin pura se desperdician solo la ltima pgina asignada, mientras que bajo segmentacin paginada el desperdicio puede ocurrir en todos los segmentos asignados

Proteccin y Comportamiento

Proteccin
Los mecanismos funcionan dentro de una tarea: para proteger al propio sistema operativo de la intrusin por parte de esa tarea, y al uso de registrosespeciales del procesador e instrucciones reservadas nicamente al sistema operativo. Slo un proceso kernel puede controlar y acceder cualquier espacio de direccionamiento.

Compartimiento en un Paginacin / Segmentacin

Sistema

de

Se implementa disponiendo entradas en tablas de mapa de segmentos para diferentes procesos que apunten a la misma tabla de mapa de pginas. Requiere una administracin cuidadosa por parte del S.O., ya sea en sistemas de paginacin, segmentacin o paginacin/segmentacin, pues se debe considerar que sucedera si una nueva pgina reemplazara otra pgina compartida por muchos procesos.

Compartimiento en un Sistema de Paginacin


Para optimizar el uso de memoria real se comparten las paginas que pueden ser compartidas:

El compartimiento debe ser cuidadosamente controlado para evitar que un proceso modifique datos que otro proceso esta leyendo. Los programas se encuentran divididas en reas separadas de procedimiento y datos.

Los procedimientos no modificables procedimientos puros reentrantes.

se

llaman

Los datos y procedimientos modificables no pueden ser compartidos.

Se debe identificar cada pagina como compartible o no. Habr marcos de paginas compartidos por varios procesos.

El compartimiento reduce la cantidad de almacenamiento primario necesario para la ejecucin eficaz de un grupo de procesos. Puede hacer posible que un sistema determinado mantenga una cantidad mayor de usuarios (procesos).

Compartimiento en un sistema de segmentacin


En un sistema de segmentacin, una vez que un segmento ha sido declarado como compartido, entonces las estructuras que lo integran pueden cambiar de tamao. Lo anterior no cambia el hecho lgico de que residen en un segmento compartido. Dos procesos pueden compartir un segmento con solo tener entradas en sus tablas generales que apunten al mismo segmento del almacenamiento primario.

Gracias por su atencin

También podría gustarte