Mostrando entradas con la etiqueta Memoria. Mostrar todas las entradas
Mostrando entradas con la etiqueta Memoria. Mostrar todas las entradas
Es una estrategia de organización de la memoria que consiste en dividir la memoria en porciones de igual tamaño, a dichas porciones se las conoce como marcos de página o simplemente como páginas. Las páginas están definidas por un número de página, que identifica de forma única a cada página (dentro del espacio de memoria de un proceso). Cada página se asigna en exclusividad a un proceso.

Desde el punto de vista de la paginación la traducción de las direcciones de memoria se basa en dos conceptos:

  • El dispositivo traductor divide las direcciones lógicas en 2 partes de la siguiente forma: los n bits más significativos identifican la página mientras que el resto identifica el desplazamiento.
  • Cuando el traductor dinámico de páginas recibe, en una dirección lógica, un número de página este examina una tabla (llamada tabla de páginas) en la cual se relacionan las páginas lógicas con las páginas físicas y obtiene la dirección real (Número de marco) de la siguiente forma:
paginacion

Dispositivo de traducción de direcciones paginadas


Se dispone de la tabla de páginas de cada proceso en memoria para llevar a cabo la traducción. La tabla de páginas se indexa por número de página.
El dispositivo de traducción de direcciones paginadas debe ser un dispositivo muy rápido, ya que se usa con cada acceso a memoria que se realiza. El tamaño de la tabla de páginas es uno de los aspectos que más influye en el diseño del dispositivo e incluso en la organización de la propia tabla. Otro aspecto relevante es la localización de dicha tabla, la cual puede encontrarse en el traductor o guardada en memoria:

Tabla de páginas en el traductor:

Se usa en equipos cuyo espacio de direcciones es de pocas páginas. El dispositivo de traducción contiene un conjunto de registros organizados como una memoria en los cuales almacena la tabla de páginas. Dicha tabla de páginas debe sustituirse (lo cual aumenta el tiempo de conmutación) en dos situaciones distintas: al cambiar de proceso y al transferir el control al s.o. (en este caso se reduce el tiempo de conmutación utilizando dos tablas separadas, una para los procesos y otra para el s.o., las cuales se utilizan dependiendo del modo de uso de la CPU, supervisor o usuario).

Tabla de páginas en memoria:

Se usa en equipos con mucha memoria, en los cuales el número de páginas puede llegar a ser muy alto con lo que el tiempo necesario para cargar las páginas en el traductor es demasiado alto. La tabla de páginas es guardada en la memoria principal y el dispositivo traductor tiene la dirección de comienzo y el tamaño de la tabla, debido a que la tabla está en la memoria principal se necesita, por cada acceso a memoria, un acceso a memoria adicional para obtener el número de página física asociado a la página lógica. Para mantener un tiempo de acceso aceptable se establece una memoria asociativa que conserva las parejas página lógica-página física utilizadas recientemente.
También hay dispositivos traductores que no utilizan tablas de páginas, buscan directamente la información en una memoria asociativa, y si no la encuentran, lanzan una excepción que manejará el sistema operativo. Así, el SO es el responsable de determinar la asociación entre números de página y números de marco, y además de actualizar la memoria asociativa, lo que da cierta flexibilidad.
La evaluación se hace en base a la tasa de fallos de página, que es el número de fallos de página entre el número de accesos totales a página, con lo que su valor oscila en el rango [0,1].
El fallo de página se produce cuando se accede a una posición de memoria que pertenece a una página de memoria que esta descargada en disco.

También hay que tener en cuenta el contexto, si estamos en arranque en frío o en caliente, así como el cumplimiento del principio de localidad espacial y temporal.

  • Arranque en frío: se dan muchos fallos de página al principio, ya que los procesos se acaban de lanzar y ninguno está cargado en memoria principal.
  • Arranque en caliente: se suponen ya cargadas las páginas de los procesos en memoria principal.

Algoritmo MRU(Most Recently Used)

Se selecciona la última página a la que se ha accedido. Podría implementarse con una LIFO por orden de acceso. Es una aproximación implementable en la práctica del criterio MAX, pudiendo así compararlo con otros criterios. Según el principio de localidad, mientras más recientemente se haya accedido a una página, más probable es que vuelva a accederse a ella. Por ello, este criterio es muy deficiente, siendo su curva cercana a la pésima:

MRU

Algoritmo por orden de carga FIFO

Se selecciona la página que más tiempo lleva cargada en memoria principal. Se implementa con una FIFO por orden de carga, es decir, a medida que se cargan en memoria principal las páginas son añadidas a la cola.
El inconveniente de este criterio es que las páginas más usadas son las que más tiempo deberían permanecer en memoria, y son las más atacadas. No se debe suponer que, si las páginas “dejarán de ser necesarias”, implica que “ya no sean necesarias”. Además, se produce la anomalía de Belady, efecto que consiste en la posibilidad de tener más fallos de página al aumentar el número de marcos en la memoria física:

FIFO


Particiones  Fijas

onsiste en dividir la memoria libre en varias partes de igual tamaño o de diferentes tamaños Un programa puede ser demasiado grande para caber en la partición. En este caso, el programador debe diseñar el programa mediante superposiciones, para que sólo una parte del programa esté en memoria principal.

En el caso de particiones de igual tamaño, si todas las particiones estuvieran ocupadas con procesos que no están listos para ejecutar y necesita cargarse un nuevo proceso, debe determinarse qué partición expulsarse de memoria

Asignación de memoria con particiones fijas: consiste en el proceso de asignar memoria en tiempo de compilación antes de que el programa asociado sea ejecutado

Particiones Dinámicas

Consiste en particiones de memoria de tamaños variable, es decir, a cada proceso se le asigna la cantidad de memoria que necesita deben utilizarse algunos algoritmos para la ubicación de procesos en las particiones. Estos algoritmos son:

Mejor ajuste: se elige el bloque con el tamaño más parecido al del proceso entrante.

Primer ajuste: comienza recorriendo la memoria desde el comienzo y escoge el primer bloque disponible en el que entre el proceso entrante

Siguiente ajuste: recorre la memoria desde el lugar de la última ubicación y elige el siguiente bloque disponible que sea suficientemente grande.

Peor ajuste: elige el bloque más grande posible. (descartado por ineficiencia)


RAM
Memoria RAM


En un computador o dispositivo electrónico se puede encontrar una gran variedad se memorias la cuales cumplen funciones específicas dentro del sistema  cada una de estas puede almacenar datos de forma distinta y mostrarlos al usuario dependiendo la necesidad de cada una de las operaciones.

RAM (Random Access Memory) 


Puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder a la información de la manera más rápida posible, en esta se almacenan y ejecutan cada una de las operaciones que requiera el sistema operativo o programa que se corra y requiera procesar algún dato o realizar una operación con los mismo. Esta memoria es volátil y no guarda datos luego de que se corta la energía.

ROM (Read-Only Memory)


Es un medio de almacenamiento utilizado en ordenadores y dispositivos electrónicos, que permite solo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía.
Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Se utiliza principalmente en su sentido más estricto.
Como la ROM no puede ser modificada (al menos en la antigua versión de máscara), solo resulta apropiada para almacenar datos que no necesiten ser modificados durante la vida de este dispositivo. Con este fin, la ROM se ha utilizado en muchos ordenadores para guardar tablas de consulta, utilizadas para la evaluación de funciones matemáticas y lógicas

EPROM (Erasable Programmable Read-Only Memory)


Es un tipo de chip de memoria ROM no volátil Está formada por celdas transistores de puerta flotante cada uno de los cuales viene de fábrica sin carga, por lo que son leídos como 1 (por eso, una EPROM sin grabar se lee como FF en todas sus celdas
Una EPROM programada retiene sus datos durante diez o veinte años, y se puede leer un número ilimitado de veces. Para evitar el borrado accidental por la luz del sol, la ventana de borrado debe permanecer cubierta. Las antiguas BIOS de los ordenadores personales eran frecuentemente EPROM y la ventana de borrado estaba habitualmente cubierta por una etiqueta que contenía el nombre del productor de la BIOS.

EEPROM (Electrically Erasable Programmable Read-Only Memory)


Es un tipo de memoria ROM que puede ser programada, borrada y reprogramada eléctricamente, a diferencia de la EPROM que ha de borrarse mediante un aparato que emite rayos ultravioleta. Son memorias no volátiles.
Las celdas de memoria de una EEPROM están constituidas por un transistor MOS, que tiene una compuerta flotante (estructura SAMOS), su estado normal está cortado y la salida proporciona un 1 lógico.
Aunque una EEPROM puede ser leída un número ilimitado de veces, sólo puede ser borrada y reprogramada entre 100.000 y un millón de veces.


Asignación de memoria


La asignación de memoria en un SO es la forma en la que se distribuye el espacio en RAM de cada uno de los proceso esto se puede realizar con una serie de técnicas o netos que se describirán a continuación.

Primer ajuste


Consiste en asignar el primer segmento disponible que tenga un espacio suficiente para almacenar el programa. Esto causa que se dé un alto índice de fragmentación dado que si la primer partición e la de mayor espacio en esta pueden corres pequeños procesos que no siempre o chupan toda la capacidad del segmento.


Mejor ajuste 


Consiste en recorrer todos los segmentos de memoria y verificar cual es el que menor fragmentación cause de acuerdo con el proceso a ejecutar si hay un segmento de memoria que tiene exactamente el mismos tamaño del proceso este se asignara en este espacio y no continuara buscando otro segmento.

Siguiente ajuste


Consiste en realizar la asignación de los proceso de la misma forma que se hace en el mejor ajuste a excepción de que en este caso el recorrido de los segmentos de memoria se inicia desde la última posición en la que se asignó un proceso