Procesador IA-32 - Gestión de Memoria

Anuncio
Microprocesadores
Procesador IA-32 - Gestión de Memoria
Alejandro Furfaro
Mayo de 2011
Temario
1
Inroducción
Criterios de eficiencia: Vecindad
2
Soporte del Procesador
Partición de los procesos
Gestión de Memoria
Paginación
Segmentación
3
Soporte de Paginación de los procesadores IA-32
4
Paginación en Linux
5
Software del Sistema Operativo
Objetivos
Polı́ticas de lectura
Polı́ticas de Reemplazo
Gestión del Conjunto de Páginas Residentes
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
2 / 103
Inroducción
Definición
La Memoria Virtual (VM, por Virtual Memory) es
un servicio implementado en los Sistemas
Operativos modernos que tiene por objeto permitir
a los programas de aplicación trabajar con
direcciones de memoria a nivel lógico, de manera
independiente de la cantidad de memoria
fı́sicamente disponible.
Dicho de otro modo, un subsistema de VM
permite mostrar a los procesos en ejecución, una
cantidad de memoria mayor de la disponible en el
sistema.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
3 / 103
Inroducción
Definición
La Memoria Virtual (VM, por Virtual Memory) es
un servicio implementado en los Sistemas
Operativos modernos que tiene por objeto permitir
a los programas de aplicación trabajar con
direcciones de memoria a nivel lógico, de manera
independiente de la cantidad de memoria
fı́sicamente disponible.
Dicho de otro modo, un subsistema de VM
permite mostrar a los procesos en ejecución, una
cantidad de memoria mayor de la disponible en el
sistema.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
3 / 103
Inroducción
¿Como se logra esto?
Los procesos dividen en fragmentos.
Se utiliza la memoria primaria para el almacenamiento de
aquellos fragmentos de los procesos que son necesarios en un
momento dado para su ejecución.
El resto de los fragmentos se almacena en la memoria
secundaria.
La memoria primaria es el sitio en el que están fı́sicamente los
fragmentos en uso de cada proceso. Por tal motivo la conocemos
también como Memoria Fı́sica. Y no es otra que la RAM
dinámica instalada en el sistema.
La memoria secundaria es la que genera la “visión“ de una
mayor cantidad de memoria que la fı́sicamente disponible. Por tal
motivo se la denomina Memoria Virtual. Y no es otra cosa que
una porción del disco rı́gido.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
4 / 103
Inroducción
Criterios de eficiencia: Vecindad
Antecedentes
Durante los 60’s y 70’s se generó toda la investigación cientı́fica
sobre la cual se sustenta el servicio de VM.
Inicialmente las dudas pasaban simplemente por si este modelo
empı́rico funcionaba realmente.
Lo trabajos de investigación realizados durante aquelloas años
demostraron que el software tiene a permanecer trabajando en un
rango de direcciones de memoria contiguas durante lapsos
significativos.
De este modo puede comenzarse la ejecución de un proceso con
un pequeño conjunto de fragmentos de su código, sus datos y su
pila, lo cual garantizará generalmente su funcionamiento durante
un lapso considerable sin necesidad de cargar otros fragmentos.
Además se demostró que cuando alguno de estos fragmentos
deja de requerirse, porque se pasa a trabajar dentro de otro rango
de direcciones, pasará un lapso mas que considerable hasta que
se lo vuelva a requerir (eventualmente).
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
5 / 103
Inroducción
Criterios de eficiencia: Vecindad
Principio de Vecindad
Vecindad Temporal Si un ı́tem es referenciado, la probabilidad de ser
referenciado en el futuro inmediato es alta.
Vecindad Espacial Si un ı́tem es referenciado, es altamente probable
que sean referenciados sus ı́tems vecinos.
f o r ( i = 0 ; i < 256 ; i ++ ) {
suma = 0 . 0 f ;
f o r ( j = 0 ; ( j <= i && j < 256) ; j ++)
suma += v0 [ i −j ] ∗ v1 [ j ] ;
fAux [ i ] = suma ;
}
La porción de código anterior corresponde a un algoritmo de
convolución discreta. En él podemos observar que las variables i,
j, suma, se utilizan permanentemente durante la ejecución del
bucle que está dimensionado por los valores de i y j.
Por lo tanto si se mantiene el fragmento que los contiene en la
memoria principal su acceso será inmediato.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
6 / 103
Inroducción
Criterios de eficiencia: Vecindad
Principio de Vecindad
Vecindad Temporal Si un ı́tem es referenciado, la probabilidad de ser
referenciado en el futuro inmediato es alta.
Vecindad Espacial Si un ı́tem es referenciado, es altamente probable
que sean referenciados sus ı́tems vecinos.
f o r ( i = 0 ; i < 256 ; i ++ ) {
suma = 0 . 0 f ;
f o r ( j = 0 ; ( j <= i && j < 256) ; j ++)
suma += v0 [ i −j ] ∗ v1 [ j ] ;
fAux [ i ] = suma ;
}
La porción de código anterior corresponde a un algoritmo de
convolución discreta. En él podemos observar que las variables i,
j, suma, se utilizan permanentemente durante la ejecución del
bucle que está dimensionado por los valores de i y j.
Por lo tanto si se mantiene el fragmento que los contiene en la
memoria principal su acceso será inmediato.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
6 / 103
Inroducción
Criterios de eficiencia: Vecindad
Principio de Vecindad
Vecindad Temporal Si un ı́tem es referenciado, la probabilidad de ser
referenciado en el futuro inmediato es alta.
Vecindad Espacial Si un ı́tem es referenciado, es altamente probable
que sean referenciados sus ı́tems vecinos.
f o r ( i = 0 ; i < 256 ; i ++ ) {
suma = 0 . 0 f ;
f o r ( j = 0 ; ( j <= i && j < 256) ; j ++)
suma += v0 [ i −j ] ∗ v1 [ j ] ;
fAux [ i ] = suma ;
}
La porción de código anterior corresponde a un algoritmo de
convolución discreta. En él podemos observar que las variables i,
j, suma, se utilizan permanentemente durante la ejecución del
bucle que está dimensionado por los valores de i y j.
Por lo tanto si se mantiene el fragmento que los contiene en la
memoria principal su acceso será inmediato.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
6 / 103
Inroducción
Criterios de eficiencia: Vecindad
Principio de Vecindad
Vecindad Temporal Si un ı́tem es referenciado, la probabilidad de ser
referenciado en el futuro inmediato es alta.
Vecindad Espacial Si un ı́tem es referenciado, es altamente probable
que sean referenciados sus ı́tems vecinos.
f o r ( i = 0 ; i < 256 ; i ++ ) {
suma = 0 . 0 f ;
f o r ( j = 0 ; ( j <= i && j < 256) ; j ++)
suma += v0 [ i −j ] ∗ v1 [ j ] ;
fAux [ i ] = suma ;
}
La porción de código anterior corresponde a un algoritmo de
convolución discreta. En él podemos observar que las variables i,
j, suma, se utilizan permanentemente durante la ejecución del
bucle que está dimensionado por los valores de i y j.
Por lo tanto si se mantiene el fragmento que los contiene en la
memoria principal su acceso será inmediato.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
6 / 103
Inroducción
Criterios de eficiencia: Vecindad
Principio de Vecindad
Vecindad Temporal Si un ı́tem es referenciado, la probabilidad de ser
referenciado en el futuro inmediato es alta.
Vecindad Espacial Si un ı́tem es referenciado, es altamente probable
que sean referenciados sus ı́tems vecinos.
f o r ( i = 0 ; i < 256 ; i ++ ) {
suma = 0 . 0 f ;
f o r ( j = 0 ; ( j <= i && j < 256) ; j ++)
suma += v0 [ i −j ] ∗ v1 [ j ] ;
fAux [ i ] = suma ;
}
La porción de código anterior corresponde a un algoritmo de
convolución discreta. En él podemos observar que las variables i,
j, suma, se utilizan permanentemente durante la ejecución del
bucle que está dimensionado por los valores de i y j.
Por lo tanto si se mantiene el fragmento que los contiene en la
memoria principal su acceso será inmediato.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
6 / 103
Inroducción
Criterios de eficiencia: Vecindad
Principio de Vecindad
Vecindad Temporal Si un ı́tem es referenciado, la probabilidad de ser
referenciado en el futuro inmediato es alta.
Vecindad Espacial Si un ı́tem es referenciado, es altamente probable
que sean referenciados sus ı́tems vecinos.
f o r ( i = 0 ; i < 256 ; i ++ ) {
suma = 0 . 0 f ;
f o r ( j = 0 ; ( j <= i && j < 256) ; j ++)
suma += v0 [ i −j ] ∗ v1 [ j ] ;
fAux [ i ] = suma ;
}
La porción de código anterior corresponde a un algoritmo de
convolución discreta. En él podemos observar que las variables i,
j, suma, se utilizan permanentemente durante la ejecución del
bucle que está dimensionado por los valores de i y j.
Por lo tanto si se mantiene el fragmento que los contiene en la
memoria principal su acceso será inmediato.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
6 / 103
Inroducción
Criterios de eficiencia: Vecindad
Principio de Vecindad
En 1972 se demostró la influencia de la vecindad en un sistema de VM.[1]
Hatfield, D.”Experimets on page size, Program Access Patterns, and Virtual Memory Performance“, IBM Journal Journal
of Research and Development, January 1972.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
7 / 103
Inroducción
Criterios de eficiencia: Vecindad
Primeras conclusiones
Se paga la ampliación de capacidad con el mayor tiempo de
acceso del disco.
Es importante minimizar las transferencias hacia/desde la
memoria Virtual por razones de rendimiento del sistema.
Se va a requerir un importante soporte desde el hardware del
procesador que se utilice como CPU del sistema, para
implementar por hardware operaciones que de otro modo
comprometerı́an en rendimiento del Sistema Operativo.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
8 / 103
Inroducción
Criterios de eficiencia: Vecindad
Primeras conclusiones
Se paga la ampliación de capacidad con el mayor tiempo de
acceso del disco.
Es importante minimizar las transferencias hacia/desde la
memoria Virtual por razones de rendimiento del sistema.
Se va a requerir un importante soporte desde el hardware del
procesador que se utilice como CPU del sistema, para
implementar por hardware operaciones que de otro modo
comprometerı́an en rendimiento del Sistema Operativo.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
8 / 103
Soporte del Procesador
Partición de los procesos
Soporte del procesador
Diagrama de un Sistema Genérico de VM
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
9 / 103
Soporte del Procesador
Partición de los procesos
Fragmentación de los procesos
A través de tablas en las que se describen los diferentes
fragmentos en memoria el procesador siempre determinará la
presencia o no del fragmento solicitado por el proceso.
En caso de Ausencia del fragmento solicitado el procesador
generará una excepción que será interceptada por el Sistema
Operativo.
El Sistema Operativo por lo general suspende al proceso y
genera la transacción de E/S para leer desde la memoria
secundaria (disco) el fragmento direccionado por el proceso.
Una vez efectuada la operación de E/S, el Sistema Operativo
pone al proceso en estado listo para que se retome su ejecución.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
10 / 103
Soporte del Procesador
Partición de los procesos
Fragmentación de los procesos
A través de tablas en las que se describen los diferentes
fragmentos en memoria el procesador siempre determinará la
presencia o no del fragmento solicitado por el proceso.
En caso de Ausencia del fragmento solicitado el procesador
generará una excepción que será interceptada por el Sistema
Operativo.
El Sistema Operativo por lo general suspende al proceso y
genera la transacción de E/S para leer desde la memoria
secundaria (disco) el fragmento direccionado por el proceso.
Una vez efectuada la operación de E/S, el Sistema Operativo
pone al proceso en estado listo para que se retome su ejecución.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
10 / 103
Soporte del Procesador
Partición de los procesos
Fragmentación de los procesos
A través de tablas en las que se describen los diferentes
fragmentos en memoria el procesador siempre determinará la
presencia o no del fragmento solicitado por el proceso.
En caso de Ausencia del fragmento solicitado el procesador
generará una excepción que será interceptada por el Sistema
Operativo.
El Sistema Operativo por lo general suspende al proceso y
genera la transacción de E/S para leer desde la memoria
secundaria (disco) el fragmento direccionado por el proceso.
Una vez efectuada la operación de E/S, el Sistema Operativo
pone al proceso en estado listo para que se retome su ejecución.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
10 / 103
Soporte del Procesador
Partición de los procesos
Fragmentación de los procesos
A través de tablas en las que se describen los diferentes
fragmentos en memoria el procesador siempre determinará la
presencia o no del fragmento solicitado por el proceso.
En caso de Ausencia del fragmento solicitado el procesador
generará una excepción que será interceptada por el Sistema
Operativo.
El Sistema Operativo por lo general suspende al proceso y
genera la transacción de E/S para leer desde la memoria
secundaria (disco) el fragmento direccionado por el proceso.
Una vez efectuada la operación de E/S, el Sistema Operativo
pone al proceso en estado listo para que se retome su ejecución.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
10 / 103
Soporte del Procesador
Partición de los procesos
Fragmentación de los procesos
A través de tablas en las que se describen los diferentes
fragmentos en memoria el procesador siempre determinará la
presencia o no del fragmento solicitado por el proceso.
En caso de Ausencia del fragmento solicitado el procesador
generará una excepción que será interceptada por el Sistema
Operativo.
El Sistema Operativo por lo general suspende al proceso y
genera la transacción de E/S para leer desde la memoria
secundaria (disco) el fragmento direccionado por el proceso.
Una vez efectuada la operación de E/S, el Sistema Operativo
pone al proceso en estado listo para que se retome su ejecución.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
10 / 103
Soporte del Procesador
Partición de los procesos
Gestión del espacio de direccionamiento
Dirección Lógica: Cualquier referencia a memoria hecha por un
proceso.
El procesador las traduce dinámicamente a direcciones fı́sicas,
que es finalmente el número que sale por el Bus de Address.
El valor de dirección fı́sica dependerá de las áreas de memoria
que el procesador tenga disponibles en cada momento.
¡Un proceso descargado de la memoria principal no se volverá a
cargar en la misma área de memoria!.
Además el procesador divide el área de memoria total de un
proceso en bloques, que de acuerdo al diseño de su arquitectura
serán páginas o segmentos o una combinación de ambos.
El procesador no tendrá por lo tanto la obligación de cargar todos
los fragmentos de un proceso en la memoria principal sino que
solo podrá cargar aquellos que necesite.
Al conjunto de fracciones de procesos que están en un momento
dado en la memoria principal, lo llamaremos conjunto residente.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
11 / 103
Soporte del Procesador
Partición de los procesos
Gestión del espacio de direccionamiento
Dirección Lógica: Cualquier referencia a memoria hecha por un
proceso.
El procesador las traduce dinámicamente a direcciones fı́sicas,
que es finalmente el número que sale por el Bus de Address.
El valor de dirección fı́sica dependerá de las áreas de memoria
que el procesador tenga disponibles en cada momento.
¡Un proceso descargado de la memoria principal no se volverá a
cargar en la misma área de memoria!.
Además el procesador divide el área de memoria total de un
proceso en bloques, que de acuerdo al diseño de su arquitectura
serán páginas o segmentos o una combinación de ambos.
El procesador no tendrá por lo tanto la obligación de cargar todos
los fragmentos de un proceso en la memoria principal sino que
solo podrá cargar aquellos que necesite.
Al conjunto de fracciones de procesos que están en un momento
dado en la memoria principal, lo llamaremos conjunto residente.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
11 / 103
Soporte del Procesador
Partición de los procesos
Gestión del espacio de direccionamiento
Dirección Lógica: Cualquier referencia a memoria hecha por un
proceso.
El procesador las traduce dinámicamente a direcciones fı́sicas,
que es finalmente el número que sale por el Bus de Address.
El valor de dirección fı́sica dependerá de las áreas de memoria
que el procesador tenga disponibles en cada momento.
¡Un proceso descargado de la memoria principal no se volverá a
cargar en la misma área de memoria!.
Además el procesador divide el área de memoria total de un
proceso en bloques, que de acuerdo al diseño de su arquitectura
serán páginas o segmentos o una combinación de ambos.
El procesador no tendrá por lo tanto la obligación de cargar todos
los fragmentos de un proceso en la memoria principal sino que
solo podrá cargar aquellos que necesite.
Al conjunto de fracciones de procesos que están en un momento
dado en la memoria principal, lo llamaremos conjunto residente.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
11 / 103
Soporte del Procesador
Partición de los procesos
Gestión del espacio de direccionamiento
Dirección Lógica: Cualquier referencia a memoria hecha por un
proceso.
El procesador las traduce dinámicamente a direcciones fı́sicas,
que es finalmente el número que sale por el Bus de Address.
El valor de dirección fı́sica dependerá de las áreas de memoria
que el procesador tenga disponibles en cada momento.
¡Un proceso descargado de la memoria principal no se volverá a
cargar en la misma área de memoria!.
Además el procesador divide el área de memoria total de un
proceso en bloques, que de acuerdo al diseño de su arquitectura
serán páginas o segmentos o una combinación de ambos.
El procesador no tendrá por lo tanto la obligación de cargar todos
los fragmentos de un proceso en la memoria principal sino que
solo podrá cargar aquellos que necesite.
Al conjunto de fracciones de procesos que están en un momento
dado en la memoria principal, lo llamaremos conjunto residente.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
11 / 103
Soporte del Procesador
Partición de los procesos
Gestión del espacio de direccionamiento
Dirección Lógica: Cualquier referencia a memoria hecha por un
proceso.
El procesador las traduce dinámicamente a direcciones fı́sicas,
que es finalmente el número que sale por el Bus de Address.
El valor de dirección fı́sica dependerá de las áreas de memoria
que el procesador tenga disponibles en cada momento.
¡Un proceso descargado de la memoria principal no se volverá a
cargar en la misma área de memoria!.
Además el procesador divide el área de memoria total de un
proceso en bloques, que de acuerdo al diseño de su arquitectura
serán páginas o segmentos o una combinación de ambos.
El procesador no tendrá por lo tanto la obligación de cargar todos
los fragmentos de un proceso en la memoria principal sino que
solo podrá cargar aquellos que necesite.
Al conjunto de fracciones de procesos que están en un momento
dado en la memoria principal, lo llamaremos conjunto residente.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
11 / 103
Soporte del Procesador
Partición de los procesos
Gestión del espacio de direccionamiento
Dirección Lógica: Cualquier referencia a memoria hecha por un
proceso.
El procesador las traduce dinámicamente a direcciones fı́sicas,
que es finalmente el número que sale por el Bus de Address.
El valor de dirección fı́sica dependerá de las áreas de memoria
que el procesador tenga disponibles en cada momento.
¡Un proceso descargado de la memoria principal no se volverá a
cargar en la misma área de memoria!.
Además el procesador divide el área de memoria total de un
proceso en bloques, que de acuerdo al diseño de su arquitectura
serán páginas o segmentos o una combinación de ambos.
El procesador no tendrá por lo tanto la obligación de cargar todos
los fragmentos de un proceso en la memoria principal sino que
solo podrá cargar aquellos que necesite.
Al conjunto de fracciones de procesos que están en un momento
dado en la memoria principal, lo llamaremos conjunto residente.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
11 / 103
Soporte del Procesador
Partición de los procesos
Gestión del espacio de direccionamiento
Dirección Lógica: Cualquier referencia a memoria hecha por un
proceso.
El procesador las traduce dinámicamente a direcciones fı́sicas,
que es finalmente el número que sale por el Bus de Address.
El valor de dirección fı́sica dependerá de las áreas de memoria
que el procesador tenga disponibles en cada momento.
¡Un proceso descargado de la memoria principal no se volverá a
cargar en la misma área de memoria!.
Además el procesador divide el área de memoria total de un
proceso en bloques, que de acuerdo al diseño de su arquitectura
serán páginas o segmentos o una combinación de ambos.
El procesador no tendrá por lo tanto la obligación de cargar todos
los fragmentos de un proceso en la memoria principal sino que
solo podrá cargar aquellos que necesite.
Al conjunto de fracciones de procesos que están en un momento
dado en la memoria principal, lo llamaremos conjunto residente.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
11 / 103
Soporte del Procesador
Partición de los procesos
Gestión del espacio de direccionamiento
Dirección Lógica: Cualquier referencia a memoria hecha por un
proceso.
El procesador las traduce dinámicamente a direcciones fı́sicas,
que es finalmente el número que sale por el Bus de Address.
El valor de dirección fı́sica dependerá de las áreas de memoria
que el procesador tenga disponibles en cada momento.
¡Un proceso descargado de la memoria principal no se volverá a
cargar en la misma área de memoria!.
Además el procesador divide el área de memoria total de un
proceso en bloques, que de acuerdo al diseño de su arquitectura
serán páginas o segmentos o una combinación de ambos.
El procesador no tendrá por lo tanto la obligación de cargar todos
los fragmentos de un proceso en la memoria principal sino que
solo podrá cargar aquellos que necesite.
Al conjunto de fracciones de procesos que están en un momento
dado en la memoria principal, lo llamaremos conjunto residente.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
11 / 103
Soporte del Procesador
Partición de los procesos
Ventajas y costos
Es cierto que la transacción con disco introduce delays.
A cambio de ello:
1
2
3
4
Se pueden mantener en la memoria principal muchos mas
procesos, ya que el Sistemam Operativo puede alojar en ella solo
algunos fragmentos del proceso en lugar de la totalidad.
Es posible que un proceso sea mas grande que el total de la
memoria principal.
El Sistema Operativo es quien decide cuanta memoria consume un
proceso y como se cargan y descargan sus fragmentos.
Antes del desarrollo de los Sistemas de VM, la situación de un
programa mas grande que la cantidad de Memoria Fisica
disponible se resolvı́a mediante la generación de Overlays. Los
programadores de aplicaciones generaban la cantidad de Overlays
que estimaban conveniente y la aplicación los cargaba y
descargaba de la memoria RAM mediante system calls adecuadas,
pero manejando el consumo de RAM del proceso en función de la
conveniencia de éste y no con una visión amplia del sistema
completo.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
12 / 103
Soporte del Procesador
Partición de los procesos
Ventajas y costos
Es cierto que la transacción con disco introduce delays.
A cambio de ello:
1
2
3
4
Se pueden mantener en la memoria principal muchos mas
procesos, ya que el Sistemam Operativo puede alojar en ella solo
algunos fragmentos del proceso en lugar de la totalidad.
Es posible que un proceso sea mas grande que el total de la
memoria principal.
El Sistema Operativo es quien decide cuanta memoria consume un
proceso y como se cargan y descargan sus fragmentos.
Antes del desarrollo de los Sistemas de VM, la situación de un
programa mas grande que la cantidad de Memoria Fisica
disponible se resolvı́a mediante la generación de Overlays. Los
programadores de aplicaciones generaban la cantidad de Overlays
que estimaban conveniente y la aplicación los cargaba y
descargaba de la memoria RAM mediante system calls adecuadas,
pero manejando el consumo de RAM del proceso en función de la
conveniencia de éste y no con una visión amplia del sistema
completo.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
12 / 103
Soporte del Procesador
Partición de los procesos
Ventajas y costos
Es cierto que la transacción con disco introduce delays.
A cambio de ello:
1
2
3
4
Se pueden mantener en la memoria principal muchos mas
procesos, ya que el Sistemam Operativo puede alojar en ella solo
algunos fragmentos del proceso en lugar de la totalidad.
Es posible que un proceso sea mas grande que el total de la
memoria principal.
El Sistema Operativo es quien decide cuanta memoria consume un
proceso y como se cargan y descargan sus fragmentos.
Antes del desarrollo de los Sistemas de VM, la situación de un
programa mas grande que la cantidad de Memoria Fisica
disponible se resolvı́a mediante la generación de Overlays. Los
programadores de aplicaciones generaban la cantidad de Overlays
que estimaban conveniente y la aplicación los cargaba y
descargaba de la memoria RAM mediante system calls adecuadas,
pero manejando el consumo de RAM del proceso en función de la
conveniencia de éste y no con una visión amplia del sistema
completo.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
12 / 103
Soporte del Procesador
Partición de los procesos
Ventajas y costos
Es cierto que la transacción con disco introduce delays.
A cambio de ello:
1
2
3
4
Se pueden mantener en la memoria principal muchos mas
procesos, ya que el Sistemam Operativo puede alojar en ella solo
algunos fragmentos del proceso en lugar de la totalidad.
Es posible que un proceso sea mas grande que el total de la
memoria principal.
El Sistema Operativo es quien decide cuanta memoria consume un
proceso y como se cargan y descargan sus fragmentos.
Antes del desarrollo de los Sistemas de VM, la situación de un
programa mas grande que la cantidad de Memoria Fisica
disponible se resolvı́a mediante la generación de Overlays. Los
programadores de aplicaciones generaban la cantidad de Overlays
que estimaban conveniente y la aplicación los cargaba y
descargaba de la memoria RAM mediante system calls adecuadas,
pero manejando el consumo de RAM del proceso en función de la
conveniencia de éste y no con una visión amplia del sistema
completo.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
12 / 103
Soporte del Procesador
Partición de los procesos
Ventajas y costos
Es cierto que la transacción con disco introduce delays.
A cambio de ello:
1
2
3
4
Se pueden mantener en la memoria principal muchos mas
procesos, ya que el Sistemam Operativo puede alojar en ella solo
algunos fragmentos del proceso en lugar de la totalidad.
Es posible que un proceso sea mas grande que el total de la
memoria principal.
El Sistema Operativo es quien decide cuanta memoria consume un
proceso y como se cargan y descargan sus fragmentos.
Antes del desarrollo de los Sistemas de VM, la situación de un
programa mas grande que la cantidad de Memoria Fisica
disponible se resolvı́a mediante la generación de Overlays. Los
programadores de aplicaciones generaban la cantidad de Overlays
que estimaban conveniente y la aplicación los cargaba y
descargaba de la memoria RAM mediante system calls adecuadas,
pero manejando el consumo de RAM del proceso en función de la
conveniencia de éste y no con una visión amplia del sistema
completo.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
12 / 103
Soporte del Procesador
Partición de los procesos
Ventajas y costos
Es cierto que la transacción con disco introduce delays.
A cambio de ello:
1
2
3
4
Se pueden mantener en la memoria principal muchos mas
procesos, ya que el Sistemam Operativo puede alojar en ella solo
algunos fragmentos del proceso en lugar de la totalidad.
Es posible que un proceso sea mas grande que el total de la
memoria principal.
El Sistema Operativo es quien decide cuanta memoria consume un
proceso y como se cargan y descargan sus fragmentos.
Antes del desarrollo de los Sistemas de VM, la situación de un
programa mas grande que la cantidad de Memoria Fisica
disponible se resolvı́a mediante la generación de Overlays. Los
programadores de aplicaciones generaban la cantidad de Overlays
que estimaban conveniente y la aplicación los cargaba y
descargaba de la memoria RAM mediante system calls adecuadas,
pero manejando el consumo de RAM del proceso en función de la
conveniencia de éste y no con una visión amplia del sistema
completo.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
12 / 103
Soporte del Procesador
Partición de los procesos
Ventajas y costos
Es cierto que la transacción con disco introduce delays.
A cambio de ello:
1
2
3
4
Se pueden mantener en la memoria principal muchos mas
procesos, ya que el Sistemam Operativo puede alojar en ella solo
algunos fragmentos del proceso en lugar de la totalidad.
Es posible que un proceso sea mas grande que el total de la
memoria principal.
El Sistema Operativo es quien decide cuanta memoria consume un
proceso y como se cargan y descargan sus fragmentos.
Antes del desarrollo de los Sistemas de VM, la situación de un
programa mas grande que la cantidad de Memoria Fisica
disponible se resolvı́a mediante la generación de Overlays. Los
programadores de aplicaciones generaban la cantidad de Overlays
que estimaban conveniente y la aplicación los cargaba y
descargaba de la memoria RAM mediante system calls adecuadas,
pero manejando el consumo de RAM del proceso en función de la
conveniencia de éste y no con una visión amplia del sistema
completo.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
12 / 103
Soporte del Procesador
Gestión de Memoria
¿Segmentación o Paginación?
Para convertir la dirección lógica en dirección fı́sica los
procesadores modernos disponen de una Unidad denominada
comunmente MMU (Memory Management Unit).
Esta Unidad provee una visión de la memoria fı́sica, dividida en
fragmentos para su mejor administración.
Esta división se puede realizar mediante dos criterios diferentes o
en algunos casos como una combinación o superposición de
ambos.
1
2
Paginación.
Segmentación.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
13 / 103
Soporte del Procesador
Gestión de Memoria
Segmentación vs. Paginación
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
14 / 103
Soporte del Procesador
Gestión de Memoria
Segmentación
Es un método de fraccionamiento de la memoria, que permite dividirla
en fragmentos denominados segmentos que poseen las siguientes
propiedades:
1
Su tamaño no es fijo . Mas aún, puede cambiar dinámicamente
durante la ejecución de un proceso.
2
Una vez mapeados en el espacio fı́sico de memoria pueden
quedar solapados, parcial o totalmente.
3
Cada Segmento define un espacio contı́nuo de direcciones capaz
de contener un bloque de código funcionalmente completo, un
espacio completo de datos, o una pila. Es decir contiene unidades
de programa completas.
4
De este modo cada unidad de programa se ubica en un espacio
continuo de memoria.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
15 / 103
Soporte del Procesador
Gestión de Memoria
Paginación
Es un método de fraccionamiento de la memoria, que permite dividirla
en fragmentos denominados páginas que poseen las siguientes
propiedades:
1
2
3
4
5
Su tamaño es fijo establecido por hardware y no puede
modificarse.
Se mapean en el espacio fı́sico de memoria una a continuación
de otra sin dejar espacios libres.
Cada página pn , de tamaño t (donde n es el número de página,
tal que 0 ≤ n ,y n ∈ ℵ ) comienza en la dirección n ∗ t .
Al tener tamaño fijo, cada Página define un marco (frame) de
direcciones que contendrá una parte de cada unidad de programa
que compone el proceso en ejecución.
Por lo tanto las unidades de programación pueden ubicarse en
frames discontı́nuos en la memoria principal y a pesar de ello el
procesador traduce las direcciones de modo que la secuencia de
acceso no se altere.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
16 / 103
Soporte del Procesador
Paginación
Soporte en el procesador
Para poder implementar una gestión de la memoria fı́sica por páginas,
el procesador debe tener el hardware necesario para traducir una
dirección lógica o virtual en un valor adecuado para enviar por sus
terminales del bus de address. Esta dirección es la que hemos
definido como Dirección Fisica , ya que es la que se envı́a a la
memoria fı́sica del sistema.
Esto se logra mediante la gestión de una tabla de traducción a la que
se ingresa con el valor de la dirección lógica, y de la que se obtiene un
número que no es otra cosa que el marco de la página de Memoria
Fı́sica , y el desplazamiento a patrir de la primer posición de ese
marco.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
17 / 103
Soporte del Procesador
Paginación
Tablas de página
Punto de partida: La dirección lógica (también llamada virtual)
generada por el programa de aplicación. Esta dirección se compone
de dos campos:
1
Selector de Página
2
Desplazamiento (Offset) dentro de la página seleccionada.
Dirección Virtual
Número de Página
Entrada en la tabla de Páginas
Número de Frame
Offset
Bits de
A PM
control
Con el Selector de Página se ingresa a la tabla de páginas y se
obtiene el frame de memoria fı́sica correspondiente.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
18 / 103
Soporte del Procesador
Paginación
Bits de control de la entrada a la Tabla de Página
Entre los bits de control se requieren al menos los tres bits
indicados en la figura anterior.
Como no es necesario que un proceso cuente con todas sus
páginas en la memoria fı́sica, se necesita el bit de Control P para
indicar si la página seleccionada está Presente en la memoria
fı́sica o si es necesario traerla desde la memoria secundaria.
Ası́ mismo el bit M se necesita para indicar si una página fue
modificada. Esto es importante ya que al ser desalojada de la
memoria fı́sica, este bit sirve para decidir si se debe salvar la
página en memoria secundaria o si se la puede pisar con la nueva
página que se descargará a ese frame.
Continuando con el desalojo de una página es deseable poder
contar en cada entrada de la Tabla de Páginas con un bit que
indique si la página ha sido Accedida o no. Como veremos al
estudiar la implementación del Software en el Sistema Operativo,
este dato es de gran utilidad para esta decisión.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
19 / 103
Soporte del Procesador
Paginación
Tablas de página
El sistema de Paginación es una combinación de lógica en el Procesador
mas tablas de página residentes por lo general en la memoria principal que
permite, dada una dirección lógica o virtual, interpretar su contenido como un
selector de página y un desplazamiento u offset dentro de la misma para
acceder al elemento direccionado en memoria fı́sica.
Dirección Virtual
Número de Página
Dirección Física
Número de Frame
Offset
Offset
Offset
+
Registro
Puntero a
Tabla de Páginas
Programa
Alejandro Furfaro ()
Nº de Página
Número de Frame
Tabla de Páginas
Sistema de Paginación
Procesador IA-32 - Gestión de Memoria
Memoria Física
Mayo de 2011
20 / 103
Soporte del Procesador
Paginación
Tablas de página en niveles jerárquicos
Si la memoria principal tiene un tamaño muy grande, utilizar una sola tabla
de páginas puede ser muy costoso en términos de consumo de memoria.
Una alternativa es utilizar niveles jerárquicos de Tablas de Páginas.
4 Kbytes para el Directorio
de Tablas de Páginas.
...
4 Mbytes para las
Tablas de Páginas.
...
4 Gbytes de Memoria dividido en Páginas de 4 Kbytes.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
21 / 103
Soporte del Procesador
Paginación
Dos niveles jerárquicos para 4 Gbytes de memoria
Dirección Virtual
Nº Pág.
en DTP
Nº Pág.
en TP
Dirección Física
Número de Frame
Offset
Offset
Offset
+
+
Registro
Puntero a
Tabla de Páginas
Programa
Alejandro Furfaro ()
Tabla de Páginas raíz
(contiene 1024 PTE)
4kBytes Tabla de
Páginas (contiene
1024 PTE)
Sistema de Paginación
Procesador IA-32 - Gestión de Memoria
Memoria Física
Mayo de 2011
22 / 103
Soporte del Procesador
Paginación
Otras soluciones
Una alternativa al método de niveles jerárquicos de tablas de
página es el que se conoce como tabla de páginas invertida.
Lo que se hace es tomar la dirección virtual y aplicar una función
de hash simple (por hardware) cuyo resultado es una entrada a
una tabla de hash que contiene la entrada a la tabla de páginas.
Este método es el utilizado en los procesadores PowerPC y
AS/400 de IBM
Los métodos de niveles jerárquicos de tablas de páginas se
aplican en procesadores de arquitecturas, Alpha, Intel IA-32 e IA
64, MPIS entre otros
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
23 / 103
Soporte del Procesador
Paginación
Buffer de traducciones
Cualquiera sea el sistema de traducción de direcciones a
implementar en la paginación, se requiere de tablas que
contengan las direcciones fı́sicas de comienzo de cada frame en
uso, mas sus bits de control para permisos, y demás atributos.
Estas tablas no pueden residir en otro sitio que en la memoria
principal del sistema.
Por lo tanto en un subsistema de paginación con n niveles
jerárquicos, cada acceso a una dirección de memoria principal
implicará previamente realizar n lecturas de descritpores desde
dicha memoria.
Es necesario incluir un elemento que evite esta pérdida de
rendimiento que impactarı́a seriamente el tiempo de ejecución de
los procesos.
Por lo general todos los procesadores que cuentan con soporte
de paginación incluyen un buffer de traducción conocido como
TLB, por sus siglas en inglés de Traslation Lookaside Buffer.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
24 / 103
Soporte del Procesador
Paginación
Buffer de traducciones
Cualquiera sea el sistema de traducción de direcciones a
implementar en la paginación, se requiere de tablas que
contengan las direcciones fı́sicas de comienzo de cada frame en
uso, mas sus bits de control para permisos, y demás atributos.
Estas tablas no pueden residir en otro sitio que en la memoria
principal del sistema.
Por lo tanto en un subsistema de paginación con n niveles
jerárquicos, cada acceso a una dirección de memoria principal
implicará previamente realizar n lecturas de descritpores desde
dicha memoria.
Es necesario incluir un elemento que evite esta pérdida de
rendimiento que impactarı́a seriamente el tiempo de ejecución de
los procesos.
Por lo general todos los procesadores que cuentan con soporte
de paginación incluyen un buffer de traducción conocido como
TLB, por sus siglas en inglés de Traslation Lookaside Buffer.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
24 / 103
Soporte del Procesador
Paginación
Buffer de traducciones
Cualquiera sea el sistema de traducción de direcciones a
implementar en la paginación, se requiere de tablas que
contengan las direcciones fı́sicas de comienzo de cada frame en
uso, mas sus bits de control para permisos, y demás atributos.
Estas tablas no pueden residir en otro sitio que en la memoria
principal del sistema.
Por lo tanto en un subsistema de paginación con n niveles
jerárquicos, cada acceso a una dirección de memoria principal
implicará previamente realizar n lecturas de descritpores desde
dicha memoria.
Es necesario incluir un elemento que evite esta pérdida de
rendimiento que impactarı́a seriamente el tiempo de ejecución de
los procesos.
Por lo general todos los procesadores que cuentan con soporte
de paginación incluyen un buffer de traducción conocido como
TLB, por sus siglas en inglés de Traslation Lookaside Buffer.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
24 / 103
Soporte del Procesador
Paginación
Buffer de traducciones
Cualquiera sea el sistema de traducción de direcciones a
implementar en la paginación, se requiere de tablas que
contengan las direcciones fı́sicas de comienzo de cada frame en
uso, mas sus bits de control para permisos, y demás atributos.
Estas tablas no pueden residir en otro sitio que en la memoria
principal del sistema.
Por lo tanto en un subsistema de paginación con n niveles
jerárquicos, cada acceso a una dirección de memoria principal
implicará previamente realizar n lecturas de descritpores desde
dicha memoria.
Es necesario incluir un elemento que evite esta pérdida de
rendimiento que impactarı́a seriamente el tiempo de ejecución de
los procesos.
Por lo general todos los procesadores que cuentan con soporte
de paginación incluyen un buffer de traducción conocido como
TLB, por sus siglas en inglés de Traslation Lookaside Buffer.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
24 / 103
Soporte del Procesador
Paginación
Buffer de traducciones
Cualquiera sea el sistema de traducción de direcciones a
implementar en la paginación, se requiere de tablas que
contengan las direcciones fı́sicas de comienzo de cada frame en
uso, mas sus bits de control para permisos, y demás atributos.
Estas tablas no pueden residir en otro sitio que en la memoria
principal del sistema.
Por lo tanto en un subsistema de paginación con n niveles
jerárquicos, cada acceso a una dirección de memoria principal
implicará previamente realizar n lecturas de descritpores desde
dicha memoria.
Es necesario incluir un elemento que evite esta pérdida de
rendimiento que impactarı́a seriamente el tiempo de ejecución de
los procesos.
Por lo general todos los procesadores que cuentan con soporte
de paginación incluyen un buffer de traducción conocido como
TLB, por sus siglas en inglés de Traslation Lookaside Buffer.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
24 / 103
Soporte del Procesador
Paginación
Buffer de traducciones
Cualquiera sea el sistema de traducción de direcciones a
implementar en la paginación, se requiere de tablas que
contengan las direcciones fı́sicas de comienzo de cada frame en
uso, mas sus bits de control para permisos, y demás atributos.
Estas tablas no pueden residir en otro sitio que en la memoria
principal del sistema.
Por lo tanto en un subsistema de paginación con n niveles
jerárquicos, cada acceso a una dirección de memoria principal
implicará previamente realizar n lecturas de descritpores desde
dicha memoria.
Es necesario incluir un elemento que evite esta pérdida de
rendimiento que impactarı́a seriamente el tiempo de ejecución de
los procesos.
Por lo general todos los procesadores que cuentan con soporte
de paginación incluyen un buffer de traducción conocido como
TLB, por sus siglas en inglés de Traslation Lookaside Buffer.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
24 / 103
Soporte del Procesador
Paginación
Traslation Lookaside Buffer
Dirección Virtual
Número de Página
Offset
TLB
Nº de Página
Entrada en la tabla de Páginas
Número de Página
Número de Frame Bits de control
Número de Página
Número de Frame Bits de control
Número de Página
Número de Frame Bits de control
Número de Página
Número de Frame Bits de control
Número de Página
Número de Frame Bits de control
Número de Página
Número de Frame Bits de control
Número de Página
Número de Frame Bits de control
Número de Página
Número de Frame Bits de control
Número de Frame
Offset
Dirección Física
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
25 / 103
Soporte del Procesador
Segmentación
La segmentación provee al programador una visión de la memoria
en forma de espacios contı́nuos que contienen unidades de
programa completas: Un bloque completo de código, una pila
completa, o todos los datos que utiliza el programa.
Las referencias a memoria desde los programas se realizan
también con Direcciones Lógicas, que en este caso se componen
de un Número de Segmento y un Desplazamiento u Offset.
Dirección Virtual
Nº de Segmento
Offset
Entrada en la tabla de Segmentos
Dirección Base
Longitud
Bits de
A PM
control
Los bits P (Presente), A (Accedido), y M (Modificado) tienen la
misma finalidad y significado que los bits de control de las
Entradas de Tablas de Páginas.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
26 / 103
Soporte del Procesador
Segmentación
Traducción a memoria fı́sica
Dirección Virtual
Nº de Segmento
Offset
Dirección Física
+
Offset
Dirección Base
+
Registro
Puntero a Tabla
de Segmentos
Programa
Alejandro Furfaro ()
Nº de Segmento
Offset
Longitud
Base
Tabla de segmentos
Mecanismo de Segmentación Memoria Física
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
27 / 103
Soporte del Procesador
Segmentación
Limitaciones de la segmentación para manejo de VM
Al tener tamaño variable, los segmentos requieren mas carga de
procesamiento para los algoritmos de intercambio de segmentos
que realizará el sistema Operativos
Generan además granularidad en memoria tornando mas
ineficiente el funcionamiento del sistema.
Se debe incluir una polı́tica de partición de memoria en bloques
de modo que cada segmento pueda alojarse en un bloque cuyo
tamaño sea el mejor aproximado a su tamaño.
En general, los procesadores que soportan segmentación, para
gestión de memoria virtual incluyen una unidad de paginación
que permita dividir el espacio lineal de un segmento en páginas y
gestionar cuales de estas estarán en la memoria principal del
sistema en cada momento.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
28 / 103
Soporte de Paginación de los procesadores IA-32
IA-32 Memory Management Unit
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
29 / 103
Soporte de Paginación de los procesadores IA-32
Unidad de Paginación
En los primeros procesadores (hasta el Pentium Pro), el tamaño
de página es fijo: 4Kbytes.
A partir del Pentium Pro cada tarea puede optar por tener páginas
de 4 Kbytes, 2 Mbytes, o 4 Mbytes.
Las páginas son contiguas y a diferencia de los segmentos no se
solapan.
El máximo tamaño de un espacio lineal es 4 Gbytes.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
30 / 103
Soporte de Paginación de los procesadores IA-32
Descriptor de Directorio de Página
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
31 / 103
Soporte de Paginación de los procesadores IA-32
Descriptor de Tabla de Página
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
32 / 103
Soporte de Paginación de los procesadores IA-32
Registros de Control para Paginación
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
33 / 103
Soporte de Paginación de los procesadores IA-32
¿Que sucede cuando 4 Gbytes no es suficiente?
Desde el procesador Pentium Pro, se advirtió que para los
servidores de alta performance los 4 Gbytes de memoria fı́sica
resultarı́an insuficientes.
Se implementa PAE (Phisical Address Extension)
Se habilita con el bit 5 del CR4.
Habilita la generación de direcciones fı́sicas de 36 bits. (El
procesador tiene los 4 pines adicionales Se administra mediante
paginación).
Secuencia de habilitación
Setear PG (bit 31 de CR0)
Setear PAE (bit 5 de CR4)
El procesador soporta dos tamaños de página: 4 Kbytes y 2
Mbytes.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
34 / 103
Soporte de Paginación de los procesadores IA-32
Registros de Control para PAE
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
35 / 103
Soporte de Paginación de los procesadores IA-32
Tablas de Traducción con PAE
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
36 / 103
Soporte de Paginación de los procesadores IA-32
Tablas de Traducción con PAE
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
37 / 103
Soporte de Paginación de los procesadores IA-32
Descriptores de páginas con PAE activa
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
38 / 103
Soporte de Paginación de los procesadores IA-32
Descriptores de páginas con PAE activa
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
39 / 103
Soporte de Paginación de los procesadores IA-32
¿PSE-36?
Alternativa para direccionar memoria fı́sica con 36 bits.
Permite manipular 64 Gbytes de memoria fı́sica.
Si está disponible CPUID devuelve bit 17 de EDX seteado.
PAE en CR4 DEBE estar deshabilitado!!
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
40 / 103
Soporte de Paginación de los procesadores IA-32
Registros de Control para PSE-36
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
41 / 103
Soporte de Paginación de los procesadores IA-32
Tablas de Traducción con PSE-36
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
42 / 103
Soporte de Paginación de los procesadores IA-32
Descriptores de páginas con PSE-36 activa
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
43 / 103
Paginación en Linux
Lineamientos para la Implementación
Paginas de tamaño fijo (4 u 8 KB)
Definiciones:
PAGE = Es el rango de direcciones lineales mapeados dentro de
esa página, junto con los datos contendidos por dichas direcciones
(En la jerga, “data chunk”).
Page Frame = Es el área de memoria que contiene una página, por
eso también se la puede encontrar bajo el nombre de physical
page, o page container.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
44 / 103
Paginación en Linux
Modos de Paginación soportados
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
45 / 103
Paginación en Linux
Modos de Paginación soportados
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
46 / 103
Paginación en Linux
Multiplataforma
Procesador
alpha
IA-64
ppc64
sh64
x86-64
Tamaño de Página
8 Kbytes
4 Kbytes
4 Kbytes
4 Kbytes
4 Kbytes
Alejandro Furfaro ()
Bits de Address
43
39
41
41
48
Niveles de Paginación
3
3
3
3
4
Procesador IA-32 - Gestión de Memoria
División Dir. Lineal
10+10+10+13
9+9+9+12
10+10+9+12
10+10+9+12
9+9+9+9+12
Mayo de 2011
47 / 103
Software del Sistema Operativo
Objetivos
Requerimiento para los algoritmos de VM
1
2
El medio: Minimizar los accesos a memoria virtual, o dicho de
otro modo, minimizar los fallos de página (o de segmento si no se
cuenta con soporte a paginación).
Factores que inciden significativamente en las decisiones de los
algoritmos:
El tamaño de la memoria fı́sica instalada vs. la capacidad de
direccionamiento del procesador
La cantidad de procesos que compiten por ejecución y el tamaño
de las áreas de memoria que cada uno requiera.
La relación de velocidad de acceso entre la memoria fı́sica y la
virtual.
Conclusión: Solo podemos describir polı́ticas. En cada caso
se deberá analizar en función de estos factores, la mas
conveniente de aplicar. Lo único seguro es utilizar paginación
siempre que esté disponible.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
48 / 103
Software del Sistema Operativo
Polı́ticas de lectura
Polı́ticas de lectura
Por Demanda Se carga una página a memoria principal cuando se
genera un fallo de Página. Al principio habrá una cantidad
grande de fallos, y luego el principio de vecindad se
encargará de mantener la cantidad de fallos en un nivel
muy bajo.
Paginación Previa Consiste en aprovechar las capacidad de buffering
de los dispositivos de disco actuales, y traer no solo la
página referenciada sino sus vecinas, de modo que se
aprovecha el tiempo de transferencia para traer mas
cantidad de páginas que de acuerdo con el principio de
vecindad tienen alta probabilidad de ser accedidas en un
futuro cercano. El problema es que se pueden traer
páginas que finalmente no sean utilizadas.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
49 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmos básicos
Óptima Selecciona para reemplazar a la página que mas
deberá esperar para ser referenciada. Implica conocer de
antemano el comportamiento futuro de cada proceso.
Esto es prácticamdnte imposible. Sin embargo es la
referencia para comparar los algoritmos que si son
implementables
LRU Least Recently Used. Reemplazará a aquella página que
lleva mas tiempo sin ser referenciada. Obedece al
principiode vecindad. Tiene mas costo computacional.
FIFO Fisrt In First Out. Trata a los frames mediante un buffer
circular desalojando las páginas de memoria mediante un
simple algoritmo Round Robin. Es mas ágil que LRU pero
no aplica el principio de vecindad, con lo cual su
eficiencia es menor.
Clock Mejora la efciencia de LRU, utilizando el bit A (Accedido)
de la entrada de Tabla de páginas (o segmento).
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
50 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo de reloj
Primer frame
0 en el buffer circular
Pag .9
1
Pag .7
A=0
A=0
M=1
M=1
Pag .94
A=0
2
M=0 Pag .95
A=1
M=0
Pag .96
A=1
M=0
Pag .97
A=0
M=1
Pag .45
A=1
5
M=0
Pag .13
Pag .121
A=0
Pag .47 Pag .46 A=1
M=0
A=0
A=0
M=0
9
6
M=0
M=1
3
Última
Reemplazada
4
7
8
Siguiente a
reemplazar
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
51 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Supongamos esta secuencia de acceso a frames:
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
52 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
53 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
54 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
55 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
56 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
57 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
58 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
59 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
60 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
61 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
62 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
63 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Optimo
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
64 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
65 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
66 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
67 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
68 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
69 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
70 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
71 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
72 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
73 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
74 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
75 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo LRU
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
76 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
77 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
78 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
79 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
80 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
81 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
82 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
83 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
84 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
85 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
86 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
87 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo FIFO
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
88 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
89 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
90 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
91 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
92 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
93 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
94 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
95 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
96 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
97 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
98 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
99 / 103
Software del Sistema Operativo
Polı́ticas de Reemplazo
Algoritmo Reloj
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
100 / 103
Software del Sistema Operativo
Gestión del Conjunto de Páginas Residentes
Tamaño del conjunto de páginas residentes
A menor cantidad de páginas por proceso en memoria, mayor
será la cantidad de procesos que puedan alojarse en memoria
principal para su ejecución, y también mayor es la probabilidad de
tener mas cantidad de fallos de página.
Existe una cantidad de páginas por proceso en memoria por
encima de la cual no se disminuye la cantidad de fallos de página.
Con estos lineamientos se puede encintrar dos polı́ticas posibles
1
2
Asignación Fija. Cada proceso recibe en el momento de su carga
una cantidad fija de páginas. Cada vez que genere un fallo de
página el SO seleccionará para reemplazar una página del proceso
que generó el fallo.
Asignación Variable. Aumenta la cantidad de páginas a aquellos
procesos que tienen una alta tasa de fallos de página. Puede ser
mas costoso en términos de rendimiento ya que las evaluaciones
que debe hacer consumen CPU necesariamente.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
101 / 103
Software del Sistema Operativo
Gestión del Conjunto de Páginas Residentes
Soporte VM en Linux
Polı́ticas implementadas
Utiliza el algoritmo Clock para desalojar páginas de memoria
principal.
Con ayuda del bit A en el caso de los procesadores que lo
soporten en el descriptor de entrada de Tabla de Página, se
mantiene una variable de 8 bits que representa la edad de una
página.
Cada vez que se accede a una página se incrementa la variable
edad.
Una página de edad 0 es considerda vieja (nunca se incrementó).
De este modo con ayuda del algoritmo Clock se construye un
LRU bastante aproximado.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
102 / 103
Software del Sistema Operativo
Gestión del Conjunto de Páginas Residentes
Muchas Gracias.
Alejandro Furfaro ()
Procesador IA-32 - Gestión de Memoria
Mayo de 2011
103 / 103
Descargar