Title: Modelo de Computaci
1Modelo 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
2Contenidos 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
3Objetivos 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
4Caos 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
5Objetivos 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
6Modelos 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
7Concurrencia 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
8Objetivos 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
9Contenidos 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
10Á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
11Plataforma 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
12Á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
13Requisitos 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
14Modelo Síncrono
- Sencillo
- Extendido en los lenguajes
- Poca sobrecarga
- Limita el nivel de concurrencia
15Modelo Asíncrono
- Aumento del nivel de concurrencia
- Primitiva explícita de sincronización
- Complica el modelo de programación
16Modelo 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
17Requisitos 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
18Requisitos 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
19Requisitos 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
20Á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
21Modelo 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
22Modelo 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
23Á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
24Requisitos 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
25Arquitectura del SOO Aproximaciones
- Incremento de la flexibilidad
- Modularidad
- Portabilidad del hardware
- Adaptabilidad de grano grueso
- Flexibilidad limitada
- Menor rendimiento
- Reutilización
- Adaptabilidad
- Facilidad para evolucionar
- Optimización estructurada
- Reflectividad Implantación abierta
- Separar, en lugar de ocultar Interfaz base
versus meta interfaz
26Á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
27Propuesta 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
28Contenidos 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
29Reflectividad
- 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.
30Arquitectura reflectiva
- Entidades base
- Computación base
- Sistema
- Actividades
- básicas
- Nivel base o Nivel sistema
- Meta nivel
Torre Reflectiva
- Meta entidades
- Meta computació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
31Definició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
32Modelos de reflectividad
- Exposición del paso de mensajes
- Definir y usar distintas
- clases de comunicación
- Carencia de continuidad
33Organización reflectiva del SOO
- Sistema base y meta sistema en el SOO
- Meta-interfaz
- Flujo de control
34Má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
35Sistema 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
36Meta-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
37Transferencia de control entre el nivel base y el
meta-nivel
- Eventos 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.
38Ventajas 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
39Contenidos 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
40Má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
41Estructura de referencia de la máquina abstracta
42Juego 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 ClaseDeLaQueHeredaDirec
tamente aggregation NombreDelAgregado
ClaseDelAgregado association NombreDelAsociado
ClaseDelAsociado methods ltNombreDelMétodogt
(ClaseDeLosParámetros) ClaseDeRetorno end
class
Relaciones de Agregación Referencia del objeto
que pertenece a la clase y clase del mismo.
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 ltNombreDelMétodogt (NombreParámetro
ClaseParámetro) ClaseRetorno refs
ltNombreReferencia ClaseReferenciagt instances
ltReferenciaObjeto Clasegt code ltDescripción
del cuerpo del métodogt endcode endmethod
Instancias que se utilizan y su tipo
43Juego de instrucciones OO de alto nivel (y 2)
- Instrucciones del Comportamiento
- Instrucciones para manipulación de objetos a
través de las referencias - new ltrefgt
- assign ltrefdestinogt, ltreforigengt
- delete ltrefgt
- Invocación de método a través de una referencia.
- ltrefgt.ltámbitogtltmétodogt(ltrefgt) ref
- ltrefgt?ltámbitogtltmétodogt(ltrefgt) ref
- Control de flujo.
- exit
- JT/JF ltrefboolgt, etiqueta
- JNULL/JNNULL ltrefgt, etiqueta
- JMP etiqueta
- handler etiqueta / throw
44Jerarquía de clases
- Clases primitivas
- Clases de usuario
45Má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
46Representació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
47Representació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
48Má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
49Paso 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.
50Call 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
51Call de cerca
Invocació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
Objeto Base O
method x instrucción 1 ? Ocall(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
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
52Send 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
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
53Send de cerca
Ejecució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
Intento acceso O suspensión/acceso
?
Fin ejecución instrucción send máquina abstracta
reanuda método origen
Objeto Base O
?
Suspensión del método origen durante el envío del
mensaje, luego ambos métodos se ejecutan en
paralelo
?
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
54Control de la concurrencia en la Máquina Abstracta
- paso 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
Estado Secuencial
Meta Objeto
Relación de Control de Concurrencia
55Planificación
- Ciclo de ejecución de la MA
- Ciclo 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.
- Cambia el valor de la referencia del sistema ct
- MA sigue ciclo de ejecución con otro hilo.
56Excepciones
- Instrucciones
-
- Lanzar 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
57Má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
58Reflectividad estructural en la máquina abstracta
Object
ExecObjectArea
_Class
Instance
InstanceArea
ReferenceArea
MetaObject
MetaSpace
ClassArea
Thread
ThreadArea
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
59Contenidos 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
60Diseño del sistema operativo orientado a objetos
- SO objetos ? Espacio de objetos del sistema
- Reflectividad (Máquina, SO)
- Comunicación
- Semántica del objeto
- Planificación
61Reflectividad en la invocación de métodos
- Aspectos 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
62Colaboración de emisor y receptor en la
invocación síncrona de un método
OO.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
Análisis del mensaje y toma de decisión
Meta-objeto Emisor
?
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
63Colaboración de Emisor y Receptor en la
Invocación Asíncrona de un método
OO?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
Meta-objeto Receptor
Ejecución síncrona de RSendE
Meta-nivel
Análisis de mensaje y toma de decisión
method RSendR if overload() delegate() else
lookup(m) ? send(O, m, args)
?
method RSendE ? call(MOReceptor, RSendR, args)
?
Meta-objeto Emisor
method NewMethod ? Enqueue() ?
Meta-objeto Planificador
?
64Ventajas de la reflectividad en la invocación de
métodos
- Soporte 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
65Diseño del sistema operativo orientado a objetos
- SO objetos ? Espacio de objetos del sistema
- Reflectividad (Máquina, SO)
- Comunicación
- Semántica del objeto
- Planificación
66Reflectividad en el modelo de concurrencia interna
- Requisitos 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í.
67Reflectividad en el modelo de concurrencia interna
- Ejecució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
68Colaboración del meta-objeto Sincronizador en el
meta-nivel
OO.m(args)
method m instrucción 1 ? instrucción n
Invocación de m Transferencia del nivel base al
meta-nivel
?
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 Métodos 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 conveniente Invocación efectiva de m
Ejecución de EntryMethod para comprobar la
adecuación del método invocado
Meta-espacio de O
69Reflectividad en el modelo de concurrencia interna
- Ejecució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
70Diseño del sistema operativo orientado a objetos
- SO objetos ? Espacio de objetos del sistema
- Reflectividad (Máquina, SO)
- Comunicación
- Semántica del objeto
- Planificación
71Reflectividad en la planificación
- Aspectos 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
72Jerarquía de planificadores en tiempo de ejecución
- Planificació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
73Visión dinámica del sistema
74Contenidos 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
75Prototipo del SOO
- Principios aplicados en el prototipo
- Aplicació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
76Diagrama de clases general
TContext
TThreadArea
A
Clase abstracta
Usa
Ejecuta
1
THandler
Tiene
TExecArea
muchos (cardinalidad
múltiple genérica)
Ancestros
Referencias
locales
TClass
TRef
Instancias
A
locales
Agregados
Asociados
this
Apunta a
Pertenece
0..1
TInstanceArea
TClassArea
TInstance
Raiz
1
Subinstancia
1..n
TIMetaSpace
TIMetaObject
77Jerarquía de clases del prototipo
- Para 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.
78Jerarquía de clases para la reflectividad
estructural
TClass
TCThread
TCExecObjectArea
TCMethod
TC_Class
TCInstanceArea
TCReferenceArea
TCInstruction
TClassArea
TCContext
TCInstance
TCThreadArea
Exposición del motor en tiempo de ejecución
Exposición de los elementos estructurales que
representan los objetos en tiempo de ejecución
Exposición de la Arquitectura de la Máquina
Máquina Abstracta
79Objetos internos, clases primitivas e instancias
Máquina Abstracta
Representación interna de
Instancia de
Expone a
Área de Threads
Área de Referencias
Object Thread Area
OI_Thread Area
Class Thread Area
Object ReferenceArea
Class ReferenceArea
OI_Reference Area
Object InstanceArea
Class InstanceArea
OI_Instance Area
Class ClassArea
Objetos internos de la Máquina Abstracta
OI_ClassArea
Object ClassArea
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
80Sistema operativo Jerarquía de clases para la
reflectividad del comportamiento
- El prototipo del Sistema Operativo consiste en
una jerarquía de clases Emisor, Receptor,
Planificador y Sincronizador que representan la
funcionalidad del sistema operativo
81Contenidos 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
82Conclusiones 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
83Conclusiones 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
84Contenidos 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
85Lí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
86Lí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
87TESIS 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