Ir al contenido principal

Memoria Real

 Introducción

La organización y administración de la “memoria principal”, “memoria primaria” o “memoria real” de un sistema es un elemento con un valor significativo para el diseño de los sistemas operativos.

Existen dos razones por las que lo programas y datos deben estar en el almacenamiento principal:

  •  Poderlos ejecutar.
  • Referenciarlos directamente.

La "Ley de Parkinson": Se trata de hacer que los datos de los programas se guarden en el espacio de memoria que se les asigna específicamente.

Administrador de memoria como su nombre lo indica la función es administrar de la siguiente manera:

  •          La memoria que se usa y la que no se usa.
  •          Establece un área en la memoria para los procesos necesarios.
  •          Libera el área en la memoria de los procesos que ya terminaron.

Organización de almacenamiento

Hay que tomar en cuenta los siguientes puntos como los siguientes para llegar a tener una buena organización:

👉Considerar la cantidad de programas de usuario.

👉  En caso de elegir más de un usuario, designar el espacio o bien dividir la memoria en tamaños diferentes.

👉👉Elegir entre esquema rígido de cantidad y tamaño de la memoria o elegir un esquema dinámico y adaptable.

👉👉Definir si las acciones del usuario van a ejecutarse en una parte en especial dentro de la memoria o serán libres en cualquier espacio.

👉👉Definir si es necesario que las acciones del usuario se colocan en un bloque contiguo de memoria.

    Administración de almacenamiento

    Para una buena administración se debe tomar en cuenta:

  •  En qué momento se obtiene un programa para ubicarse en la memoria.
  •  Momento en que se solicita específicamente o se anticipa el S.O a una petición.
  •  Ubicación del programa a ejecutar.
  •  Definir si es necesario poner como prioridad la carga o la optimización del uso de almacenamiento.
  • Bajo que condición se moverán los programas.
Jerarquía de almacenamiento

Las condiciones que se deben definir para el almacenamiento son las siguientes:

👍Para que un programa en conjunto con su información debe estar en la memoria principal para que pueda funcionar.
👍Un programa y sus datos que no se utilizan de manera inmediata se pueden alojar en el almacenamiento secundario.
👍Tomar en cuenta que el guardar todo en la memoria principal sale caro pero es menor en comparación a cuando se guarda en la parte secundaria además se pueda entrar más rápido.
👍Si tienes un sistema con más de un nivel de almacenamiento es necesario que definas el recurso correspondiente entre niveles.


Uno de los niveles más comunes que se agregan es la memoria "caché" que se describe como lo siguiente:
- Mayor costo y velocidad a comparación de la memoria principal.
- Automáticamente transfiere los programas desde la principal hasta la caché en el momento antes de su ejecución.
- Mayor velocidad de ejecución.
- La oportunidad de transferir programas de un lado a otro hace que su sobrecarga sea menos y así va mejorando el rendimiento y la velocidad de ejecución.

Estrategias de administración de almacenamiento
Son aquellas que sirven para tener un mejor uso del almacenamiento principal.
Se divide en cinco estrategias:
  1. Búsqueda. Se refiere al hecho de cuando se tiene una parte de un programa para integrarlo a la memoria principal.
  2. Búsqueda por demanda. Cuando un programa es referenciado se manda directamente a la memoria principal.
  3. Búsqueda anticipada. Mejora el rendimiento.
  4. Colocación. Definir a que lugar se va a mandar el programa nuevo.
  5. Reposición. Definir la prioridad de hacia donde se moverá una parte de los programas para dejar espacio a los que son nuevos.
Asignaciones:
  1. Asignación contigua de almacenamiento VS No contigua. Cuando es contigua un programa necesita un bloque contiguo y de localización del lugar en memoria, mientras que cuando no es contigua el programa se va a dividir en varios bloques en diferentes direcciones es más difícil pero también es más eficiente que la continua.
  2. Asignación contigua de almacenamiento de un solo usuario. Se toman en cuenta los S.O. que tengan funcionando el "sistema de control de E/S". 


Los programas tienen un tamaño determinado pero hasta cierto punto se limita por lo que para estos casos existe algo llamado "recubrimiento", el cual ayuda a pasar ese limite.


Características del manejo del almacenamiento principal por "un solo usuario":
  • Se divide en partes, una para el programa de usuario y otra sin usar.
  • El programa del usuario puede eliminar áreas del S.O. que provocan la detención del sistema y las salidas erróneas.
  • El S.O. debe protegerse con "limites" que se imponen en la CPU; entonces si alguien quiere ingresar la instrucción se ataca y termina el proceso.
Procesamiento por lotes de flujo único
"Un solo usuario" toma más tiempo en un "trabajo" a comparación del tiempo en que se ejecuta.
Dicho trabajo necesita:
👀 Tiempo de instalación: Solo el adecuado para tener listo el entorno operativo.
👀 Tiempo de descarga: Solo el adecuado para quitar el entorno operativo.
En este procesamiento los "trabajos" se juntan en "partes" juntándose para ejecutarse.

Características del procesador de flujos de trabajos:
  • Leer el lenguaje de control de los trabajos.
  • Hace más fácil arreglar el trabajo que sigue.
  • Le manda instrucciones al operador de sistema.
  • Las funciones manuales ahora son automáticas.
  • Para hacer más fácil el paso al siguiente trabajo cunando uno de ellos termina comienzan las operaciones de mantenimiento.
Multiprogramación de partición fija
Los sistemas de un solo usuario malgasta los recursos cuando:
→ Inicia una solicitud desde e/s, la CPU no continua con lo que está haciendo hasta que se terminé la solicitud de e/s.
→ Los dispositivos de e/s detienen la ejecución de los procesos.
 

Multiprogramación de partición fija: Traducción y carga absolutas
Características de las muy famosas "particiones":
⇨ Son de un solo tamaño el cual no cambia.
⇨ Cada partición guarda un proceso.
⇨ La CPU crea la ilusión de tener acciones simultaneas pero solo es cuestión de rapidez entre cambio de proceso.
⇨ Los trabajos se hacían con ensambladores y compiladores para que se ejecuten en alguna partición.
Multiprogramación de partición fija: Traducción y carga relocalizables
Características de los compiladores, ensambladores y cargadores de relocalización:
  • Crean programas relocalizables que se ejecutan en las particiones con tamaños disponibles.
  • Tienen mayor grado de dificultad a comparación de los absolutos.
  • Presentan una mejora a la hora de usar la memoria.
  • Ofrece flexibilidad a la hora de cargar los procesos. 

Protección en los sistemas de multiprogramación
Al hacer uso de la asignación contigua se deben de poner en acción los "registros de límites":
Las particiones cuentan con dos lados (superior e inferior), ambos llevan dos registros, se indican los límites tanto superior como inferior y el tamaño de las particiones.


Fragmentación en la multiprogramación de partición fija
La fragmentación pasa en todos los sistemas pero muy aparte de la organización de la memoria.
En el S.O. la fragmentación se realiza:
- Cuando los trabajos de usuario no cargan en su totalidad en las particiones específicas.
- Cuando las particiones están determinado tiempo sin utilizarse debido a que el tamaño no alcanza a almacenar un trabajo en espera.
Multiprogramación de partición doble
Existe un cierto límite en la capacidad de memoria que ocupan los procesos.

Sin embargo no existen límites en cuanto a la memoria, la misma partición del trabajo representa el tamaño de éste.
Cuando un proceso se acaba deja libre lo que se llama "agujeros" dentro de la memoria principal.
Éstos agujeros pueden servir para otros trabajos que a su vez éstos también dejan agujeros.
Como consecuencia se van generando muchos agujeros y entonces se empieza a desperdiciar el espacio que va quedando en la memoria.
Se pueden combinar los agujeros para crearse uno solo pero de mayor tamaño, en cuanto se acabe un trabajo y el espacio que se está liberando está cercano con otros agujeros.
 


Desventaja de la compresión:
👎 Consume los recursos.

Multiprogramación con intercambio de almacenamiento
Se refiere a que no es necesario que los programas se queden en la memoria hasta que finalicen.
Hay ocasiones en las que el trabajo se va a estar ejecutando hasta no se puede seguir, entonces:
  • Da espacio y CPU al trabajo que sigue.
  • Todo el espacio se va directamente a un trabajo solo por poco tiempo.
  • Se van cambiando los trabajos antes de que lleguen a terminar.
Rendimiento sobre el intercambio presenta beneficios al minimizar el tiempo:
  • Mientras que mantiene a la vez varias imágenes de usuario, en la memoria principal.
  • Si es necesario se quita la imagen del usuario para guardar una nueva.
  • Va aumentando el espacio disponible en memoria.
  • (Cuando se quitan las imágenes éstas pasan a otra parte llamada secundaria (disco)).


Comentarios

Entradas más populares de este blog

Política de administración de memoria FIFO

 Política de Administración de memoria FIFO. Memorias FIFO (Fisrt In - Fisrt Out): como su nombre lo dice el primer dato guardado es el primer dato que se va a leer . Características: 👉 Los datos se leen en el mismo orden en que se escriben. 👉 Los datos se escriben a una velocidad y se leen a otra. 👉 Actúa como buffer de datos entre sistemas diferentes.     👆 Un sistema escribe datos rápidamente y luego se dedica a otras tareas, mientras que el otro sistema lo va leyendo lentamente. 👀 Buffer : Parte de la memoria RAM para almacenamiento temporal, de modo que el recurso que los requiere, ya sea hardware o software, puede acceder a ellos en cualquier momento. Ejemplo FIFO Filosofía : Aplicar FIFO siempre y cuando se requiera tener un mayor rendimiento en el sistema teniendo un control de los datos (tanto de lectura como de escritura) que van entrando y saliendo de manera organizada. 👀Ejemplo :

Estructuras de datos para manejo de dispositivos.

Estructura de datos para manejo de dispositivos Introducción En el presente ensayo se describe como es que se van organizando los datos que se encuentran en un sistema, así como también las estructuras simples, qué sistemas operativos las utilizan y algunos inconvenientes con los que cuentan, se explica además una mejora en la estructura como son las llamadas capas o LAYERS y las ventajas que ésta demuestra. Para finalizar viene la parte en la que se describe para qué es el buffering y cómo es que funciona, seguido de otra forma de procesamiento, y las características de los manejadores de interrupción. Desarrollo Una estructura de datos es una manera en la que se pueden organizar un conjunto de datos para que sea más fácil utilizarlos, la estructura es modular, lo que quiere decir que por cada módulo que contenga la estructura deben cumplir con las funciones determinadas y se puedan a su vez relacionarse con los demás módulos. Un ejemplo muy sencillo para entender mejor el concepto de...

Comandos básicos