3.3 Organización de Memoria Virtual.

14
Instituto Tecnológico Superior De Coatzacoalcos División de informática PROFESOR: M.I. Omar Eduardo Betanzos Martínez ASIGNATURA: Sistemas Operativos I (So1) GRADO: 4°Sem. GRUPO: “A” CARRERA: Ing. Informática Equipo: Jiménez Morales Indra De Jesús May Gómez Mario Alberto Pineda Aquino Luis Opón Mota Rholdan Esteban Ruiz Martínez Luis Miguel 3.3 Organización de memoria virtual.

description

cosads xdxd

Transcript of 3.3 Organización de Memoria Virtual.

Instituto Tecnológico Superior De Coatzacoalcos

 División de informáticaPROFESOR: M.I. Omar Eduardo Betanzos Martínez

 

ASIGNATURA: Sistemas Operativos I (So1)

GRADO: 4°Sem. GRUPO: “A”

CARRERA: Ing. Informática

Equipo: Jiménez Morales Indra De Jesús

May Gómez Mario Alberto 

Pineda Aquino Luis

Opón Mota Rholdan Esteban

Ruiz Martínez Luis Miguel

3.3 Organización de memoria virtual.

ORGANIZACIÓN DE MEMORIA VIRTUAL.

Evolución de las organizaciones de almacenamiento.

Paginación.

Segmentación.

Sistemas de paginación-

segmentación.

Organización de memoria virtual

“Memoria virtual.- capacidad de direccionar un espacio de memoria mucho mayor que el disponible en la memoria primaria

Los métodos más comunes de implementación son mediante: • Técnicas de “paginación”• Técnicas de “segmentación”• Combinación de ambas.

Las direcciones generadas por los programas en su ejecución no son necesariamente, las contenidas en la memoria primaria (real), ya que las direcciones virtuales suelen seleccionarse dentro de un número mucho mayor de direcciones que las disponibles dentro de la memoria primaria.

Regresar

Evolución de las organizaciones de almacenamiento.

• Real: Sistemas dedicados a un usuario. • Real: Sistemas de multiprogramación en memoria real:

o Multiprogramación en partición fija: Absoluta. Relocalizable (reubicable).

o Multiprogramación en partición variable. • Virtual: Multiprogramación en memoria virtual:

o Paginación pura. o Segmentación pura. o Combinación paginación / segmentación.

Conceptos Básicos de Memoria Virtual La clave del concepto de memoria virtual está en la disociación de: • las direcciones a las que hace referencia un programa. • las direcciones disponibles en la memoria real (primaria). Los principales conceptos son los siguientes: • “Direcciones virtuales”: las referidas por un proceso en ejecución. • “Direcciones reales”: las disponibles dentro de la memoria primaria. • “Espacio de direcciones virtuales (v)” de un proceso: número de direcciones virtuales que

puede referenciar el proceso.

Evolución de las organizaciones de almacenamiento.

• Espacio de direcciones reales (r)” de una computadora: número de direcciones reales disponibles en la computadora.

Los procesos hacen referencia a direcciones virtuales pero éstas deben ejecutarse en la memoria real: • Las direcciones virtuales deben

ser transformadas dentro de las direcciones reales, mientras el proceso está en ejecución.

• La traducción de direcciones deberá hacerse rápidamente para no degradar al sistema. Existen varios medios para asociar las direcciones virtuales con las reales (Figura 3.13 .).

Evolución de las organizaciones de almacenamiento.

La “traducción dinámica de direcciones” (dat) convierte las direcciones virtuales en reales al ejecutarse el proceso. Las direcciones contiguas dentro del espacio de direcciones virtuales de un proceso no tienen por qué ser contiguas dentro de la memoria real, a esto se denomina “contigüidad artificial” (Figura 3.14 .).

Regresar

Paginación.

La necesidad de asignar memoria en cantidades contiguas para cada programa es el mayor inconveniente para un buen aprovechamiento de la misma. La paginación es una técnica de gestión que permite asignar la memoria de forma discontinua. La memoria física se divide en trozos de tamaño fijo llamados frames y la lógica en bloques de igual tamaño llamados páginas. El sistema operativo mantiene una tabla de páginas donde relaciona cada página cargada en memoria con el frame que la contenga o sea su dirección inicial en memoria real.

Paginación.

Cada dirección que genera el CPU será interceptada y dividida en dos componentes, un número de página (p) y un desplazamiento en la página (d). Usando p como índice, el gestor de memoria recorre la tabla de páginas hasta localizar dicha página, y a continuación sumará d a la dirección de carga correspondiente obteniendo la dirección real. El tratamiento anterior exige que se realice por hardware. Cada programa se divide en páginas, y éstas se cargan en frames libres que no tienen que ser contiguos

Paginación.

Administración de la memoria. La paginación es una forma de reasignar direcciones dinámicamente. El sistema analiza cada nuevo trabajo que se disponga a entrar para conocer el número de páginas que ocupa y buscará en su lista de frames libres un número igual de ellos. Si existen, cargará en ellos las páginas del programa y construirá la correspondiente tabla de páginas actualizando la lista de frames libres. Cada trabajo en memoria tendrá su propia tabla de páginas apuntadas por el pcb. Así se logra evitar la fragmentación externa ya que cualquier frame libre es asignable a un trabajo que lo necesite. Seguirá existiendo fragmentación interna porque generalmente los trabajos no ocupan el total de la página. Esta fragmentación se reduce si la página tiene un tamaño pequeño, pero se necesita una tabla de páginas mayor.

Páginas compartidas. La paginación permite que varios procesos compartan páginas en memoria. Esto es bueno para los sistemas de tiempo compartido. Imaginemos un sistema con 20 usuarios que usan un editor de textos, en el sistema se cargará una sola vez el programa correspondiente y éste será usado por todos ellos aunque los datos sean propios de cada uno. Cada usuario contendrá en su tabla de páginas las entradas correspondientes al editor, apuntando todas ellas a los mismos frames y a distintos para los datos. Es común usar páginas compartidas, su contenido debe permanecer inalterado y tener código reentrante (durante la ejecución no se altera ningún valor interno). Si el contenido de las páginas compartidas no debe modificarse, deben protegerse contra todo intento de escritura. Se necesita un sistema de protección de páginas en memoria que controle las direcciones a las que se puede acceder y el modo en que se hace dicho acceso. Para ello se añaden a las entradas de la tabla de páginas una serie de bits de protección (dirección de la pagina), el esquema de protección se complementa con otro bit por entrada de la tabla de páginas llamado bit de validez (modo r o w).

Paginación.

Rendimiento. Memoria Caché. Registros asociativos. Para agilizar la conversión de direcciones el sistema mantiene en memoria la tabla de páginas de los trabajos activos y usa un registro especial llamado registro base, para indicar la dirección de la tabla de páginas del proceso en ejecución. Así cuando se conmute de un trabajo a otro se restaura la dirección de la tabla de páginas correspondiente. Para transformar cada dirección lógica (p,d) generada por el cpu en su dirección real, el sistema accede en primer lugar a la tabla de página correspondiente (registro base + p) y después a la dirección real (frame + d). Así cada dirección provoca dos accesos a memoria y se duplican los tiempos de ejecución. Se mejora el uso de la memoria pero los procesos son más largos. Para resolver esto se recurre a memorias pequeñas de muy alta velocidad (muy caras) donde se puedan mantener las entradas a las tablas de páginas más usadas. Esta memoria (caché) es similar a la principal pero con menor tiempo de acceso y con eso se reduce el retraso producido por la paginación. En sistemas pequeños, con tablas de páginas de pocas entradas se usa un conjunto de registros hardware para contener dichas tablas (registros asociativos).

Regresar

Segmentación.

La segmentación es una técnica distinta de gestión de memoria que pretende acercarse más al punto de vista del usuario. Los programas se desarrollan, generalmente, en torno a un programa principal desde el que se bifurca a otras partes (rutinas) o se accede a zonas de datos (tablas, pilas, etc.). Desde este punto de vista, un programa es un conjunto de componentes lógicos de tamaño variable o un conjunto de segmentos, es decir, el espacio lógico de direcciones se considera como un conjunto de segmentos, cada uno definido por su tamaño y un número.

Segmentación.

Hardware de segmentación. Puesto que la memoria física se direcciona linealmente, será necesario transformar cada dirección lógica (s,d) en una dirección real (r). Esta conversión la realiza un dispositivo especial de hardware consultando la tabla de segmentos correspondiente.

RendimientoReduce la fragmentación interna de la memoria provocada por la paginación, ya que asigna a cada programa la cantidad de memoria que requiere. La carga de un programa en memoria exige la búsqueda de los huecos adecuados a sus segmentos y puesto que éstos son de tamaño variable, se ajustarán lo más posible a las necesidades, produciéndose huecos pequeños. En este caso se produce fragmentación externa. La eficacia de la segmentación requiere, de igual forma que la paginación, el uso de memorias caché para lograr unos tiempos de acceso adecuados. De igual forma que en la paginación, se pueden compartir segmentos entre varios procesos

La segmentación de un programa la realiza el compilador y en ella cada dirección lógica se expresará mediante dos valores: número de segmento (s) y desplazamiento dentro del segmento (d).

Regresar

Sistemas de paginación-segmentación.

Tanto la paginación como la segmentación, tienen ventajas e inconvenientes, y parece lógico intentar combinar ambas técnicas para aprovechar sus características positivas. En todo sistema se define, por su arquitectura, un espacio máximo de direcciones lógicas, tamaño máximo de cualquier programa que quiera ejecutarse, e implica un número de páginas. Por esto, algunos sistemas usan una técnica de paginación segmentada consistente en segmentar la tabla de páginas adecuándola al tamaño del programa. Para ello, mantiene una tabla de segmentos cuyas entradas indican la dirección de inicio de cada tabla de páginas y su tamaño. Se usa un hardware especial. Otros sistemas optan por paginar los segmentos, es decir, usan segmentos cuyo tamaño es un número entero de páginas. Esta técnica se denomina segmentación paginada. La tabla de segmentos de la segmentación pura cambia de contenido y sus entradas ya no apuntan al inicio del segmento correspondiente indicando su tamaño, sino que apuntan a una tabla de páginas del segmento indicando su longitud. De esta forma se evita la fragmentación externa propia de la segmentación, pues cualquier hueco será de una página como mínimo, y por tanto usable para cualquier segmento que lo necesite.

Regresar

Referencia:

◦ file:///D:/Nueva%20carpeta/ApuntesU3_SistemasOperativosISC.pdf