next up previous contents
Next: Gestión de Procesos en Up: Recursos físicos Previous: Recursos físicos en otros

El gestor de memoria física

 

Los puntos de entrada del servidor que exporta memoria física (el PMMgif) tienen como función principal la asignación de marcos de página (que pueden emplearse posteriormente en la instalación de traducciones de memoria) como puede verse en la figura 3.6.

  figure1260
Figure 3.6: Puntos de entrada del gestor de memoria fisica.

Podemos ver como hay dos funciones que tienen nombres terminados en alloc y free. Dichas funciones son las encargadas de asignar y liberar las unidades elementales de memoria física--marcos de página. Funciones similares aparecen en todos los servidores que exportan recursos físicos (nótese que los procesadores y el hardware de traducción de direcciones están encapsulados en el servidor de shuttles y el DMM respectivamente, por lo que su tratamiento es diferente y no deberían considerarse en la presente discusión).

En las funciones de asignación y liberación de recursos podemos apreciar como se permite la agrupación de llamadas al sistema. Concretamente, ambas funciones trabajan con vectores de marcos de página (parámetros maddr y n). Con ello se trata de reducir el número de llamadas al sistema ya que las aplicaciones operan típicamente con conjuntos de unidades elementales.

Centrándonos ahora en la asignación, la llamada que implementa ésta tiene como parámetro de entrada un portal que identifica al responsable del recurso hasta el momento de su liberación, who. Cualquier excepción relacionada con dicho recurso (ej.: la notificación de que el recurso no se está utilizando) se enviará a dicho portal. La función de liberación recibe también un parámetro con el mismo propósito.

La protección del recurso asignado viene determinada por la información de protección establecida por el usuario en el instante de la asignación mediante un parámetro adicional, guty (guardability).

Dado que todas las unidades de recurso están protegidas, cada servidor de recursos físicos incorpora una función para cambiar la protección de las mismas, como puede verse también en la figura 3.6.

Una vez asignados, los recursos físicos pueden ser utilizados por cualquiera que posea los derechos de acceso adecuados. El caso más delicado (y por ello el expuesto como modelo de servidor de recursos físicos) es el de la memoria física. La protección de un marco en un instante determinado no hace referencia a la posibilidad de leerlo o escribirlo en dicho instante. Hace referencia a la posibilidad de instalar traducciones de lectura o escritura en dicho instante. Recordemos que hablamos de recursos físicos y no de abstracciones; las protecciones se refieren pues a las operaciones realizables sobre dichos recursos y no a las operaciones de alto nivel que imaginan las aplicaciones.

Así, para revocar derechos de acceso sobre un marco de página con carácter retroactivo, hay que invalidar también cualquier traducción existente hacia dicho marco. La información de asignación que exporta el kernel permite averiguar donde están dichas traducciones.

Volviendo al código de la figura 3.6, puede apreciarse como los marcos de página están nombrados empleando el tipo de datos paddr_t. Es importante mencionar que dicho tipo corresponde a lo dicho en el capítulo anterior sobre nombrado de unidades elementales de recursos físicos en un DAMN. En la figura 3.7 puede verse como el nombre de un marco extiende el nombre físico del mismo con un identificador de portal (que corresponde al portal del servidor que gestiona el banco de memoria física, en este caso).

  figure1274
Figure: Nombre de un marco de página

En cualquier operación referida a un marco de página, el tex2html_wrap_inline8127kernel redirigirá (elevando excepciones) las peticiones destinadas a marcos de página remotos (ya que descubre que los portales de sus identificadores son remotos). De este modo, los usuarios pueden emplear marcos cuya ubicación sea remota. En el apartado 3.5 veremos que también es posible emplear marcos de página remotos en las traducciones de memoria virtual a memoria física empleadas por las aplicaciones.


next up previous contents
Next: Gestión de Procesos en Up: Recursos físicos Previous: Recursos físicos en otros

Francisco J. Ballesteros
Fri Dec 19 17:18:03 MET 1997