Por: Braulio E. Ramírez
Administracion de Sistemas Informaticos
Sistemas Operativos
Carolina Garzon
Bogotá 26 octubre 2010
Memoria Virtual (Concepto)
 La Memoria virtual es un concepto
que permite al software usar más
memoria principal que la q...
Operación Básica
 Cuando se usa Memoria Virtual, o cuando una dirección es leída o escrita
por la CPU, una parte del hard...
Fragmentación

 La fragmentación es la memoria que queda
desperdiciada al usar los métodos de gestión
de memoria que se ...
Paginación
 Es una técnica de manejo de memoria, en la cual el
espacio de memoria se divide en secciones físicas de
igual...
Tabla de paginación
Cada página tiene un número que se utiliza como índice en
la tabla de páginas, lo que da por resultado...
El espacio de direcciones lógico de un proceso puede ser no contiguo.
Se divide la memoria física en bloques de tamaño fij...
Segmentación
 Es un esquema de manejo de memoria mediante el cual la
estructura del programa refleja su división lógica;
...
Segmentación Paginada
 Paginación y segmentación son técnicas diferentes, cada una
de las cuales busca brindar las ventaj...
Memoria virtual(Braulio E.Ramirez)
Próxima SlideShare
Cargando en…5
×

Memoria virtual(Braulio E.Ramirez)

1.197 visualizaciones

Publicado el

Presentacion en Power por Braulio E Ramirez

Publicado en: Educación, Tecnología
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.197
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
47
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Memoria virtual(Braulio E.Ramirez)

  1. 1. Por: Braulio E. Ramírez Administracion de Sistemas Informaticos Sistemas Operativos Carolina Garzon Bogotá 26 octubre 2010
  2. 2. Memoria Virtual (Concepto)  La Memoria virtual es un concepto que permite al software usar más memoria principal que la que realmente posee el computador. La mayoría de los computadores tienen cuatro tipos de memoria: registros en la CPU, la memoria cache (tanto dentro como fuera del CPU), la memoria física (generalmente en forma de RAM, donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro que es mucho más lento, pero también más grande y barato.
  3. 3. Operación Básica  Cuando se usa Memoria Virtual, o cuando una dirección es leída o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software (direcciones virtuales) en: La dirección real de memoria (la dirección de memoria física), o una indicación de que la dirección de memoria deseada no se encuentra en memoria principal (llamado excepción de memoria virtual)  En el primer caso, la referencia a la memoria es completada, como si la memoria virtual no hubiera estado involucrada: el software accede donde debía y sigue ejecutando normalmente. En el segundo caso, el sistema operativo es invocado para manejar la situación y permitir que el programa siga ejecutando o aborte según sea el caso. La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una máquina. Esta "ilusión" permite que los programas se ejecuten sin tener en cuenta el tamaño exacto de la memoria física.  La ilusión de la memoria virtual está soportada por el mecanismo de traducción de memoria, junto con una gran cantidad de almacenamiento rápido en disco duro. Así en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña parte de él, está en memoria real y el resto almacenado en el disco, y puede ser referenciado fácilmente.
  4. 4. Fragmentación   La fragmentación es la memoria que queda desperdiciada al usar los métodos de gestión de memoria que se vieron en los métodos anteriores. Tanto el primer ajuste, cómo el mejor y el peor producen fragmentación externa.  La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera.  La fragmentación puede ser:  Fragmentación Externa: existe el espacio total de memoria para satisfacer un requerimiento, pero no es contigua.  Fragmentación Interna: la memoria asignada puede ser ligeramente mayor que la requerida; esta referencia es interna a la partición, pero no se utiliza.  La fragmentación externa se puede reducir mediante la compactación para colocar toda la memoria libre en un solo gran bloque, pero esta solo es posible si la relocalización es dinámica y se hace en tiempo de ejecución.
  5. 5. Paginación  Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones físicas de igual tamaño, denominadas marcos de página. Los programas se dividen en unidades lógicas, denominadas páginas, que tienen el mismo tamaño que los marcos de páginas. De esta forma, se puede cargar una página de información en cualquier marco de página. Las páginas sirven como unidad de almacenamiento de información y de transferencia entre memoria principal y memoria auxiliar o secundaria. Cada marco se identifica por la dirección de marco, que está en la posición física de la primera palabra en el marco de página. Las páginas de un programa necesitan estar contiguamente en memoria, aunque el programador lo observe de esta forma. Los mecanismos de paginación permiten la correspondencia correcta entre las direcciones virtuales (dadas por los programas) y las direcciones reales de la memoria que se reverencien. Cada página consiste en z palabras contiguas; un espacio de direcciones N de un programa consiste de n paginas (0, 1, 2,3…n-1) (n*z direcciones virtuales) y el espacio de memoria consiste de m marcos de páginas (0, z, 2z,…, (m-1) z) (m*z posiciones). Una dirección virtual a es equivalente a una dirección dada como una dupla (p, d), en la cual p es el número de la página y del número de la palabra dentro de la página, de acuerdo con la relación:  a=p*z+d (0<=d<z) p=(a/z) (parte entera de la división) d=a mod z (resto de divisor a/z)
  6. 6. Tabla de paginación Cada página tiene un número que se utiliza como índice en la tabla de páginas, lo que da por resultado el número del marco correspondiente a esa página virtual. Si el bit presente / ausente es 0, se provoca un señalamiento (trap) hacia el sistema operativo. Si el bit es 1, el número de marco que aparece en la tabla de páginas se copia en los bits de mayor orden del registro de salida, junto con el ajuste (offset) de 12 bits, el cual se copia sin modificaciones de la dirección virtual de entrada. Juntos forman una dirección física de 15 bits. El registro de salida se coloca entonces en el bus de la memoria como la dirección en la memoria física. En teoría, la asociación de las direcciones virtuales con las físicas se efectúa según lo descrito. El número de página virtual se divide en un número de página virtual (los bits superiores)y un ajuste (los bits inferiores). El número de página virtual se utiliza como un índice en la tabla de páginas para encontrar la entrada de esa página virtual. El número de marco (si existe) se determina a partir de la tabla de páginas. El número de marco se asocia al extremo superior del ajuste y reemplaza al número de página virtual para formar una dirección física que se puede enviar a la memoria. La finalidad de la tabla de páginas es asociar las páginas virtuales con los marcos. En términos matemáticos, la tabla de páginas es una función, cuyo argumento es el número de página virtual y como resultado el número del marco físico. Mediante el resultado de esta función, se puede reemplazar el campo de la página virtual de una dirección virtual por un campo de marco, lo que produce una dirección en la memoria física
  7. 7. El espacio de direcciones lógico de un proceso puede ser no contiguo. Se divide la memoria física en bloques de tamaño fijo llamados marcos (frames). Se divide la memoria en bloques de tamaño llamados páginas. Se mantiene información en los marcos libres. Para correr un programa de n paginas de tamaño, se necesitan encontrara n marcos y cargar el programa. Se establece una tabla de páginas para trasladar las direcciones lógicas a físicas. Se produce fragmentación interna. Ventajas de la paginación Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud. No es necesario que las paginas estén contiguas en memoria, por lo que no se necesitan procesos de compactación cuando existen marcos de paginas libres dispersos en la memoria. Es fácil controlar todas las páginas, ya que tienen el mismo tamaño. El mecanismo de traducción de direcciones (DAT) permite separar los conceptos de espacio de direcciones y espacios de memoria. Todo el mecanismo es transparente al usuario. Se libera al programador de la restricción de programar para un tamaño físico de memoria, con lo que s e aumenta su productividad. Se puede programar en función de una memoria mucho más grande a la existente. Al no necesitarse cargar un programa completo en memoria para su ejecución, se puede aumentar el número de programas multiprogramándose. Se elimina el problema de fragmentación externa
  8. 8. Segmentación  Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica; llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos. Cada uno de ellos tienen información lógica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa.  La segmentación permite alcanzar los siguientes objetivos:  Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.  Estructuras de datos de largo variable: ej. Stock, donde cada estructura tiene su propio tamaño y este puede variar.  Protección: se puede proteger los módulos del segmento contra accesos no autorizados.  Compartición: dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos.  Enlace dinámico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecerán solo cuando sea necesario
  9. 9. Segmentación Paginada  Paginación y segmentación son técnicas diferentes, cada una de las cuales busca brindar las ventajas enunciadas anteriormente. Para la segmentación se necesita que estén cargadas en memoria, áreas de tamaños variables. Si se requiere cargar un segmento en memoria; que antes estuvo en ella y fue removido a memoria secundaria; se necesita encontrar una región de la memoria lo suficientemente grande para contenerlo, lo cual no es siempre factible; en cambio "recargar" una página implica solo encontrar un merco de pagina disponible.  A nivel de paginación, si quiere referenciar en forma cíclicas n paginas, estas deberán ser cargadas una a una generándose varias interrupciones por fallas de paginas; bajo segmentación, esta página podría conformar un solo segmento, ocurriendo una sola interrupción, por falla de segmento. No obstante, si bajo segmentación, se desea acceder un área muy pequeña dentro de un segmento muy grande, este deberá cargarse completamente en memoria, desperdiciándose memoria; bajo paginación solo se cargara la página que contiene los ítems referenciados.  Puede hacerse una combinación de segmentación y paginación para obtener las ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, este puede dividirse en páginas. Cada segmento puede ser descrito por su propia tabla de páginas

×