Systémové volání
Systémové volání je požadavek, který program odešle operačnímu systému. Umožňuje aplikaci přistupovat k funkcím a příkazům z API operačního systému.
Systémová volání provádějí operace na úrovni systému, například komunikaci se zařízeními hardware a čtení a zápis souborů. Pomocí systémových volání mohou vývojáři používat předem napsané funkce podporované operačním systémem (OS), místo aby je psali od začátku. To zjednodušuje vývoj, zvyšuje stabilitu aplikací a zlepšuje jejich „přenositelnost“ mezi různými verzemi operačního systému.
Jak systémová volání fungují
Aplikace běží v oblasti paměti nazývané uživatelský prostor. Systémové volání přistupuje k jádru operačního systému, které běží v prostoru jádra. Když aplikace provede systémové volání, musí nejprve požádat jádro o oprávnění. To lze provést pomocí požadavku na přerušení, který pozastaví aktuální proces a předá řízení jádru.
Pokud je požadavek povolen, jádro ho zpracuje, například vytvoří nebo odstraní soubor. Po dokončení operace předá jádro výstup aplikaci, která přenese data z prostoru jádra do uživatelského prostoru v paměti. Aplikace přijme výstup z jádra jako vstup. Ve zdrojovém kódu programu to může být hodnota parametru nebo návratová hodnota funkce. Jakmile aplikace vstup přijme, pokračuje v procesu.
Základní systémové volání, například získání systémového data a času, může trvat několik nanosekund. Pokročilejší systémové volání, například navázání komunikace se zařízením sítě, může vyžadovat několik sekund. Aby se předešlo úzkým místům, většina operačních systémů spouští pro každé systémové volání samostatné jádrové vlákno. Moderní operační systémy podporují multithreading, což znamená, že mohou zpracovávat více systémových volání současně.
Otestujte své znalosti