Memoria real

 1.- Introducción a Memoria Real. (Generalidades)

¿Qué es la memoria?

La memoria es un dispositivo donde se almacenan datos. En los sistemas de cómputo hay dos 

varios tipos de memoria, de los que destacan: la memoria principal (RAM) y la memoria secundaria (discos).

El procesador puede usar directamente la memoria principal, por lo que los programas deben ser cargados en 

memoria antes de ser utilizados. La MMU (Unidad de manejo de memoria) es el hardware que se utiliza para trabajar 

con la memoria.



¿De que forma se administra la memoria?

Ada que se requiere el hardware entrega un conjunto 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



MMU
Es la encargada de verificar que un proceso no lea o modifique los datos de otro
El sistema operativo no podría encargarse de ésta verificación, o, si lo hiciera el retraso sería mayor.
¿Cómo lo hace?
El SO le da a un proceso un registro base y un registro límite.
Ejemplo: Si a un proceso le asignan 64kb (65536), a partir de la dirección 504214, el registro base es 504212 y el registro límite es 65536. Si una instrucción de ese proceso desea acceder a una dirección inferior a 504212 o superior a 569749, la MMU interrumpe el proceso y le indica al SO.        El SO deberá terminar el proceso y notificar al usuario.                                                             

Memoria Cache

 es uno de los recursos con los que cuenta una CPU (Unidad Central de Procesamiento) para almacenar temporalmente datos recientemente procesados en una memoria auxiliar. Se trata de lo que se conoce como una memoria estática de acceso aleatorio (SRAM) muy rápida y colocada cerca de la CPU.

Así, pese a su pequeño tamaño, la memoria caché opera con mayor velocidad, dotando al microprocesador de un tiempo extra para acceder a los datos que se usan con más frecuencia.

¿Para que sirve la memoria cache?

La principal función de la memoria caché es almacenar datos o instrucciones que la CPU va a necesitar en un futuro inmediato, de manera que se gana velocidad en la ejecución de procesos, evitando que la CPU tenga que esperar y aumentando así el rendimiento del equipo.

De manera que la memoria caché sirve para mejorar el rendimiento y velocidad de la CPU en la ejecución de las tareas cotidianas.



Tipos de memoria cache
  • Caché de disco: Se trata de utilizar una porción de memoria RAM asociada a un disco particular, en la que se almacenan los datos de reciente acceso para agilizar su carga.
  • Caché de pista: Es un tipo de memoria caché sólida (similar a la RAM), que se emplea en supercomputadores.
  • Caché de web: Es la memoria caché que se ocupa de guardar los datos de las páginas web que hemos visitado de manera reciente, así se agiliza la carga en siguientes visitas y se ahorra ancho de banda. Esta caché puede ser privada (para un solo usuario), compartida (para varios usuarios a la vez) o en pasarela (para toda la red administrada por un servidor).
¿Cómo funciona la memoria cache?
El funcionamiento de la memoria caché es bastante sencillo; cuando iniciamos un proceso o programa en nuestro ordenador, este empieza a ejecutar una serie de instrucciones que son gestionadas por el procesador. Esa información se carga primero en la RAM y luego pasa al procesador, de manera que para agilizar este proceso, las instrucciones principales y las que más se utilizan se copian en la memoria caché, así el procesador podrá tener acceso inmediato a ellas y no tener que ir a buscar las originales almacenadas en la RAM.

Esto ahorra tiempo de procesamiento y hacer que el equipo sea más rápido a la hora de ejecutar ciertas instrucciones disponibles en la memoria caché. Por eso, la memoria caché es un elemento fundamental en los procesadores actuales.






2.-Jerarquía de Almacenamiento

 Las computadoras utilizan una variedad de tecnologías   de almacenamiento de datos, incluyendo memoria,   grabación, unidades de disco duro de acceso aleatorio y   discos ópticos. Visto como un grupo, estos dispositivos   constituyen una jerarquía organizada por velocidad,   capacidad y costo, donde los métodos más rápidos y   más caros ocupan los niveles más altos y las unidades   más lentas, menos caras y de mayor capacidad, los   niveles inferiores.

 Almacenamiento primario: Cache
 El mayor nivel de almacenamiento se construye   directamente sobre el chip que contiene el   microprocesador de la computadora, la unidad central   de procesamiento o CPU.




Almacenamiento primario: RAM
Antes de que una computadora pueda ejecutar un programa o datos de acceso, primero debe cargarlos en la memoria de acceso aleatorio o RAM, en el lado más alto de la jerarquía de almacenamiento en términos de velocidad y distancia de CPU y por lo general inmediatamente inferior en términos de tamaño.



Almacenamiento secundario: Disco duro
ara almacenar de forma permanente los programas y los datos, el equipo tiene un disco duro, el siguiente paso en la jerarquía de almacenamiento. El disco duro tiene un mecanismo que contiene una bandeja de metal hilado y un sistema de lectura/escritura magnética.


Almacenamiento desconectado: Almacenamiento externo y en red
El nivel más bajo de jerarquía es el almacenamiento desconectado. Estos dispositivos tienen capacidad ilimitada y de bajo costo, pero son relativamente lentos. La capacidad ilimitada proviene del hecho de que tienen medios extraíbles, como las cintas de cartucho, CD y unidades flash. Se puede ampliar la capacidad de un equipo en gran medida si tienes cientos de CDs de datos almacenados en distancia. Un CD montado tiene un tiempo de acceso de un intervalo de 50 milisegundos en unos pocos segundos. 



3.-Estrategias de Administración del Almacenamiento



-Se dividen en las siguientes categorías:

Estrategias de búsqueda:
están relacionadas con el hecho de cuándo 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.
  • Tratan de los casos en que una página o segmento deben ser traídos del almacenamiento secundario al primario.
  • Las estrategias de “búsqueda por demanda” esperan a que se haga referencia a una página o segmento por un proceso antes de traerlos al almacenamiento primario.
  • Los esquemas de “búsqueda anticipada” intentan determinar por adelantado a qué páginas o segmentos hará referencia un proceso para traerlos al almacenamiento primario antes de ser explícitamente referenciados.


-Estrategias de 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.


-Estrategias de 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 colocará (cargará) un programa nuevo.


Estrategias de colocación.
Determinan en que lugar del almacenamiento primario se debe colocar una pagina o un segmento entrante. Una página entrante se puede colocar en cualquier marco de página disponible.
  • Tratan del lugar del almacenamiento primario donde se colocará una nueva página o segmento.
  • Los sistemas toman las decisiones de colocación de una forma trivial ya que una nueva página puede ser colocada dentro de cualquier marco de página disponible.

Estrategias de reposición.
están relacionadas con la determinación de qué fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.

Asignación Contigua

La asignación de memoria contigua es un modelo clásico de asignación de memoria. Aquí, un sistema asigna bloques de memoria consecutivos (es decir, bloques de memoria que tienen direcciones consecutivas) a un proceso.

La asignación de memoria contigua es uno de los métodos de asignación de memoria más antiguos. Así es como funciona: cuando un proceso necesita ejecutarse, el proceso solicita memoria. El tamaño del proceso se compara con la cantidad de memoria principal contigua disponible para ejecutar el proceso.

Si se encuentra suficiente memoria contigua, la memoria se asigna y el proceso comienza su ejecución. De lo contrario, el proceso se agrega a una cola de procesos en espera hasta que haya suficiente memoria contigua libre disponible.





4.- Multiprogramación de Partición Fija

La memoria principal se divide en “n” particiones fijas. Los procesos entran en memoria por una cola simple o por colas separadas según tamaño (en la cola de la partición más pequeña mayor que el tamaño del proceso).

Aunque  a  veces  se  usa  la  monoprogramación en  computadoras  pequeñas  con  sistemas  operativos sencillos, hay muchos casos en que es deseable permitir la ejecución de múltiples procesos a la vez. En los sistemas de tiempo compartido, tener varios procesos en la memoria a la vez implica que cuando un proceso   está   bloqueado   esperando   que   termine   una   E/S,   otro   puede   usar   el   CPU.   Así,   la multiprogramación aumenta el  aprovechamiento del  CPU. Sin  embargo, incluso en  computadoras personales hay ocasiones en las que resulta útil poder ejecutar dos o más programas a la vez.

La forma más fácil de lograr la multiprogramación consiste simplemente en dividir la memoria en n particiones, posiblemente desiguales. Esta división puede, por ejemplo, efectuarse manualmente cuando se inicia el sistema.

Cuando llega un trabajo, se le puede colocar en la cola de entrada de la partición pequeña que puede contenerlo. Puesto que las  particiones están  fijas en  este esquema, cualquier espacio de  una partición que un trabajo no utilice se desperdiciará. En la Figura 6 vemos el aspecto que tiene este sistema de particiones fijas y colas de entrada individuales.



5.- Multiprogramación de Partición Variable


Partición Variable: Tanto el número como el tamaño de los procesos varían dinámicamente. Problema ‡ La asignación y liberación de memoria es más complicada que con las particiones fijas. Ventaja ‡ Se aprovecha más la memoria ya que a cada proceso se le asigna la memoria principal que necesita.

La gestión de la memoria con particiones libres plantea el problema de mantenimiento de un registro de particiones libres y ocupadas que sea eficiente, tanto en tiempo para la asignación como para el aprovechamiento de la memoria. Formas de mantener este registro: 
◆ Mapa de bits
 ◆ Listas enlazadas para las particiones libres y asignadas 
◆ El sistema de los asociados


Surgen dos problemas: 
1. Fragmentación de la memoria. Como consecuencia de la entrada/salida de procesos en la memoria. 

Solución ‡ Compactación de memoria. Se combinan todos los agujeros en uno más grande. Requiere de mucho tiempo de CPU o de un hardware especial. 

2. Crecimiento dinámico de los segmentos de datos. Debido a que no existe un agujero adyacente el proceso (para asignarle espacio extra), y que no se puede mover a un agujero más grande. 

Solución ‡ Reservar un área de memoria extra


6.- Multiprogramación con Intercambio de Almacenamiento


En el esquema de “intercambio” los programas del usuario no requieren permanecer en la memoria principal hasta su terminación.
Una variante consiste en que un trabajo se ejecuta hasta que ya no puede continuar:

  • Cede el almacenamiento y la cpu al siguiente trabajo.
  • La totalidad del almacenamiento se dedica a un trabajo durante un breve periodo de tiempo.
  • Los trabajos son “intercambiados”, dándose que un trabajo puede ser intercambiado varias veces antes de llegar a su terminación.

Es un esquema razonable y eficiente para un numero relativamente reducido de procesos de usuarios.
Los sistemas de intercambio fueron los predecesores de los sistemas de paginación.
El rendimiento de los sistemas de intercambio mejora al reducir el tiempo de intercambio:

  • Manteniendo al mismo tiempo varias “imágenes de usuario o imágenes de memoria” en la memoria principal.
  • Retirando una imagen de usuario de la memoria principal solo cuando es necesario su almacenamiento para una nueva imagen.
  • Incrementando la cantidad de memoria principal disponible en el sistema.

Las imágenes de usuario (imágenes de memoria) retiradas del almacenamiento principal se graban en el almacenamiento secundario (discos).












Referencias:


ayudaley Memoria cache, ¿Qué es y como funciona? //  https://ayudaleyprotecciondatos.es/2020/07/23/memoria-cache/

Copyright @ 2017 Designed by webrity Gibrán García C.// https://naps.com.mx/blog/administracion-de-memoria-panorama-general/

https://www.geniolandia.com/13142068/que-es-la-memoria-del-nucleo-en-el-administrador-de-tareas


https://sites.google.com/site/osupaep2010/administracion-de-memoria-1/multiprogramacion-con-particiones-fijas

https://chsosunal20161913503.wordpress.com/2016/05/04/46-asignacion-con-particiones-variables/

http://www.mfbarcell.es/docencia_uned/so/tema_04/tema4.pdf

https://w3.ual.es/~rguirado/so/tema5.pdf

https://sistemasoperativos.angelfire.com/html/3.2.5.html

http://florysel.blogspot.com/2012/11/323-estrategia-de-administracion-de.html

https://administraciondememoria-corral.es.tl/3-.-4-.-1-Estrategias-de-administraci%F3n-.-.htm

https://techinfo.wiki/asignacion-de-memoria-contigua/



Entradas populares de este blog

Protocolos de administración de red

Tipos de tecnologías WAN