next up previous contents
Next: Detección de terminación Up: Concurrencia y Distribución Previous: Prioridades

Terminación de programas

¿Cuáles pueden ser las causas por las que se termina o no se termina un programa?

terminar con éxito
terminar con excepción
terminar con suicidio
terminar por asesinato
terminar por redundancia
terminar nunca a propósito
terminar nunca por fallo

Un programa secuencial termina cuando se ha ejecutado su última instrucción. El sistema operativo suele saber cuando ocurre eso.

Sin embargo puede ser difícil detectar cuando un programa concurrente ha terminado, sobre todo cuando también el sistema operativo sea distribuido.

Un programa concurrente termina cuando todas sus partes secuenciales han terminado.

Si el sistema distribuido contiene un procesador central que siempre está monitorizando a los demás, se puede implementar la terminación igual que en un sistema secuencial.

Si el sistema no dispone de tal procesador central es más difícil porque no se puede observar fácilmente el estado exacto del sistema dado que en especial los canales de comunicación se resisten a la inspección y pueden contener mensajes aún no recibidos.



Subsecciones
next up previous contents
Next: Detección de terminación Up: Concurrencia y Distribución Previous: Prioridades
© 2002, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática