Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Unidad 3 el administrador de memoria
1. MATERIA:
SISTEMAS OPERATIVOS 1
TITULAR:
TOLEDO TORRES JACINTO
TRABAJO:
Unidad 3
ADMINISTRADOR DE MEMORIA
PRESENTA:
ALEJANDRO JIMENEZ ANTONIO
GRUPO: “4S” ESPECIALIDAD:
ING. EN INFORMATICA
H. CD. DE JUCHITAN DE ZARAGOZA OAXACA A 25 DE OCTUBRE DE 2015
2. Administración de Memoria
3.1 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 informacion contenida en ella es de mas rapido acceso.
Solo la memoria cache es mas rapida que la principal, pero su costo es a su vez
mayor.
Cuando no existe memoria virtual no hay diferenciacion entre el espacio de
direcciones y la memoria real; el espacio de direcciones que puede ser usado en
los programas tiene identico tamano al espacio de memoria real posible. Si se
utiliza memoria virtual, el espacio de direcciones disponibles para los programas
es aquel determinado por el tamano de la memoria virtual implementada y no el
espacio de direcciones provisto por la memoria real disponible (el espacio de la
memoria virtual sera mayor que el de la memoria real).
La organización y administración de la “memoria principal”, “memoria
primaria” o “memoria real” de un sistema ha sido y es uno de los factores mas
importantes en el diseño de los S. O. (Ver la figura 3.2.1)
Los términos “memoria” y “almacenamiento” se consideran equivalentes.
Los programas y datos deben estar en el almacenamiento principal para:
Poderlos ejecutar.
Referenciarlos directamente
3. 3.2 Administración de almacenamiento
¿Cómo se maneja la administración de almacenamiento?
Para que un sistema informatico sea comodo para los usuarios, el sistema
operativo proporciona una ista logica y uniforme del sistema de almacenamiento
de la informacion.. El sistema operativo abstrae las propiedades fisicas de los
¿Cómo se maneja la administración de almacenamiento?
Para que un sistema informatico sea comodo para los usuarios, el sistema
operativo proporciona una ista logica y uniforme del sistema de almacenamiento
de la informacion.. El sistema operativo abstrae las propiedades fisicas de los
dispositivos de almacenamiento y define una unidad de almacenamiento logico,
el archivo.
El sistema operativo asigna los archivos a los soportes fisicos y accede a dichos
archivos a traves de los dispositivos de almacenamiento.
Almacenamiento del sistema de archivos
La gestion de archivos es uno de los componentes mas visibles de un sistema
operativo. Las computadores pueden almacenar la informacion en diferentes tipos
de medios fisicos.Los discos magneticos, discos opticos y cintas magneticas son
habituales. .
Cada uno de estos medios tiene sus propias caracteristicas y organizacion
fisica.Cada medio se controla mediante un dispositivo, tal como una unidad de
disco o una cinta, que tambien tiene sus propias caracteristicas distintivas
Estas propiedades incluyen la velocidad de acceso, la capacidad, la
velocidad de transferencia de datos y el metodo de acceso (secuencial o
aleatorio).
Un archivo es una coleccion de informacion relacionada definida por su
creador. Comunmente, los archivos representan programas(tanto en formato
fuente como en objeto) y datos. Los archivos de datos pueden ser numericos,
alfabeticos, alfanumericos o binarios. Los archivos pueden tener un formato
libre(como, por ejemplo, los archivos de texto) o un formato rigido, como por
ejemplo una serie de campos fijos.
4. 3.3 JERARQUIA DE ALMACENAMIENTO
Los programas y datos tienen que estar en la memoria principal para poder
ejecutarseo ser referenciados.
Los programas y datos que no son necesarios de inmediato pueden mantenerse
en el almacenamiento secundario.
El almacenamiento principal es mas costoso y menor que el secundario pero de
acceso mas rápido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos
para administrar el movimiento de programas y datos entre niveles.
Un nivel adicional es el “cache” o memoria de alta velocidad, que posee las
siguientes características:
Es más rápida y costosa que la memoria principal.
Impone al sistema un nivel mas de traspaso:
o Los programas son traspasados de la memoria principal al cache
antes de su ejecución.
Los programas en la memoria cache ejecutan mucho mas rápido que en la
memoria principal.
Al utilizar memoria cache se espera que:
o La sobrecarga que supone el traspaso de programas de un nivel de
memoria a otro sea mucho menor que la mejora en el rendimiento
obtenida por la posibilidad de una ejecución mucho mas rápida en la
cache.
5. 3.5 Estrategias de Administración de Memoria
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:
o Estrategias de búsqueda por demanda.
o Estrategias de busqueda anticipada.
Estrategias de colocación.
Estrategias de reposición.
Las “estrategias de busqueda” están relacionadas con el hecho de cuando
obtener el siguiente fragmento de programa o de datos para su inserción en la
memoria principal.
En la “busqueda 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 “busqueda 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 colocara (cargara) un programa nuevo.
Las “estrategias de reposición” están relacionadas con la determinación de que
fragmento de programa o de datos desplazar para dar lugar a los programas
nuevos.
6. 3.6 TECNICAS DE ADMINISTRACION DE LA MEMORIA
PARTICION FIJA
PARTICION VARIABLE
Multiprogramación de Partición Fija.
Los sistemas de un solo usuario desperdician gran cantidad de recursos
computacionales debido a que:
Cuando ocurre una petición de e / s la cpu normalmente no puede continuar
el proceso hasta que concluya la operación de e / s requerida.
Los periféricos de e / s frenan la ejecución de los procesos ya que
comparativamente la cpu es varios ordenes de magnitud mas rápida que
los dispositivos de e / s.
7. Los sistemas de “multiprogramación” permiten que varios procesos usuarios
compitan al mismo tiempo por los recursos del sistema:
Un trabajo en espera de e / s cederá la cpu a otro trabajo que este listo para
efectuar cómputos.
Existe paralelismo entre el procesamiento y la e / s.
Se incrementa la utilización de la cpu y la capacidad global de ejecución del
sistema.
Es necesario que varios trabajos residan a la vez en la memoria principal.
Multiprogramación de Partición Fija: Traducción y Carga Absolutas.
Las “particiones” del almacenamiento principal:
Son de tamaño fijo.
Alojan un proceso cada una.
La cpu se cambia rápidamente entre los procesos creando la ilusión de
simultaneidad.
Los trabajos se traducían con ensambladores y compiladores absolutos para ser
ejecutados solo dentro de una partición especifica.
8. El S. O. resulta de implementación relativamente sencilla pero no se optimiza la
utilización de la memoria.
Multiprogramación de Partición Fija: Traducción y Carga Relocalizables.
Los compiladores, ensambladores y cargadores de relocalizacion (Ver figura
3.2.5.3)) :
Se usan para producir programas relocalizables que puedan ser ejecutados
en cualquier partición disponible de tamaño suficiente para aceptarlos.
Son más complejos que los absolutos.
Mejoran la utilización del almacenamiento.
Confieren más flexibilidad en el armado de la carga de procesos.
Si se utiliza asignación contigua de memoria la protección suele implementarse
con varios “registros de limites”
Los extremos superior e inferior de una partición pueden ser:
Delineados con dos registros.
Indicados el limite inferior o superior y el tamaño de la partición o región.
9. Fragmentación en la Multiprogramación de Partición Fija.
La “fragmentación de almacenamiento” ocurre en todos los sistemas
independientemente de su organización de memoria.
En los S. O. de multiprogramación de partición fija la fragmentación se produce
cuando:
Los trabajos del usuario no llenan completamente sus particiones
designadas.
10. Una partición permanece sin usar porque es demasiado pequeña para
alojar un trabajo que esta en espera.
Multiprogramación de Partición Variable.
Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben
superar el espacio disponible de memoria.
No hay limites fijos de memoria, es decir que la partición de un trabajo es su
propio tamaño.
Se consideran “esquemas de asignación contigua”, dado que un programa debe
ocupar posiciones adyacentes de almacenamiento.
Los procesos que terminan dejan disponibles espacios de memoria principal
llamados “agujeros”:
Pueden ser usados por otros trabajos que cuando finalizan dejan
otros “agujeros” menores.
En sucesivos pasos los “agujeros” son cada vez mas numerosos pero mas
pequeños, por lo que se genera un desperdicio de memoria principal.
11. Combinación de agujeros (áreas libres).
Consiste en fusionar agujeros adyacentes para formar uno sencillo más grande.
Se puede hacer cuando un trabajo termina y el almacenamiento que libera tiene
limites con otros agujeros.
Multiprogramación con Intercambio de Almacenamiento
En el esquema de “intercambio” los programas del usuario no requieren
permanecer en la memoria principal hasta su terminación.
;Una variante consiste en que un trabajo se ejecuta hasta que ya no puede
continuar:
Cede el almacenamiento y la cpu al siguiente trabajo.
La totalidad del 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.
Es un esquema razonable y eficiente para un numero relativamente reducido de
procesos de usuarios.
Los sistemas de intercambio fueron los predecesores de los sistemas de
paginación.
El rendimiento de los sistemas de intercambio mejora al reducir el tiempo de
intercambio:
Manteniendo al mismo tiempo varias “imágenes de usuario o imágenes de
memoria” en la memoria principal.
Retirando una imagen de usuario de la memoria principal solo cuando es
necesario su almacenamiento para una nueva imagen.
Incrementando la cantidad de memoria principal disponible en el sistema.
Las imágenes de usuario (imágenes de memoria) retiradas del almacenamiento
principal se graban en el almacenamiento secundario (discos).
12. 3.7 ORGANIZACION DE MEMORIA VIRTUAL
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.
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.
13. 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.
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.
Relocalizable (reubicadle).
Multiprogramación en partición variable.
Virtual:
Multiprogramación en almacenamiento virtual:
Paginación pura.
14. Segmentación pura.
Combinación paginación / segmentación.
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.
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.
15. 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 traduccion de direcciones.-
Se lleva un tabla de segmento por cada proceso, cada entrada a la
tabla de segmento lleva la siguiente informacion: segment base
(dirección base del segmento)
segment limit (largo del segmento)
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
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
16. 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).
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.
17. SISTEMAS DE PAGINACION SEGMENTACION
Sistemas de Paginación / Segmentación
Ofrecen las ventajas de las dos técnicas de organización del
almacenamiento virtual [7, Deitel].
El tamaño de los segmentos es múltiplo del de las páginas.
No es necesario que todas las páginas de un segmento se encuentren
al mismo tiempo en el almacenamiento primario.
Las páginas de almacenamiento virtual, que son contiguas en este
almacenamiento, no necesitan ser contiguas en el almacenamiento
real.
El direccionamiento es tridimensional con una dirección de
almacenamiento virtual “v = (s,p,d)”:
• “s” es el número del segmento.
• “p” es el número de página.
• “d” es el desplazamiento en la página donde se encuentra asignado
el elemento deseado.
Inicio: Fin:
Traducción Dinámica de Direcciones en Sistemas de Paginación /
Segmentación Se considera la traducción dinámica de direcciones de
virtuales a reales en un sistema de paginación / segmentación
utilizando la combinación de transformación asociativa / directa (ver
Figura 3.31 [7, Deitel]).
El proceso en ejecución hace referencia a la dirección virtual v = (s,p,d)
(ver Figura 3.32 [7, Deitel]).
Las páginas de referencia más reciente tienen entradas en un
almacenamiento asociativo.
Se realiza una búsqueda asociativa para intentar localizar (s,p) en el
almacenamiento asociativo:
• Si se encuentra (s,p), entonces el marco de página “p ’ ” en el cual
reside dicha página en la memoria real, se concatena al
desplazamiento “d” para formar la dirección de memoria real “r”
correspondiente a la dirección virtual v= (s,p,d).
18. • Si no se encuentra (s,p), entonces:
o La dirección base “b” de la tabla de segmentos se añade al número
de segmento “s” formando la dirección “b + s” de la entrada de la tabla
de mapa de segmentos para el segmento “s” de la memoria real.
o La entrada de la tabla de mapa de segmentos indica la dirección
base “s ’ ” de la tabla de páginas para el segmento “s”.
o El número de página “p” se añade a “s ’ ” formando la dirección “p +
s ’ ” de la entrada en la tabla de páginas para la página “p” del
segmento “s”:
§ Indica que “p ’ ” es el número del marco correspondiente a la página
virtual “p”.
§ “p ’ ” se concatena con el desplazamiento “d” formando la dirección
real “r ” que corresponde a la dirección virtual v = (s,p,d).
Si el segmento “s” no se encuentra en el almacenamiento primario se
produce un “fallo de pérdida de segmento”, cuyo caso el S. O. localiza
el segmento en el almacenamiento secundario, crea una tabla de
páginas para el segmento y carga la página apropiada en el
almacenamiento primario, pudiendo producir reemplazos de páginas.
Si el segmento “s” está en el almacenamiento primario y si la
referencia a la tabla de mapa de páginas indica que la página deseada
no se encuentra en el almacenamiento primario, se produce un “fallo
de pérdida de página”, en tal caso el S. O. obtiene el control, localiza la
página en el almacenamiento secundario y la carga, pudiendo
reemplazar otra página.
Si una dirección de almacenamiento virtual está más allá del final del
segmento se genera un “fallo de desbordamiento de segmento”, el que
debe ser atendido por el S. O.
Si los bits de protección indican que la operación que se va a ejecutar
en la dirección virtual referida no se permite, se genera un “fallo de
protección de segmento”, el que también debe ser atendido por el S.
O.
Si se utiliza un mecanismo de transformación directa pura,
manteniendo el mapa completo dentro del almacenamiento primario, la
referencia promedio de almacenamiento virtual requeriría:
• Un ciclo de almacenamiento para acceder a la tabla de mapa de
segmentos.
19. • Un segundo ciclo de almacenamiento para hacer referencia a la tabla
de mapa de páginas.
• Un tercer ciclo de almacenamiento para referenciar al elemento
deseado del almacenamiento real.
Cada referencia a un elemento comprende tres ciclos de
almacenamiento:
• El sistema correría casi a 1 / 3 de su velocidad nominal.
• La traducción de direcciones insumiría 2 / 3 del tiempo.
Con la utilización de registros asociativos (por ej. 16 registros), se
logran velocidades de ejecución del 90 % o más de la velocidad total
de procesamiento de sus procesadores de control.
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.
Inicio: Fin:
Compartimiento en un Sistema de Paginación / Segmentación
Se implementa disponiendo entradas en tablas de mapa de segmentos
para diferentes procesos que apunten a la misma tabla de mapa de
páginas (ver Figura 3.33 [7, Deitel]).
El compartimiento requiere una administración cuidadosa por parte del
S. O., ya sea en sistemas de paginación, segmentación o paginación /
segmentación, pues se debe considerar qué sucedería si una nueva
página reemplazara a otra página compartida por muchos procesos.
SEGMENTACION/PAGINACION
Tanto la Segmentacion como la paginación ofrecen significativas
ventajas, algunos sistemas (Multics y la Serie 370 de IBM) combinan
ambas técnicas en donde los segmentos tienen un tamaño multiplo de
pagina.
Este método utiliza Segmentación y Paginación tal y como su nombre
lo indica, el proceso es el siguiente: - Se hace la solicitud de acceso
por medio de una direccion “V” la cual contiene los campos Segmento,
20. Pagina y Desplazamiento. Con el campo Segmento, lo que se trata es
de accesar a una Tabla de segmentos, cada campo de dicha tabla
apunta directamente a la tabla de paginas asignada para ese segmento
conteniendo una direccion que será sumada a una direccion en la
Tabla Asociativa para por fin formar una direccion real con el
desplazamiento de “V”.
En un sistema con un número muy grande de procesos, segmentos o
paginas, ésta estructura puede consumir una parte muy importante de
la memoria real. La cuestión es que la traduccion de direcciones puede
realizarse con rapidez pero si se tienen demasiadas tablas, el sistema
puede soportar menos procesos y bajar su rendimiento
Sistema de paginación
Los sistemas de paginación son los utilizados para dividir los
programas en paginas y así poder utilizar programas de mayor tamaño
que la memoria principal, ya que las paginas no son cargadas todas a
la vez en la memoria principal. l traspaso de datos entre los distintos
niveles de almacenamiento se realiza eventualmente en paginas de
longitud fija, tal y como ocurre en la actualidad en los sistemas de
memoria virtual. El tamaño de la pagina es un parámetro del sistema y
no esta determinado por las longitudes de registro elegidas por los
programadores. Al usarse la paginación, los datos serán lógicamente
independientes del tamaño de pagina, pero tendrán que ser
físicamente “empaquetados” para que encajen en las paginas.
En los casos en que se usa hardware de almacenamiento a niveles
múltiples, el traspaso se hace por bloques, semejantes a las paginas.
Esta técnica se conoce con el nombre de promoción o staging.
Segmentación
El objetivo de la segmentación al igual que el de la paginación es el de
dar la facilidad de realizar programas que sean más grandes que la
memoria principal, pero la segmentación, a diferencia de la paginación,
puede dividir los programas en segmentos que no necesariamente
sean del mismo tamaño, pero para poder cargar un segmento en
memoria al igual que para cargar una pagina debe de existir el
suficiente espacio contiguo de memoria principal para cargarlo.
La segmentación en ocasiones puede ser usada al mismo tiempo que
la paginación.