Fork (systémové volání)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Fork (systémové volání) je systémové volání v operačním systému, které umožňuje vytvoření nového procesu nebo programu v rámci běžícího programu. Toto systémové volání se používá v UNIXových a podobných operačních systémech a je velmi užitečné pro paralelní zpracování, jako například vytváření vláken nebo procesů, které mohou provádět různé činnosti bez vzájemného ovlivňování. Fork funguje tak, že se vytvoří identická kopie běžícího programu (rodičovský proces) a tato kopie (potomké) pokračuje v běhu samostatně. Rozdíly mezi rodičovským a potomkem procesem jsou v jejich procesním identifikátoru (PID) a hodnotě návratu z funkce fork. Poté může rodičovský proces pokračovat ve svém běhu nezávisle na potomkovi. Systémové volání fork je často používáno v kombinaci s dalšími systémovými voláními, jako je například exec, které umožňuje nahradit běžící program novým programem. Tím lze dosáhnout vytvoření hierarchie procesů, které spolu komunikují nebo provádějí rozdílné úkoly. Tato stránka na české Wikipedii poskytuje podrobné informace o systémovém volání fork, včetně konkrétních příkladů a použití v různých operačních systémech.

fork je v informatice speciální systémové volání poskytované unixovým jádrem operačního systému. Jeho vyvoláním vznikne z rodičovského procesu nový proces (potomek) tak, že se aktuální proces rozdvojí na dva identické procesy (s různými PID) a běh programu 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 je vráceno 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 fork jediným nástrojem pro vytváření nových procesů, čímž je vytvořena jednotná hierarchie procesů (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. +more Výjimkou jsou též jaderná vlákna a klasická vlákna, která vznikají systémovým voláním clone.

Externí odkazy

http://opengroup.org/onlinepubs/009695399/functions/fork.html - popis systémového volání fork (anglicky)

Kategorie:Systémové volání Kategorie:Unix Kategorie:POSIX Kategorie:Procesy (výpočetní technika)

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top