1 TESIS DOCTORAL Modelo de Computación Concurrente para un Sistema Operativo Orientado a Objetos basado en una Máquina Abstracta Presentada por Lourdes Tajes Martínez Dirigida por Dr. D. Juan Manuel Cueva Lovelle Oviedo, 16 de Marzo de 2000
2 Contenidos de la presentaciónObjetivos de la tesis Ámbito conceptual: Soluciones a los problemas de caos e integración Colaboración de máquina abstracta y sistema operativo: Reflectividad Máquina abstracta Sistema operativo Prototipo Conclusiones Líneas futuras de investigación
3 Objetivos de la tesis Integración del paradigma de la OO en los sistemas informáticos Poner orden en el caos de objetos Integrar la computación en el entorno orientado a objetos Flexibilidad El sistema de soporte debe ser capaz de soportar adaptación en tiempo de ejecución a los requerimientos de las aplicaciones
4 Caos de objetos Interoperabilidad Causas y consecuenciasCapa básica de soporte no OO, abstracciones e interfaz tradicionales Capas OO Adopción parcial Adopción no uniforme Salto semántico Interoperabilidad Causas y consecuencias Soluciones actuales al caos: Parciales Permiten la comunicación entre objetos Disminución del rendimiento Falta de transparencia de las soluciones Falta de uniformidad conceptual en torno a la OO Aplicación OO Sistema operativo no OO Capas para comunicar aplicación-SO
5 Objetivos de la tesis Integración del paradigma de la OO en los sistemas informáticos Poner orden en el caos de objetos Necesidad de construir una plataforma de soporte de objetos Integrar la computación en el entorno orientado a objetos Integración homogénea de la computación de objetos en el sistema OO Problemas de integrar concurrencia y OO Flexibilidad El sistema de soporte debe ser capaz de soportar adaptación en tiempo de ejecución a los requerimientos de las aplicaciones
6 Modelos de integración de la computación en el entorno OOAbstracciones independientes para objetos y actividades Separación clásica de recursos/procesos en los SO Modelo conocido, ampliamente difundido e implantado Robusto Abstracciones tradicionales poco adecuadas abstracciones paranoicas Demasiadas abstracciones: Dos dimensiones software Falta de uniformidad Abstracción de objeto que encapsula las actividades Implantación directa del modelo conceptual de entorno de objetos Uniformidad Objetos con semántica completa que refuerza la propiedad de encapsulación
7 Concurrencia en un entorno de computación OOEl problema de la integridad del objeto El problema de la herencia Objeto ENCAP CIÓN SULA Superclase Subclase method x1 method x2 method ... SINCRONIZACIÓN method y1 method y2 ¿SINCRONIZACIÓN? Aproximaciones para la integración de concurrencia y OO Aproximación ortogonal Aproximación heterogénea Aproximación homogénea
8 Objetivos de la tesis Integración del paradigma de la OO en los sistemas informáticos Poner orden en el caos de objetos Necesidad de construir una plataforma de soporte de objetos Integrar la computación en el entorno orientado a objetos Integración homogénea de la computación de objetos en el sistema OO Problemas de integrar concurrencia y OO Flexibilidad El sistema de soporte debe ser capaz de soportar adaptación en tiempo de ejecución a los requerimientos de las aplicaciones
9 Contenidos de la presentaciónObjetivos de la tesis Ámbito conceptual de la tesis: Soluciones a los problemas de caos e integración Colaboración de máquina abstracta y sistema operativo: Reflectividad Máquina abstracta Sistema operativo Prototipo Conclusiones Líneas futuras de investigación
10 Ámbito conceptual de la tesis: Solución a los problemas de caos e integraciónPlataforma de soporte de objetos Requisitos funcionales y no funcionales para el entorno de computación Modelos de objetos para la computación Arquitectura del SOO: Requisitos, aproximaciones Propuesta de modelo de computación y estructura interna para el SOO
11 Plataforma de soporte de objetos: SOOSoporte nativo a la abstracción de objeto Uniformidad en torno a la OO: Modo de trabajo OO Infraestructura del SOO: Mecanismos uniformes Modelo único de objeto Homogeneidad: Objetos con idénticas propiedades Integrar computación de objetos en el sistema de soporte de objetos Simplicidad Capa básica del sistema Hace posible la existencia de objetos Facilita la interacción de objetos Modelo de Objetos Común Integración de la computación Reduce la complejidad Elimina Salto semántico Soluciona interoperabilidad Homogeneidad
12 Ámbito conceptual de la tesis: Solución a los problemas de caos e integraciónPlataforma de soporte de objetos Requisitos funcionales y no funcionales para el entorno de computación Modelos de objetos para la computación Arquitectura del SOO: Requisitos, aproximaciones Propuesta de modelo de computación y estructura interna para el SOO
13 Requisitos funcionalesAbstracciones adecuadas Única abstracción adecuada es el objeto Interacción entre objetos: Mecanismo de comunicación uniforme Comunicación, flujo de control e introducción de la concurrencia en el sistema Modelos de paso de mensajes Concurrencia y sincronización Concurrencia y sincronización externas transparentes Concurrencia y sincronización internas transparentes a los clientes Objetos serie: Un único procesador virtual por objeto Objetos concurrentes: Varios procesadores virtuales por objeto Planificación Gestionar el reparto de tiempo: Planificador Gestión de excepciones Representa entidad del mundo real Conjunto de procesadores virtuales
14 Modelo Síncrono Sencillo Extendido en los lenguajes Poca sobrecargaLimita el nivel de concurrencia Objeto a origen de la invocación Objeto b destino de la invocación Llamada y bloqueo c:=b.método(args); Transferencia de control Retorno del resultado Ejecución del método solicitado b::método(args):res { ... Reanudación método origen Desbloqueo Envío del mensaje return (res); }
15 Modelo Asíncrono Aumento del nivel de concurrenciaPrimitiva explícita de sincronización Complica el modelo de programación Objeto b destino de la invocación Ejecución del método solicitado b::método(args):res { ... Objeto a origen de la invocación Invocación de un método en el objeto destino c:=b.método(args); No implica un bloqueo inmediato que provoque la transferencia de control Retorno del resultado Reanudación método origen Recibe el resultado: Desbloqueo Bloqueo esperando por el mensaje de respuesta esperar(); return(res); }
16 Modelo espera en caso necesarioSencillez Eficiencia Aumento nivel concurrencia Poca sobrecarga adicional respecto al modelo síncrono Adecuado para ambientes paralelos y distribuidos Complica el modelo de excepciones Intento de invocar un método del objeto resultado: bloqueo c.metodo-de-c(args); Objeto a origen de la invocación Objeto b destino de la invocación Invocación a un método en el objeto b c:=b.metodo(args); No implica transferencia de control Retorno del resultado Ejecución del método solicitado b::metodo(args):res { .... Reanudación método origen Desbloqueo return(res); }
17 Requisitos funcionalesAbstracciones adecuadas Única abstracción adecuada es el objeto Interacción entre objetos: Mecanismo de comunicación uniforme Comunicación, flujo de control e introducción de la concurrencia en el sistema Modelos de paso de mensajes Concurrencia y sincronización Concurrencia y sincronización externas transparentes Concurrencia y sincronización internas transparentes a los clientes Objetos serie: Un único procesador virtual por objeto Objetos concurrentes: Varios procesadores virtuales por objeto Planificación Gestionar el reparto de tiempo: Planificador Gestión de excepciones Representa entidad del mundo real Conjunto de procesadores virtuales Entrada al objeto: selecciona un método Retorno Objeto Llamadas concurrentes a métodos Fin de la ejecución del método m1. Puede comenzar la ejecución de m2 o m3 m1 m2 m3 Entrada al objeto: permite la ejecución simultánea de varios métodos Retorno Objeto Llamadas concurrentes a métodos Fin de la ejecución del método m1 m1 m2 m3 Fin de la ejecución del método m3 Fin de la ejecución del método m2
18 Requisitos funcionalesAbstracciones adecuadas Única abstracción adecuada es el objeto Interacción entre objetos: Mecanismo de comunicación uniforme Comunicación, flujo de control e introducción de la concurrencia en el sistema Modelos de paso de mensajes Concurrencia y sincronización Concurrencia y sincronización externas transparentes Concurrencia y sincronización internas transparentes a los clientes Objetos serie: Un único procesador virtual por objeto Objetos concurrentes: Varios procesadores virtuales por objeto Planificación Gestionar el reparto de tiempo: Planificador Gestión de excepciones Representa entidad del mundo real Conjunto de procesadores virtuales
19 Requisitos no funcionalesAbstracción única Deriva en modelo de programación donde no existen conceptos separados para datos y procesos (Economía de Conceptos) Visión uniforme del sistema Estructurar el sistema como un conjunto de objetos que interaccionan Entorno sencillo y uniforme Abstracción potente Mecanismo de computación flexible Eficiencia Problema/Solución Modelo/Representación Objeto Mensaje SOO
20 Ámbito conceptual de la tesis: Solución a los problemas de caos e integraciónPlataforma de soporte de objetos Requisitos funcionales y no funcionales para el entorno de computación Modelos de objetos para la computación Arquitectura del SOO: Requisitos, aproximaciones Propuesta de modelo de computación y estructura interna para el SOO
21 Modelo de objetos (1) Modelo pasivo Modelo activo Objetos pasivosObjetos proceso Comunicación entre objetos: Invocación de métodos P Objeto A Objeto B Objeto C Invocación Resultado Modelo activo Objeto Interacción entre objetos: Paso de mensajes Recepción mensajes Análisis estado interno, ejecución / retraso método Modelo objetos activo Modo natural de integrar concurrencia en los objetos Resultado Objeto C Invocación Objeto A Ha Objeto B Hb Hc
22 Modelo de objetos (y 2) Modelo pasivo Modelo activoProximidad conceptual a los entornos tradicionales Familiaridad Gran cantidad de trabajos existentes Relativa eficiencia Falta de uniformidad y homogeneidad en la abstracción Coste derivado de la poca adecuación de las abstracciones Viola el principio de encapsulación Protección Problemas para la distribución y la persistencia Modelo activo Soporte a una abstracción única y homogénea Uniformidad en la interacción Facilita la sincronización Fácilmente distribuible y persistente Sobrecarga
23 Ámbito conceptual de la tesis: Solución a los problemas de caos e integraciónPlataforma de soporte de objetos Requisitos funcionales y no funcionales para el entorno de computación Modelos de objetos para la computación Arquitectura del SOO: Requisitos, aproximaciones Propuesta de modelo de computación y estructura interna para el SOO
24 Requisitos para la arquitectura del SOOAplicar los principios de orientación a objetos Estructura OO en tiempo de diseño: Sistema como un marco OO Estructura OO en tiempo de ejecución: Sistema como conjunto de objetos Interfaz OO Arquitectura flexible: Adaptación a requerimientos de aplicaciones Flexibilidad estática: Sistemas personalizables Flexibilidad dinámica: Sistemas adaptables y configurables
25 Arquitectura del SOO: AproximacionesMicronúcleo Incremento de la flexibilidad Modularidad Portabilidad del hardware Adaptabilidad de grano grueso Flexibilidad limitada Menor rendimiento OO Reutilización Adaptabilidad Facilidad para evolucionar Optimización estructurada Reflectividad: Implantación abierta Separar, en lugar de ocultar: Interfaz base versus meta interfaz Flexibilidad Rendimiento
26 Ámbito conceptual de la tesis: Solución a los problemas de caos e integraciónPlataforma de soporte de objetos Requisitos funcionales y no funcionales para el entorno de computación Modelos de objetos para la computación Arquitectura del SOO: Requisitos, aproximaciones Propuesta de modelo de computación y estructura interna para el SOO
27 Propuesta de modelo y estructura para el SOOPropuesta para el SOO Modelo activo Máquina abstracta orientada a objetos Micronúcleo del SOO Sistema operativo OO: Modifica la máquina abstracta transparentemente Extiende y complementa el comportamiento de la máquina abstracta Modelo de objetos para la concurrencia Comunicación Planificación Ofrece su funcionalidad sin romper el paradigma de OO MA + SO = Soporte flexible a objetos Objeto como agente de procesamiento serie Modelo de objetos único Comunicación: Síncrono y espera en caso necesario Excepciones
28 Contenidos de la presentaciónObjetivos de la tesis Ámbito conceptual de la tesis: Soluciones a los problemas de caos e integración Colaboración de máquina abstracta y sistema operativo: Reflectividad Máquina abstracta Sistema operativo Prototipo Conclusiones Líneas futuras de investigación
29 Conexión de CausalidadReflectividad Capacidad de un programa de manipular, como si de datos se tratasen, la representación del propio estado del programa durante su ejecución Modelo del sistema Abstracción adecuada del sistema Razonamiento y la manipulación Conexión Causa-Efecto. S: Sistema de Computación M(S): Modelo de S S M(S) Conexión de Causalidad
30 Arquitectura reflectivaEntidades base Computación base Sistema Actividades básicas Nivel base o Nivel sistema Meta nivel Torre Reflectiva Meta entidades Meta computación Exposición Reflexión Introspección Intervención Meta-entidades Computación en el meta-nivel para gestionar acciones en el nivel base Meta sistema M2 M4 M1 M3 Exposición Reflejo Invocación de un método A Sistema base B C Entidades base
31 Definición de una arquitectura reflectivaObjeto aplicación meta-objeto Meta-nivel para el objeto aplicación Ámbito Estructural Del comportamiento Representación Integración uniforme Modelo-Sistema Arquitectura reflectiva en SOO Flujo de control Reflectividad implícita Reflectividad explícita A B C Sistema Base Meta Sistema M2 M1 M4 M3 Reflectividad Implícita Invocación método Meta-computación Retorno del Control al Nivel Base Reflectividad Explícita
32 Modelos de reflectividadClase MetaClase Clase Objeto Objeto Instancia de HANDLEMSG Paso de Control al Meta nivel M Methods HANDLEMSG { ... } Modelo MetaClase Sencillez Especialización. Cambio dinámico Parcialmente meta Compatibilidad Modelo MetaObjeto Paso de Control al Meta nivel HANDLEMSG M MetaObjeto Objeto Conexión Causal Instancia de Clase MetaObjeto Clase Objeto Methods HANDLEMSG { ... } Especialización Monitorización Modificación No se puede actuar sobre el mensaje Exposición del paso de mensajes Paso de Control al Meta nivel M SEND Instancia de Objeto Clase Mensaje Clase Objeto MetaObjeto Mensaje (Selector, Argumentos, Receptor) Definir y usar distintas clases de comunicación Carencia de continuidad
33 Organización reflectiva del SOOSistema base y meta sistema en el SOO Meta-interfaz Flujo de control
34 Máquina abstracta: Nivel baseMarco de definición de los objetos: Instancias de la clase Object Soporte en tiempo de ejecución: Entidades autónomas de procesamiento Entorno básico de computación Elevar objetos de la MAOO Codificar modelo de objetos como objetos Objetos internos definidos en el lenguaje de desarrollo Máquina abstracta Objetos definidos en el ensamblador de la máquina abstracta Objetos internos que soportan la representación de las instancias en tiempo de ejecución. Objetos internos que soportan la comunicación entre objetos Objetos que exponen características de la máquina abstracta. Máquina abstracta Objetos del usuario. Codifican la solución del problema Objetos que soportan la comunicación entre objetos
35 Sistema Operativo: Meta-NivelModelo Meta-Objetos: División de grano fino del meta-nivel en objetos Instancias de la clase METAOBJETO Diferencias objetos base - meta-objetos Acceso a la información Ejecución de métodos Sistema operativo: ¡Objetos, objetos! Conjunto de meta-objetos asociados con los objetos definidos en el nivel base Sobreescriben la especificación del metaobjeto por defecto definido por la MA Asociación dinámica Entorno flexible Descripción OO del meta-nivel: Integración homogénea de SO con el entorno Objeto base Meta-objetos: Objetos que extienden o modifican alguna funcionalidad de la máquina abstracta Da soporte a Conjunto de objetos del sistema operativo: Meta-espacio para el objeto base Máquina abstracta
36 Sincronización de la ejecuciónMeta-Interfaz Estructural Instancia, Clase, Estructura interna de la máquina, estado de ejecución, … Del comportamiento Cosificar elementos de la máquina que hacen que funcionen objetos del nivel base mediante MetaObjetos Objeto A Objeto B Recepción Mensajes Sincronización de la ejecución Planificación Recepción Mensajes Envío Mensajes DeMO Envío Recepción Sincronización
37 Transferencia de control entre el nivel base y el meta-nivelEventos relacionados con la ejecución de métodos Planificación de tareas Invocación de métodos Reflectividad implícita Reflectividad explícita: Transferencia de control uniforme Invocación directa de métodos en objetos del meta-nivel a través de una referencia al mismo Modificar la definición de la instrucción primitiva de invocación a métodos.
38 Ventajas de una arquitectura reflectiva aplicada a un sistema OOMantenimiento de la uniformidad conceptual Extensibilidad y adaptabilidad Separación de asuntos o incumbencias (concerns) Favorece el diseño de distintos modelos de objetos activo Incremento de la productividad Generalización para multiprocesadores y sistemas distribuidos
39 Contenidos de la PresentaciónObjetivos de la tesis Ámbito conceptual de la tesis: Soluciones a los problemas de caos e integración Colaboración de máquina abstracta y sistema operativo: Reflectividad Máquina abstracta Sistema operativo Prototipo Conclusiones Líneas futuras de investigación
40 Máquina abstracta orientada a objetosArquitectura de referencia Soporte al objeto en la máquina abstracta Infraestructura proporcionada por la máquina abstracta Reflectividad estructural
41 Estructura de referencia de la máquina abstractaÁrea de Instancias Área de Clases Área de Referencias Referencias del sistema Clases Instancias Referencias Jerarquía de Clases Básicas this root_sched current thread Área de Ejecución Hilos de ejecución
42 Juego de instrucciones OO de alto nivel (1)Identificación unívoca de la clase Instrucciones declarativas Relaciones Jerárquicas: Identificador de la(s) clase(s) antecesoras directas en la jerarquía class NombreDeLaClase isa {ClaseDeLaQueHeredaDirectamente} aggregation {NombreDelAgregado: ClaseDelAgregado} association {NombreDelAsociado: ClaseDelAsociado} methods {
43 Juego de instrucciones OO de alto nivel (y 2)Instrucciones del Comportamiento Instrucciones para manipulación de objetos a través de las referencias new assign
44 Jerarquía de clases Clases primitivas Clases de usuario
45 Máquina abstracta orientada a objetosArquitectura de referencia Soporte al objeto en la máquina abstracta Infraestructura proporcionada por la máquina abstracta Reflectividad estructural
46 Representación del objeto en tiempo de ejecución (1)Representación completa de los objetos en tiempo de ejecución: Objetos activos como modelo de unificación semántica Reflectividad: Aumento del soporte al objeto por parte de la MA Soporta la relación de causalidad Exposición del motor de ejecución Objeto Enlace Meta Meta objetos Meta Espacio del objeto Métodos en ejecución hilos Estado Semántica del objeto Métodos Área de Ejecución del objeto
47 Representación del objeto en tiempo de ejecución (y 2)Contexto de ejecución de un método: Estructura del hilo Contexto dinámico del hilo Capa o contexto de ejecución de la pila Hilo de Ejecución Referencia Instancia Estado Instancia a la que pertenece el método en ejecución Referencia al origen de la llamada Contexto estático del hilo MC Referencia rr Referencia exc Pila de ejecución Referencias objetos locales Distribución Seguridad e integridad Importancia relación objeto-hilo
48 Máquina abstracta orientada a objetosArquitectura de referencia Soporte al objeto en la máquina abstracta Infraestructura proporcionada por la máquina abstracta Comunicación entre objetos Semántica del objeto ante la invocación concurrente de métodos Planificación de actividades Excepciones Reflectividad estructural
49 Paso de mensaje en la Máquina AbstractaModelo síncrono: Call Crea nuevo hilo en objeto destino Transmite control al destino para ejecutar método: símil del paso de testigo Retorno de resultados Modelo espera en caso necesario: Send Crea nuevo hilo Divide flujo de control Retorno de resultados: Objetos virtuales transparentes Punto de inflexión para conseguir la reflectividad del comportamiento en el sistema.
50 Call de cerca Caso base: Máquina abstracta actúa de meta-espacio básico finalizando la recursión reflectiva Invocación de métodos en objetos primitivos Reflectividad explícita Retorno del meta-nivel al nivel-base Invocación de métodos Ejecución efectiva del método Objeto O { Instrucción 1 O’’:=call(O’, m, args) } Objeto O’ method m Instrucción n } Máquina Abstracta call O’’:=O’.m(args) Ejecución instrucción call Creación de un nuevo hilo virtual en O’ y suspensión hilo origen Transferencia de control al método m Fin ejecución método: La máquina abstracta instancia el resultado en la referencia O’’ y reanuda el método origen
51 Call de cerca Caso Reflectivo: Transferencia de control al meta-nivelInvocación de métodos: Punto de inflexión para la reflectividad Caso Reflectivo: Transferencia de control al meta-nivel objeto origen y destino son objetos del nivel base: reflectividad implícita O’’:=O’.m(args) Objeto Base O’ method x { instrucción 1 O’’:=call(O’, m, args) } method m { instrucción 1 instrucción n } Objeto Base O Ejecución efectiva del método m Instrucción Call de la máquina Ejecución de la instrucción Call call { call(metaobjeto, metamethod, args) } Meta-computación que complementa el soporte que la MA da a la invocación de métodos Máquina Abstracta Transición síncrona del nivel base al meta-nivel: Suspende la ejecución del método x Meta-objeto’ Meta-objeto method metamethod { instrucción 1 O’’:=call(O’, m, args) } method m instrucción n Meta-espacio Retorno de resultados, reanudación método origen Invocación de m (Caso básico de call): Creación de un nuevo hilo virtual en O’ y transferencia del meta-nivel al nivel base
52 Send de cerca Caso Base: Máquina abstracta actúa de meta-espacio básico Método en un objeto primitivo Método de un meta objeto desde un objeto del nivel base: Reflectividad Explícita Método del nivel base desde el meta nivel: Transferencia control meta-nivel nivel base Invocación método Ejecución de la instrucción send O’’:=O’m(args) Objeto O’ Objeto Base O method m { Instrucción 1 Instrucción n } Máquina Abstracta send O’’:=send(O’, m, args) call(O’’, método, args) Intento acceso O’’: suspensión/acceso Ejecución de m Creación de un nuevo hilo virtual en O’ y suspensión del método origen durante el envío del mensaje. Informa al planificador de un nuevo hilo para ejecutar el método m en O’. Fin m: máquina abstracta instancia O’’ Fin send: retorna el control al origen y ambos métodos se ejecutan en paralelo
53 Send de cerca Caso Reflectivo: Transferencia de control al meta-nivelEjecución de la instrucción send de la máquina Caso Reflectivo: Transferencia de control al meta-nivel Ambos objetos son del nivel base reflectividad implícita Invocación de método: Punto de inflexión { instrucción 1 O’’:=send(O’, m, args) call(O’’, método, args) } Objeto Base O method m instrucción n } Máquina Abstracta send { call(metaobjeto, metamétodo, args) … } method metamétodo Meta-objeto’ } Meta-espacio O’’:=O’m(args) Intento acceso O’’: suspensión/acceso Fin ejecución instrucción send: máquina abstracta reanuda método origen Suspensión del método origen durante el envío del mensaje, luego ambos métodos se ejecutan en paralelo Objeto Base O’ Fin m: máquina abstracta instancia O’’ Invocación de m (Caso básico de send): Creación de un nuevo hilo virtual en O’ y suspensión del método origen durante el envío del mensaje. Informa al planificador de un nuevo hilo para ejecutar el método m en O’. Meta-computación Meta-objeto Transferencia síncrona de control del nivel base al meta-nivel
54 Control de la concurrencia en la Máquina Abstractapaso de mensajes cerraduras Soporte al control de la concurrencia entre objetos Soporte de la MA al control de la concurrencia intra objetos Define en la implantación de los objetos, una política de control por omisión: objetos serie Flexibilidad: Exponer modelo de objetos para la concurrencia Meta-objetos del SO asociados con objetos base sustituyen la definición por omisión de la MA Objeto Activo Modelo Objetos Concurrencia Estado Secuencial Objeto Base Meta Objeto Relación de Control de Concurrencia
55 Planificación Ciclo de ejecución de la MACiclo indefinido: Ejecutar instrucción señalada por MC (Method Counter) de la referencia del sistema ct (current thread) y actualizar el valor de MC Hilo actual libera la MA Finalización Suspensión. Requisamiento Cambia el valor de la referencia del sistema ct MA sigue ciclo de ejecución con otro hilo.
56 Excepciones InstruccionesLanzar una excepción: Error en tiempo de ejecución o throw Instancia de excepción Asociarla con exc de la capa de contexto actual Instalación de un gestor para la excepción: handler Gestor: contexto de ejecución en un hilo Indica la instrucción donde continuar la ejecución para gestionar la excepción Ejecución del gestor para gestionar la excepción producida La ejecución del programa continuará en la dirección del último gestor ejecutado El método actual define un gestor en su código El método actual no define un gestor en su código handler Etiqueta throw
57 Máquina abstracta orientada a objetosArquitectura de referencia Soporte al objeto en la máquina abstracta Infraestructura proporcionada por la máquina abstracta Comunicación entre objetos Semántica del objeto ante la invocación concurrente de métodos Planificación de actividades Excepciones Reflectividad estructural
58 Reflectividad estructural en la máquina abstractaObject ReferenceArea InstanceArea _Class Instance ExecObjectArea MetaObject MetaSpace ThreadArea ClassArea Thread Exposición de los elementos estructurales que representan a los objetos en tiempo de ejecución Exposición del motor en tiempo de ejecución Exposición de la Arquitectura de la Máquina Exposición del meta-espacio Máquina Abstracta
59 Contenidos de la presentaciónObjetivos de la tesis Ámbito conceptual de la tesis: Soluciones a los problemas de caos e integración Colaboración de máquina abstracta y sistema operativo: Reflectividad Máquina abstracta Sistema operativo Prototipo Conclusiones Líneas futuras de investigación
60 Diseño del sistema operativo orientado a objetosSO = {objetos} Espacio de objetos del sistema Reflectividad (Máquina, SO) Comunicación Semántica del objeto Planificación
61 Reflectividad en la invocación de métodosAspectos expuestos Lado Servidor: búsqueda y ejecución del método correspondiente al mensaje Lado Cliente: envío de mensajes en el lado del cliente Meta Objeto Emisor 1 Objeto 1 Receptor 2 Objeto 2 Objeto Activo 1 Objeto Activo 2 Invocación método M Ejecución M Mensaje Respuesta Call Envío de Mensajes en el Meta Nivel Seleccionar servidor Gestión errores Soporte tiempo real Depuración Recepción de mensajes Análisis entorno Selección método Retraso ejecución Delegación mensajes
62 Colaboración de emisor y receptor en la invocación síncrona de un métodoObjeto Base O’ Objeto Base O { instrucción 1 O’’:=call(O’, m, args) } method m instrucción n } Máquina Abstracta call { // Caso Reflectivo call(MOEmisor, RCallE, args) // Caso Base call(O’, m, args) } method RCallE call(MO’Receptor, RCallR, args) } Meta-objeto’ Receptor method RCallR { if overload() delegate() else { lookup(m) Meta-nivel send call(MOEmisor, RSendE, args) O’’:=O’.m(args); Ejecución de la instrucción call Retorno síncrono, reanudará el método origen, retornando el resultado Retorno síncrono, irá reanudando los métodos RCallR, RCallE y el origen, retornando el resultado Transferencia del nivel base al meta-nivel para ejecutar el método RCallE Meta-objeto Emisor Análisis del mensaje y toma de decisión Acciones antes de invocar el método Acciones después de recibir el resultado Invocación síncrona de RCallR, suspensión de RCallE Invocación síncrona del método m
63 Colaboración de Emisor y Receptor en la Invocación Asíncrona de un métodoObjeto Base O { instrucción 1 O’’:=send(O’, m, args) } method m { instrucción 1 instrucción n } O’’:=O’m(args); Objeto Base O’ Ejecución de la instrucción send. Transferencia del nivel base al meta-nivel send { // Caso Reflectivo call(MOEmisor, RSendE, args) // Caso Base ..... call(Sched, NewMethod, newthread) } call { call(MOEmisor, RCallE, args) } Crea un nuevo hilo virtual en O’ y ejecuta el método Enqueue del meta-objeto planificador. Retorna el control al meta-espacio Invocación síncrona de RSendR, suspensión de RSendE Máquina Abstracta Ejecución síncrona de RSendE Meta-objeto’ Receptor Meta-nivel Análisis de mensaje y toma de decisión method RSendE { call(MO’Receptor, RSendR, args) } method RSendR { if overload() delegate() else { lookup(m) send(O’, m, args) } } Meta-objeto Emisor method NewMethod { Enqueue() } Meta-objeto Planificador
64 Ventajas de la reflectividad en la invocación de métodosSoporte adaptado a distintos tipos de lenguajes Personalización de la invocación para mayor eficiencia Restricciones de tiempo Facilita la creación de entornos distribuidos y persistentes al tratar todo ello en el meta-nivel
65 Diseño del sistema operativo orientado a objetosSO = {objetos} Espacio de objetos del sistema Reflectividad (Máquina, SO) Comunicación Semántica del objeto Planificación
66 Reflectividad en el modelo de concurrencia internaRequisitos de la solución Encapsulación Extensibilidad Modularidad Reusabilidad Aspectos expuestos Se expone la política de sincronización de grano grueso (Política Aceptación Mensajes) Objetivos del meta-objeto sincronizador Permite a las aplicaciones establecer distintos comportamientos para un objeto base dependiendo del entorno de ejecución en el que se vaya a utilizar, sin tener que modificar el objeto base en sí.
67 Reflectividad en el modelo de concurrencia internaEjecución meta-objeto Sincronizador Explícito MetaObjeto Receptor invoca método ExecNewMethod (mensaje solicitado, origen del mensaje, otros parámetros) Implícito Suspensión(StopMethod), Reanudación(ResumeMethod), Finalización de un método(EndMethod) Colaboración del meta-objeto sincronizador en el meta-nivel Ventajas Separación de incumbencias Control más sencillo de la sincronización Problema de la herencia
68 Colaboración del meta-objeto Sincronizador en el meta-nivelObjeto Base O { instrucción 1 O’’:=call(O’, m, args) } O’’:=O’.m(args); Invocación de m: Transferencia del nivel base al meta-nivel method m { instrucción 1 instrucción n } Objeto Base O’ call { // Caso Reflectivo // Caso Base } send { // Caso Reflectivo // Caso Base } Máquina Abstracta Receptor invoca síncronamente ExecNewMethod Consulta de los metadatos de O’ Meta-objeto datos de O’ Ejecución no conveniente: Retrasar/Rechazar m y devolver control a O Métodos retrasados suspendidos Métodos en ejecución method ExecNewMethod(O’, m, args) { Entrymethod(O’, m, args) OK { call(O’, m, args) } NO { DelayMethod(O’, m, args) } } Meta-objeto Sincronizador Meta-espacio de O’ Ejecución de EntryMethod para comprobar la adecuación del método invocado Ejecución conveniente: Invocación efectiva de m Meta-espacio de O’’
69 Reflectividad en el modelo de concurrencia internaEjecución meta-objeto Sincronizador Explícito MetaObjeto Receptor invoca método ExecNewMethod (mensaje solicitado, origen del mensaje, otros parámetros) Implícito Suspensión(StopMethod), Reanudación(ResumeMethod), Finalización de un método(EndMethod) Colaboración del meta-objeto sincronizador en el meta-nivel Ventajas Separación de incumbencias Control más sencillo de la sincronización Problema de la herencia
70 Diseño del sistema operativo orientado a objetosSO = {objetos} Espacio de objetos del sistema Reflectividad (Máquina, SO) Comunicación Semántica del objeto Planificación
71 Reflectividad en la planificaciónAspectos expuestos: Política de planificación Necesidades específicas de objetos o grupos de objetos Meta-objetos para la planificación: Meta-Objeto Planificador Jerarquía de clases de planificación en tiempo de definición: Reutilización del código Adición de nuevos planificadores: Ampliación de la jerarquía Anatomía de un objeto planificador Estado: Lista de referencias a planificar Métodos: ScheduleNext, Enqueue, IsEmpty Jerarquía inicial SchedulerUSS QueueScheduler TimeScheduler FIFO Priority SRTN
72 Jerarquía de planificadores en tiempo de ejecuciónPlanificación de objetos: Meta-objeto Planificador Planificación de meta-objetos: Jerarquía de objetos planificadores La raíz de la jerarquía: El planificador de la máquina Transferencia de control entre los planificadores Mecanismo de paso de mensajes síncronos y retorno de los mismos Planificador Raíz Máquina Abstracta Planificador A Planificador C Planificador B Objeto X Objeto Y Tiempo Reparte
73 Visión dinámica del sistemaNivel Base Objeto Base Destino Origen Meta Nivel Meta-Objeto Sincronizador Planificador Emisor Receptor 1: MOEmisor.RCallE(...); 2: MO’Receptor.RCallR(...); 3: MO’Sin.ExecNewMethod(...); 4: MO’Sched.Enqueue(...); Destino.m(...); 6: ct=Ejecutar método destino 0: MS=this.GetMetaSpace(); MOEmisor=MS.GetMObyClass(“Emisor”); MOReceptor=MS.GetMObyClass(“Receptor”); MOSinc=MS.GetMObyClass(“Synch”); MOSched=MS.GetMObyClass(“Sched”); 0: MS’=destino.GetMetaSpace(); MO’Emisor=MS’.GetMObyClass(“Emisor”); MO’Receptor=MS’.GetMObyClass(“Receptor”); MO’Sinc=MS’.GetMObyClass(“Synch”); MO’Sched=MS’.GetMObyClass(“Sched”); 5: MO’.ScheduleNext(...);
74 Contenidos de la presentaciónObjetivos de la tesis Ámbito conceptual de la tesis: soluciones a los problemas de caos e integración Colaboración de máquina abstracta y sistema operativo: reflectividad Máquina abstracta Sistema operativo Prototipo Conclusiones Líneas futuras de investigación
75 Prototipo del SOO Principios aplicados en el prototipoAplicación intensiva de los principios de la OO en el diseño y construcción del prototipo Simplicidad Diseño del SOO como conjunto de objetos: Uniformidad La aplicación intensiva de los principios de la OO en el diseño e implantación del SOO hace que los elementos que componen el entorno se representan mediante objetos, instancia de las clases que los describen. Presentación del SOO Diagrama de clases general de la MA Jerarquías del prototipo para la MA Reflectividad estructural Jerarquía de objetos del sistema operativo
76 Diagrama de clases generalTThread A Clase abstracta TStackElement TContext TThreadArea A Usa Ejecuta 1 THandler Tiene TMethod A muchos (cardinalidad TExecArea múltiple genérica) Ancestros TInstruction A Referencias locales TClass TRef A Instancias Agregados Asociados locales this Apunta a Pertenece 0..1 TClassArea TInstanceArea TInstance Raiz 1 Subinstancia 1..n TIMetaSpace TIMetaObject
77 Jerarquía de clases del prototipoPara describir la implantación del SOO describir la jerarquía de clases del prototipo y las relaciones entre ellas. Clases, Instancias, Métodos, Instrucciones Herencia y el polimorfismo facilitan reutilizar el código y construir variantes del prototipo con pequeñas modificaciones en el código.
78 Jerarquía de clases para la reflectividad estructuralTClass TCReferenceArea TCInstanceArea TC_Class TCMethod TCExecObjectArea TCThread TCThreadArea TClassArea TCInstance TCInstruction TCContext Exposición de los elementos estructurales que representan los objetos en tiempo de ejecución Exposición del motor en tiempo de ejecución Exposición de la Arquitectura de la Máquina Máquina Abstracta
79 Objetos internos, clases primitivas e instanciasMáquina Abstracta Representación interna de Instancia de Expone a Área de Threads Área de Referencias Object Thread Area Class Thread Area OI_Thread Area Object ReferenceArea Class ReferenceArea OI_Reference Area Object InstanceArea Class InstanceArea OI_Instance Area Class ClassArea Object ClassArea OI_ClassArea Objetos internos de la Máquina Abstracta Object Thread Class Thread OI_Thread Object Instance ClassInstance OI_Instance Object _Class Class_Class OI_Class Cualquier Clase (primitiva o de usuario) Área de Clases Cualquier Objeto Área de Instancias Clases Primitivas que representan aspectos internos de la Máquina Abstracta Objetos accesibles normalmente por el usuario que exponen características internas de la Máquina Abstracta
80 Sistema operativo: Jerarquía de clases para la reflectividad del comportamientoEl prototipo del Sistema Operativo consiste en una jerarquía de clases Emisor, Receptor, Planificador y Sincronizador que representan la funcionalidad del sistema operativo TClass TCMOEmisor TCMetaObject TCMetaSpace TCMOSynchronizer TCMOReceptor TCMOScheduler
81 Contenidos de la presentaciónObjetivos de la tesis Ámbito conceptual de la tesis: soluciones a los problemas de caos e integración Colaboración de máquina abstracta y sistema operativo: Reflectividad Máquina abstracta Sistema operativo Prototipo Conclusiones Líneas futuras de investigación
82 Conclusiones y resultados (1)SOO. Soporte global a objetos Soporte integral a objetos Uniformidad Solución global a los problemas de objetos presentados Ventajas de usar MAOO como base del SOO Portabilidad Facilidad de comprensión Facilidad de desarrollo y de experimentación Compiladores de lenguajes Ventajas de extender la MAOO mediante un SOO Economía de conceptos y uniformidad Extensión uniforme con el resto del sistema
83 Conclusiones y resultados (y 2)Modelo objetos Activo: Uniformidad total Modelo de objetos activo transforma el objeto en una herramienta de computación autónoma Soporte más sofisticado a la abstracción de objeto Uniformidad y homogeneidad total en el sistema Simplicidad y economía de conceptos Integración de MAOO y SOOO por medio de la reflectividad MA: Base de la torre reflectiva Limita la sobrecarga de la reflectividad Semántica básica Facilita la experimentación. SO: Meta-nivel Flexibilidad estática: Sistema Personalizable Flexibilidad dinámica: Sistema adaptable y configurable
84 Contenidos de la presentaciónObjetivos de la tesis Ámbito conceptual de la tesis: Soluciones a los problemas de caos e integración Colaboración de máquina abstracta y sistema operativo: Reflectividad Máquina abstracta Sistema operativo Prototipo Conclusiones Líneas futuras de investigación
85 Líneas futuras de trabajo (1)Construcción de una jerarquía del SO más completa Ampliar jerarquía clases SO Resto de la jerarquía de clases que definiría un sistema operativo completo MAOO reflectiva guiada por eventos Modificar la MAOO integrando en ella un modelo de eventos basado en emisores y receptores de eventos Modificar el modelo reflectivo de la máquina Reflejar un aspecto Suscribirse a determinado evento de la máquina Evento Paso de control al meta nivel y ejecución de un determinado método de un meta-objeto del sistema operativo
86 Líneas futuras de trabajo (y 2)Integrar otros aspectos en la arquitectura reflectiva propuesta Distribución Persistencia Agrupación de objetos Seguridad Implantación eficiente del prototipo Dicotomía call/send
87 TESIS DOCTORAL Modelo de Computación Concurrente para un Sistema Operativo Orientado a Objetos basado en una Máquina Abstracta Lourdes Tajes Martínez Dirigida por Juan Manuel Cueva Lovelle Oviedo, 16 de Marzo de 2000