Ejercicios sobre creación y sincronización de hebras

Uso de mutex:

1.- Analice y ejecute el siguiente programa. ¿Se produces inconsistencias al no usar sincronización entre hebras?

  Modifique el programa de manera que en lugar de cambiar el valor de "value" entre esos dos valores, la hebra en changeValue haga un or-exclusivo binario de valor previo de la variable value.

  ¿Cómo cambia el resultado el programa usando las dos modalidades de ejecución? (no y sin exclusión mutua)

2.- Vea una modificación del programa previo para manejar el cambio entre dos strings. Verifique si se producen inconsistencias.

Uso de mutex y variables de condición:

3.- Analice este programa y opine sobre su estrategia para determinar el tiempo que una hebra está en estado ready (esperando por ingreso a CPU). Compile, corra el programa y comente sobre sus resultados.

4.- Analice y ejecute este programa. Revise un ejemplo de ejecución al final de esta página y estudie las consideraciones adicionales que se deben tener al hacer uso de señales en programación multi-hebras.

Comente sobre el uso de sleep como mecanismo para invocar tareas de manera periódica.

Uso de mutex, variables de condición y manejo selectivo de señales en hebras:

5.- Modifique el programa previo para que el balde (bucket) gotee de manera regular y el envío de paquetes sólo se efectúe cuando el balde tenga capacidad libre para recibir más "bytes".