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?

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

© 2003, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática