Segmentación de memoria
Sistema de gestión de memoria en un sistema operativo.
Divide la memoria en segmentos, cada uno de los cuales
tiene una longitud variable, que está definida intrínsecamente por el tamaño de
ese segmento del programa. Los elementos dentro de un segmento están
identificados por su desplazamiento con respecto al inicio del segmento: la
primera instrucción del programa, la séptima entrada de la pila, la quinta
instrucción de la función Sqrt(), etc.
La MMU no sabe nada sobre las distintas regiones de los procesos. Sólo entiende de páginas. El sistema operativo debe guardar para cada proceso una tabla de regiones que especifiquen qué páginas pertenecen a cada región
Unidad
De Manejo De Memoria
La
unidad de manejo de memoria (MMU) es parte del procesador. Sus funciones
son:
- · Convertir las direcciones lógicas emitidas por los procesos en direcciones físicas.
- · Comprobar que la conversión se puede realizar. La dirección lógica podría no tener un dirección física asociada.
Por ejemplo, la página correspondiente a una dirección se puede haber
trasladado a una zona de Almacenamiento secundario temporalmente. Comprobar que
el proceso que intenta acceder a una cierta dirección de memoria tiene permisos
para ello. La MMU se Inicializa para cada proceso del sistema. Esto
permite que cada proceso pueda usar el rango completo de direcciones lógicas
(memoria virtual), ya que las conversiones de estas direcciones serán distintas
para cada proceso.
En
todos los procesos se configura la MMU para que la zona del núcleo solo se
pueda acceder en modo privilegiado del procesador. La configuración
correspondiente al espacio de memoria del núcleo es idéntica en todos los
procesos.
El
objetivo del intercambio es dar cabida a la ejecución de más aplicaciones de
las que pueden residir simultáneamente en la memoria del sistema: Consiste en
trasladar el código y los datos de un proceso completo de memoria al sistema de
almacenamiento secundario, para cargar otro previamente almacenado, no permite
a un proceso utilizar más memoria RAM de la que realmente existe en el
sistema. Esta técnica puede ser ineficiente ya que se tiene que
hacer el intercambio completo del proceso, aunque éste solo vaya a ejecutar una
pequeña porción del código.
Durante el intercambio un proceso
puede ser sacado temporalmente de memoria y llevado a un lugar especial del
disco y posteriormente vuelto a memoria y continuada su ejecución. El lugar de
almacenamiento temporal suele ser un espacio suficientemente grande como para
acomodar copias de las imágenes de memoria de todos los usuarios.
Sistema
de gestión de memoria en un sistema operativo.
Divide
la memoria en segmentos, cada uno de los cuales tiene una longitud variable,
que está definida intrínsecamente por el tamaño de ese segmento del programa.
Los elementos dentro de un segmento están identificados por su desplazamiento
con respecto al inicio del segmento: la primera instrucción del programa, la
séptima entrada de la pila, la quinta instrucción de la función Sqrt(), etc.
La MMU no sabe nada sobre las distintas regiones de los procesos. Sólo entiende de páginas. El sistema operativo debe guardar para cada proceso una tabla de regiones que especifiquen qué páginas pertenecen a cada región
La MMU no sabe nada sobre las distintas regiones de los procesos. Sólo entiende de páginas. El sistema operativo debe guardar para cada proceso una tabla de regiones que especifiquen qué páginas pertenecen a cada región
Unidad
De Manejo De Memoria
La
unidad de manejo de memoria (MMU) es parte del procesador. Sus funciones
son:
·
Convertir las
direcciones lógicas emitidas por los procesos en direcciones físicas.
·
Comprobar que la
conversión se puede realizar. La dirección lógica podría no tener
un dirección física
Asociada.
Por ejemplo, la página correspondiente a una dirección se puede haber
trasladado a una zona de Almacenamiento secundario temporalmente. Comprobar que
el proceso que intenta acceder a una cierta dirección de memoria tiene permisos
para ello. La MMU se Inicializa para cada proceso del sistema. Esto
permite que cada proceso pueda usar el rango completo de direcciones lógicas
(memoria virtual), ya que las conversiones de estas direcciones serán distintas
para cada proceso.
En
todos los procesos se configura la MMU para que la zona del núcleo solo se
pueda acceder en modo privilegiado del procesador. La configuración
correspondiente al espacio de memoria del núcleo es idéntica en todos los
procesos.
El
objetivo del intercambio es dar cabida a la ejecución de más aplicaciones de
las que pueden residir simultáneamente en la memoria del sistema: Consiste en
trasladar el código y los datos de un proceso completo de memoria al sistema de
almacenamiento secundario, para cargar otro previamente almacenado, no permite
a un proceso utilizar más memoria RAM de la que realmente existe en el
sistema. Esta técnica puede ser ineficiente ya que se tiene que
hacer el intercambio completo del proceso, aunque éste solo vaya a ejecutar una
pequeña porción del código.
Espacio
De Direcciones
Los
espacios de direcciones involucrados en el manejo de la memoria son de tres
tipos: Direcciones físicas: son aquellas que referencian alguna posición
en la memoria física. Direcciones lógicas: son las direcciones utilizadas
por los procesos.
Sufren
una serie de transformaciones, realizadas por el procesador (la MMU), antes de
convertirse en direcciones físicas. Direcciones lineales: direcciones
lineales se obtienen a partir de direcciones lógicas tras haber aplicado una
transformación dependiente de la arquitectura.
Los
programas de usuario siempre tratan con direcciones virtuales; nunca ven las
direcciones físicas reales Tablas de páginas 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.
No hay comentarios:
Publicar un comentario