next up previous contents
Next: Kea Up: Sistemas con kernel extensible Previous: GLUnix

PEACE

PEACE [142] sigue la idea de Choices [31] de construir el SO como una familia de sistemas de tal modo que el sistema se construya ensamblando distintas piezas. En Choices se empleaban técnicas de orientación a objetos (polimorfismo) para conseguirlo. En PEACE se adopta un enfoque basado principalmente en la composición de módulos (aunque también se estructure el sistema como un conjunto de objetos).

La diferencia más notable entre éste y otros sistemas es que (al contrario que otros sistemas distribuidos) PEACE contempla el caso en que no es necesario multiplexar el hardware entre distintas aplicaciones (como es el caso en multitud de aplicaciones paralelas que adaptan la distribución de sus algoritmos a la topología de la red). Inferno [52] es otro sistema que también contempla esta posibilidad. (La posibilidad en Off de no incluir múltiples espacios de direcciones deriva de lo aprendido por estos sistemas).

PEACE está compuesto por dos elementos que ejecutan en modo privilegiado (el núcleo y el kernel) sobre los que se sitúan extensiones del sistema (POSEgif) empleadas por las aplicaciones. POSE es dinámicamente reconfigurable (adaptable), de tal modo que para cada aplicación estén presentes sólo los servicios necesarios. Los distintos servicios presentes en POSE se pueden cargar en demanda durante tiempo de ejecución. El núcleo de PEACE es el componente encargado de suministrar IPCs y threads, el kernel es un conjunto de extensiones que emplean múltiples threads e implementan extensiones mínimas del núcleo. Los mecanismos de IPC son básicamente traps y RPCs (denominados ``local object invocation'' y ``remote object invocation'' en PEACE).

PEACE explora principalmente la reconfiguración de elementos del sistema que forman parte de librerías que ejecutan (empleando los flujos de control de las aplicaciones) en área de usuario, pensando en entornos que emplean un único dominio de protección (ej. para construcción de sistemas empotrados) y también en entornos de ejecución sobre un SO nativo que actúa como plataforma base. Off en cambio trata de bastarse para cubrir distintos ámbitos de aplicación.

En PEACE no es posible reemplazar dinámicamente las componentes del kernel que implementan extensiones del núcleo. Dado que son estas extensiones las que típicamente implementan las abstracciones (de bajo nivel de abstracción) básicas del sistema, no es factible realizar la adaptación en este punto.

Las ideas introducidas por Off podrían no obstante incorporarse como extensiones básicas en PEACE, aunque difícilmente podríamos seguir tolerando la adaptabilidad que presentan los Shuttles, Portales y DTLBs (dado que habría que emplear componentes no adaptables que forman parte del núcleo y el kernel de PEACE).


next up previous contents
Next: Kea Up: Sistemas con kernel extensible Previous: GLUnix

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