3.310 cursos gratis
6.275.657 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Procesos en C. Sincronización (segunda parte) > Procesos en C. Sincronización de procesos

Procesos en C. Sincronización (segunda parte)

Autor: Editorial McGraw-Hill
Curso: 5/5 5/5 (1 opinión) |789 alumnos|Fecha publicación: 21/10/2008

Capítulo 13:

 Procesos en C. Sincronización de procesos

Sincronización de procesos

Una de las principales utilidades de las señales es la sincronización entre dos procesos. Por sincronización se entiende que un proceso realizará un conjunto de instrucciones cuando otro proceso se lo indique, o bien paralizará una actividad hasta que se cumpla una condición determinada.

Hasta que no conozcamos los medios de comunicación que permiten intercambiar datos, la única posibilidad que tenemos para que dos procesos conozcan el pid de otro proceso es la ejecución de dos procesos, uno padre y otro hijo. En este sentido, vamos a desarrollar un ejemplo en el que un proceso padre y un proceso hijo se ejecutan de forma síncrona; el código de lo que realiza cada uno de los procesos no es relevante para el ejemplo.

La ejecución del proceso padre crea, en primer lugar, el proceso hijo; éste comenzará entonces a ejecutar un código cualquiera, de forma independiente de lo que debe ejecutar el proceso padre. Cuando llegue el momento en que el hijo necesite que el padre realice un conjunto de acciones, quedará a la espera de que el padre termine las operaciones oportunas y envíe una señal para que comiencen a ejecutarse las acciones del hijo; esto es lo que llamamos ejecutar dos procesos de forma sincronizada. El proceso padre enviará una señal SIGUSR1 al proceso hijo cuando desee que comience a ejecutarse. Una vez que el hijo haya terminado las acciones que tenía asignadas, enviará una señal SIGUSR1 al proceso padre.

Evidentemente, la ejecución del hijo depende de la ejecución del padre. Si en el proceso padre ocurre algún error en la ejecución de acciones previas a la llamada al hijo, o bien se determina que no es necesario que el proceso hijo continúe ejecutándose, el proceso padre envía una señal SIGTERM para que finalice el proceso hijo sin realizar ninguna acción. Cuando el proceso padre no puede llevar a cabo el trabajo que tiene asignado, no tiene sentido que el hijo realice ninguna operación.

Esta secuencia de acciones ejecutadas en paralelo se puede repetir infinitamente; es decir, el bucle de acciones conjuntas sería:

1. El proceso padre crea el proceso hijo.
2. El proceso padre ejecuta un conjunto de acciones a partir de las cuales se desea que el proceso hijo continúe.
3. Si no hay error y se desea que el hijo ejecute sus acciones:
3.1. El proceso padre envía una señal SIGUSR1 al hijo para que comience.
3.2. El proceso hijo realiza un conjunto de acciones.
3.3. El proceso hijo envía la señal SIGUSR1 al padre.
3.4. Volvemos a 2.
4. En caso contrario:
4.1. El proceso padre envía una señal SIGTERM al hijo para que termine.
4.2. El proceso hijo termina.
4.3. El proceso padre termina.

El código completo de las acciones que se realizan en los procesos padre e hijo se encuentra en las rutinas de tratamiento de la señal SIGUSR1, que es distinta para el padre y el hijo. Evidentemente, para que todo el proceso comience, se debe llamar por primera vez a la rutina de gestión de la señal SIGUSR1 en el padre, sin esperar a la recepción de la señal; es decir, directamente desde el código.

Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Información de los programas con certificado

Hay 1 opinión. Opina sobre este curso.


Cursos similares a Procesos en C. Sincronización (segunda parte)


Cursos Valoración Alumnos Vídeo
El Ceremonial: estrategia de comunicación
El protocolo Ceremonial, que se aplica en la actividad diplomática y en las ceremonias oficiales, ha ganado su espacio en el medio empresarial en los ... [06/11/09]
0/5 67  
Cambio global de la sociedad
La humanidad experimenta un cambio de época, no una época de cambios. Transformaciones veloces, cualitativas y simultáneas en las relaciones de producción, relaciones de ... [24/11/06]
 4,75/5 1.697  
Access con Visual Basic
Microsoft Access con Visual Basic, aprende a crear una base de datos en Access usando Visual Basic. Veremos también cómo crear tablas e introducir... [01/07/09]
 4,91/5 4.649  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail