Interesante, revisalo
Esquemas de asignación "Imagínate lo educativo que es "
SUPER EDUCATIVO
Video Educativo
SISTEMAS OPERATIVOS
GESTIÓN DE LA MEMORIA, DIRECCIONES VIRTUALES Y FÍSICAS, ASIGNACIÓN DE MEMORIA EN MULTIPROGRAMACIÓN
domingo, 20 de enero de 2019
GESTIÓN DE LA MEMORIA
En un sistema operativo moderno,
la gestión de la memoria corre a cargo de un subsistema básico que se encarga
de:
Presentar a los procesos un espacio de memoria contiguo, aunque se estén utilizando diferentes espacios (memoria principal y memoria secundaria)
Optimizar la manera en la que se utiliza la memoria:
Presentar a los procesos un espacio de memoria contiguo, aunque se estén utilizando diferentes espacios (memoria principal y memoria secundaria)
Optimizar la manera en la que se utiliza la memoria:
·
Los datos e instrucciones con los que se trabaja deben estar en
memoria principal
·
Los datos e instrucciones con los que no se trabaja pueden estar
descargados a memoria secundaria
·
Se debe evitar los fallos de página (necesitar algo que está en
memoria secundaria, lo que nos obliga a esperar a que se traiga hasta memoria
principal)
·
Se debe
utilizar la memoria principal disponible para acelerar la entrada/salida
(buffers y caché)

REASIGNACIÓN
En los
sistemas con memoria virtual, los programas durante su ejecución pueden salir
por un tiempo de la memoria y luego regresar, de modo que no pueden colocarse
en el lugar que ocupaban previamente. Por ello debe ser posible que residan en
diferentes partes de la memoria en diferentes momentos. Así, la gestión de
memoria en el sistema operativo debe ser capaz de trasladar los programas en
memoria y manejar referencias a la memoria y las direcciones en el código del
programa para que siempre apunten a la ubicación correcta. La unidad de gestión
de memoria virtual también debe hacer frente a la concurrencia.
Protección
Los procesos no deberían poder
referenciar la memoria de otros procesos sin permiso, para evitarlo existe
la protección de memoria, que evita que código malicioso o erróneo de un
programa interfiera con la operación de otros programas en ejecución.
Memoria compartida
Aunque la
memoria utilizada por diferentes procesos suele estar protegida, algunos
procesos puede que sí tengan que compartir información y, para ello, han de
acceder la misma sección de memoria. La memoria compartida es una de las
técnicas más rápidas para posibilitar la comunicación entre procesos.
Organización
lógica
Los programas
a menudo están organizados en módulos, algunos de los cuales pueden ser
compartidos por diferentes programas, algunos son de solo-lectura y otros
contienen datos que se pueden modificar. Se escriben y se compilan
independientemente. La gestión de memoria es responsable de manejar esta
organización lógica, que se contrapone al espacio de direcciones físicas
lineales. Una forma de lograrlo es mediante la segmentación de memoria.
Organización
física
La memoria
suele dividirse en un almacenamiento primario de alta velocidad y uno
secundario de menor velocidad. La gestión de memoria del sistema operativo se
ocupa de trasladar la información entre estos dos niveles de memoria.
Dirección física
En la informática, una dirección física (también
denominada dirección real o dirección binaria) es una dirección de
memoria que se
representa en forma de un número binario en la
circuitería de bus de direcciones para
permitir que el bus de
datos acceda a una celda de almacenamiento particular de la red principal de
memoria o un registro de dispositivo de E/S mapeada en
memoria.

Dirección
Virtual
En informática,
la memoria virtual es
una técnica de gestión de la memoria que se encarga de que el sistema
operativo disponga, tanto para el software de usuario como para sí mismo, de
mayor cantidad de memoria que esté disponible físicamente. La mayoría de los
ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria
caché (tanto dentro como fuera del CPU), la memoria RAM y el
disco duro. En ese orden, van de menor capacidad y mayor velocidad a mayor
capacidad y menor velocidad.
Muchas
aplicaciones requieren acceso a más información (código y datos) que la que se
puede mantener en memoria física. Esto es así sobre todo cuando el sistema
operativo permite múltiples procesos y aplicaciones ejecutándose
simultáneamente. Una solución al problema de necesitar mayor cantidad de
memoria de la que se posee consiste en que las aplicaciones mantengan parte de
su información en disco, moviéndola a la memoria principal cuando sea
necesario. Hay varias formas de hacer esto.
Una opción es
que la aplicación misma sea responsable de decidir qué información será
guardada en cada sitio (segmentación), y de traerla y llevarla. La desventaja
de esto, además de la dificultad en el diseño e implementación del programa, es
que es muy probable que los intereses sobre la memoria de dos o varios
programas generen conflictos entre sí: cada programador podría realizar su
diseño teniendo en cuenta que es el único programa ejecutándose en el sistema.
La alternativa es usar memoria virtual, donde la 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. Este método es invisible a los
procesos. 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 2, 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.
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.

Esquema
de asignación de memoria en multiprogramación
Multiprogramación con particiones fijas (MFT)
Dado que los procesos no tienen
necesariamente que tener el mismo tamaño que las particiones, existirán espacios no
utilizables dentro de estas, denominados como [fragmentación interna]].
Esto hace que no se utilice el total de la
memoria siendo una de las principales deficiencias de este esquema de
asignación.
Multiprogramación
con particiones variables (MVT)
Al dividirse la memoria en bloques de tamaño
diferente, puede ocurrir que el bloque más grande no pueda contener un programa
dado, a pesar de que la suma de los espacios libres sea mayor que el tamaño del
programa; a esto se le denomina fragmentación externa.
Esquemas
·
Esquema
primer ajuste: El administrador de memoria revisa toda la lista de segmentos hasta
encontrar un espacio lo suficientemente grande. El espacio se divide entonces
en dos partes, una para el proceso y la otra para la memoria no utilizada. Este algoritmo es
rápido, puesto que busca lo menos posible.
·
Esquema
de próximo ajuste: Funciona de la misma forma que el anterior, con la
diferencia que mantiene un registro del lugar dónde encuentra un hueco
adecuado. La siguiente vez que se le llama, comienza a buscar desde el punto
donde se detuvo, en lugar de comenzar a buscar siempre desde el inicio.
·
Esquema
de mejor ajuste: Busca en toda la lista y toma el mínimo hueco adecuado. En
lugar de asignar un hueco grande, intenta encontrar un hueco más cercano al
tamaño necesario.
·
Esquema
peor ajuste: Toma siempre el hueco más grande disponible, de forma que el hueco
resultante sea lo suficientemente grande para ser útil.
Asignación no contigua
En el momento de la carga de un trabajo le
corresponde al sistema operativo localizar los huecos libres existentes con las
capacidades requeridas para los segmentos, construir la tabla de segmentos y
colocar en un registro base la dirección de ésta, si el trabajo va a ser
ejecutado de inmediato. Normalmente la tabla de segmentos es conservada en el PCB del proceso.
Ventajas
Con este esquema, los programas se dividen
en unidades de tamaño fijo. A estas unidades se les denomina: páginas; es
decir, un programa está compuesto por un conjunto de estas.
Por otro lado, la memoria
física se divide en bloques de igual longitud,
coincidiendo esta con la que tienen las páginas. A estos bloques se les llaman marcos de páginas; en cada uno se puede
almacenar justamente una página.
Desventajas
En el paginado no existe la fragmentación externa, pero si se presenta la fragmentación interna en el último
marco de página, pues normalmente tendrá una parte de su espacio sin uso.
La solución a esto está utilizar páginas
pequeñas. El tamaño de las páginas (y de los marcos) es definido por el
hardware, normalmente una potencia de 2, lo cual hace la traducción de lógica a
física más sencilla.
Segmentación
El esquema de segmentación paginada parte de
algunas ventajas de la paginación: elimina la fragmentación externa y aprovecha
eficientemente la memoria; así como otras de la segmentación: visible al
[programador] y da soporte para compartición y protección. Este esquema es de
frecuente uso en sistemas operativos actuales.
Suscribirse a:
Comentarios (Atom)
Link relacionados
Interesante, revisalo Esquemas de asignación "Imagínate lo educativo que es " SUPER EDUCATIVO Video Educativo
-
Interesante, revisalo Esquemas de asignación "Imagínate lo educativo que es " SUPER EDUCATIVO Video Educativo
-
OBANDO ERICK BARRE JONATHAN BARRES IVAN DARIO