Facultad de IngenieríaUniversidad de Buenos
Aires
75-08 Sistemas OperativosLic. Ing. Osvaldo Clúa
2007
Sistemas Operativos Orientados a ObjetosSistemas Operativos Orientados a Objetos
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 2
Sistemas Operativos Flexibles● Artículo original de Vinny Cahill● Deben adecuarse a distintos ambientes o
aplicaciones.– Esta adecuación puede ser Estática o
Dinámica.● Se busca solucionar:
– Falta (o exceso) de funcionalidad.– Performance.– Dependencia de la versión.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 3
● 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.)
– por Upcalls o pasando el código a la interface.● Extensible – Configurable (clásico de los microkernels).
Tipos de Flexibilidad
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 4
Tecnologías usadas en Sistemas Operativos Flexibles
● Se usa una combinación de:– Microkernel.– Application Specific Operating Systems.– Program Families.– Open Implementation.– Object Orientation.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 5
Microkernels● El kernel provee solo
abstracciones de bajo nivel:– Threads.– Espacios de
Direcciones.Ports para IPC (Inter Process Communications).
El resto se implementa con “servers” en espacio del usuario.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 6
Application Specific Operating System
● La mayor parte del Sistema Operativo se programa como bibliotecas a linkear con la aplicación.
● El rol del Sistema Operativo se reduce a:– Administrar pedidos a Hardware.– Evitar interacciones no deseadas entre
aplicaciones.● Standard osek.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 7
Familias de Programas
● 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 OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 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”● Ejemplo: Persistencia en Archivos o en Base de Datos.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 9
Sistemas Operativos Orientados a Objetos
● En Sistemas operativos, el término Objetos se usa en un sentido distinto al de OOP (NT Objects, AS400 Objects).
● Los Sistemas Operativos Orientados a Objetos usan internamente las metodologías de OOP.
● Proveen soporte nativo a los conceptos de OOP.● El Sistema Operativo es un Framework.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 10
OOOS vs Flexible OS
● Las tecnologías de OOS pueden reflejarse en OOP:– Application Specific OS:
● Carga dinámica de clases.– Program Families:
● Clases Abstractas, herencia, subclases.– Open Implementation
● Reflection.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 11
Choices● Desarrollado en la University of Illinois at Urbana-
Champaign.● 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.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 12
Choices (2)● 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.● Se pueden agregar clases con el Sistema corriendo.● Disponible para ARM. ● Puede correrse en forma virtual en QUEMU.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 13
SisOps basados en JAVA● JavaOS: proyecto abandonado por SUN
(reemplazado por las API de JME).● Jnode.
– Máquina Virtual y Sistema Operativo.– Corre desde las máquinas virtuales, Jini puede
correr en Jnode● Jx
– Proyecto de la Universidad de Erlangen. – Microkernel, Kernel y AWT.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 14
JNode
● Extensible por Plugins.
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 15
Jx
http://www4.informatik.uni-erlangen.de/Projects/JX/publications/jx-usenix-slides.pdf
75-08 Sistemas OperativosProf. Lic. Ing. Osvaldo ClíúaFIUBA 2007 16
C# y Singularity
● Desarrollado por Microsoft en Sing# que es una extensión de Spec# (Contratos en C#).
● Microkernel pero con un solo espacio de direcciones.
● Los procesos están encapsulados en Software Isolated Processes (ver ref.).
● Kernel, Drivers y Aplicaciones están escritos en Managed Code.