Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Administracin de Memoria
OxFF
Programa de usuario
OxFF
OxFF
Programa de usuario
Programa de usuario
Sistema Operativo en RAM
Sistema Operativo
Programa de usuario
CPU
Registro limite
Proteccin de la Memoria
Sistemas Operativos
Los problemas que aparecen en los sistemas multiprogramados y/o multiusuarios son: 1. Llevar un recuento de las zonas de memoria ocupadas por los procesos. Que proceso ocupa cual espacio El momento de escribir un programa no se sabe en qu zona de memoria se ubicar, siendo posible que durante la vida de un proceso ste cambie varias veces de lugar. La proteccin de las zonas de memoria ocupadas por los procesos, mxime en sistemas multiusuario donde los procesos pueden pertenecer a distintos usuarios.
d1
Proceso 1
d2
2.
Proceso 2
d3
Proceso 3
d4
Direcciones de memoria
3.
Proceso n
dm
Sistemas Operativos
Particiones estticas
Organizacin de la memoria:
Sistema operativo 512
La memoria se divide en regiones con lmites fijos, con dos alternativas: 1. particiones igual tamao o 2. particiones de diferentes tamaos.
256 K 320 k
512 k
Asignacin memoria: de procesos a la
576 k 768 k 1M
512 k
512 k
Se pueden tener dos esquemas de asignacin de memoria en particiones estticas utilizando colas de procesos: 1. Colas de particin. planificacin para cada
Sistemas Operativos
Particiones estticas
512 k 512 k 512 k Procesos nuevos 512 k 512 k 512 k 512 k
Los trabajos se traducan mediante compiladores y ensambladores absolutos, para ejecutarse en una particin especfica
Sistema operativo 512
Una vez introducido un proceso en una particin, permanece en ella hasta su finalizacin aunque se encuentren libres otras particiones. Esto provoca una prdida de eficiencia
Sistemas Operativos
Particiones estticas
Sistema operativo
Algunas colas estarn saturadas por procesos que tienen un tamao similar a la particin mientras que otras estarn vacas o semivacas.
Sistema operativo
Procesos nuevos
Procesos nuevos
Cuando un proceso se introduce en una particin, lo ms probable es que su tamao no sea el mismo (es decir, sea algo menor) que el de la particin. Esto origina un problema de desperdicio de memoria conocido como fragmentacin interna.
Sistemas Operativos
Particiones estticas
Sistema operativo 512 128 k Sistema operativo 512 128 k
256 K 320 k
256 K 320 k
512 k
Procesos nuevos
512 k
Procesos nuevos
576 k 768 k 1M
576 k 768 k 1M
Se minimiza la particin interna porque cada proceso es asignado a la particin ms pequea. Para ello se supone que se conoce el tamao de la cantidad de memoria que ocupa un proceso lo cual no siempre es cierto.
Sistemas Operativos
Memoria RAM
CPU
Registro Base (RB) 10000
10000
10100
PROCESO
100
Proceso
Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl
Pila
MMU RB + A
Enviado por el BUS La traduccin de las direcciones virtuales a reales es implementada por una Unidad de Manejo de Memoria (MMU).
Sistemas Operativos
Particiones dinmicas
Memoria Virtual
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
G
A
No hay espacio
F B C D E E C
A, F, C o E
Pasar temporalmente un proceso para dar oportunidad a un nuevo proceso para ejecutarse
Sistemas Operativos
Particiones dinmicas
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 El continuo ingreso y salida de los procesos producen huecos en la memoria demasiado pequeos para que un proceso pueda colocarse. A este tipo de fragmentacin se le conoce como fragmentacin externa.
F B C D E E C
La recuperacin de los huecos de memoria puede llevarse a cabo por medio de la tcnica de compactacin donde los espacios disponibles de memoria son colocados en la parte inferior y los procesos en la parte superior. Sin embargo, este proceso es demasiado lento y posiblemente no justifique el consumo de recursos, debido a que el sistema debe estar inactivo para poder realizar la compactacin.
Sistemas Operativos
Particiones dinmicas
A
Estrategias de colocacin
F
C H E
Mejor ajuste. Busca y asigna la particin de memoria que mejor se ajuste al tamao del proceso tratando de dejar libre la menor cantidad de memoria
Peor ajuste. Se busca y asigna la particin de mayor tamao para dejar libre la mayor cantidad de memoria para que pueda colocarse otro proceso en ella.
Sistemas Operativos
Cmo se lleva el control de la memoria que se encuentra disponible y aquella que esta ocupada?
Particin esttica. Es suficiente con guardar en una tabla la informacin sobre la particin que est libre o que est ocupada y qu proceso se encuentra en ella, as como la direcciones de comienzo y fin de la particin. Particin dinmica pueden ser implementada por 1. Mapa de bits. 2. Listas enlazadas. 3. Sistema de los asociados.
Sistemas Operativos
Hueco o proceso
18
20
26
29
Sistemas Operativos
Sistemas asociados Consiste en tener la memoria inicialmente como un gran espacio libre que se ir particionando en mltiplos de potencia de 2 cada vez que un proceso haga la solicitud de memoria.
1 MB
64 K 64 K 64 K 64 K 64 K 64 K
P 56 K
64 K
64 K
64 K
64 K
64 K
64 K
64 K
64 K
64 K
64 K
512 KB
128 K 128 K 128 K 128 K 128 K 128 K 128 K 128 K
256 KB 128 KB
B
256 K 256 K 256 K 256 K
512 K 1M
512 K
Sistemas Operativos
Datos Pila
Registro Lmite
Comparador
Interrupcin al Sistema Operativo La Unidad Manejadora de Memoria (MMU) realiza la traduccin de las direcciones relativas en direcciones fsicas en la memoria principal.
Para el intercambio de procesos entre la memoria real y la memoria virtual se requiere un mecanismo que reubique los procesos sin perder las referencias que se hacen dentro de l. Los programas que emplean direcciones relativas se cargan mediante cargadores dinmicos durante la ejecucin.
Sistemas Operativos
Memoria virtual
Paginacin
1.
Cada pgina consiste en z palabras contiguas
2.
palabra
Pgina 0 Programa XYZ Pgina n-1 Marco n-1 Marco 0
Pgina
Las diferencias estn en que, con paginacin las particiones son ms pequeas, un programa puede ocupar ms de una particin y stas no tienen por qu estar contiguas.
Memoria
3.
Sistemas Operativos
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
(a) 15 pginas libres
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
A.0 A.1 A.2 A.3 D.0 D.1 D.2 C.0 C.1 C.2 C.3 D.3 D.4
0 1 2 3
0 1 2 3
0 1 2
----
0 1 2 3
7 8 9 10
0 1 2 3 4
4 5 6 11 12
13 14
Listas de marcos libres
Sistemas Operativos
a =( p , d )
0000010111011110
Pgina de 1024 bits = 1 K
0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0
Palabra z Palabra 1
0
Pgina n-1 Palabra z
000101
000110
0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0
1 2
000101
Direccin fsica de 16 bits
Sistemas Operativos
Memoria Asociativa
En la prctica es necesario que la mayora de los accesos a memoria no impliquen una consulta a la tabla de pginas, sino que nicamente requieran el acceso a la posicin solicitada. Esto
Sistemas Operativos
Pginas compartidas
Otra ventaja de la paginacin es la posibilidad de compartir programas de uso comn. Esta tcnica resulta sumamente importante en un entorno de tiempo compartido. Se pueden compartir desde editores como compiladores, ensambladores y sistemas de base de datos. Para que sean compartibles, el cdigo debe ser reentrante (no automodificable), es decir, el cdigo es slo de bsqueda o slo lectura.
3 4 6 1 Tabla de Pginas P1
0 1 2 3
Datos 1
Proceso P2 ed1 ed1 ed1 Datos 1 Proceso P3 ed1 ed1 ed1
3 4 6 7 Tabla de Pginas P2
5 6 7 8
ed3 Datos 2
3 4 6 Tabla de Pginas P3
9 10
Datos 1
Sistemas Operativos
Memoria virtual
Segmentacin
La segmentacin es un esquema de administracin de la memoria que soporta la visin que el usuario tiene de la misma. Un espacio de direcciones lgicas es una coleccin de segmentos. Cada segmento tiene un nombre y una longitud. Las direcciones especifican tanto el nombre del segmento como el desplazamiento dentro del segmento. Por lo tanto, el usuario especifica cada direccin mediante dos cantidades: un nombre de segmento y un desplazamiento.
Sqrt
subrutina
pila
1400
Segmento 3 Tabla de smbolos
2400
Segmento 0
Segmento 0
Segmento 4
Programa principal Segmento 2 Segmento 1
3200
Segmento 3
4300 4700
Segmento 2
Segmento 4
5700 6300
6700
Segmento 1
Tabla de segmentos
Sistemas Operativos
Memoria virtual
Segmentacin
La segmentacin simple siempre hace uso de una tabla de segmentos para cada proceso y una tabla de segmentos en la memoria principal. La tabla de segmentos para un proceso contiene la direccin fsica de comienzo del segmento y la longitud mxima de ste (como medida de proteccin, para evitar referencias a segmentos que no corresponda). s
Tabla de segmentos s
d
Limite Base
CPU
< no
interrupcin
Memoria
+
Sistemas Operativos
En forma anloga a la paginacin, el proceso de traduccin de direcciones en la segmentacin, consiste en los siguientes pasos: 1. Extraer el nmero de segmentos de los n bits ms significativos de la direccin lgica. 2. Emplear el nmero de segmentos como ndice en la tabla de segmentos del proceso para obtener la direccin fsica de comienzo del segmento. 3. Comparar el desplazamiento expresado en los m bits menos significativos de la direccin lgica con la longitud del segmento, si es mayor, la direccin no es vlida. 4. La direccin fsica buscada es la suma de la direccin fsica del inicio del segmento ms el desplazamiento.
Desplazamiento de 12 bits
0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0
0 1
001011101110 011110011110
Longitud
0000010000000000 0010000000100000
0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0
Cuando un proceso se introduce en memoria, se cargan todos sus segmentos en regiones de memoria libres y se crea la tabla de segmentos.
Sistemas Operativos
Ventajas de la segmentacin
1. Generalmente, el programador no conoce realmente el tamao que utilizar una estructura de datos, luego si sta tiene asignado un segmento podr ser expandido o reducido segn sus necesidades. 2. Los programas pueden ser compilados de manera independiente aunque sean mdulos de otros programas. 3. Varios procesos pueden compartir segmentos, por si desean compartir datos. 4. Se pueden proteger los programas o datos asignando privilegios de acceso a los segmentos.
Sistemas Operativos