miércoles, 24 de junio de 2015

Definicion de memoria

En informatica, la memoria es el dispositivo que retiene, memoriza o almacena datos informáticos durante algún intervalo de tiempo. La memoria proporciona una de las principales funciones de la computación moderna: el almacenamiento de información y conocimiento. Es uno de los componentes fundamentales de la computadora, que interconectada a la unidad central de procesamiento (CPU, por las siglas en inglés de Central Processing Unit) y los dispositivos de entrada/salida, implementan lo fundamental del modelo de computadora de laarquitectura de von Neumann.
En la actualidad, «memoria» suele referirse a una forma de almacenamiento de estado sólido, conocida como memoria RAM (memoria de acceso aleatorio; RAM por sus siglas en inglés, derandom access memory), y otras veces se refiere a otras formas de almacenamiento rápido, pero temporal. De forma similar, se refiere a formas de almacenamiento masivo, como discos ópticos, y tipos de almacenamiento magnético, como discos duros y otros tipos de almacenamiento, más lentos que las memorias RAM, pero de naturaleza más permanente. Estas distinciones contemporáneas son de ayuda, porque son fundamentales para la arquitectura de computadores en general.
Además, se refleja una diferencia técnica importante y significativa entre «memoria» y «dispositivos de almacenamiento masivo», que se ha ido diluyendo por el uso histórico de los términos «almacenamiento primario» (a veces «almacenamiento principal»), para memorias de acceso aleatorio, y «almacenamiento secundario», para dispositivos de almacenamiento masivo. Esto se explica en las siguientes secciones, en las que el término tradicional «almacenamiento» se usa como subtítulo, por conveniencia.
Foto de memorias RAM tipo DDR instaladas en su socket.


por Mirleydis Vargas

Administración de Memoria

Se le llama administración de memoria a los diversos métodos y operaciones destinados a obtener la máxima utilidad y provecho de una memoria informática, en pos del buen uso y funcionamiento del sistema en su totalidad.

Una memoria informática consiste en la serie de componentes, dispositivos y medios en una computadora que tienen el fin de retener y almacenar datos informáticos en forma circunstancial o permanente.

Para poder lograrlo, la operación principal que realiza es la de trasladar la información que deberá ser ejecutada por el procesador, a la memoria principal. Actualmente esta administración se conoce como Memoria Virtual ya que no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria más extensa teniendo la misma memoria real, con lo que esta se puede utilizar de manera más eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario.



Entre las principales operaciones que desarrolla la administración de memoria se encuentran:

Reubicación.
En los sistemas con memoria virtual, los  programas en la memoria debe ser capaz de residir en diferentes partes de la memoria en diferentes momentos. Esto se debe a que cuando el  programa se cambió de nuevo en la memoria después de ser intercambiado por un tiempo que no siempre se puede colocar en el mismo lugar. La unidad de gestión de memoria virtual también debe hacer frente a la concurrencia. Gestión de memoria en el sistema operativo por lo tanto debe ser capaz de trasladar los programas en la memoria y manejar referencias de la memoria y las direcciones en el código del programa para que siempre apunten a la ubicación correcta en la memoria

Protección.
Los procesos no deberían poder referenciar la memoria de otros procesos sin permiso, para evitarlo existe la  protección de memoria, que evita que código malicioso o erróneo de un  programa interfiera con la operación de otros programas en ejecución.

Memoria compartida.
Aunque la memoria utilizada por diferentes procesos suele estar protegida, algunos procesos puede que sí tengan que compartir información y, para ello, han de acceder la misma sección de memoria. La memoria compartida es una de las técnicas más rápidas para posibilitar la comunicación entre procesos.

Organización lógica.
Los programas a menudo están organizados en módulos, algunos de los cuales pueden ser compartidos  por diferentes programas, algunos son de sólo-lectura y otros contienen datos que se pueden modificar. La gestión de memoria es responsable de manejar esta organización lógica, que se contrapone al espacio de direcciones físicas lineales. Una forma de lograrlo es mediante la segmentación de memoria.

Organización física:
La memoria suele dividirse en un almacenamiento primario de alta velocidad y uno secundario de menor velocidad.

Todos estos procesos son flexibles y dependen del uso y propósito del ordenador por parte del usuario para optimizar su rendimiento. Con frecuencia, la ejecución de estas operaciones brindará mayor espacio disponible para el almacenamiento de información y proporcionará una mayor agilidad en la gestión de procesos de diversa índole y nivel.

por José Vásquez

TIPOS DE MEMORIAS por: Antonio Moreno


Una computadora trabaja con cuatro tipos de memorias diferentes, que sirven para realizar diversas funciones. Estas son la memoria RAM, la memoria ROM, la memoria SRAM o Caché y la memoria Virtual o de Swap.

  • Memoria Rom o Convencional (Read Only Memory)

La memoria ROM viene incorporada a la motherboard y es utilizada por la PC para dar inicio a la BIOS, lo cual es básicamente un programa que posee las instrucciones adecuadas para guiar a la computadora durante el arranque. Es una memoria solamente de lectura, es totalmente inalterable sin esta memoria la maquina no arrancaría.

La memoria principal es la convencional que va de 0 a 640 kb. Cuando la máquina arranca comienza a trabajar el disco y realiza un testeo, para lo cual necesita memoria, esta memoria es la convencional (ROM) y está dentro del mother (en el bios). Apenas arranca utiliza 300 kb, sigue testeando y llega a más o menos 540 kb donde se planta. A medida de que comenzaron a haber soft con más necesidad de memoria apareció la llamada memoria expandida que iba de 640 kb a 1024 kb. Una vez que se utilizaba toda la memoria convencional se utilizaba la expandida que utiliza la memoria RAM. A medida que pasa el tiempo los 1024 kb eran escasos y se creó la memoria extendida que va de 1024 kb a infinito que es la memoria RAM pura. 

  • MEMORIA RAM (memoria de acceso aleatorio) 

Memoria Ram - Tipos y CapacidadesSe utiliza como memoria de trabajo para el sistema operativo, los programas y la mayoría del software 
Existe muchos tipos de memorias ram y sus capacidades van variando dependiendo su tipo. Cabe mencionar que no todas las tarjetas madres usan el mismo tipo de memorias y estas varían dependiendo la tarjeta madre y lo antiguo que son.


Esta memoria es como un escritorio al igual que los escritorios tienen cajones donde ordenan la información, cuanto más grande sea el escritorio (plano de apoyo) más cajones voy a tener de tal suerte que el micro va a perder menos tiempo en buscar y ordenar la información.
La importancia de esta memoria es tan grande que si está ausente la PC NO ARRANCA,
Actúa como si estuviera muerta no hay sonido ni cursor en la pantalla ni luces que se enciendan o apaguen.

Para que sirve:
Almacena las instrucciones que debe ejecutar el micro en cada momento
Este es el lugar físico donde debe trabajar el procesador cuando abrimos un programa sus instrucciones se copian automáticamente en la memoria, y cuando cerremos el programa todo se borrara (volatizara)
La Ram es como un pizarrón donde se copian datos
También copia los trabajos que estamos haciendo en ese programa
En la Ram se copian programas que coordinan el funcionamiento de la Pc:
La primera parte de la Ram está reservada para guardar las instrucciones de los dispositivos electrónicos. En este lugar no se puede guardar nada ya que lo utiliza el sistema para saber cómo manejar los dispositivos.


MEMORIA VIRTUAL


Tenemos también lo que llamamos memoria virtual también llamada swapeo. Windows crea esta memoria virtual y ocupa espacio del disco para hacerlo. Si llega se a superar esta memoria virtual la capacidad del disco se cuelga la máquina, para lo cual lo único que nos resta es resetearla.
Si abrimos muchos programas nos vamos a dar cuenta que cuando llegamos a utilizar memoria virtual la máquina comienza a funcionar más lenta o a la velocidad que tiene nuestro disco disminuye, podemos seguir trabajando, pero nunca andará tan rápido como cuando trabaja con la memoria RAM o extendida. Por lo tanto para evitar esto lo mejor es colocar más memoria RAM de acuerdo a lo que diga el manual de mother.

  • MEMORIA CACHÉ o SRAM


La memoria caché trabaja igual que la memoria virtual, tenemos caché en el procesador, en los discos y en el mother y nos guarda direcciones de memoria. Si ejecutamos un programa en principio, lo cerramos y luego los volvemos a ejecutar, la memoria caché nos guarda la ubicación (dirección) en el disco, cuando lo ejecuté, y lo que hicimos con el programa. Es mucho más rápida cuando ya usamos un programa

Existen 3 tipos de memoria caché:

Cache L1

Está dividido en dos bloques uno contiene las instrucciones y otro los datos y cuando se habla de su capacidad de almacenamiento se dice que es de 2x16 Kb .
El cache L1 se encuentra dentro del interior del procesador y funciona a la misma velocidad que el micro con capacidades que van desde 2x8 hasta 2x64Kb

Cache L2 interno y externo

La primeras memoria caché estaban ubicadas en el mother luego se construyeron en el procesador, pero no dentro del dado del procesador por lo que es más lento que el caché L1, mientras que el externo lo encontramos el mother.
La computadoras que tienen las tres tecnologías de caché van a ser más rápidas.

Cache L3

Algunos micro soportan un nivel de caché más el L3 que está localizado en el mother
EL AMD 6k-3 soporta este caché.
Memoria RAM
Este tipo de memoria, que funciona de manera similar a la caché, es creada por Windows o Linux para ser utilizada exclusivamente por el sistema operativo. En el caso de Linux esta denominada memoria swap generalmente está ubicada en una partición diferente del disco, mientras que en el sistema de Microsoft es un archivo dentro del sistema operativo mismo. 

  • FPM DRAM


La ventaja de este memoria consiste en pedir permiso una sola vez u llevarse varios datos consecutivos esto comenzó a usarse principios de os años noventa y dio buenos resultados a estos módulos se los denominaron SIMM FPM DRAM y pueden tener 30 o 72 pines y se la utiliza en las Pentium I lo que logro con esta tecnología es agilizar el proceso de lectura, estas memorias ya no se utilizan mas.
  • EDO DRAM


Estas memorias aparecieron en el 95, y se hicieron muy populares ya que estaban presentes en todas las Pentium I MMX y tenía la posibilidad de localizar un dato mientras transfería otro de diferencia de las anteriores que mientras transfería un dato se bloqueaba. Estas EDO SIMM eran de 72 pines
  • SDRAM


Esta Memoria entro en el mercado en los años 97, y mejoro la velocidad siendo su ritmo de trabajo igual a la velocidad de Bus (FSB) es decir que tienen la capacidad de trabajar a la misma velocidad de mother al que se conectan.
Estos módulos de 168 Pines son conocidos como DIMM SDRAM PC 66 y 100, 133, obviamente si instalo una de 133, en un mother de 100 va a funcionar a 100Mhz.
  • DDR SDRAM


En este caso se consiguió que pudiera realizar dos transferencia en una pulsación o tic-tac de reloj, esta memoria pude alcanzar velocidades de 200 a 266Mhz, Tiene una ventaja más trabaja en sincronía con el bus del mother si este acelera la memoria también pero tiene una desventaja son muy caras. Se conoce como DIMM DDR SDRAM PC 1600 Y PC 2100.
  • RDRAM


Es una memoria muy costosa y de compleja fabricación y la utilizan procesador Pentim IV para arriba corre a velocidades de 800 Mhz sus módulos se denominan Rimm de 141 pines y con un anho de 16 bits, para llenar un banco de memoria de 64 bits hay que instalar 4 memorias, es posible que estas memoria sean retiradas del mercado por ser tan costosas

por Antonio Moreno

Organización de la Memoria

Organización de la Memoria

Consiste en un conjunto de técnicas y políticas que permitirán asignar (cargar) y des-asignar la memoria (liberar) así como contabilizar y controlar la memoria disponible y ocupada, esto es, determinar a que proceso ó trabajo se le da memoria, cuanta memoria, en que momento (cuando) y en que posiciones (donde).

Como ya se mencionó, la memoria tiene espacios físicos llamados localidades de memoria, estos a su vez tiene un identificador único llamado dirección de memoria la cual puede ser lógica que es la que conoce el CPU y física que es la real, siendo que ambas pueden ser diferentes por cuestiones de re-ubicación y optimización en el uso de la memoria. Las direcciones de memoria siempre son múltiplos de dos.


Históricamente el almacenamiento principal se ha considerado como un recurso costoso, por lo cual su utilización debía optimizarse. La memoria está dividida en primaria y secundaria. El traspaso de información entre éstas es la preocupación más grande del sistema; esta responsabilidad puede ser asignada al programador, pero ésto sería una gran pérdida de tiempo, por esto el sistema debe ocuparse de ello.



Las distintas memorias presentes en un computador se organizan de forma jerárquica:



Dinámica: DRAM (requiere refresco)
RAM: Memoria de acceso arbitrario
Estática: SRAM (Volátil) 
Flash: RAM de larga vida
ROM: Memoria de solo lectura
ROM: suele utilizarse para referirse a la RAM de solo lectura
PROM: una escritura
EPROM: Erasable PROM (No Volátil)
EEPROM: Electricaly EPROM
Caché: Antememoria acelera los accesos a memoria desde la UCP


Técnicas o estrategias para la Administración de Memoria


Estrategias para la Administración de Memoria

Opciones
Sin Intercambio  
En los sistemas de memoria sin intercambio, la idea básica consiste en cargar el programa a ejecutar en algún lugar de la memoria principal, donde permanece hasta que finaliza su ejecución, momento en el que abandona el espacio de memoria utilizado.

  •  Monoprogramacion: El esquema de memoria mas simple consiste en mantener la memoria ocupada con un único proceso. cuando se carga un programa que se hace cargo de toda la memoria y del control completo de la maquina, se dice que el programa se carga sobre una maquina desnuda, es decir, una maquina en la que solamente se ofrece el hardware puro, sin ninguna ayuda software que lo recubra. La tecnica actual mas utilizada en los pequeños ordenadores es en la que la memoria esta ocupada por el sistema operativo, que suele estar en RAM, y por el cargador inicial del sistema operativo(IPL) y los drivers de dispositivos, que suelen estar en memoria ROM. el resto de la memoria RAM queda disponible como área de usuario 
  • Multiprogramacion con particiones fijas: Ya que en general, es deseable que haya varios procesos de usuario residiendo en memoria al mismo tiempo, se hace necesario considerar el problema de como asignar memoria disponible a varios de los procesos que están en la cola de espera para ser traídos a memoria principal. Lo mas inmediato y simple es dividir la memoria en n Particiones, de tal forma que en cada partición se mete un proceso, donde permanece hasta que finaliza su ejecución. una vez terminado el proceso, la partición queda libe para acoger un nuevo trabajo. con la llegada de la multiprogramacion y este esquema de memoria aparecen algunos problemas y cuestiones que deben solventarse, como la planificación de procesos a largo plazo, la determinación del numero y tamaño de las particiones, la ubicación de los programas y la protección de las particiones de memoria. 


Con Intercambio
En un sistema batch, la organización de la memoria en particiones fijas resulta simple y efectiva. siempre que se puedan mantener en memoria suficientes trabajos como para mantener la CPU ocupada, no hay razón para complicar la organización. en cambio, en un sistema de tiempo compartido la situación es diferente, pues normalmente hay mas usuarios que memoria para contener sus procesos, por lo que se hace necesario llevar a disco los procesos en exceso. en cualquier caso, debe quedar claro que para que pase a ejecución algunos de estos procesos que se han llevado a disco, antes hay que traerlos a memoria. cuando al proceso en ejecución se le acabe su porción de tiempo, es posible que se le vuelva a llevar a memoria secundaria para dejar espacio al proceso que se haya seleccionado el planificador. al trasiego de procesos que se llevan de memoria a disco y de disco a memoria se le denomina intercambio (Swapping).

  • Multiprogramacion con particiones variables: En principio, un sistema de intercambio podría estar basado en particiones de tamaño fijo, de tal forma que cuando un proceso queda bloqueado en espera, se le puede mover al disco y traer otro a la partición que queda libre. pero este sistema no es aconsejable cuando se dispone de poca memoria principal, pues los programas pequeños desperdician mucha memoria cuando ocupan particiones grandes (fragmentacion interna). otro enfoque mejor es el basado en particiones de tamaño variable, al usar este método el numero y tamaño de los procesos cargados en memoria varia con el tiempo, los procesos van y vienen al igual que varia el tamaño y las direcciones constantemente.
  • Memoria Virtual: En las distintas estrategias de gestión de memoria vistas hasta ahora, todas tienen un objetivo común: mantener muchos procesos en memoria simultáneamente para permitir la multiprogramacion y en cualquier caso, siempre hemos visto que se requiere que un proceso este completamente en memoria principal antes de que se pueda ejecutar. 
Sabemos que para ejecutar las instrucciones de un programa, estas, al igual que sus operandos, tienen que estar en memoria principal, esta imposición parece necesaria y razonable, pero por desgracia limita el tamaño de un programa al espacio de memoria física RAM. sin embargo, el examen de los programas reales nos muestra que no es necesario que el programa entero permanezca siempre en memoria.
La memoria virtual es una tecnica que permite la ejecución de procesos que pueden no estar completamente en memoria principal. La ventaja principal de este esquema es que los programas pueden ser mayores que la memoria principal. esto se debe a que se crea una abstracción de la memoria principal, separando la memoria lógica, tal como la ve el usuario, de la memoria física de la que realmente se dispone. esta tecnica libera al programador de las preocupaciones concernientes a las limitaciones e la memoria. 



  1. Paginación: La paginación surge como un intento de paliar estos problemas sofisticando apreciablemente el hardware de gestión de memoria del procesador y aumentado considerablemente la cantidad de información de traducción que se almacena por cada proceso. El mapa de memoria de cada proceso se considera dividido en páginas. A su vez, la memoria principal del sistema se considera dividida en zonas del mismo tamaño que se denominan marcos de página. Un marco de página contendrá en un determinado instante una página de memoria de un proceso
  2. Segmentación: Con la paginación, la MMU no sabe nada sobre las distintas regiones de los procesos. Sólo entiende de páginas. El sistema operativo debe guardar para cada proceso una tabla de regiones que especifique que paginas pertenecen a cada región. esto tiene dos desventajas: 
  • Para crear una región hay que rellenar las entradas de las paginas pertenecientes a la región con las mismas características.
  • Para compartir una región, hay que hacer que las entradas correspondientes de os procesos apunten a los mismos marcos. 
por Roning Torres.

CUADRO COMPARATIVO DE LAS TÉCNICAS DE ADMINISTRACIÓN DE MEMORIA



PARTICIÓN FIJA Y DINÁMICA:

por Clinty Ascencio