Facultad de Ingeniería Universidad de  Buenos Aires 75-08 Sistemas Operativos Lic. Ing. Osvaldo Clúa

Sistemas Operativos Orientados a Objetos

Programa ● ●



Sistemas Operativos Flexibles Tecnologías usadas en Sistemas Operativos Flexibles Sistemas Operativos Orientados a Objetos – – –

FIUBA

Choices JNode Jx

75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-2-

Sistemas Operativos Flexibles ●



Deben adecuarse a distintos ambientes o aplicaciones. Esta adecuación puede ser: – –



Se busca seleccionar: – –

FIUBA

Estática. Dinámica.



Falta (o exceso) de funcionalidad. Performance. Dependencia de75-08laSistemas versión. Operativos Lic. Prof. Osvaldo Clúa

-3-

Tipos de Flexibilidad





● ●

Estática (al generar el Sistema Operativo.) Adaptable (por parámetros de la aplicación.) Adaptativo (o auto-adaptable.) Modificable (La aplicación provee código.) – –

● FIUBA

por Upcalls. pasando el código a la interface.

Extensible – Configurable (clásico de los 75-08 Sistemas Operativos microkernels). Lic. Prof. Osvaldo Clúa

-4-

Tecnologías usadas en Sistemas Operativos Flexibles ●

Se usa una combinación de: – – – – –

FIUBA

Microkernel. Application Specific Operating Systems. Program Families. Open Implementation. Object Orientation.

75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-5-

Microkernel ●

El kernel provee solo abstracciones de bajo nivel: – – –



FIUBA

Threads. Espacios de Direcciones. Ports para IPC (Inter Process Communications).

El resto se implementa con “servers” en espacio del usuario. 75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-6-

Application Specific Operating Systems ●



La mayor parte del Sistema Operativo se programa como bibliotecas a linkear con la aplicación. El rol del Sistema Operativo se reduce a: – –

FIUBA

Administrar pedidos a Hardware. Evitar interacciones no deseadas entre aplicaciones. 75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-7-

Familias de Programas ● ●



FIUBA

Es una forma de Migración Vertical. Incluir en el Sistema Operativo las funciones mas usadas por las aplicaciones que va a correr (“minimal perfect subset”). De uso en empotrados (embedded) para un determinado tipo de Hardware (DVD player). 75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-8-

Open Implementation ●



Los clientes de una “Interface” tienen cierto control acerca de como se implementa la misma. “MetaInterface” : – –

Provee una vista abstracta de la “Interface” Provee formas de ajustar la implementación de la “Interface” ●

FIUBA

Ejemplo: Persistencia en Archivos o en Base de Datos. 75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-9-

Sistemas Operativos Orientados a Objetos ●

Application Specific OS: –



Program Families: –



FIUBA

Clases Abstractas, herencia, subclases.

Open Implementation –



Carga dinámica de clases.

Reflection.

El Sistema Operativo es un Framework. 75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-10-

Choices ● ● ●





http://choices.cs.uiuc.edu/ Integra C++ al Sistema Operativo. Todos los conceptos de Sistema Operativos se modelan por Clases y Objetos. La Herencia y el Polimorfismo permiten la extensión dinámica del Sistema Operativo. El Framework funciona como una serie de capas que extienden la máquina.

FIUBA

75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-11-

Choices (2) ● ●

● ●

FIUBA

Cada SubSistema es un sub-framework. Las clases abstractas proveen implementacion parcial que se adaptan al ambiente en las sub-clases. Las clases son objetos. El sistema asegura la persistencia de los objetos que así lo desean. 75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-12-

Choices (3) ●



Se pueden agregar clases con el Sistema corriendo. Disponible para ARM. http://en.wikipedia.org/wiki/ARM_architecture



Puede correrse en forma virtual en QUEMU. http://www.qemu.com/



FIUBA

75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-13-

Choices (3) ●



Se pueden agregar clases con el Sistema corriendo. Disponible para ARM. http://en.wikipedia.org/wiki/ARM_architecture



Puede correrse en forma virtual en QUEMU. http://www.qemu.com/



FIUBA

75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-14-

SisOps basados en JAVA ●



JavaOS: proyecto abandonado por SUN (reemplavado por las API de JME). Jnode. – –



Jx – –

FIUBA

Máquina Virtual y Sistema Operativo http://www.jnode.org/



Kernel mas AWT

http://www4.informatik.uni-erlangen.de/Projects/JX/ 75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-15-

JNode

● FIUBA

Extensible por Plugins. 75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-16-

Jx

http://www4.informatik.uni-erlangen.de/Projects/JX/publications/jx-usenix-slides.pdf FIUBA

75-08 Sistemas Operativos Lic. Prof. Osvaldo Clúa

-17-