Metodologías para sistemas de tiempo real
Cuando viajamos en un avión sabemos que el piloto debe solicitar permiso para despegar o para conocer la ruta que debe seguir, o la altura de vuelo. Todo esto se lo indica un controlador de vuelo que se ayuda de un sistema informático. ¿Qué pasaría si hay muchos aviones en vuelo que saturan el sistema informático y el controlador aéreo tiene que esperar para dar una orden a dos aviones que intentan aterrizar al mismo tiempo en el mismo aeropuerto? Desde luego lo mejor es no estar en esos aviones. Un sistema informático que debe captar señales (en este caso del radar y de los sistemas de
comunicación de los aviones) sin perder ninguna y que debe contestar a las mismas antes de un
determinado momento, es un sistema de tiempo real. En estos sistemas la velocidad de respuesta es
fundamental porque el usuario, en este caso el controlador aéreo y el piloto, no pueden esperar.
No debemos confundir los sistemas de tiempo real con los sistemas interactivos, en los que hay que
responder lo más rápido posible al usuario pero no hay riesgo de perder señales o datos a la entrada, ni
un límite de tiempo en la respuesta.
• Por ejemplo, un sistema interactivo que controla las operaciones de venta en un supermercado
interesa que responda rápido, pero si tarda, el único problema es que hay que esperar. No
perderemos datos porque no habrá otra venta hasta que termine la anterior, y no hay un límite de
tiempo porque el cliente puede esperar. Esto es un inconveniente pero no un problema crítico
como un accidente aéreo.
• Otro ejemplo sería un sistema que controle las máquinas de una fábrica donde las tareas deben
sincronizarse perfectamente.
Para desarrollar estos sistemas será necesario disponer de metodologías de desarrollo del software que
permitan especificar este tipo de situaciones de tiempo real y las posibles soluciones. ¿Qué incluirán
estas metodologías? Deberán establecer mecanismos para modelar sistemas que:
• Controlen la comunicación y sincronización entre tareas.
• Gestionen los procesos concurrentes que se ejecutan en paralelo.
• Respondan ante eventos externos como puede ser una nueva señal.
• Reciban datos y señales continuas que no pueden perderse.
• Interrumpan los procesos para pasar a otra acción: por ejemplo al producirse una señal de
alarma.
No hay comentarios.:
Publicar un comentario