El documento describe diferentes esquemas y algoritmos de administración de memoria en sistemas operativos, incluyendo administración sin intercambio, multiprogramación con particiones fijas y variables, memoria virtual, paginación, y algoritmos de reemplazo de páginas como FIFO y reloj. La memoria virtual permite a los procesos acceder a un espacio de direcciones lógico más grande que la memoria física real mediante la traducción de direcciones y el intercambio de páginas entre memoria y disco.
2. Administración de la Memoria
La parte del sistema operativo que administra la memoria se llama
administrador de la memoria.
Para ello existen diferentes esquemas de administración de memoria
desde los mas simples hasta los mas elaborados entre los cuales se
ubican:
• Administración de la memoria sin intercambio o paginación.
• Mono programación sin intercambio o paginación.
• Multiprogramación y uso de la memoria.
• Multiprogramación con particiones fijas
3. • Intercambio
• Multiprogramación con particiones variables.
• MemoriaVirtual
• Paginación
• Algoritmos de reemplazo de páginas.
• Algoritmo de página de uso no muy reciente.
• Algoritmo de reemplazo “ primero en entrar, primero en salir FIFO”
• Algoritmo de reemplazo de páginas de la segunda oportunidad
• Algoritmo de reemplazo de páginas del reloj
• Segmentación
4. Administración de la memoria sin
intercambio o paginación.
• Los sistemas de administración de memoria se pueden clasificar en dos
tipos. Los que desplazan los procesos de la memoria principal al disco y
viceversa durante la ejecución (intercambio y paginación) y aquellos que
no.
5. Mono programación sin intercambio o
paginación.
• Es en forma secuencial pues solo se tiene un objeto en memoria en cada
instante, el usuario carga toda la memoria con un programa, esto
implica que cada proceso debe contener controladores de dispositivo
para cada uno de los dispositivos E/S que utilice.
7. Multiprogramación y uso de la memoria.
• La multiprogramación facilita la programación de una aplicación al
dividirla en dos o mas procesos. La mayoría de los procesos tardan cierto
tiempo en la espera de datos de dispositivos E/S. Un modelo para el uso
y aprovechamiento de la CPU es el modelo probabilístico dado por la
fórmula : Uso de la CPU = 1 − pn
8. Multiprogramación con particiones fijas
• El objetivo en todo esto es tener mas de un proceso en memoria a la vez,
solución posible sería dividir la memoria en n partes al inicio de una
sesión de uso de la máquina, pero aún así se obtiene el desperdicio de
particiones grandes con una tarea pequeña, la respuesta puede ser tener
particiones pequeñas también. Las tareas que van llegando se forman
hasta que una partición adecuada está disponible, en cuyo momento la
tarea se carga en esa partición y se ejecuta hasta terminar.
11. Intercambio
• En un sistema por lotes la organización de la memoria en particiones fijas
es adecuado pero en un ambiente multiusuario la situación es distinta
con el tiempo compartido, ya que existen mas usuarios de los que puede
albergar la memoria, por lo que es conveniente albergar el exceso de los
procesos en disco., por supuesto para ser ejecutados estos procesos
deben ser trasladados a la memoria principal. Al traslado de procesos de
disco a memoria y viceversa se le llama intercambio.
12. Multiprogramación con particiones
variables.
• Mediante un algoritmo de administración de memoria las particiones
variables varían de forma dinámica durante el uso de la máquina,
evitando desperdicio de memoria
• Otros métodos de administración de memoria que tenemos son:
13. • La administración de memoria con mapa de bits
• la memoria se divide en unidades de asignación, a cada asignación le corresponden
un bit en el mapa de bits, un mapa de bits es una forma sencilla para llevar un
registro de las palabras de la memoria en una cantidad fija de memoria.
• La administración de memoria con listas ligadas
• otra forma de mantener un registro en memoria es mediante una lista ligada donde
cada entrada de la lista específica un hueco o un proceso.
• La administración de memoria con el sistema de los asociados
• basado en el sistema binario o utiliza para las direcciones.
14. MemoriaVirtual
• El método diseñado por Fotheringham en 1961 se conoce como Memoria
Virtual, la idea es que el tamaño combinado de la pila, programa y datos
puede exceder la memoria física disponible para ello.
• El S.O. mantiene en memoria aquellas partes del programa que se deben
permanecer en memoria y el resto lo deja en disco, las partes entre el
disco y la memoria se intercambian de modo que se vayan necesitando.
15. • La memoria virtual es una técnica para proporcionar la
simulación de un espacio de memoria mucho mayor que
la memoria física de una máquina.
• Esto permite que los programas se hagan sin tener en
cuenta el tamaño exacto de la memoria física.
16. Direcciones Lógicas Y Físicas
• El concepto de espacio de direcciones lógicas
vinculado a un espacio de direcciones físicas
separado es crucial para una buena gestión de
memoria
• Dirección lógica – es la dirección que genera el
proceso; también se conoce como dirección
virtual
• Dirección física – dirección que percibe la
unidad de memoria
17. • Las direcciones lógicas y físicas son iguales en los
esquemas de vinculación en tiempo de compilación y de
carga
• Difieren en el esquema de vinculación en tiempo de
ejecución
18. Características de la memoria real o física y
de la memoria virtual
Memoria real o física:
• Capacidad, que representa el volumen global de información (en bits) que la memoria puede
almacenar.
• Tiempo de acceso, que corresponde al intervalo de tiempo entre la solicitud de lectura/escritura
y la disponibilidad de los datos.
• Tiempo de ciclo, que representa el intervalo de tiempo mínimo entre dos accesos sucesivos.
• Rendimiento, que define el volumen de información intercambiado por unidad de tiempo,
expresado en bits por segundo.
• No volatilidad, que caracteriza la capacidad de una memoria para almacenar datos cuando no
recibe más electricidad.
• Existen dos tipos de memorias RAM: SRAMY DRAM.
19. Memoria virtual:
• Es una combinación entre hardware especial y el sistema operativo hace uso de la
memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha
más memoria principal (RAM) que la que realmente posee. Aunque la memoria
virtual podría estar implementada por el software del sistema operativo, en la
práctica casi siempre se usa una combinación de hardware y software, dado el
esfuerzo extra que implicaría para el procesador.
• Este método es invisible a los procesos.
• Debido a que sólo la parte de memoria virtual que está almacenada en la memoria
principal, es accesible a la CPU.
• La memoria virtual ha llegado a ser un componente esencial de la mayoría de los
S.O actuales.Y como en un instante dado, en la memoria sólo se tienen unos pocos
fragmentos de un proceso dado, se pueden mantener más procesos en la memoria.
Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se
descargan de la memoria. Sin embargo, el S.O debe saber cómo gestionar este
esquema.
20. • La memoria virtual también simplifica la carga del programa para su
ejecución llamado reubicación, este procedimiento permite que el mismo
programa se ejecute en cualquier posición de la memoria física.
• La cantidad de memoria máxima que se puede hacer ver que hay tiene que
ver con las características del procesador. Por ejemplo, en un sistema de 32
bits, el máximo es 232, lo que da 4096 Megabytes (4 Gigabytes).Todo esto
hace el trabajo del programador de aplicaciones mucho más fácil, al poder
ignorar completamente la necesidad de mover datos entre los distintos
espacios de memoria.
21. Ventajas y desventajas de la memoria virtual
Ventajas:
• Permite optimizar uso de memoria
• Mantiene más procesos en memoria principal
• Mantiene en disco partes del proceso poco usadas (rutinas de atención a
errores poco frecuentes, funciones de uso esporádico, datos no usados, …) .
• Permite que un proceso sea más grande que toda la memoria principal
• Se encarga el Sistema Operativo: evita al usuario la preocupación por
programar con superposición.
22. • Con respecto a la performance del sistema: Se cuenta con una memoria
virtualmente más extensa con la misma memoria real. Se utiliza mucho más
eficientemente la memoria real.
• Con respecto al desarrollo de aplicaciones: Al eliminar las restricciones de memoria
permite diseñar los sistemas más fácilmente, en menor tiempo y a menos costo.
Hace más sencillo el mantenimiento y la ampliación de los programas. Hace más
justificable el diseño e implementación de algunas aplicaciones, cuyos
requerimientos de memora varíen bastante en su ejecución de acuerdo al volumen
y complejidad de las transacciones. con respecto a la operación del computador:
Permite que un equipo de una memoria real menor pueda ser usado sin dificultad
como back-up en caso de necesidad. Hace innecesario efectuar ciertos
procedimientos cuyo único propósito es un mejor aprovechamiento de la memoria
real. Simplifica las actividades de planificación
23. Desventajas
• Sobrecarga por gestión compleja de memoria
• Costo asociado a la transformación de direcciones;
• Memoria adicional que requiere para almacenar las tablas que debe mantener el
sistema operativo (memoria real de la parte residente del sistema operativo)para
indicar: l a cantidad de memoria real implementada, las secciones que están
presente en la memoria real y sus direcciones de ubicación, y elementos de juicio
para determinar qué secciones se tratarán de dejar en memoria real y cuáles no, o
que sección será desplazada cuando otra sección de memoria virtual deba ser
llevada a memoria real; pequeño desperdicio de memoria que se produce en la
última página de un programa (ya que rara vez el tamaño del programa es múltiplo
del tamaño de las páginas); merma en el rendimiento del computador si es
incorrectamente utilizada; posible incremento del tiempo de ejecución de cada
programa como consecuencia de la paginación (operaciones de entrada/salida que
demorarán la ejecución del programa).
• La memoria virtual puede ser una herramienta poderosa para incrementar la
performance del computador. Pero ello depende de ciertos factores, tales como:
24. Velocidad de los dispositivos que contendrán la memoria virtual:
• La actividad de paginación afecta adversamente a la performance del equipo
cuando el procesador real está frecuentemente esperando que termine una
operación de entrada/salida de paginación; por tanto se debe procurar que los
requerimientos de operaciones de paginación estén por debajo de lo necesario
para aprovechar convenientemente la multiprogramación.
• En caso contrario se incrementarán los tiempos ociosos del órgano de comando.
Velocidad del procesador: Una relación desbalanceada entre la velocidad del
procesador y la del dispositivo de paginación puede alterar el rendimiento.
• Tamaño de la memoria real y virtual: La cantidad de memoria real de la CPU (en
relación con el tamaño de la memoria virtual) afectará el número de páginas
faltantes que deberán ser traídas del dispositivo de paginación.
• Si el tamaño de la memoria real es igual al de la virtual que están usando los
programas en ejecución no habrá páginas faltantes ya que todas estarán en
memoria real. En cambio cuando la memoria real sea menor, la cantidad de
páginas faltantes estará dada por la razón de la memoria virtual usada por la
memoria real disponible.
25. Traducción De Direcciones
Reubicación Hardware: la MMU (memory management unit) se
encarga de la traducción que es la encargada de convertir las
direcciones lógicas emitidas por los procesos en direcciones físicas
Proceso:
Programa se carga en memoria sin modificar
El S.O. almacena por cada proceso su función de traducción
El S.O. especifica a la MMU qué función aplicar para cada
proceso
LOAD R1, #1000
LOAD R2, #2000
LOAD R3, /1500
LOAD R4, [R1]
STORE R4, [R2]
INC R1
INC R2
DEC R3
JNZ /12
.................
Memoria
10000
10004
10008
10012
10016
10020
10024
10028
10032
10036
..........
Procesador
R. Instrucción
HW traducción
LOAD R3, /1500
1150010000
+1500
PC
8
26. Unidad De Manejo De Memoria
Funciones son:
• Convertir las direcciones lógicas emitidas por los procesos en
direcciones físicas.
• Comprobar que la conversión se puede realizar. La dirección
lógica podría no tener un dirección física asociada. Por ejemplo,
la pagina correspondiente a una dirección se puede haber
trasladado a una zona de almacenamiento secundario
temporalmente.
• Comprobar que el proceso que intenta acceder a una cierta
dirección de memoria tiene permisos para ello.
27. Paginación
• El espacio de direcciones de cada proceso se divide en bloques de
tamaño uniforme llamados páginas, los cuales se pueden colocar dentro
de cualquier para página marco disponible en memoria. Cuando las
tablas de páginas son muy grandes se puede utilizar un esquema de
paginación de varios niveles para que las páginas se paginen a sí mismas.
28. • Existen distintos niveles de paginación y a su vez distintos modelos de
computadoras han trabajado con ellas.
• Paginación de nivel 1: PDP−11
• Paginación de 2 niveles: laVAX
• Paginación de 3 niveles: la SPARC
• Paginación de 4 niveles: la 68030
29. Memoria asociativa
• En los algoritmos de paginación las tablas de páginas se mantienen en la
memoria debido a su gran tamaño, en potencia este diseño tiene un
efecto enorme en el rendimiento.
30. Algoritmos de reemplazo de páginas.
• Cuando ocurre un fallo de página el sistema operativo debe elegir una
página para retirarla de la memoria y hacer un espacio para la página por
recuperar. Si la página por eliminar fue modificada mientras estaba en
memoria, debe escribirla en el disco para mantener actualizada la copia
del disco, si por el contrario la página no ha sido modificada la copia del
disco ya está actualizada por lo que no es necesario volver a escribir, la
página por leer sólo escribe encima de la página por retirar.
• Aunque es posible elegir una página al azar para el reemplazo
relacionado con un fallo de página, el rendimiento del sistema es mucho
mejor si se elige una página de poco uso.
31. Algoritmo de reemplazo de páginas optimo
• Mejor algoritmo posible para reemplazo de páginas pero irrealizable en la
práctica.
• Al momento de ocurrir un fallo de página cierto conjunto de páginas se
encuentran en la memoria, en la siguiente instrucción se hará referencia a una
de estas páginas, otras páginas no se utilizaran sino hasta mucho después,
cada página puede ejecutarse con el número de instrucciones ejecutadas antes
de la primera referencia a esa página, el algoritmo dice que se elimine la página
con la mayor etiqueta; si una página no va a utilizase sino hasta mucho después
que otra la eliminación de la primera retrasa el fallo de página lo mas posible, el
único problema de este algoritmo es que es irrealizable. Al momento del fallo
de página el S.O. no tiene forma de saber a qué página se hace referencia.
32. Algoritmo de página de uso no muy reciente.
• En un fallo de página , el sistema operativo inspecciona todas las páginas
y las divide en cuatro categorías según los valores actuales de los bits R y
M.
• Clase 0: No se ha hecho referencia ni ha sido modificada
• Clase 1: No se ha hecho referencia pero ha sido modificada
• Clase 2: Se ha hecho referencia pero no ha sido modificada
• Clase 3: Se ha hecho referencia y ha sido modificada
33. • El algoritmo NRU implica una hipótesis que indica que es mejor eliminar
una página modificada sin referencias al menos por lo general un
intervalo de reloj, este algoritmo es fácil de comprender, de
implantación eficiente y con un rendimiento que, aún sin ser el óptimo si
es adecuado en muchos casos.
34. Algoritmo de reemplazo “ primero en entrar,
primero en salir FIFO”
• El sistema operativo tiene una lista de todas las páginas que se
encuentran en memoria, siendo la primera página la mas antigua y la
última la mas reciente, en un fallo de página, se elimina la primera
página y se añade la nueva al final de la lista.
35. Algoritmo de reemplazo de páginas de la
segunda oportunidad
• Una modificación simple del FIFO que evita deshacerse de una página de
uso frecuente inspecciona el bit R de la página mas antigua, busca una
página antigua sin referencias durante el anterior intervalo de tiempo.
36. Algoritmo de reemplazo de páginas del reloj
• Aunque el anterior algoritmo es razonable un mejor enfoque es
mantener las páginas en una lista circular con la forma de un reloj, una
manecilla apunta hacia la mas antigua. Al ocurrir un fallo de página se
inspecciona la página a la que apunta la manecilla si su bit R=0 se retira
de la memoria, se inserta la nueva página en su lugar en el reloj y la
manecilla avanza una posición, si R=1 la manecilla avanza una posición y
el bit se limpia, esto continua hasta encontrar una página con R=0.
37. Segmentación
• Una memoria segmentada tiene otras ventajas como hacer mas sencilla
la administración de las estructuras de datos que crecen o se reducen, si
cada procedimiento ocupa un segmento independiente con la posición
inicial cero el ligado independiente de los procesos compilados es mucho
mas sencillo.
• Bit que se activa si se hace referencia a la página en cuestión
• Bit que se activa si se modifica la página.
38. POLITICAY FILOSOFIA
FILOSOFIA
• La memoria principal puede ser considerada como un arreglo lineal de
localidades de almacenamiento de un byte de tamaño. Cada localidad de
almacenamiento tiene asignada una dirección que la identifica.
• Una de las funciones básicas que debe implementar un SO es la
Administración de la Memoria para tener un control sobre los lugares
donde están almacenados los procesos y datos que actualmente se están
utilizando.
39. • Sea cual sea es esquema de organización del almacenamiento que se
adopte para un sistema específico, es necesario decidir que estrategias
se deben utilizar para obtener un rendimiento óptimo .las estrategias de
administración del almacenamiento determinan el comportamiento de
la administración de memoria cuando se siguen ciertas políticas:
• ¿Cuándo se toma un nuevo programa para colocarlo en memoria?
• ¿Se toma el programa cuando el sistema lo solicita específicamente o se
intenta anticiparse alas particiones del sistema?
• ¿En que lugar del almacenamiento principal se coloca el programa por
ejecutar?
40. • ¿Se colocan los programas lo más cerca unos de otros en los espacios
disponibles de la memoria principal para reducir al mínimo el desperdicio
de espacio, o se colocan los programas lo más rápido posible para reducir
al mínimo el tiempo de ejecución?
• Si se necesita colocar un nuevo programa en el almacenamiento
principal
• Se han realizado sistemas que utilizan cada una de estas estrategias de
administración.Y éste está lleno, ¿Cuál de los otros programas se
desaloja?
41. • Los programas y datos necesitan estar en el almacenamiento principal
para ser ejecutados o para poder hacer referencia de ellos. Los que no se
necesitan de inmediato pueden guardarse en el almacenamiento
secundario.
• Unix permite procesos múltiples y en un proceso puede generar otro
fácilmente. La planificación del procesador usa un algoritmo basado en
prioridades. La administración de memoria es un algoritmo de regiones
variables con intercambios. Inicialmente los algoritmos realizados se
eligieron por sencillez, no por velocidad ni complejidad. El desarrollo
inicial se hizo bajo un espacio muy pequeño de memoria.
• Los recursos de memoria totales eran insuficientes para justificar
algoritmos complejos, por lo que UNIX intercambiaba el contenido en
memoria de los procesos.
42. POLÍTICAS.
• FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la
cola de procesos listos, si un proceso llega al procesador sale hasta que
termine. La política FIFO actualmente no se usa como el esquema
principal de un sistema, pero si por ejemplo cuando se usa una política de
prioridades y hay procesos con la misma prioridad, a estos se les podría
aplicar FIFO.
43. • Round Robín: Los procesos se despachan en la forma que lo hace el FIFO,
pero se les asigna una cantidad limitada de tiempo (CUANTUM) en el
procesador, si no termina en ese lapso se manda al final de la lista de
procesos listos.
• SJF (Shortest job first - Prioridad del trabajo mas corto): Se ejecuta
primero el proceso en espera que tiene el menor tiempo estimado. SJF
favorece a los procesos cortos, ya que los largos podrían llegar a
rezagarse mucho tiempo e incluso nunca ejecutarse.
• SRT (Sortest remaining time scheduling –Tiempo restante más corto):
En SJF una vez que un proceso comienza su ejecución continua hasta
terminar. En SRT, un proceso en ejecución puede ser desposeído por uno
nuevo de menor tiempo de ejecución.
44. • HRN: (highest response ratio next – Prioridad de la tasa de respuesta
más alta):
Política no apropiativa que corrige el retraso excesivo de procesos grandes
que produce el SJF, para así no caer en un favoritismo excesivo por los
procesos cortos, lo logra usando una formula basada en el tiempo de
espera y el tiempo de servicio, con lo cual la prioridad de cada trabajo no
solo esta en función del tiempo de servicio sino también del tiempo que ha
esperado para ser atendido.
45. 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.
46. 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).
• Un mapa de bits es una forma sencilla para llevar un registro de las
palabras de la memoria en una cantidad fija de memoria, puesto que el
tamaño del mapa sólo depende del tamaño de la memoria y el tamaño
de la unidad de asignación.
47. 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. 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.
48. 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).
49. ADMINISTRACION 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
50. • 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.
51. • 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
52. 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.
53. • 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
• 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.
54. 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.
55. • 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.
56. 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.
57. • 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.
58. • 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.
59. JERARQUIA
• 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
60. • 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
operando 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.
61. • 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 concidera un nivel mas de la jerarquia de
memorias)
62.
63. ESTRATEGIA DE ADMINISTRACION DE
MEMORIA
• Estrategias de Administración del Almacenamiento
• Están dirigidas a la obtención del mejor uso posible del recurso del
almacenamiento principal
• Se dividen en las siguientes categorías:
• Estrategias de búsqueda.
• Estrategias de búsqueda por demanda.
• Estrategias de búsqueda anticipada.
• Estrategias de colocación.
• Estrategias de reposición.
64. • 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.
65. ASIGNACION CONTIGUAV.S. 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.
66. 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
67. MULTIPROGRAMACION DE PARTICION
FIJA,PARTICIONVARIABLE, 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.
68. • 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.
69. 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
70. ParticionesVariables
• 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
71. 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.
72. ORGANIZACION DE MEMORIAVIRTUAL
• Almacenamiento virtual significa la capacidad de direccionar un espacio de
almacenamiento mucho mayor que el disponible en el almacenamiento
primario de determinado sistema de computación.
• Esta tecnología apareció en 1960 en la Universidad de Manchester (Inglaterra),
en el sistema “Atlas”.
• La ilusión de la memoria virtual está soportada por el mecanismo de traducción
de memoria, junto con una gran cantidad de almacenamiento rápido en disco
duro. Así en cualquier momento el espacio de direcciones virtual hace un
seguimiento de tal forma que una pequeña parte de él, está en memoria real y
el resto almacenado en el disco, y puede ser referenciado fácilmente.
73. • Debido a que sólo la parte de memoria virtual que está almacenada en la
memoria principal, es accesible a la CPU, según un programa va
ejecutándose, la proximidad de referencias a memoria cambia,
necesitando que algunas partes de la memoria virtual se traigan a la
memoria principal desde el disco, mientras que otras ya ejecutadas, se
pueden volver a depositar en el disco (archivos de paginación).
• Los métodos más comunes de implementación son mediante:
• Técnicas de paginación.
• Técnicas de segmentación.
• Una combinación de ambas técnicas.
74. EVALUACION DE LAS ORGANIZACIONES
DE ALMACENAMIENTO
• Almacenamiento virtual "significa la capacidad de direccional un espacio
de almacenamiento mucho mayor que el disponible en el
almacenamiento primario de determinado sistema de computación” .
• Esta tecnología apareció en 1960 en la Universidad de Manchester
(Inglaterra), en el sistema “Atlas”.
• Los métodos más comunes de implementación son mediante:
• Técnicas de “paginación”.
• Técnicas de “segmentación”.
• Una combinación de ambas técnicas.
75. • Las direcciones generadas por los programas en su ejecución no son, necesariamente,
aquellas contenidas en el almacenamiento primario (memoria real), ya que
las direcciones virtuales suelen seleccionarse dentro de un numero mucho mayor de
direcciones que las disponibles dentro del almacenamiento primario.
• La evolución en las organizaciones de almacenamiento puede resumirse como sigue:
• Real:
• Sistemas dedicados a un solo usuario.
• Real:
• Sistemas de multiprogramación en memoria real:
• Multiprogramación en partición fija:
• Absoluta.
• Re localizable (reubicadle).
• Multiprogramación en partición variable.
• Virtual:
• Multiprogramación en almacenamiento virtual:
• Paginación pura.
• Segmentación pura.
• Combinación paginación / segmentación.
76. PAGINACION
• En sistemas operativos de computadoras, los sistemas de paginación de
memoria dividen los programas en pequeñas partes o páginas. Del mismo
modo, la memoria es dividida en trozos del mismo tamaño que las páginas
llamados marcos de página. De esta forma, la cantidad de memoria
desperdiciada por un proceso es el final de su última página, lo que minimiza la
fragmentación interna y evita la externa.
• En un momento cualquiera, la memoria se encuentra ocupada con páginas de
diferentes procesos, mientras que algunos marcos están disponibles para su
uso. El sistema operativo mantiene una lista de estos últimos marcos, y una
tabla por cada proceso, donde consta en qué marco se encuentra cada página
del proceso. De esta forma, las páginas de un proceso pueden no estar
contiguamente ubicadas en memoria, y pueden intercalarse con las páginas de
otros procesos.
77. • En la tabla de páginas de un proceso, se encuentra la ubicación del
marco que contiene a cada una de sus páginas. Las direcciones lógicas
ahora se forman como un número de página y de un desplazamiento
dentro de esa página (conocido comúnmente como offset). El número de
página es usado como un índice dentro de la tabla de páginas, y una vez
obtenida la dirección del marco de memoria, se utiliza el desplazamiento
para componer la dirección real o dirección física. Este proceso se realiza
en una parte del computador específicamente diseñada para esta tarea,
es decir, es un proceso hardware y no software.
• De esta forma, cuando un proceso es cargado en memoria, se cargan
todas sus páginas en marcos libres y se completa su tabla de páginas.
78. SEGMENTACION
Segmentación.
• En un esquema de segmentación un espacio de direcciones lógicas es un
conjunto de segmentos. Cada segmento tendrá un nombre y un largo.
Las direcciones van a hacer referencia tanto al nombre como al
desplazamiento dentro del segmento. <nro.segmento, desplazamiento>
Mecanismo de traducción de direcciones.
• Se lleva un tabla de segmento por cada proceso, cada entrada a la tabla
de segmento lleva la siguiente información: segment base (dirección
base del segmento) segment limit (largo del segmento)
79. Protección
• La protección se asegura verificando cada acceso a la memoria con la
tabla de segmentos para asegurar que se esta direccionando dentro del
espacio de direcciones lógicas del proceso.
• Además el mecanismo de traducción de direcciones asegura que no se
direccione fuera de un segmento en particular. Existen también bits de
protección para cada entrada de la tabla de segmentos que indicaran si
el segmento es read only o read-write.
Segmentos Compartidos
• Similar a lo visto para paginación. Se comparte la totalidad de un
segmento
80. Fragmentación
• El sistema operativo deberá asignar memoria utilizando algunos algoritmos ya
vistos (first fit, worst fit, best fit) Cuando el sistema operativo intenta cargar un
segmento y no hay ningún segmento disponible de tamaño suficiente para
almacenarlo se procederá a compactar la memoria.
Paginación por demanda
• Es similar a lo visto para la paginación introduciendo el concepto de swapping.
Los procesos residen en el disco y al ser ejecutados deben ser cargados en
memoria. Cuando un proceso va a ser ejecutado, el mismo es swappeado a
memoria, utilizando lazy swapping. El lazy swapping nunca trae paginas a
memoria si no van a ser ejecutadas. Se necesita determinar si un pagina esta en
memoria o en disco, por lo cual se utiliza el bit de válido / inválido de la tabla de
páginas. Si el bit = 1 la página es valida y esta cargada en memoria si es 0 la
página es inválida y no esta cargada en memoria (esta en disco).
81. • Cuando un proceso intenta acceder a una página que no esta cargada en
memoria ocurre un page fault (tomo de página). El procedimiento para
manejar un page fault es el siguiente:
• 1.Verificar si la referencia a la pagina es valida (se utiliza una tabla interna
(generalmente llevada en PCB) donde se indica las paginas validas.
• 2. Si la referencia no es valida, se cancela la ejecución del proceso.
• 3. Encontrar un frame disponible para cargarla (la página esta en disco)(por ejemplo
de la free frame list)
• 4. Solicitar operación de I/O para leer la página de disco cargarla en el frame
obtenido.
• 5. Modificar la tabla interna y la tabla de paginas para que ahora esta pagina figure
como que esta en memoria.
• 6. Continuar con la ejecución del proceso en la instrucción en la que fue
interrumpido.
82. ADMINISTRACION DE MEMORIAVIRTUAL
• Las diferentes organizaciones de almacenamiento virtual generalmente
implementadas son:
• Paginación.
• Segmentación
• Segmentación y paginación.
• Las estrategias para la administración de sistemas de almacenamiento
virtual condicionan la conducta de los sistemas de almacenamiento
virtual que operan según esas estrategias.
• Se consideran las siguientes estrategias:
83. • “Estrategias de búsqueda”:
• 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 colocación”:
• 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”:
• Tratan de la decisión de cuál página o segmento desplazar para hacer sitio a una
nueva página o segmento cuando el almacenamiento primario está
completamente comprometido.
84. PAGINACION POR DEMANDA
• Un sistema de paginación por demanda es similar a un sistema de
paginación con intercambios. Los procesos residen en memoria
secundaria (en el disco). Cuando queremos ejecutar un proceso, lo
metemos en memoria. Sin embargo, en vez de intercambiar todo el
proceso hacia la memoria, utilizamos un intercambiador perezoso. Un
intercambiador perezoso nunca reincorpora una página a memoria a
menos que se necesite. Como ahora consideramos un proceso como una
secuencia de páginas, en vez de un gran espacio contiguo de direcciones,
el término intercambio es técnicamente incorrecto. Un intercambiador
manipula procesos enteros, mientras que un paginador trata con las
páginas individualmente de un proceso.
85. • Cuando un proceso se reincorpora, el paginador lleva a memoria las
páginas necesarias. Así evita colocar en la memoria páginas que no se
utilizarán, reduciendo el tiempo de intercambio y la cantidad de
memoria física necesaria.
• Este esquema requiere apoyo del hardware. Generalmente se añade un
bit más a cada entrada de la tabla de páginas: un bit válido-inválido.
Cuando este bit está asignado como válido, indica que la página
asociada se encuentra en memoria. Si el bit está como inválido, este
valor indica que la página está en disco. Una página marcada como
inválida no tendrá ningún efecto si el proceso nunca intenta acceder a
esa página.
86.
87. PAGINACION ANTICIPADA
• En la paginación anticipada, el sistema operativo intenta predecir las paginas
que necesitara un proceso y entonces carga dichas cuando hay espacio
disponible.
• Mientras el proceso se ejecuta con sus paginas actuales, el sistema carga las
demás paginas que estarán disponibles cuando las requiera el proceso.
• El S. O. intenta predecir las paginas que un proceso va a necesitar y a
continuación precarga estas paginas cuando hay espacio disponible Mientras el
proceso ejecuta sus paginas actuales, el sistema carga paginas nuevas que
estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de
ejecución de un proceso se puede reducir.
88. LIBERACION DE PAGINA
• Un proceso usuario puede emitir una “liberación voluntaria de página”
para liberar el marco de página cuando ya no necesitara esa página. Se
puede eliminar el “desperdicio” y acelerar la ejecución.
• El inconveniente es que la incorporación de mandatos de liberación de
páginas dentro de los programas de usuarios puede ser peligroso y
retrasar el desarrollo de aplicaciones.
89. • “Los compiladores y S. O. deberían detectar automáticamente
situaciones de liberación de página mucho antes de lo que es posible con
estrategias de conjuntos de trabajo”.
Estrategias de reemplazo de páginas
• Menos frecuentemente utilizada (LFU)
• Se reemplaza la página a la que se ha hecho referencia con menos frecuencia.
• No utilizada recientemente (NUR)
• Las páginas no utilizadas recientemente, es poco probable que sean referenciadas
en un futuro cercano. Por ello se las elige para el reemplazo.
90. TAMAÑO DE PAGINA
• Al diseñar una máquina hay que tomar una decisión sobre el mejor tamaño de
página. Como podrá suponer, no hay un tamaño único que sea el mejor, pero
existen varios factores que apoyan tamaños distintos. Los tamaños son
invariablemente potencias de dos, que suelen ir de 512 (29) a 16384 (214) bytes
• ¿Cómo seleccionamos el tamaño de página? Un factor es el tamaño de la tabla
de páginas. Para un espacio de memoria virtual establecido, al reducir el
tamaño aumenta el número de páginas y, por tanto, el tamaño de la tabla de
páginas. Para una memoria virtual de 4 MB habría 4096 paginas de 1K bytes,
pero sólo 512 páginas de 8192 bytes. Como cada proceso activo debe tener su
propia tabla de páginas, sería deseable un tamaño de página grande.
91. • Por otra parte, la memoria se utiliza mejor con páginas pequeñas. Una
parte de la última página estará asignada pero no totalmente ocupada
(fragmentación interna). Suponiendo que los tamaños de los procesos y
de la página son independientes, podemos esperar que, en promedio, se
desperdiciará la mitad de la última página de cada proceso. Esta pérdida
representaría sólo 256 bytes en una página de 512 bytes, pero serían
4096 bytes en una página de 8192. Para minimizar la fragmentación
interna necesitamos un tamaño de página pequeño.
• Otro problema es el tiempo necesario para leer o escribir una página. El
tiempo de E/S está compuesto por tiempo
de búsqueda, latencia y transferencia.