Administración de la Memoria
La administración de memoria a los
distintos métodos y operaciones,
que se encargan de obtener la máxima
utilidad de memoria, organizando los
procesos y programas que se ejecutan,
aprovechando la manera de obtener el
mejor espacio disponible.
3.1 Política y Filosofía
FIFO
Los procesos se despachan,
de acuerdo a su tiempo de
llegada. A la cola de procesos
listos, si un proceso llega al
procesador, sale hasta que
termina.
La política FIFO actualmente,
no se usa como el esquema
principal de un sistema. Ejm:
Cuando se usa una política de
prioridades y hay procesos con
la misma prioridad, a esto se le
puede aplicar FIFO.
Round Robin
Los procesos se atienden
en la forma que lo hace
FIFO, pero se le asigna una
cantidad limitada de tiempo
en el procesador, si no
termina en ese lapso se
mandará al final de la lista
de procesos.
Política
El sistema operativo que
debe llevar a cabo,
una política de espacio
de, asignación de memoria.
Creando un mapa de memoria
de, un proceso que ocupa un
determinado tamaño,esto con
el fin de lograr,
conjugar los siguientes aspectos:
-Buen aprovechamiento de la
memoria.
-Algoritmo de decisión eficiente.
SJF
(SJF) por sus siglas, Prioridad
del Trabajo más 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
(SRT) por sus siglas, Tiempo
Restante más Corto, una vez
que un proceso comienza su
ejecución continúa hasta
terminar. En SRT, un proceso
en ejecución puede ser
desposeído por uno nuevo de
menor tiempo de ejecución.
HRN
(HRN) por sus siglas, 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 fórmula
basada en el tiempo de espera
y el tiempo de servicio, con lo
cual la prioridad de cada trabajo
no solo está en función del
tiempo de servicio sino también
del tiempo que ha esperado
para ser atendido.
3.2 Memoria Real
Introduccion
La organización y la
administración de la
memoria principal,
memoria primaria o
memoria real de un
sistema ha sido y es
uno de los factores más
importantes en el
diseño de los S.O.
Los programas y datos
deben de estar en el
almacenamiento principal
como:
*Poder ejecutarlos
*Referenciarlos directamente
*Organización de
almacenamiento
*Administración de
Almacenamiento
Jerarquía de
almacenamiento
*Los programas y datos tienen que
estar, en la memoria principal para
poder ejecutarse o ser referenciados.
*Los programas y datos que no son
necesarios de inmediato pueden
mantenerse en el almacenamiento
secundario.
*El almacenamiento principal es más
costoso y menor que el secundario
pero de acceso más rápido.
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
Multiprogramación
de partición fija
Los sistemas de un solo
usuario desperdician gran
cantidad de recursos
computacionales.
Los sistemas de
multiprogramación permiten
que, varios usuarios compitan
al mismo tiempo por los
recursos del sistema:
conformada de
4 fases:
Multiprogramación de
partición fija
Traducción y carga
Multiprogramación de
partición fija
Traducción y carga de
Relocalizables
Protección en los
sistemas de
multiprogramación
Fragmentación en la
multiprogramación de
partición fija
Multiprogramación
de partición Variable
Los procesos ocupan tanto
espacio como lo necesitan,
pero no deben superar el
espacio disponible de
memoria.
No hay límites fijos de
memoria, la partición de un
trabajo en su propio tamaño.
Los procesos que terminan
dejan disponibles espacios
de memoria principal
llamados "agujeros".
Combinación de agujeros
(áreas libres)
fases de los
agujeros
Comprensión o
compactación de
almacenamiento
Desventajas de
la comprensión
Estrategias de
Colocación de
Almacenamiento
Consiste en fusionar
agujeros adyacentes para
formar uno sencillo.
Se puede hacer cuando un
trabajo termina y el
almacenamiento que libera
tiene límites con otros
agujeros.
Multiprogramación con
intercambio de almacenamiento
En el esquema de intercambio
los programas del usuario que no
requieren permanecer en la
memoria en la principal hasta su
terminación.
Consiste en que un trabajo se ejecuta
hasta que ya no pueda continuar:
Cede el almacenamiento y
la CPU al siguiente trabajo
La totalidad de almacenamiento
se dedica a un trabajo durante un
breve periodo de tiempo
Los trabajos son intercambiados
dándose que un trabajo puede
ser intercambiado varias veces
antes de llegar a su terminación
3.4 Administración de memoria virtual
La clave del concepto de
memoria (almacenamiento)
virtual esta en la disociación:
°De las direcciones a las que hace
referencia un programa.
°De las direcciones disponibles en
la memoria real (almacenamiento primario).
Estrategias de Administración
del Almacenamiento Virtual
Las diferentes organizaciones de almacenamiento virtual
generalmente implementadas son:
°Paginación.
°Segmentación.
°Segmentación y paginación.
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 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.
Paginación por Demanda y
Paginación Anticipada
funciones
Las paginas son cargadas por demanda.
No se llevan páginas del almacenamiento secundario al primario hasta que son referenciadas explícitamente por un proceso en ejecución.
Los resultados de computabilidad, en especial el “problema de parada”, indican que el camino que tomará la ejecución de un programa no se puede predecir con exactitud.
Garantiza que solo las páginas que necesita el proceso sean traídas al almacenamiento principal.
La sobrecarga de proceso para decidir qué página traer al almacenamiento principal es mínima.
Paginación Anticipada
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas páginas cuando hay espacio disponible.
Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.
Liberación de Página
y Tamaño de Página
Liberación de Página
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.
Tamaño de Página
Generalmente el almacenamiento real se divide en marcos o celdas de página de tamaño fijo.
Los interrogantes tienen que ver con el tamaño de las páginas, si todas las páginas tendrán igual tamaño, si en caso de utilizar páginas de diferente tamaño las páginas mayores deben ser o no múltiplos enteros de las menores
Comportamiento de un
Programa en la Paginación
Respecto del porcentaje de las
páginas de un proceso típico
Un proceso tiende a hacer referencia a una parte significativa de sus páginas inmediatamente después de iniciar su ejecución.
El proceso puede concluir sin haber referenciado a algunas de sus páginas, correspondientes a rutinas que atienden errores que no se produjeron.
Respecto de variar el tamaño
de la página manteniendo constante
la cantidad de almacenamiento primario
El número de fallos de páginas experimentados por un proceso en ejecución tiende a aumentar con el tamaño de la página, debido a que se traen al almacenamiento primario un mayor número de procedimientos y datos que no serán referenciados, restando lugar para los que sí lo serán.
Respecto de cómo el promedio
de tiempo entre fallos
(tiempo entre fallos de página)
Cuanto más marcos de página tenga un proceso, mayor será el tiempo entre los fallos de páginas.
El punto de inflexión se da cuando el proceso tiene todo su conjunto de trabajo en el almacenamiento primario.
Asignar marcos de página adicionales más allá del punto de inflexión no produce efectos significativos sobre el tiempo interfallos.
3.3 Organización de Memoria
Virtual
Introducción: A la organización
de Almacenamiento Virtual, la
capacidad de direccionar en un
espacio de almacenamiento mucho
mayor que el disponible en el
almacenamiento primario de
determinado de sistema de
computación.
Organización del
almacenamiento de
niveles múltiples
Se deben proporcionar los
medios para retener programas
y datos en un gran
almacenamiento auxiliar para:
Permitir que el espacio
de direcciones virtuales
de un usuario sea mayor
que el espacio de
direcciones reales.
Se utiliza un esquema
de almacenamiento de
dos Niveles
Primer nivel
Almacenamiento Real:
se ejecutan los
procesos y en él deben de
estar los datos para que
un proceso pueda referirse
a ellos.
Segundo nivel
Almacenamiento Auxiliar:
cuando se va a ejecutar
un proceso, su código y
datos se pasan al
almacenamiento principal.
Consta de discos de gran
capacidad que, pueden
mantener los programas
y datos que no caben, al
mismo tiempo en el mas
limitado almacenamiento
real, del primer Nivel.
Transformación
de Bloques
Los mecanismos de
traducción dinámica
de direcciones, deben
mantener "mapas" que
ilustren direcciones del
almacenamiento virtual,
se encuentran en el
almacenamiento real.
°El sistema está informado del
lugar del almacenamiento real
donde han sido colocados los bloques
de almacenamiento virtual.
°Cuanto mayor sea el bloque menor
será la fracción del almacenamiento
real que debe dedicarse a contener
la información del mapa.
La traducción de una
dirección virtual
°Cada proceso tiene su “tabla de
mapa de bloques” mantenida por el
sistema en el almacenamiento real.
Un registro especial del procesador
llamado “registro origen de la
tabla de bloques” se carga con la
dirección real “a” de la “tabla de
mapa de bloques”
°Contiene una entrada para cada bloque del proceso.
°Las entradas se mantienen en orden secuencial para el bloque 0, bloque 1, etc.
Conceptos Básicos
de Paginación
Conceptos Básicos
de Paginación
Frecuentemente se diferencia
entre la “paginación pura” y la
“combinación de paginación
y segmentación”.
°Tienen el mismo tamaño que las páginas.
°Comienzan en direcciones del almacenamiento real que son
múltiplos enteros del tamaño fijo de
la página.
°Podrá colocarse una nueva página
dentro de cualquier “marco de página”
o “celda de página” disponible.
La tabla de “mapa de páginas”
debe indicar si se encuentra o
no en el almacenamiento primario
la página referenciada:
°En caso afirmativo dónde está en la memoria real.
°En caso negativo dónde puede estar en el almacenamiento secundario.
Segmentación
Segmentación
En los sistemas de “segmentación”
un programa y sus datos pueden
ocupar varios bloques separados
de almacenamiento real.
Los bloques:
°No necesitan ser de igual tamaño.
°Los bloques separados no necesitan ser adyacentes.
°Deben estar compuestos de posiciones contiguas de almacenamiento.
Un esquema posible de protección
es el uso de claves de protección del almacenamiento
Las claves están bajo el control
estricto del S. O.
Un programa de usuario, a quien corresponde una cierta clave
en la cpu, sólo puede hacer referencia
a los otros bloques del almacenamiento
con igual clave de protección.
Sistemas de
paginación -
Segmentación
Ofrecen las ventajas de las dos técnicas de organización del almacenamiento virtual.
El tamaño de los segmentos es múltiplo del de las páginas.Ofrecen las ventajas de las dos técnicas de organización del almacenamiento virtual.
El tamaño de los segmentos es múltiplo del de las páginas.
La estructura de tablas de procesos, de mapas de segmentos y de mapas de páginas puede consumir un porcentaje importante del almacenamiento primario cuando se ejecutan un gran número de procesos.
La traducción procede mucho más rápido si todas las tablas están en el almacenamiento primario, lo que resta espacio para los procesos.