miércoles, 4 de noviembre de 2015

3.2 Memoria Real



La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.


1.2.2.- Administración de la memoria con mapas de bits


Este tipo de administración divide la memoria en unidades de asignación, las cuales pueden ser tan pequeñas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignación le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad está libre y 1 si está ocupada (o viceversa). La figura 6 muestra una parte de la memoria y su correspondiente mapa de bits.








1.2.3.- Administración de la memoria con listas ligadas

Otra forma de mantener un registro de la memoria es mediante una lista ligada de los segmentos de memoria asignados o libres, en donde un segmento puede ser un proceso o un hueco entre dos procesos. La memoria de la figura 7(a) está mostrada como una lista ligada de segmentos en la figura 7(b). Cada entrada de la lista especifica un hueco (H) o un proceso (P), la dirección donde comienza, su longitud y un apuntador a la siguiente entrada.

1.2.4.- Asignación del hueco de intercambio

En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un hueco en el disco asignado a él. Cuando deba intercambiarse, se deberá asignar un hueco para él en el área de intercambio del disco. Los algoritmos para la administración del hueco de intercambio son los mismos que se utilizan para la administración de la memoria principal.

En otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en el disco. Cuando el proceso sea intercambiado, siempre pasará al hueco asignado, en vez de ir a otro lugar cada vez. Cuando el proceso concluya, se libera el hueco de intercambio. La única diferencia es que el hueco en disco necesario para un proceso debe representarse como un número entero de bloques del disco. Por ejemplo, un proceso de 13.5 K debe utilizar 14K (usando bloques de 1K).







3.2.1 Administración de Almacenamiento

Si hay una cosa que toma la mayor parte del día de un administrador de sistemas, esto es la administración del almacenamiento. Pareciera que los discos nunca tienen espacio suficiente, que se sobrecargan con actividad de E/S o que fallan repentinamente. Por eso es vital tener un conocimiento práctico sólido del almacenamiento en disco para poder ser un administrador de sistemas exitoso.

Una vista general del hardware de almacenamiento

Antes de administrar el almacenamiento, primero es necesario entender el hardware en el que están almacenados los datos. A menos que posea un algún conocimiento sobre la operación de los dispositivos de almacenamiento masivo, quizás se encuentre en una situación donde tenga un problema relacionado al almacenamiento pero le falte el conocimiento de fondo para si quiera entender lo que ve. Al tener un entendimiento sobre la forma en que opera el hardware subyacente, podrá más fácilmente determinar si el subsistema de almacenamiento de su computador está funcionando correctamente.

La gran mayoría de los dispositivos de almacenamiento masivo utilizan alguna forma de media de rotación y soportan el acceso aleatorio de los datos en esa media. Esto significa que los componentes siguientes están presentes en alguna forma dentro de casi todos los dispositivos de almacenamiento masivo:
· Plato del disco
· Dispositivo de lectura/escritura de datos
· Brazos de acceso

Las secciones siguientes exploran con más detalles cada uno de estos componentes.

Platos de discos

La media rotativa utilizada por casi todos los dispositivos de almacenamiento masivo están en la forma de uno o más platos planos y de forma circular. El plato puede estar compuesto de cualquier número de materiales diferentes, tales como aluminio, vidrio y policarbonatos.

La superficie de cada plato se trata de forma que permita el almacenamiento de datos. La naturaleza exacta del tratamiento va a depender de la tecnología de almacenamiento de datos utilizada. La tecnología de almacenamiento de datos más común está basada en la propiedad de magnetismo; en estos casos los platos se cubren con un compuesto que presenta buenas características magnéticas.

Otra tecnología de almacenamiento de datos común está basada en principios ópticos; en estos casos, los platos se cubren con materiales cuyas propiedades ópticas pueden ser modificadas, y en consecuencia, permitiendo almacenar datos ópticamente[1].

Sin importar la tecnología de almacenamiento utilizada, los platos del disco se giran, causando que su superficie completa barra más allá de otro componente - el dispositivo de lectura/escritura.

Dispositivo de lectura/escritura de datos

El dispositivo de lectura/escritura es el componente que toma los bits y bytes en los que opera un sistema computacional y los convierte en las variaciones magnéticas u ópticas necesarias para interactuar con los materiales que cubren la superficie de los platos de discos.

Algunas veces las condiciones bajo las cuales estos dispositivos deben operar son difíciles. Por ejemplo, en un almacenamiento masivo basado en magnetismo, los dispositivos de lectura/escritura (conocidos como cabezales), deben estar muy cerca de la superficie del plato. Sin embargo, si el cabezal y la superficie del plato del disco se tocan, la fricción resultante provocaría un daño severo tanto al cabezal como al plato. Por lo tanto, las superficies tanto del cabezal como del plato son pulidas cuidadosamente y el cabezal utiliza aire a presión desarrollado por los platos que giran para flotar sobre la superficie del plato, “flotando” a una altitud no menor que el grueso de un cabello humano. Por eso es que las unidades de discos magnéticos son muy sensibles a choques, cambios drásticos de temperaturas y a la contaminación del aire.

Los retos que enfrentan los cabezales ópticos son de alguna manera diferentes de aquellos para los cabezales magnéticos - aquí, el ensamblado de la cabeza debe permanecer a una distancia relativamente constante de la superficie del plato. De lo contrario, los lentes utilizados para enfocarse sobre el plato no producen una imagen lo suficientemente definida.

En cualquier caso, las cabezas utilizan una cantidad muy pequeña del área de superficie del plato para el almacenamiento de datos. A medida que el plato gira por debajo de las cabezas, esta área de superficie toma la forma de una línea circular muy delgada.

Si es así como los dispositivos de almacenamiento masivo funcionan, significa que más del 99% de la superficie del plato se desperdiciaría. Se pueden montar cabezas adicionales sobre el plato, pero para utilizar completamente el área de superficie del plato se necesitan más de mil cabezales. Lo que se requiere es algún método de mover los cabezales sobre la superficie del plato.

Brazos de acceso

Utilizando una cabeza conectada a un brazo que sea capaz de barrer sobre la superficie completa del plato, es posible utilizar completamente el plato para el almacenamiento de datos. Sin embargo, el brazo de acceso debe ser capaz de dos cosas:
· Moverse rápidamente

· Moverse con gran precisión

El brazo de acceso se debe mover lo más rápido posible, pues el tiempo que se pierde moviendo el cabezal desde una posición a la otra es tiempo perdido. Esto se debe a que no se pueden leer o escribir datos hasta que el brazo se detenga [2].

El brazo de acceso debe ser capaz de moverse con gran precisión porque, como se mencionó anteriormente, el área de superficie utilizada por los cabezales es muy pequeña. Por lo tanto, para usar eficientemente la capacidad de almacenamiento del plato, es necesario mover las cabezas solamente lo suficiente para asegurar que cualquier datos escrito en la nueva posición no sobrescribe los datos escritos en la posición previa. Esto tiene el efecto de dividir conceptualmente la superficie del plato en miles o más aros concéntricos o pistas. El movimiento del brazo de acceso desde una pista a la siguiente a menudo se conoce como búsqueda y el tiempo que toma el brazo de acceso para moverse de una pista a otra se le conoce como tiempo de búsqueda.

Cuando existen múltiples platos (o un plato que con ambas superficies utilizadas para almacenamiento de datos), se apilan los brazos para cada superficie, permitiendo que se pueda acceder a la misma pista en cada superficie simultáneamente. Si se pueden visualizar las pistas para cada superficie con el acceso estacionario sobre una pista dada, aparecerán como que están apiladas una sobre la otra, haciendo una forma cilíndrica; por tanto, el conjunto de pistas accesibles en una posición dada de los brazos de acceso se conocen como cilindro.





3.2.2 Jerarquía

Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles, que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basándose en el principio de cercanía de referencias. 
Los puntos básicos relacionados con la memoria pueden resumirse en:
· Cantidad
· Velocidad
· Coste

La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.

Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas:

· A menor tiempo de acceso mayor coste

· A mayor capacidad mayor coste

· A mayor capacidad menor velocidad.

Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida.


Los niveles que componen la jerarquía de memoria habitualmente son:
· Nivel 0: Registros
· Nivel 1: Memoria caché
· Nivel 2: Memoria principal
· Nivel 3: Disco duro (con el mecanismo de memoria virtual)
· Nivel 4: Redes(Actualmente se considera un nivel más de la jerarquía de memorias)




3.2.3 Estrategia de Administración de Memoria


Estrategias de Administración del Almacenamiento
Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento principal [7, Deitel].
Se dividen en las siguientes categorías:

· Estrategias de búsqueda:
o Estrategias de búsqueda por demanda.
o Estrategias de búsqueda anticipada.

· Estrategias de colocación.

· Estrategias de reposición.
Las “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.
Se considera que la “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.
Las “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 de Almacenamiento Versus No Contigua
En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento.

En la “asignación no contigua” un programa se divide en varios bloques o “segmentos” que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es más compleja pero más eficiente que la asignación continua.
Asignación Contigua de Almacenamiento de Un Solo Usuario
Se consideran S. O. que ya poseen desarrollado el “sistema de control de entrada / salida”: IOCS: input / output control system
















3.2.4 Asignación Contigua vs. no Contigua


En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento. 

En la “asignación no contigua” un programa se divide en varios bloques o “segmentos” que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es más compleja pero más eficiente que la asignación continua.

3.2.5 Multiprogramación de Partición fija, Partición variable, con intercambio de 
           Almacenamiento

Se denomina multiprogramación a la técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal y que sean ejecutados al “mismo tiempo” (seudo-paralelismo, en una única CPU sólo puede haber un proceso a la vez) en la unidad central de proceso o CPU.
Aporta las siguientes ventajas:
· La ya mencionada, varios procesos en ejecución.
· Permite el servicio interactivo simultáneo a varios usuarios de manera eficiente.
· Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S
· Aumenta el uso de la CPU.
· Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dónde estará el proceso dado que el sistema operativo es el que se encarga de convertir la dirección lógica en física.
Un proceso entra a ejecutarse y llega al momento en que tiene que hacer espera por un dispositivo de entrada y/o salida por ejemplo, el CPU estará ocioso mientras espera que el proceso puede usar el dispositivo para así finalmente ejecutarse. Los sistemas de multiprogramación evitan eso ya que durante ese tiempo de esperar pasan a ejecutar otro proceso teniendo así al computador ocupado.

PARTICIONES FIJAS
Consiste en dividir la memoria en varias particiones de tamaño fijo. Cada partición puede contener exactamente un proceso.
El nivel de multiprogramación está limitado por el número de particiones.
Cuando una partición está libre, se selecciona un proceso de la cola de entrada y se carga en la partición libre; cuando un proceso termina, la partición está disponible para otro.
El sistema operativo conserva una tabla que indica qué partes de la memoria están disponibles y cuales están ocupadas.
Particiones Variables
Cada trabajo ocupa tanto espacio como necesita.
· El tamaño del trabajo a ubicar no puede ser mayor que el almacenamiento principal disponible
· Se disminuye parcial o totalmente el desperdicio de memoria
· Aparecen: Condensación y Compactación
PARTICIONES FIJAS
Consiste en dividir la memoria en varias particiones de tamaño fijo.
Cada partición puede contener exactamente un proceso.
El nivel de multiprogramación está limitado por el número de particiones.
Cuando una partición está libre, se selecciona un proceso de la cola de entrada y se carga en la partición libre; cuando un proceso termina, la partición está disponible para otro.
El sistema operativo conserva una tabla que indica qué partes de la memoria están disponibles y cuales están ocupadas.




No hay comentarios:

Publicar un comentario