Requisito previo: fork() en C , clasificación en fork()
Declaración del problema : escriba un programa para buscar el elemento clave en el proceso principal e imprima la clave que se buscará en el proceso secundario.
Ejemplos –
Input : Key = 10; array[5] = {3, 8, 4, 10, 80}; Output: Parent process key is present in array Child process numbers to be search is 10
Explicación : aquí, usamos la función fork() para crear dos procesos, un proceso secundario y uno principal.
- fork() devuelve un valor mayor que 0 para el proceso principal para que podamos realizar la operación de búsqueda .
- para el proceso secundario fork() devuelve 0 para que podamos realizar la impresión del valor de la clave que se buscará.
- Aquí estamos usando un algoritmo de búsqueda simple para buscar el elemento clave en la array dada.
- Estamos utilizando los valores devueltos por fork() para saber qué proceso es un proceso secundario o uno principal.
Nota: en algún momento, no es necesario que el proceso secundario se ejecute primero o que el proceso principal reciba primero la CPU asignada, a cualquier proceso se le puede asignar la CPU, en algún momento cuántico. Además, la identificación del proceso puede diferir durante diferentes ejecuciones.
Código –
// C++ program to demonstrate searching // in parent and printing result // in child processes using fork() #include <iostream> #include <unistd.h> using namespace std; // Driver code int main() { int key = 10; int id = fork(); // Checking value of process id returned by fork if (id > 0) { cout << "Parent process \n"; int a[] = { 3, 8, 4, 10, 80 }; int n = 5; int flag; int i; for (i = 0; i < n; i++) { if (a[i] != key) { flag = 0; } else { flag = 1; } } if (flag == 1) { cout << "key is not present in array"; } else { cout << "key is present in array"; cout << "\n"; } } // If n is 0 i.e. we are in child process else { cout << "Child process \n"; cout << "numbers to be search is "; cout << key; } return 0; }
Producción –
Parent process key is present in array Child process numbers to be search is 10
Este artículo es una contribución de Pushpanjali Chauhan . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA