Fork (sistema eragileak)

Wikipedia(e)tik

Artikulu hau tarea-anitzeko edo hari-anitzeko sistema eragileetako prozesuen "fork" edo "semeei" buruz da.

Ordenagailu terminologian ordenagailu prozesu batek bere buruaren kopia bat egiteari esaten zaio fork, non honek ondoren prozesu originalaren edo aita prozesuaren seme prozesu bezala funtzionatzen duen. Normalean, hari-anitzeko ingurune batean fork bat egitean exekuzio hari bat duplikatu egin dela izaten da.

Unix eta Unix-moduko sistema eragileetan, prozesu aita eta prozesu semea fork() sistema deialdiaren erantzunaren arabera hautatzen dira. Seme prozesuan, fork()-en erantzuna 0 da, eta prozesu aitaren kasuan sortu berri den prozesuaren PIDa.

Fork-i deitzearekin bat, semearentzat helbide espazio ezberdin bat egongo da. Seme prozesuak aita prozesuaren segmentuen kopia exaktu bat izango du. Prozesu semeak eta aitak batak bestearekiko guztiz independiente funtzionatu dezakete.

[aldatu] Adibidea

Hemen C programazio lengoaia idatzitako kode bat. "Seme prozesua"n eta "Aita prozesua"n sekzioak batera exekutatuko dira

   int pid;

   pid = fork();

   if(pid == 0)
   {
      /* Seme prozesua:
       * fork()-ek 0 itzultzean
       * seme prozesuan gaude.
       * Orain 10 harte zenbatu, bateik bestera segundua itxaroten.
       */
      int j;
      for(j=0; j < 10; j++)
      {
         printf("Semea: %d\n", j);
         sleep(1);
      }
      _exit(0); /* Ohartu ez dugula exit() erabiltzen */
   }
   else if(pid > 0)
   { 
      /* Aita prozesua:
       * Bestela aita prozesuan gaude.
       * Berriz 10 arte zenbatu.
       */
      int i;
      for(i=0; i < 10; i++)
      {
         printf("Aita: %d\n", i);
         sleep(1);
      }
   }
   else
   {   
      /* Errore kontrola. */
      fprintf(stderr, "Ezin izan da fork egin");
      exit(1);
   }

Kode honek honakoa erakutsiko du:

 aita: 0
 semea: 0
 semea: 1
 aita: 1
 aita: 2
 semea: 2
 semea: 3
 aita: 3
 aita: 4
 semea: 4
 semea: 5
 aita: 5
 aita: 6
 semea: 6
 semea: 7
 aita: 7
 aita: 8
 semea: 8
 semea: 9
 aita: 9

Irteera ordena kernelak ezartzen du.

[aldatu] Ikus, gainera

  • Seme prozesu
  • Aita prozesu
Beste hizkuntzak