En donde un subsistema es el encargado de iniciar y detener otros subsistemas.
Control basado en eventos
En donde cada subsistema puede responder a eventos generados por otros subsistemas o por el entorno del sistema.
Modelo de llamada-retorno
Modelo de subrutina top-down donde el control comienza en el tope de una jerarquía de subrutinas y se mueve hacia abajo. Aplicable a sistemas secuenciales.
• Permite al diseñador del software construir una estructura de programa relativamente fácil de modificar y ajustar a escala. • Es relativamente sencillo analizar los flujos de control y conocer cómo responderá el sistema a cierto tipo de entradas.
Modelo de administrador
Aplicable a sistemas concurrentes. Un componente del sistema controla la parada, arranque y coordinación de otros procesos del sistema. Puede ser implementado en sistemas secuenciales
Arquitectura de programacion principal/subprograma
Descompone las funciones en una jerarquía de control donde un programa «principal» llama a un número de componentes del programa, los cuales, en respuesta, pueden también llamar a otros componentes.
Arquitecturas de llamada de procedimiento remoto
Los componentes de la arquitectura de programa principal están distribuidos entre varias computadoras en una red.
Modelos de transmisión (broadcast).
Un evento se transmite a todos los subsistemas. El evento puede ser procesado por cualquier subsistema que esté en capacidad de hacerlo.
Modelos dirigidos por interrupciones
Usados en sistemas de tiempo real donde las interrupciones externas son detectadas por un manejador y enviadas a otros componentes para ser procesadas.
Modelo de transmisión
*Efectivo para integrar subsistema en diferentes computadores en una red. *Los subsistemas deciden qué eventos requieren y el controlador asegura que estos eventos sean enviados a dichos subsistemas.
• La evolución es relativamente sencilla pues se pueden integrar nuevos subsistemas registrando sus eventos en el controlador de eventos. • Cualquier subsistema puede activar otros subsistemas sin conocer su nombre o ubicación. • Los subsistemas se pueden incrementar en máquinas distribuidas, de forma transparente para otros subsistemas.
• Los subsistemas no saben si los eventos se manejarán ni cuando lo harán. • Cuando un subsistema genera un evento no conoce qué otros subsistemas han registrado un interés en ese evento.
permite dar respuestas rápidas a los eventos.
• Complejo de programar y difícil de validar. • Si el número de interrupciones está limitado por el hardware, cuando se alcanza el límite no se pueden gestionar más tipos de eventos (se pueden asignar distintos tipos de eventos a una interrupción, dejando que el controlador detecte qué evento ha ocurrido, pero disminuye el rendimiento.