1. Memoria Real
1.1 Administración de Almacenamiento
1.2 Características de la memoria real
1.3 Estrategia de Administración de Memoria
2. Memoria Virtual
2.1 Formas y organizaciones de Almacenamiento
2.2 Direccionamiento de la memoria virtual
2.3 Ventajas y desventajas del uso de la memoria virtual
3. Estrategia del Sistema Operativo
4. Bibliografia
Memoria
Real:
La Memoria Real también conocido
como memoria principal, memoria física o
memoria primaria, es un hardware en donde son ejecutados los programas y
también los procesos de una computadora y es el espacio real que existe en
memoria para que se ejecuten los procesos.
Administración de Almacenamiento
Cuando nos referimos a la
administración de almacenamiento de Linux podemos decir que es muy similar a la
de Windows ya que toda la información esta almacenada en el disco duro de la
PC, la mayoría de las veces se hacen dos particiones una para los archivos del
sistema operativo y programas como tal y la otra para los documentos. Además de
eso permite el almacenamiento de memorias extraíbles como los pendrives entre
otros. Adicional a esto Linux tiene una
particularidad importante que para modificar, crear, eliminar archivos hay que
dar permiso a través de comandos e introduciendo la clave de usuario.
Ejemplo: comando básico de
modificación de archivos.
Sudo chmod a+w /opt /lampp/htdocs
Características de la Memoria Real
Las Características de la memoria
real o física puede ser clasificado como:
Existen dos tipos de memorias
RAM: SRAM Y DRAM.
Capacidad o tamaño de la misma:
Es decir que representa el volumen global de información (en bits) que la memoria
puede almacenar.
Tiempo de acceso: Básicamente eso tiene que ver con el
intervalo de tiempo entre la solicitud de lectura/escritura y la disponibilidad
de los datos. Este tiempo es muy pequeño, y de el depende la potencia del
ordenado. Son típicos tiempos del orden de microsegundos e incluso del orden de
2 a 10 nanosegundos.
Tiempo de ciclo: Eso es la representación del intervalo de
tiempo mínimo entre dos accesos sucesivos.
No volatilidad: Que caracteriza la capacidad de una memoria
para almacenar datos cuando no recibe más electricidad.
Rendimiento: Eso tiene la responsabilidad para definir el
volumen de información intercambiado por unidad de tiempo, expresado en bits
por segundo. Bps
Estrategia de la Administración de Memoria
Se puede decir q La gestión de la
administración de memoria del núcleo se
realiza en base a los marcos de página de la memoria principal. Su función
básica es asignar y liberar marcos para los distintos usos. Los fundamentos de
la reserva de memoria en Linux son los mecanismos de reservas de páginas ya
usados para le gestión de memoria virtual de usuario. Como se utiliza el
algoritmo buddy, se puede reservar y liberar unidades de una o más páginas.
Debido a que el tamaño mínimo de memoria que se puede reservar es de una página,
la reserva de páginas no sería muy adecuada ya que el núcleo requiere pequeños
fragmentos que se utilizarán por poco tiempo y que son de distintos tamaños. Es
por eso que Linux utiliza un esquema conocido como "asignación de
láminas".
Memoria
Virtual:
La memoria es uno de los recursos
más valiosos que gestiona el sistema operativo. Uno de los elementos
principales que caracterizan un proceso es la memoria que utiliza. Ésta está
lógicamente separada de la de cualquier otro proceso del sistema (excepto los
threads de un mismo proceso que comparten normalmente la mayor parte de la
memoria que tienen asignada). Un proceso no puede acceder, al espacio de
memoria asignado a otro proceso, lo cual es imprescindible para la seguridad y
estabilidad del sistema. El direccionamiento es una parte importante de la
gestión de memoria, puesto que influye mucho en la visión del mismo por parte
de un proceso, como en el aprovechamiento del hardware y el rendimiento del
sistema. En Linux, además, un proceso tiene dos espacios de memoria: el espacio
de memoria del usuario, único para ese proceso, y el espacio de memoria del
kernel, idéntico en todos los procesos.
MEMORIA VIRTUAL.
El tamaño combinado del programa,
datos y pila puede exceder la cantidad de memoria física disponible. El sistema
operativo guarda aquellas partes del programa concurrentemente en uso en
memoria central y el resto en disco. Cuando un programa espera que se le cargue
en memoria central de disco otra parte del mismo, la CPU se puede asignar a
otro proceso.
El sistema operativo gestiona
niveles de memoria principal y memoria secundaria:
• Transferencia de bloques entre
ambos niveles (normalmente basada en paginación).
• De memoria secundaria a
principal: por demanda.
• De memoria principal a
secundaria: por expulsión.
Paginación.
El espacio virtual de direcciones
se divide en unidades llamadas páginas, todas del mismo tamaño. La memoria
principal se divide en marcos de páginas (page frames) del mismo tamaño que las
páginas virtuales y son compartidas por los distintos procesos del sistema (en
cada marco de página se carga una página de un proceso).
No todo el espacio virtual de
direcciones está cargado en memoria central. Una copia completa se encuentra en
disco y las páginas se traen a memoria central cuando se necesitan.
Segmentación.
El espacio de direcciones se
divide en segmentos, cada uno de los cuales corresponderá a una rutina
(procedimiento, función), un programa o un conjunto de datos (una entidad
lógica). Todo aquello que se corresponda con sub-espacio de direcciones
independientes.
Cada programa contiene una cierta
cantidad de segmentos. Los primeros segmentos se reservan para procedimientos,
datos y pila, pertenecientes al programa en ejecución. Los segmentos restantes
contienen un archivo por segmento, así que los procesos pueden direccionar
todos sus archivos directamente sin tener que abrirlos ni usar primitivas
especiales de entrada/salida. Cada archivo puede crecer de forma completamente
independiente de los otros, con cada byte direccionado por un par (segmento,
desplazamiento).Por otro lado, colocando objetos diferentes en diferentes
segmentos, se facilita la compartición de estos objetos entre procesos
múltiples.
Segmentación Paginada.
Como su propio nombre indica, la
segmentación paginada intenta aunar lo mejor de los dos esquemas. La
segmentación proporciona soporte directo a las regiones del proceso y la
paginación permite un mejor aprovechamiento de la memoria y una base para
construir un esquema de memoria virtual. Con esta técnica, un segmento está
formado por un conjunto de páginas, y por tanto, no tiene que estar contiguo en
memoria.
Paginación por Demanda.
Segmentación pura no es adecuada
para memoria virtual ⇒ Tamaño de segmentos variable.
Paginación y segmentación
paginada sí son para memoria virtual ⇒ (1) Bloque transferido → Página (2)
Memoria virtual + Paginación → Paginación por
demanda.
Estrategia de implementación: Uso
del bit de validez, donde la página no residente se marca como no válida.
Acceso a una página (Excepción de
falta de página de la MMU al kernel del sistema operativo si la página no está
en la MMU): el kernel del sistema operativo trae la página correspondiente de
memoria secundaria ⇒ el kernel del sistema operativo debe
diferenciar entre página no residente y página inválida.
Prepaginación ⇒ Traer páginas
por anticipado (no por demanda): En caso de falta de página se traen además
otras páginas que se consideran que necesitará el proceso →
Beneficiosa dependiendo de si hay
acierto en la predicción.
Tratamiento de falta de página
(peor de los casos, falta de página puede implicar dos operaciones de E/S al
disco) ⇒
Tratamiento de la excepción provocado por la MMU (dirección de fallo disponible
en registro).
Algoritmos de Reemplazo de
Página.
Objetivo de los algoritmos de
reemplazo: Minimizar la tasa de fallos de página. Cada algoritmo tiene versión
local y global: local ⇒ criterio se aplica a las páginas residentes del proceso, y global ⇒ criterio se
aplica a todas las páginas residentes. Algoritmos
conocidos: Óptimo, FIFO (First In First Out), Clock (Reloj o segunda
oportunidad) = FIFO + uso del bit de referencia; y LRU (Least Recently Used).
Además estos algoritmos se utilizan en técnicas de buffering de páginas.
LRU ⇒ Criterio:
reemplaza la página residente menos usada recientemente. Está basado en el
principio de proximidad temporal de referencias: si es probable que se vuelve a
referenciar las páginas accedidas recientemente, entonces la página que se debe
reemplazar es la que no se ha
referenciado desde hace más tiempo. Sutileza en su versión global: menos
recientemente usada en el tiempo lógico de cada proceso (no tiempo
real).Difícil implementación estricta (hay aproximaciones) ⇒ Precisaría una
MMU específica. Posible implementación con
hardware específico: en entrada de TP hay un contador, en cada acceso a memoria
MMU copia contador del sistema a entrada referenciada; y el reemplazo sería
para la página con contador más bajo.
Buffering de páginas. Mantiene
una lista de marcos de página libres.
(1) Si falta de página ⇒ siempre usa
marco de página libre (no reemplazo);
(2) Si número de marcos libres
< umbral ⇒
“demonio de paginación” aplica repetidamente el algoritmo de reemplazo: páginas
no modificadas pasan a lista de
marcos de páginas libres y páginas modificadas pasan a lista de marcos de
páginas modificados (cuando se escriban a disco pasan a lista de libres y
pueden escribirse en tandas (mejor rendimiento));
(3) Si se referencia una página
mientras está en estas listas ⇒ falta de página: dicha página la recupera directamente de la lista
(no E/ S).
Puede darse el caso de que haya
páginas marcadas como “no reemplazables” ⇒ se aplica a páginas del propio sistema operativo, también se aplica
mientras se hace DMA sobre una
página. Algunos sistemas operativos ofrecen a aplicaciones un servicio para
fijar en memoria una o más páginas, pudiendo afectar positivamente al
rendimiento del sistema.
Políticas de Asignación de Marcos
de Página.
Estrategia de asignación fija ⇒ Número de
marcos asignados al proceso (conjunto residente) es constante.
Puede depender de características
del proceso (tamaño, prioridad, etc.). No se adapta a las diferentes
necesidades de memoria de un proceso a lo largo de su ejecución. Comportamiento
de los procesos es relativamente predecible. Sólo tiene sentido usar reemplazo
local. La arquitectura de la máquina impone un número mínimo de marcos de
página que debe asignarse a un proceso (por ejemplo, la instrucción “move”
requiere un mínimo de 3 marcos de página).
Estrategia de asignación dinámica
⇒
Número de marcos varía dependiendo de comportamiento del proceso (y
posiblemente de los otros procesos en el sistema). Asignación dinámica +
reemplazo local → el proceso va aumentando o
disminuyendo su conjunto residente dependiendo de su comportamiento (distintas
fases de ejecución del programa) y tiene un comportamiento relativamente
predecible. Asignación dinámica + reemplazo global → los procesos se quitan las páginas entre
ellos, teniendo un comportamiento difícilmente predecible.
Operaciones sobre las Regiones de
un Proceso.
Como ya sabemos, el espacio de
direccionamiento de un proceso se compone de varias regiones de memoria y cada
región de memoria se caracteriza por varios atributos:
(1) sus direcciones de inicio y
fin;
(2) los derechos de acceso que
tiene asociados;
(3) el objeto asociado (por
ejemplo, un archivo ejecutable que contiene el código ejecutado por el
proceso).
Las regiones de memoria
contenidas en el espacio de direccionamiento de un proceso pueden determinarse
mostrando el contenido del archivo maps, situado en el directorio de cada
proceso en el sistema de archivos /proc. Las operaciones que el kernel del
sistema operativo puede realizar sobre las regiones de memoria de un proceso
son las siguientes:
(1) Creación de región ⇒ Al crear mapa
inicial o por solicitud posterior;
(2) Liberación de región ⇒ Al terminar el
proceso o por solicitud posterior;
(3) Cambio de tamaño de región ⇒ Del heap o de
la pila (stack);
(4) Duplicado de región ⇒ Operación
requerida por el servicio fork.
Formas y organizaciones de Almacenamiento
En Linux, la memoria virtual se
conoce como “swap” (intercambio), lo que se diferencia con la memoria real por
utilizar espacio en el disco duro en vez de módulos de memoria. Generalmente
esto se configure en la instalación del sistema operativo sin embargo se puede
crear o modificar después como sea necesario.
Existen dos formas de establecer un espacio de
memoria virtual o swap – una partición independiente en el disco duro o un
archivo en una partición ya existente.
La primera opción es la más
eficiente, sin embargo requiere de una partición adicional. En el caso de que
no se ha creado durante la instalación, sería necesario crearla a través del
sistema de comandos o utilizando un programa de particionamiento como gparted.
Se utilizan los comandos mkswap y swapon con las opciones correspondientes.
La otra opción es más fácil y es
parecido a la forma en que se implementa la memoria virtual en otros sistemas
operativos como Windows. No tiene la misma eficiencia como la creación de una
partición adicional sin embargo tiene la ventaja de ser menos cambiante al
sistema, siendo nada más un archivo que se puede crear o eliminar como sea necesario.
Se utiliza el comando dd con las opciones correspondientes para crear el
archivo y mkswap y swapon para activarlo como archivo de swap.
Direccionamiento de la memoria virtual
Linux utiliza una tabla de página
de 3 niveles, cada tabla en particular tiene el tamaño de una página:
• Directorio de páginas: Los
procesos activos tienen un directorio de páginas único que tiene el tamaño de
página. El directorio de páginas debe recidir en la memoria principal para todo
proceso activo.
• Directorio intermedio de
páginas: Este directorio se expande a múltiples páginas. Cada entrada en la
tabla de páginas apunta a una página que contiene una tabla de páginas.
• Tabla de páginas: Cada entrada
en la tabla hace referencia a una página virtual del proceso.
Ventajas y Desventajas del uso de la memoria
virtual
Ventajas:
- Permite optimizar uso de memoria
- Mantiene más procesos en memoria
principal
- Permite que un proceso sea más grande
que toda la memoria principal
- Permite multiprogramación muy efectiva
- Se encarga el Sistema Operativo donde se
evita al usuario la preocupación por programar con superposición
Desventajas:
- Fallos de direccionamiento
- Sobrecarga por gestión compleja de
memoria
- SO expide otro proceso para que se
ejecute
- La memoria virtual puede ser una
herramienta poderosa para incrementar la performance del computador.
- Usar áreas de entrada/salida más largas:
Reduce el tiempo en que las páginas del programa estarán en memoria real.
Estrategias del sistema operativo
Cuando hablamos de estrategia nos
referimos a lo que hace diferente y mejor nuestro sistema operativo de otros; y
es que nos ofrece un gran rendimiento, la
capacidad de ampliación, la confiabilidad, la seguridad y el soporte que
exigen sus organizaciones. También es importante mencionar que ofrece los
servicios y las herramientas que necesita para alcanzar una mayor eficiencia o
en otras palabras La estrategia principal tomada en cuenta por los
desarrolladores de Linux es que toda organización ya sea pública o privada
puede adaptarlo a sus necesidades creando así una visión de sistema que cumpla
con las expectativas que necesita la empresa.
BIBLIOGRAFÍA de modulo 3
Libros:
- MILAN MILENKOVIC (1994)
Sistemas Operativos - Conceptos y Diseno. 2da Edición
- A. SILBERSCHATZ J. PETERSON
(1994) Sistemas Operativos - Conceptos Fundamentales. Tercera Edición
Sitio Web:
-
http://www.buenastareas.com/ensayos/Administraci%C3%B3n-De-Memoria-Virtual-En-Windows/6682473.html
No comments:
Post a Comment