Modelo de Computaci - PowerPoint PPT Presentation

About This Presentation
Title:

Modelo de Computaci

Description:

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 – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 88
Provided by: Lour186
Category:

less

Transcript and Presenter's Notes

Title: Modelo de Computaci


1
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

2
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

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
  • 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

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 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

7
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

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ó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

11
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
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

13
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

14
Modelo Síncrono
  • Sencillo
  • Extendido en los lenguajes
  • Poca sobrecarga
  • Limita el nivel de concurrencia

15
Modelo Asíncrono
  • Aumento del nivel de concurrencia
  • Primitiva explícita de sincronización
  • Complica el modelo de programación

16
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

17
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

18
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

19
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

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

21
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

22
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

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

24
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

25
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

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

27
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

28
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

29
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.

30
Arquitectura reflectiva
  • Entidades 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

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
31
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

32
Modelos de reflectividad
  • Modelo MetaClase
  • Modelo MetaObjeto
  • Exposición del paso de mensajes
  • Definir y usar distintas
  • clases de comunicación
  • Carencia de continuidad

33
Organización reflectiva del SOO
  • Sistema base y meta sistema en el SOO
  • Meta-interfaz
  • Flujo de control

34
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

35
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

36
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

37
Transferencia 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.

38
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

39
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

40
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

41
Estructura de referencia de la máquina abstracta
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 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
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 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

44
Jerarquía de clases
  • Clases primitivas
  • Clases de usuario

45
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

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
  • Distribución
  • Seguridad e integridad
  • Importancia relación objeto-hilo

48
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

49
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.

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
?
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
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
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
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
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
54
Control 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
55
Planificació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.
  • Requisamiento
  • Cambia el valor de la referencia del sistema ct
  • MA sigue ciclo de ejecución con otro hilo.

56
Excepciones
  • 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
  • handler Etiqueta
  • throw

57
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

58
Reflectividad 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
59
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

60
Diseñ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

61
Reflectividad 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

62
Colaboració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
63
Colaboració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
?
64
Ventajas 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

65
Diseñ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

66
Reflectividad 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í.

67
Reflectividad 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

68
Colaboració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
69
Reflectividad 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

70
Diseñ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

71
Reflectividad 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

72
Jerarquí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

73
Visión dinámica del sistema
74
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

75
Prototipo 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

76
Diagrama 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
77
Jerarquí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.

78
Jerarquí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
79
Objetos 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
80
Sistema 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

81
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

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ó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

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
Write a Comment
User Comments (0)
About PowerShow.com