870 likes | 1.05k Views
Modelo de Computación Concurrente para un Sistema Operativo Orientado a Objetos basado en una Máquina Abstracta. TESIS DOCTORAL. Presentada por Lourdes Tajes Martínez Dirigida por Dr. D. Juan Manuel Cueva Lovelle Oviedo, 16 de Marzo de 2000. Contenidos de la presentación.
E N D
Modelo de Computación Concurrente para un Sistema Operativo Orientado a Objetos basado en una Máquina Abstracta TESIS DOCTORAL Presentada por Lourdes Tajes Martínez Dirigida por Dr. D. Juan Manuel Cueva Lovelle Oviedo, 16 de Marzo de 2000
Contenidos de la presentación • Objetivos 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
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
Interoperabilidad • Adopción no uniforme Salto semántico Aplicación OO Sistema operativo no OO Capas OO • Adopción parcial Capas para comunicar aplicación-SO Capa básica de soporte no OO, abstracciones e interfaz tradicionales Caos de objetos • 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
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
Modelos de integración de la computación en el entorno OO • Abstracciones 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
method x1 method x2 method ... Superclase SULA ENCAP SINCRONIZACIÓN Objeto CIÓN ¿SINCRONIZACIÓN? method y1 method y2 method ... Subclase SINCRONIZACIÓN Concurrencia en un entorno de computación OO • El problema de la integridad del objeto • El problema de la herencia • Aproximaciones para la integración de concurrencia y OO • Aproximación ortogonal • Aproximación heterogénea • Aproximación homogénea
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
Contenidos de la presentación • Objetivos 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
Ámbito conceptual de la tesis: Solución a los problemas de caos e integración • Plataforma 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
Plataforma de soporte de objetos: SOO • Soporte 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
Ámbito conceptual de la tesis: Solución a los problemas de caos e integración • Plataforma 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
Requisitos funcionales • Abstracciones 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
Objeto a origen de la invocación Objeto b destino de la invocación Envío del mensaje Llamada y bloqueo c:=b.método(args); Transferencia de control Ejecución del método solicitado b::método(args):res { ... Retorno del resultado return (res); } Desbloqueo Reanudación método origen Modelo Síncrono • Sencillo • Extendido en los lenguajes • Poca sobrecarga • Limita el nivel de concurrencia
Objeto a origen de la invocación Objeto b destino de la invocación No implica un bloqueo inmediato que provoque la transferencia de control Invocación de un método en el objeto destino c:=b.método(args); Bloqueo esperando por el mensaje de respuesta esperar(); Ejecución del método solicitado b::método(args):res { ... return(res); } Recibe el resultado: Desbloqueo Retorno del resultado Reanudación método origen Modelo Asíncrono • Aumento del nivel de concurrencia • Primitiva explícita de sincronización • Complica el modelo de programación
Objeto a origen de la invocación Objeto b destino de la invocación No implica transferencia de control Invocación a un método en el objeto b c:=b.metodo(args); Ejecución del método solicitado b::metodo(args):res { .... Intento de invocar un método del objeto resultado: bloqueo c.metodo-de-c(args); return(res); } Desbloqueo Retorno del resultado Reanudación método origen Modelo espera en caso necesario • Sencillez • Eficiencia • Aumento nivel concurrencia • Poca sobrecarga adicional respecto al modelo síncrono • Adecuado para ambientes paralelos y distribuidos • Complica el modelo de excepciones
Fin de la ejecución del método m1. Puede comenzar la ejecución de m2 o m3 Llamadas concurrentes a métodos m1 m2 m3 Objeto Entrada al objeto: selecciona un método m1 Retorno Llamadas concurrentes a métodos m1 m2 m3 Fin de la ejecución del método m1 Objeto Fin de la ejecución del método m3 Entrada al objeto: permite la ejecución simultánea de varios métodos Fin de la ejecución del método m2 m3 m2 m1 Retorno Requisitos funcionales • Abstracciones 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
Requisitos funcionales • Abstracciones 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
Problema/Solución Modelo/Representación SOO Objeto Mensaje Requisitos no funcionales • Abstracció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
Ámbito conceptual de la tesis: Solución a los problemas de caos e integración • Plataforma 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
Objeto A Objeto B Objeto C Invocación Resultado Objeto B Objeto A Objeto C Invocación Ha Resultado Hb Hc P Modelo de objetos (1) • Modelo pasivo • Objetos pasivos • Objetos proceso • Comunicación entre objetos: Invocación de métodos • 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
Modelo de objetos (y 2) • Modelo pasivo • Proximidad 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
Ámbito conceptual de la tesis: Solución a los problemas de caos e integración • Plataforma 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
Requisitos para la arquitectura del SOO • Aplicar 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
Arquitectura del SOO: Aproximaciones • Micronú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
Ámbito conceptual de la tesis: Solución a los problemas de caos e integración • Plataforma 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
Propuesta de modelo y estructura para el SOO • Propuesta 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
Contenidos de la presentación • Objetivos 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
S: Sistema de Computación M(S): Modelo de S S M(S) Conexión de Causalidad Reflectividad • 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.
Introspección • Intervención A M3 M2 M1 M4 Arquitectura reflectiva • Entidades base • Computación base • Nivel base o Nivel sistema • Meta nivel Torre Reflectiva • Meta entidades • Meta computación • Sistema • Actividades básicas • Exposición • Reflexión Meta-entidades Computación en el meta-nivel para gestionar acciones en el nivel base Meta sistema Exposición Reflejo Invocación de un método B C Sistema base Entidades base
Meta-nivel para el objeto aplicación Objeto aplicación meta-objeto Meta-computación Meta Sistema Retorno del Control al Nivel Base Reflectividad Implícita Reflectividad Explícita Invocación método B C Sistema Base M2 M1 M4 M3 A Definición de una arquitectura reflectiva • Ámbito • Estructural • Del comportamiento • Representación • Integración uniforme Modelo-Sistema • Arquitectura reflectiva en SOO • Flujo de control • Reflectividad implícita • Reflectividad explícita
Methods HANDLEMSG { ... } Clase MetaClase • Sencillez • Especialización. • Cambio dinámico • Parcialmente meta • Compatibilidad Instancia de HANDLEMSG Clase Objeto Paso de Control al Meta nivel Instancia de Methods HANDLEMSG { ... } Objeto Clase MetaObjeto • Especialización • Monitorización • Modificación M Clase Objeto Conexión Causal Instancia de HANDLEMSG MetaObjeto • No se puede actuar sobre el mensaje Instancia de Paso de Control al Meta nivel Objeto M Clase Mensaje Instancia de Clase Objeto MetaObjeto Mensaje (Selector, Argumentos, Receptor) SEND Paso de Control al Meta nivel Instancia de Objeto M Modelos de reflectividad • Modelo MetaClase • Modelo MetaObjeto • Exposición del paso de mensajes • Definir y usar distintas clases de comunicación • Carencia de continuidad
Organización reflectiva del SOO • Sistema base y meta sistema en el SOO • Meta-interfaz • Flujo de control
Objetos definidos en el ensamblador de la máquina abstracta Objetos internos que soportan la comunicación entre objetos Objetos internos definidos en el lenguaje de desarrollo Máquina abstracta Objetos internos que soportan la representación de las instancias en tiempo de ejecución. Objetos que exponen características de la máquina abstracta. Objetos del usuario. Codifican la solución del problema Objetos que soportan la comunicación entre objetos Máquina abstracta Máquina abstracta: Nivel base • Marco 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
Conjunto de objetos del sistema operativo: Meta-espacio para el objeto base Da soporte a Máquina abstracta Da soporte a Da soporte a Máquina abstracta Objeto base Meta-objetos: Objetos que extienden o modifican alguna funcionalidad de la máquina abstracta Sistema Operativo: Meta-Nivel • Modelo 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
DeMO Envío DeMO Recepción DeMO Planificación DeMO Sincronización Recepción Mensajes Sincronización de la ejecución Envío Mensajes Planificación Recepción Mensajes Objeto A Objeto B Meta-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
Transferencia de control entre el nivel base y el meta-nivel • 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. • Eventos relacionados con la ejecución de métodos • Planificación de tareas • Invocación de métodos
Ventajas de una arquitectura reflectiva aplicada a un sistema OO • Mantenimiento 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
Contenidos de la Presentación • Objetivos 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
Máquina abstracta orientada a objetos • Arquitectura de referencia • Soporte al objeto en la máquina abstracta • Infraestructura proporcionada por la máquina abstracta • Reflectividad estructural
Clases Área de Clases Área de Referencias Jerarquía de Clases Básicas Referencias Instancias root_sched Área de Instancias this Referencias del sistema Área de Ejecución current thread Hilos de ejecución Estructura de referencia de la máquina abstracta
Juego de instrucciones OO de alto nivel (1) Identificación unívoca de la clase 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 {<NombreDelMétodo> ([{ClaseDeLosParámetros}]) [:ClaseDeRetorno];} endclass Relaciones de Agregación: Referencia del objeto que pertenece a la clase y clase del mismo. • Instrucciones declarativas Relaciones de Asociación: Referencia del objeto asociado y clase del mismo. Definición de métodos: Nombre, referencias y tipos de los parámetros, referencias y tipo de retorno Referencias que se utilizan en el método y su tipo method <NombreDelMétodo> ([{NombreParámetro: ClaseParámetro}]) [:ClaseRetorno] [refs {<NombreReferencia: ClaseReferencia> [instances {<ReferenciaObjeto: Clase>};] code <Descripción del cuerpo del método> endcode endmethod Instancias que se utilizan y su tipo
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 <ref> • assign <refdestino>, <reforigen> • delete <ref> • Invocación de método a través de una referencia. • <ref>.{<ámbito>:}<método>({<ref>}) [:ref] • <ref>{<ámbito>:}<método>({<ref>}) [:ref] • Control de flujo. • exit • JT/JF <refbool>, etiqueta • JNULL/JNNULL <ref>, etiqueta • JMP etiqueta • handler etiqueta / throw
Jerarquía de clases • Clases primitivas • Clases de usuario
Máquina abstracta orientada a objetos • Arquitectura de referencia • Soporte al objeto en la máquina abstracta • Infraestructura proporcionada por la máquina abstracta • Reflectividad estructural
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
Contexto estático del hilo Referencia al origen de la llamada Referencia Instancia Estado MC Pila de ejecución Capa o contexto de ejecución de la pila Referencia rr Referencia exc Hilo de Ejecución Referencias objetos locales Contexto dinámico del hilo Instancia a la que pertenece el método en ejecución Representación del objeto en tiempo de ejecución (y 2) • Contexto de ejecución de un método: Estructura del hilo • Distribución • Seguridad e integridad • Importancia relación objeto-hilo
Máquina abstracta orientada a objetos • Arquitectura 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
Paso de mensaje en la Máquina Abstracta • Modelo 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.
Objeto O’ { Instrucción 1 O’’:=call(O’, m, args) } method m { Instrucción 1 Instrucción n } O’’:=O’.m(args) Objeto O call { Instrucción 1 Instrucción n } Máquina Abstracta 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 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