miércoles, 4 de diciembre de 2013

ADMINISTRACION DE MEMORIA

ADMINISTRACION DE MEMORIA

OBJETIVOS DE LA ADMINISTRACION DE MEMORIA


1)      Ubicar, reemplazar, cargar y descargar procesos en la memoria principal.
2)    Proteger a la memoria de accesos indeseados (accesos a cosas intencionadas o              accidentales)
3)      Permitir compartición de zonas de memoria (indispensable para lograr la cooperación de      procesos).

REQUISITOS DEL ADMINISTRADOR


Ø  REUBICACION: Permite el recalculo de dirección de memoria de un proceso reubicado.
Ø PROTECCION: Evitar el acceso aposiciones de memoria sin el permiso expreso  (no direcciones absolutas).
Ø  COMPARTICION: Permite a procesos diferentes accesar a la misma porción de memoria.
Ø  ORGANIZACIÓN LOGICA: Permite que los programas se escriban como módulos compilables y ejecutables por separado.
Ø  ORGANIZACIÓN FISICA: Cambio de datos en la memoria primaria y secundaria.

MEMORIA PRIMARIA O PRINCIPAL: Es aquella memoria de un ordenador donde se almacena temporalmente todos los datos o programas que el CPU procese.





MEMORIA SECUNDARIA: Conjunto de dispositivos periféricos para el almacenamiento masivo de datos de un ordenador, mayor que la memoria principal pero más lenta.

 


 

 

ESTRATEGIA

La estrategia está dirigida a la obtención del mejor uso del recurso de la memoria principal  y estas pueden ser:
1)      Estrategias de Solicitud.- Búsqueda de algún fragmento de programa.
2)      Estrategia de Ubicación.- Donde se colocara cada fragmento de un programa nuevo.
3)      Estrategia de Reposición.- Que fragmento de programa descarga para cargar uno nuevo.

FUNCIONES Y OPERACIONES DEL ADMINISTRADOR DE LA MEMORIA


El único espacio de almacenamiento que el procesador puede utilizar directamente, más allá de los registros (que si bien le son internos y sumamente rápidos, pero de capacidad muy escasa) es la memoria física.
Todas las arquitecturas de procesador tienen instrucciones para interactuar con la memoria, pero ninguna lo tiene para hacerlo con medios persistentes de almacenamiento, como las unidades de disco1. Cabe mencionar que cuando veamos en un texto referencia al almacenamiento primario siempre se referirá a la memoria, mientras que el almacenamiento secundario se refiere a los discos u otros medios de almacenamiento persistente.

UNIDAD DE MANEJO DE MEMORIA (MMU)

El MMU es también el encargado de verificar que un proceso no tenga acceso a leer o modificar los datos de otro.
MEMORIA CACHE: Esta es memoria de alta velocidad, situada entre la memoria principal y el procesador propiamente, que guarda copias de las páginas que van siendo accesadas, partiendo del principio de la localidad de referencia:


Localidad temporal
Es probable que un recurso que fue empleado recientemente vuelva a ser empleado en un futuro cercano.




Localidad espacial
La probabilidad de que un recurso aún no requerido sea accesado es mucho mayor si fue requerido algún recurso cercano.



Localidad secuencial
Un recurso, y muy particularmente la memoria, tiende a ser requerido de forma secuencial.

 


 

RESOLUCION DE DIRECCIONES


Un programa compilado no emplea nombres simbólicos para las variables o funciones que llama; el compilador, al convertir el programa a lenguaje máquina, las substituye por la dirección en memoria donde se encuentra.
Ahora bien, en los sistemas actuales, los procesos requieren coexistir con otros, para lo cual las direcciones indicadas en el texto del programa pueden requerir ser traducidas al lugar relativo al sitio de inicio del proceso en memoria — Esto es, resueltas. Podemos hablar de las siguientes tres estrategias de resolución:
En tiempo de compilación
El texto del programa tiene la dirección absoluta de los datos y funciones. Esto era muy común en las computadoras previas al multiprocesamiento; en la arquitectura compatible con PC, el formato ejecutable .COM es un volcado de memoria directo de un archivo objeto con las direcciones indicadas de forma absoluta. Esto lo podemos ver hoy principalmente en sistemas embebidos o de función específica.
En tiempo de carga
Al cargarse a memoria el programa y antes de iniciar su ejecución, el cargador (componente del sistema operativo) actualiza las referncias a memoria dentro del texto para que apunten al lugar correcto — Claro está, esto depende de que el compilador indique dónde están todas las referencias a variables y funciones.
En tiempo de ejecución
El programa nunca hace referencia a una ubicación absoluta de memoria, sino que lo hace siempre relativo a una base y un desplazamiento (offset). Esto permite que el proceso sea incluso reubicado en la memoria mientras está siendo ejecutado sin tener que sufrir cambios, pero requiere de hardware específico (como un MMU).

JERARQUIA DE MEMORIA



Diagrama de la jerarquía de memoria.
Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basándose en el principio de cercanía de referencias.
Los puntos básicos relacionados con la memoria pueden resumirse en:
                    Cantidad
                    Velocidad
                    Coste
La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el coste de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.
Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas:
                    A menor tiempo de acceso mayor coste.
                    A mayor capacidad menor coste por bit.
                    A mayor capacidad menor velocidad.

Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida.


Los niveles que componen la jerarquía de memoria habitualmente son:
             Nivel 0: Registros
             Nivel 1: Memoria caché
             Nivel 2: Memoria principal
             Nivel 3: Memorias flash
             Nivel 4: Disco duro (con el mecanismo de memoria virtual)
             Nivel 5: Cintas magnéticas Consideradas las más lentas, con mayor capacidad.
             Nivel 6: Redes (Actualmente se considera un nivel más de la jerarquía de memorias)

Sistemas Operativos de Multiprogramación


También llamado sistemas operativos multitarea o multiproceso, se distingue por la habilidad de soportar dos o más procesos activos simultáneamente. El término multiprogramación denota un sistema operativo que, además de soportar procesos concurrentes múltiples, permite que residan simultáneamente en la memoria primaria las instrucciones y los datos procedentes de dos o más procesos distintos.
El concepto de multiprogramación no se debe confundir con operación de multiproceso. Si bien el primer término implica el último, no sucede en viceversa. La operación multiproceso es la gestión de la totalidad de los recursos del sistema de la computadora mediante la implementación de cauce segmentado.

Tipos de sistemas operativos de multiprogramación








Sistemas de tiempo compartido
El tiempo compartido es bastante popular en sistemas multiprogramados y multiusuarios. Estos sistemas de multiacceso dedican la mayor parte del tiempo de ejecución de un programa único de una gran aplicación. Son elementos dedicados que poseen un buen tiempo de respuesta del terminal y tratan con frecuencia de proporcionar un reparto equitativo de los recursos comunes para dar la ilusión a cada usuario de poseer la máquina para el mismo.
Sistemas de tiempo real
Se usan en entornos donde se deben aceptar y procesar en tiempo breve y sin tiempos muertos un gran número de sucesos, en su mayoría externos al sistema de computadora. Son asuntos secundarios la conveniencia del usuario y la utilización de recursos.
Estos sistemas se caracterizan principalmente por encargarse de procesos que se activan al ocurrir el suceso relacionado, señalado frecuentemente por una interrupción.
Sistemas operativos combinados
Implementa sistemas operativos combinados que emplean las ventajas de los sistemas operativos de multiprogramación conjuntamente con los sistemas operativos por lotes, se caracterizan por poseer bloques o lotes que se ejecutan con una menor prioridad que el resto de las aplicaciones.

Diseño e implementación de los sistemas operativos

 

 

 

Requerimientos funcionales


·         Los procesos se crean en respuesta a los requerimientos explícitos o implícitos de los      usuarios.
·         Los procesos emiten peticiones de los servicios y recursos del sistema.
·         El sistema operativo proporciona funciones de supervisión y control para la gestión de      los procesos, tales como la creación y la retirada.
·         La gestión de la memoria consiste principalmente en la asignación de la memoria física    a los requerimientos de los procesos.
·         Llamadas a sistema por parte de los usuarios.

Implementación


1.       Núcleo: con frecuencia llamado Kernel, realiza operaciones proporcionadas directamente      sobre el hardware, gestionando los procesos en funcionamiento mediante estructuras de    datos que representan el estado del sistema.
2.       I/O básica: conformado por las instrucciones de bajo nivel que permiten la implementación  de los bloques de datos de la memoria secundaria.
3.       Gestión de memoria: en este nivel se asigna memoria principal a los procesos a ejecutar y   se librea cuando no se necesite más.
4.       Sistema de archivos y dispositivos: proporciona las facilidades para el almacenamiento        durante largo tiempo y la manipulación de archivo.
5.       Intérprete del lenguaje de órdenes: este nivel proporciona la interfaz entre los usuarios       interactivos y el sistema operativo. Los módulos de este nivel, emplean las facilidades       proporcionadas por niveles bajos para aceptar líneas de órdenes desde los terminal.

 

ESTRATEGIAS DE ADMINISTRACIÓN  DE ALMACENAMIENTO

Introducción al Almacenamiento Real


La organización y administración de la “memoria principal”, “memoria primaria” o “memoria real” de un sistema ha sido y es uno de los factores más importantes en el sistema operativo.
Los términos “memoria” y “almacenamiento” se consideran equivalentes.
Los programas y datos deben estar en el almacenamiento principal para:
1.       Poderlos ejecutar.
2.       Referenciarlos directamente.
3.       Se considera “almacenamiento secundario” o “almacenamiento auxiliar” generalmente          soportado en discos.
La parte del S. O. que administra la memoria se llama “administrador de la memoria”: Lleva un registro de las partes de memoria que se están utilizando y de aquellas que no.
Asigna espacio en memoria a los procesos cuando estos la necesitan.
Libera espacio de memoria asignada a procesos que han terminado.

Tipos de estrategias  de administración  de memoria 


Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento principal.
Se dividen en las siguientes categorías:
·         Estrategias de búsqueda:
o   Estrategias de búsqueda por demanda.
o   Estrategias de búsqueda anticipada.
·         Estrategias de colocación.
·         Estrategias de reposición.
Las “estrategias de búsqueda” están relacionadas con el hecho de cuando obtener el siguiente fragmento de programa o de datos para su inserción en la memoria principal.

En la “búsqueda por demanda” el siguiente fragmento de programa o de datos se carga al almacenamiento principal cuando algún programa en ejecución lo referencia.
Se considera que la “búsqueda anticipada” puede producir un mejor rendimiento del sistema.

Las “estrategias de colocación” están relacionadas con la determinación del lugar de la memoria donde se colocara (cargara) un programa nuevo.
Las “estrategias de reposición” están relacionadas con la determinación de que fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.


SISTEMA TIPO BATCH


Se conoce como sistema por lotes (en inglés batch processing), o modo batch, a la ejecución de un programa sin el control o supervisión directa del usuario (que se denomina procesamiento interactivo). Este tipo de programas se caracterizan porque su ejecución no precisa ningún tipo de interacción con el usuario.
Generalmente, este tipo de ejecución se utiliza en tareas repetitivas sobre grandes conjuntos de información, ya que sería tedioso y propenso a errores realizarlo manualmente
Los programas que ejecutan por lotes suelen especificar su funcionamiento mediante scripts o guiones (procedimientos) en los que se indica qué se quiere ejecutar y, posiblemente, qué tipo de recursos necesita reservar

 

Características del Procesamiento por Lotes


  1. Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote.
  2. Permiten poca o ninguna interacción usuario/programa en ejecución.
  3. Una mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.
  4. Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.).
  5. Se encuentra en muchos computadores personales combinados con procesamiento serial.
  6. La planificación del procesador es sencilla, típicamente procesados en orden de llegada.
  7. La planificación de memoria es sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios.
  8. No requieren gestión crítica de dispositivos en el tiempo.
  9. Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso.

Ventajas:


1.       Permite compartir mejor los recursos de un ordenador entre muchos usuarios, al no competir  por éstos de forma inmediata.
2.       Realiza el trabajo en el momento en el que los recursos del ordenador están menos                ocupados, dando prioridad a tareas interactivas.
3.       Evita desaprovechar los recursos del ordenador sin necesidad de interacción y supervisión      humanas continuas.
4.       En ordenadores caros o supercomputadores, ayuda a amortizar el coste manteniendo altos      índices de utilización.

 

Inconvenientes:


1.       El principal inconveniente de la ejecución por lotes frente a la ejecución interactiva es que hay que conocer y planificar cuidadosamente la tarea a realizar. Al carecer de supervisión por parte del usuario, cualquier tipo de error puede producir resultados inútiles o, simplemente, inexistentes...


   

No hay comentarios:

Publicar un comentario