Escolar Documentos
Profissional Documentos
Cultura Documentos
Intercambio (Swapping)
Intercambio de procesos a MP
xito la direccin
Fracaso 0
En caso contrario
Ajusta direccin y unidades acorde a cantidad recursos asignadosEl kernel busca posicin adecuada en el mapa por
la direccin
Casos posibles:
Recursos liberados llenan un hueco en el mapa Combinar todos los recursos en una entrada en el mapa.
Recursos liberados llenan parcialmente un hueco en el mapa y son contiguos a alguna entrada adyacente El kernel ajusta la
direccin y unidades de la entrada apropiada de acuerdo a recursos liberados.
Recursos liberados llenan parcialmente un hueco en el mapa y no son contiguos a ninguna entrada El kernel crea nueva
entrada en el mapa para los recursos liberados y la inserta en la posicin apropiada.
101
Direccin
251
Direccin
1
251
Unidade
s
Direccin
1
9900
Unidade Direccin
s
9750
Direccin
1
h
Unidade Direccin
1
s
10000 451
151
Unidade Direccin
s
101
150
251
9750
Unida
des
10000
Unida
des
9850
Unida
des
50
9750
Unida
des
150
9550
Proceso 0, swapper (proceso del kernel) nico capaz de mover procesos entre memoria y swap.
Comportamiento:
nica tarea que tiene que hacer el swapper es intercambiar procesos desde swap: (1) Examina
procesos listos para ejecutarse en rea de swap y selecciona el que haya estado ms tiempo
intercambiado; (2) Si tiene suficiente memoria libre disponible asigna memoria fsica, lee el proceso
desde el dispositivo de swap y libera la memoria en el mismo; (3) Si no tiene suficiente espacio en
memoria principal, intenta intercambiar procesos al dispositivo de swap.
Si no hay procesos para intercambiar a memoria, o ninguno de los procesos que hay en memoria
pueden ser intercambiados al dispositivo de swap swapper se duerme, y se despierta: (1) El reloj, lo
despertar una vez cada segundo en este estado (dormido); (2) el kernel si otro proceso va a dormir;
y
Criterios del swapper para elegir un proceso para echarlo (intercambiarlo) de memoria: (1) Examina
cada uno de los procesos que estn en memoria; (2) No examina ni Zombies, ni procesos bloqueados
en memoria; (3) Prefiere Dormidos a listos para ejecutarse; (4) Elegir de los Dormidos los que
menos f(prioridad, tiempo que proceso lleva en memoria) tengan; (5) Elegir de los listos para
ejecutarse los que menos f(nice, tiempo que el proceso haya estado en memoria) tengan.
Tabla de pginas Normalmente, hay una tabla por proceso, con una entrada
para cada pgina de la memoria virtual del proceso.
Tabla de uso de swap Existe una tabla de uso de swap por cada dispositivo de
intercambio, con una entrada para cada pgina en dicho dispositivo.
El kernel asigna espacio para pfdata una vez durante la vida del sistema,
aunque para las otras estructuras le asigna y desasigna espacio
dinmicamente. Cada regin contiene tablas de pginas para acceder a
memoria fsica.
GESTIN DE MEMORIA EN
LINUX
Visin General
Direccionamiento de Memoria
en Linux
Espacios de Direcciones
Direcciones lgicas. Generadas por el proceso, cada direccin lgica consiste en un selector de
segmento y un desplazamiento (offset) que denota la distancia del principio del segmento a la
direccin actual.
Direcciones lineales (direcciones virtuales). Obtenidas tras aplicar una transformacin a la direccin
lgica por parte de la MMU. 32 bits se pueden utilizar para direccionar 4Gb (es decir 4294967296
direcciones fsicas de memoria). Las direcciones lineales se representan normalmente en
hexadecimal, su rango de valores va desde 0x00000000 hasta 0xffffffff.
Direcciones fsicas. Referencian la memoria fsica. Se obtienen tras aplicar una transformacin por
parte de la MMU.
Paginacin en Linux
Hemos visto que Linux hace uso de las ventajas de la segmentacin y de los
circuitos de paginacin de los procesadores i386 para traducir direcciones
lgicas en direcciones fsicas. Podemos tambin decir que alguna porcin de
RAM est permanentemente asignada al kernel y utilizada para almacenar el
cdigo del kernel y estructuras de datos esttic as del mismo. La restante
parte de la RAM se denomina memoria dinmica, y sta es un recurso muy
valioso y necesitado no slo por los procesos sino tambin por el propio kernel.
De hecho el rendimiento global del sistema depende fuertemente de cmo de
efic ientemente se gestiona la memoria dinmica. Por tanto, todos los sistemas
operativos multitarea actuales tratan de optimizar el uso de la memoria
dinmica, asignndola slo cuando es estrictamente necesario y liberndola
tan pronto como sea posible. En esta seccin describiremos: estructuras
bsicas del kernel para gestionar la memoria dinmica desde dos puntos de
vista: asignacin de memoria para el kernel y asignacin de memoria para
procesos, poltica de asignacin de la memoria por parte del kernel, el gestor
de faltas de pgina, etc.
Gestin de memoria en
Windows
El gestor de memoria en Windows est hecho para trabajar con paginas que van de los
4kBhasta los 64kB. Cuando se crea un proceso el tamao mximo es de 2GB, este espacio
estdividido en pginas de tamao fijo y poseen uno de los siguientes estados:
Disponible
Reservada
Asignada
Cuando hay espacio disponible en la memoria, el gestor de memoria virtual permite que
losconjuntos residentes de los procesos activos crezcan. Entonces se trae una nueva pgina a
lamemoria sin expulsar ninguna.
Cuando la memoria empieza a escasear, el gestor de memoria virtual mueve las pginas que
sehan utilizado hace ms tiempo de cada uno de los procesos hacia swap, liberando as
memoriaprincipal.
Existen algunas similitudes en cuanto a la gestin de memoria en Windows y Linux
perocuando es necesario liberar memoria Windows lo hace una vez por segundo a diferencia
enLinux que lo hace solo cuando es necesario, esto hace de Linux mas eficiente.