sábado, 23 de noviembre de 2024
Multiprogramación en Memoria Real
Multiprogramación en memoria real
Concepto
Memoria Real en Sistemas Operativos
La memoria real, también conocida como memoria principal o primaria, es esencial en el diseño de sistemas operativos, ya que permite la ejecución y referencia directa de programas y datos. En contraposición, el almacenamiento secundario o auxiliar se encuentra generalmente en discos.
La Ley de Parkinson parafraseada indica que los programas tienden a expandirse para ocupar toda la memoria disponible. Para gestionar esto, el administrador de memoria se encarga de:
- Registrar las partes de memoria utilizadas y disponibles.
- Asignar espacio a procesos según necesidad.
- Liberar memoria de procesos finalizados.
- La gestión eficaz de la memoria real es crucial para el rendimiento del sistema operativo.
Características principales:
- Varios programas residen simultáneamente en la memoria principal.
- Mejora la utilización del CPU y los recursos del sistema.
- No utiliza memoria virtual o técnicas de paginación.
- Los programas se ejecutan directamente desde la memoria física.
ADMINISTRACIÓN DE LA MEMORIA PANORAMA GENERAL 💻💻💻.
ADMINISTRACIÓN
DE LA MEMORIA PANORAMA GENERAL
Es un aspecto crucial en la
informática, especialmente en los sistemas operativos. Se refiere al proceso
mediante el cual un sistema operativo maneja la asignación y el uso de la
memoria del sistema (RAM) para los programas y datos en ejecución.
Objetivos de la
Administración de Memoria
- Asignación
eficiente:
Distribuir los recursos de memoria de manera que todos los procesos
reciban la memoria que necesitan sin desperdiciar recursos.
- Aislamiento
de procesos:
Asegurar que los procesos no interfieran entre sí, garantizando la
protección de los datos y la estabilidad del sistema.
- Optimización
del rendimiento:
Minimizar la sobrecarga de la administración de la memoria y asegurar que
el sistema mantenga un buen rendimiento.
- Gestión
de la fragmentación: Evitar que se queden pequeños bloques de memoria inutilizados, un
fenómeno conocido como fragmentación.
Administración De Memoria (ejemplo)
Espacio de
direccionamiento
Cada que se requiere
el hardware entrega un cojunto de bits (8, 16,32,64) según la arquitectura.
De forma que:
Una arquitectura de 8
bits, puede direccionar 2^8 direcciones (256)
Una de 16 bits =
65536 bytes (64 KB).
Una de 32 bits =
4294967269 bytes ( 4096 MB = 4 GB)
Una de 64 bits puede direccionar hasta 16 exabytes
- Fragmentación
interna y externa:
- Fragmentación
interna:
Ocurre cuando se asigna más memoria de la necesaria a un proceso (por
ejemplo, en el caso de la asignación contigua de memoria), lo que resulta
en un espacio no utilizado dentro de una partición.
- Fragmentación
externa:
Ocurre cuando hay suficiente memoria total, pero se encuentra dispersa en
fragmentos pequeños, lo que impide asignar bloques contiguos grandes de
memoria.
- Falta
de espacio de direcciones (limitación de la memoria física): A veces, los programas
necesitan más memoria de la que puede proporcionar la RAM física
disponible. La memoria virtual ayuda a mitigar este problema, pero el
acceso al disco es más lento que el acceso a la RAM.
- Conflictos
entre procesos: El
mal manejo de la memoria puede resultar en que un proceso sobrescriba la
memoria de otro, lo que causa errores o fallos en el sistema.
Métodos de gestión de la memoria
·
Alocación
estática: No
cambia durante la ejecución del proceso.
·
Alocación
dinámica: Los
procesos pueden solicitar memoria mientras se ejecutan, y esta memoria puede
liberarse cuando ya no se necesita.
·
Swapping: Cuando la memoria RAM está llena,
algunas partes de un proceso se mueven temporalmente al disco duro (swap space)
para liberar espacio en la RAM para otros procesos.
Evolución y tendencias actuales
·
Memoria
compartida: En
sistemas multiprocesador o multiproceso, los procesos pueden compartir ciertas
áreas de memoria, lo que mejora la eficiencia y reduce el uso de la memoria.
·
Administración
de memoria en la nube:
Con el aumento de los servicios en la nube, los sistemas de administración de
memoria deben ser más dinámicos y adaptarse a la naturaleza escalable y
distribuida de los entornos de la nube.
Video Informativo.
"La informática es una herramienta, no un fin."
Este esquema es aún muy frecuente en México y se usa principalmente en sistemas monousuario y monotarea, como son las computadoras personales con DOS. Bajo este esquema, la memoria real es tomada para almacenar el programa que se esté ejecutando en un momento dado, con la visible desventaja de que si se está limitado a la cantidad de RAM disponible únicamente. La organización física bajo este esquema es muy simple: El sistema operativo se ubica en las localidades superiores o inferiores de la memoria, seguido por algunos manejadores de dispositivos ( `drivers' ). Esto deja un espacio contiguo de memoria disponible que es tomado por los programas del usuario, dejando generalmente la ubicación de la pila (` stack' ) al último, con el objetivo de que ésta pueda crecer hasta el máximo posible. Estas diferentes opciones se pueden ver en la figura 4.2. Como es obvio, bajo estos esquemas no se requieren algoritmos sofisticados para asignar la memoria a los diferentes procesos, ya que éstos son ejecutados secuencialmente conforme van terminando.
Características principales de los sistemas monousuario
- Monotarea: Solo un proceso ocupa la memoria principal en un momento dado.
- Espacios de memoria predefinidos: Los programas se cargan en ubicaciones fijas, eliminando la necesidad de una administración dinámica compleja.
- Bajo consumo de recursos: Sin la necesidad de gestionar múltiples procesos, estos sistemas suelen tener un bajo consumo de memoria y CPU.
Ventajas de los sistemas monousuario o sin intercambio
- Simplicidad: La implementación del manejo de memoria es más fácil, reduciendo errores y costos.
- Velocidad: La ausencia de operaciones de swapping o paginación elimina la latencia asociada con estas técnicas.
- Requisitos mínimos de hardware: No se necesita hardware especializado para la gestión dinámica de la memoria.
Manejo de memoria en sistemas monousuario o sin intercambio
Desventajas
Optimización y problemas asociados con el manejo de memoria en sistemas monousuarios sin intercambio:
Este espacio se centrará en los desafíos y técnicas para optimizar el uso de memoria en un sistema monousuario sin intercambio. También cubrirá los problemas que surgen debido a la falta de intercambio y cómo se gestionan.
- Limitaciones de memoria física: Dado que no se puede recurrir al intercambio, si un programa intenta usar más memoria de la que tiene disponible, puede producirse un error o mal funcionamiento.
- Fragmentación de la memoria: A medida que los programas se cargan y descargan de la memoria, pueden dejar huecos de memoria no contiguos, lo que reduce la eficiencia.
- Falta de flexibilidad: Sin el intercambio, los sistemas monousuarios tienen una capacidad limitada para ejecutar múltiples procesos grandes al mismo tiempo.
- Algoritmos de asignación de memoria:
- Primero ajustado (First-fit): Asigna el bloque de memoria más pequeño que se pueda usar.
- Mejor ajustado (Best-fit): Busca el bloque más pequeño que pueda albergar el programa.
- Peor ajustado (Worst-fit): Utiliza el bloque más grande disponible, para dejar el resto más fragmentado.
- Liberación de memoria:
- Se debe asegurar que los programas liberen memoria cuando ya no la necesiten para evitar que la memoria se quede bloqueada.
- Compresión de memoria: Algunas veces, se utilizan técnicas para compactar la memoria y reducir la fragmentación.
- Monitoreo de memoria: Es importante vigilar el uso de la memoria para asegurarse de que no se sobrepase la capacidad física.
- Asignación anticipada de memoria: Algunos sistemas pueden asignar más memoria de la que un programa pueda necesitar en un momento dado para reducir la probabilidad de fallos por falta de memoria.
- Uso eficiente de la pila y el montón: Técnicas para asegurarse de que la memoria dinámica se maneje de manera eficiente, evitando fugas de memoria.
1. Sistemas embebidos (Ej. dispositivos de IoT, sistemas de control)
- Descripción: Los sistemas embebidos son dispositivos con recursos limitados (memoria, procesamiento, etc.) que están diseñados para realizar tareas específicas. Algunos ejemplos son routers, dispositivos de automatización del hogar, o electrodomésticos inteligentes. Estos dispositivos suelen tener un sistema operativo monousuario y una cantidad limitada de RAM.
- Manejo de memoria: Dado que la memoria RAM es limitada y no se utiliza intercambio, el sistema operativo del dispositivo debe gestionar eficientemente la memoria disponible. Generalmente, la memoria se asigna de manera estática o mediante técnicas simples de asignación dinámica, evitando el uso intensivo de memoria y optimizando el uso de la RAM disponible para tareas críticas.
- Desafíos: En estos sistemas, el manejo de memoria es crucial, ya que no pueden depender de la memoria secundaria (disco) y, si la memoria se sobrepasa, puede causar fallos en el funcionamiento del dispositivo.
2. Sistemas operativos antiguos o simples (Ej. MS-DOS)
- Descripción: MS-DOS es un sistema operativo monousuario que operaba en computadoras personales con recursos limitados (como memoria RAM). Durante su uso, MS-DOS no podía aprovechar técnicas de intercambio (swap) para extender la memoria, por lo que los programas debían ajustarse a la cantidad limitada de RAM disponible.
- Manejo de memoria: MS-DOS gestionaba la memoria de manera sencilla, usando una asignación estática y dinámicamente. Los programas generalmente se cargaban en la memoria RAM, y la asignación era fija, lo que significaba que los programas que requerían más memoria no podían ejecutarse si excedían la capacidad disponible.
- Desafíos: La principal limitación era la fragmentación de la memoria, ya que una vez que los programas se cargaban y descargaban, la memoria quedaba fragmentada. Los usuarios debían ser conscientes de las limitaciones de memoria al ejecutar múltiples programas.
3. Aplicaciones de software en computadoras personales de bajo rendimiento (Ej. procesadores antiguos o computadoras con 4 GB de RAM)
- Descripción: En algunas computadoras de bajo rendimiento, como las que se encuentran con procesadores antiguos o con capacidades de RAM limitadas (por ejemplo, computadoras con 4 GB de RAM o menos), el sistema operativo puede ser monousuario y no utilizar intercambio para extender la memoria.
- Manejo de memoria: Estos sistemas operativos, como algunas versiones antiguas de Linux o Windows, pueden utilizar técnicas de asignación de memoria básica como el "first-fit" o "best-fit" para gestionar la memoria disponible. También pueden implementar la asignación estática para procesos que no requieren mucha memoria o liberar espacio cuando un proceso finaliza.
- Desafíos: Estos sistemas son propensos a problemas de sobrecarga de memoria si demasiados programas se ejecutan simultáneamente. La memoria debe ser manejada con cuidado para evitar bloqueos o caídas del sistema.
En todos estos ejemplos, el manejo eficiente de la memoria es crucial para mantener el rendimiento del sistema y evitar errores por falta de memoria, ya que no se utiliza memoria secundaria para intercambiar datos.
Este video al final, nos ofrece una explicación mas didáctica sobre Todo Lo relacionado con los Sistemas Operativos, ¿Que son? ¿Como Funcionan? los Tipos de sistemas operativos y las partes mas importantes que lo conforman.
Administración de la Memoria: Panorama General 💻
Asignación dinámica: la memoria se asigna y libera de acuerdo con los requisitos del programa en tiempo de ejecución
5. Ventajas de la gestión de la memoria
Mayor eficiencia
Permite realizar múltiples tareas al mejorar la RAM y la utilización de la memoria virtual
Flexibilidad
Utilice métodos como la división para manejar software de diferentes dimensiones
Escalabilidad
Admite aplicaciones modernas que requieren grandes cantidades de memoria
Estabilidad del sistema
Previene errores críticos mediante la gestión de recursos entre procesos
6. Desventajas de la gestión de la memoria
Complejidad
Las operaciones complejas exigen algoritmos sofisticados, lo que eleva la complejidad del sistema
Actuación
La dependencia excesiva de la memoria virtual impide el rendimiento, ya que el acceso a la unidad es más lento que la memoria
Fragmentación
La memoria se puede dividir en bloques inutilizables, lo que afecta la eficiencia
Costos de hardware
Requiere dispositivos de almacenamiento rápidos y una capacidad de memoria sustancial para lograr la máxima eficiencia
Comparación entre paginación y segmentación
Segmentación de paginación de apariencia
Tamaño Tamaño fijo de las páginas. Tamaño variable según segmentos.
Fragmentación Fragmentación interna. Fragmentación externa.
Uso ideal para sistemas multitarea. Más flexibilidad en la gestión de datos.
Ejemplo de sistemas Windows con memoria virtual. Sistemas UNIX con programas grandes.
Ejemplo práctico
Caso de memoria virtual en Windows
Un usuario inicia varios programas, como un navegador web, un editor multimedia y un software de edición de texto. Cuando la RAM está completamente ocupada, el sistema operativo reubica los datos a los que se accede con poca frecuencia en el disco de intercambio. Esto permite que el sistema siga funcionando sin encontrar problemas de desbordamiento de memoria.
Multiprogramación en Memoria Real
Ventajas Simplicidad: La implementación es directa en comparación con los sistemas con memoria virtual. Baja sobrecarga: ya que No se requi...






.jpg)