Fork (systémové volání): Porovnání verzí

Smazaný obsah Přidaný obsah
m +kat
Doplnění, upřesnění
Řádek 1:
{{DISPLAYTITLE:fork (systémové volání)}}
'''fork()''' je v [[Informatika (počítačová věda)|informatice]] speciální [[systémové volání]] poskytované zejména[[UN*X|unixovým]] [[UnixKernel|UNIXovýmijádrem]] operačními[[Operační systémy,systém|operačního kterésystému]]. Jeho sloužívyvoláním provznikne vytvořeníz novéhorodičovského [[procesProces (program)|procesu]]. Ponový jehoproces zavolání(potomek) programemtak, že se aktuální proces rozdvojí na dva identické procesy (s různými PID) a běh programu tak pokračuje dalším příkazem ve dvou vzájemně nezávislých větvích. Program může rozlišit, ve které větvi se nachází, podle návratové hodnoty volání. Rodičovskému procesu býváje vráceno [[pid]]PID nového procesu, zatímco novému procesu je vrácena nula; negativní návratová hodnota signalizuje chybu.
 
V unixových systémech je <code>fork()</code> jediným nástrojem pro vytváření nových procesů, čímž je vytvořena jednotná hierarchie procesů ([[Strom (datová struktura)|strom]] s jediným kořenem s procesem PID=1). Jeho prostřednictvím nevzniká pouze první proces v systému (typicky [[init]]), který je vytvářen přímo jádrem operačního systému při startu systému. Výjimkou jsou též jaderná vlákna ({{Vjazyce2|en|''kernel thread''}}) a klasická [[Vlákno (program)|vlákna]], která vznikají systémovým voláním <code>[[clone (systémové volání)|clone()]]</code>.
V [[Unix|UNIXu]] je toto volání jediným nástrojem pro vytváření nových procesů. Prostřednictvím ''fork()'' nevzniká pouze proces [[init]] a obvykle také [[vlákno jádra|vlákna jádra]].
 
== Související články ==
==Odkazy==
* [[Execexec (systémové volání)|Exec]]
 
*[http://opengroup.org/onlinepubs/009695399/functions/fork.html Systémové volání fork()] (anglicky)
== Externí odkazy ==
* [http://opengroup.org/onlinepubs/009695399/functions/fork.html SystémovéPopis systémového volání fork()] (anglicky)
 
{{Pahýl - software}}