fbpx
Wikipedia

Bifurcación (sistema operativo)

Este artículo se refiere a la bifurcación de procesos en sistemas operativos, consulta Bifurcación (informática) para otros usos.

Una bifurcación o fork, cuando se aplica en el contexto de un lenguaje de programación o un sistema operativo, hace referencia a la creación de una copia de sí mismo por parte de un programa, que entonces actúa como un "proceso hijo" del proceso originario, ahora llamado "padre". Los procesos resultantes son idénticos, salvo que tienen distinto número de proceso (PID).

Más generalmente, una bifurcación en un entorno multihilo significa que un hilo de ejecución se bifurca.

UNIX

En el caso de los sistemas operativos derivados de UNIX, la llamada al sistema fork permite realizar una bifurcación del proceso. Esta llamada devuelve el identificador de proceso del proceso hijo al padre y un 0 al proceso hijo.

Aquí hay un ejemplo escrito en lenguaje de programación C que muestra el uso de esta llamada. El código que se ejecute depende de si el proceso es padre o hijo.

#include <stdio.h>  #include <unistd.h>  #include <sys/types.h>  int main(void) { pid_t idHijo; pid_t idPropio; idPropio = getpid(); //Se obtiene el id del proceso actual idHijo = fork(); //Se crea un proceso 'hijo' if (idHijo == -1) { //Si hay un código menor que cero, hubo un error printf("Error al realizar la bifurcación"); //Se notifica al usuario return 1; //Se interrumpe la ejecución del proceso con una salida distinta a cero } if (idHijo == 0) //la ejecución de la llamada al sistema fork devuelve un cero al proceso 'hijo' printf("Soy el hijo con id %ld id proceso original %ld\n", (long)getpid(), (long)idPropio); else //la ejecución de la llamada al sistema fork devuelve el identificador al proceso 'padre' printf("Soy el padre con id %ld id proceso original %ld\n", (long)getpid(), (long)idPropio); return 0; } 

Este código imprimirá:

 Soy el padre con id 1 id proceso original 1 Soy el hijo con id 2 id proceso original 1 

El orden de la salida será determinada por diversos parámetros del núcleo del sistema operativo. Como se puede observar, el valor contenido en la variable idPropio es compartido por proceso padre e hijo; sin embargo, la referencia a la variable no es la misma y su posterior modificación en cada código, ya sea del padre o del hijo, no se verá reflejada en ambos procesos.

Véase también

  •   Datos: Q14675

bifurcación, sistema, operativo, este, artículo, refiere, bifurcación, procesos, sistemas, operativos, consulta, bifurcación, informática, para, otros, usos, bifurcación, fork, cuando, aplica, contexto, lenguaje, programación, sistema, operativo, hace, referen. Este articulo se refiere a la bifurcacion de procesos en sistemas operativos consulta Bifurcacion informatica para otros usos Una bifurcacion o fork cuando se aplica en el contexto de un lenguaje de programacion o un sistema operativo hace referencia a la creacion de una copia de si mismo por parte de un programa que entonces actua como un proceso hijo del proceso originario ahora llamado padre Los procesos resultantes son identicos salvo que tienen distinto numero de proceso PID Mas generalmente una bifurcacion en un entorno multihilo significa que un hilo de ejecucion se bifurca UNIX EditarEn el caso de los sistemas operativos derivados de UNIX la llamada al sistema fork permite realizar una bifurcacion del proceso Esta llamada devuelve el identificador de proceso del proceso hijo al padre y un 0 al proceso hijo Aqui hay un ejemplo escrito en lenguaje de programacion C que muestra el uso de esta llamada El codigo que se ejecute depende de si el proceso es padre o hijo include lt stdio h gt include lt unistd h gt include lt sys types h gt int main void pid t idHijo pid t idPropio idPropio getpid Se obtiene el id del proceso actual idHijo fork Se crea un proceso hijo if idHijo 1 Si hay un codigo menor que cero hubo un error printf Error al realizar la bifurcacion Se notifica al usuario return 1 Se interrumpe la ejecucion del proceso con una salida distinta a cero if idHijo 0 la ejecucion de la llamada al sistema fork devuelve un cero al proceso hijo printf Soy el hijo con id ld id proceso original ld n long getpid long idPropio else la ejecucion de la llamada al sistema fork devuelve el identificador al proceso padre printf Soy el padre con id ld id proceso original ld n long getpid long idPropio return 0 Este codigo imprimira Soy el padre con id 1 id proceso original 1 Soy el hijo con id 2 id proceso original 1 El orden de la salida sera determinada por diversos parametros del nucleo del sistema operativo Como se puede observar el valor contenido en la variable idPropio es compartido por proceso padre e hijo sin embargo la referencia a la variable no es la misma y su posterior modificacion en cada codigo ya sea del padre o del hijo no se vera reflejada en ambos procesos Vease tambien EditarBomba fork Datos Q14675 TuberiaObtenido de https es wikipedia org w index php title Bifurcacion sistema operativo amp oldid 125315731, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos