Modulo III

Contenido:
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:

No comments:

Post a Comment