Klíčový rozdíl – systémové volání a volání knihovny
Systémové volání a volání knihovny souvisí s operačním systémem počítače. Počítač může pracovat ve dvou režimech; jmenovitě uživatelský režim a režim jádra. Klíčový rozdíl mezi systémovým voláním a voláním knihovny je v tom, že systémové volání je funkce poskytovaná jádrem pro vstup do režimu jádra pro přístup k hardwarovým prostředkům, zatímco volání knihovny je funkce poskytovaná programovacími knihovnami. Například open () je systémové volání a fopen () je volání knihovny. Když fopen () v programu C, používá knihovnu záhlaví stdio.h. Poté se z jádra použije systémové volání ‚open (),‘k dokončení úlohy otevření souboru.
Co je systémové volání?
Počítač pracuje ve dvou režimech. Jsou to uživatelský režim a režim jádra. Některé procesy běží na počítačovém systému. Proces je spuštěný program. Když jsou spuštěny aplikační programy, počítač je v uživatelském režimu. Pokud je vyžadován hardwarový prostředek, proces odešle požadavek do jádra a počítač přejde do režimu jádra. Tyto požadavky jsou odesílány pomocí systémových volání. Počítač mezi těmito dvěma režimy často přepíná. Po dokončení úlohy se počítač vrátí z režimu jádra zpět do uživatelského režimu. Tento přechod režimu je známý jako „přepínání kontextu“. Systémová volání jsou rozhraním mezi operačním systémem a uživatelskými programy.
Obrázek 01: Systémová volání
Existují různé typy systémových volání. Vytvoření, ukončení procesu, provedení procesu, přidělení a uvolnění paměti lze provést pomocí „Process Control System Calls“. „Volání systému správy souborů“lze použít k vytváření, odstraňování, čtení, zápisu, otevírání a zavírání souborů. Proces vyžaduje určité zdroje k dokončení provádění. Vyžádání a uvolnění zařízení se provádí prostřednictvím „volání systému správy zařízení“. „Systémová volání správy informací“lze použít k získání systémových dat a k získání procesů a atributů zařízení. Procesy spolu komunikují. Tato komunikace se provádí pomocí „volání komunikačního systému“. Odesílání informací o stavu, vytváření a mazání komunikačních spojení a odesílání a přijímání zpráv lze provádět pomocí komunikačních systémových volání.
Co je volání knihovny?
Volání knihovny je funkce poskytovaná programovacími knihovnami. Před voláním knihovny by měla být tato knihovna importována. Volání knihovny může záviset na systémovém volání.
V jazyce C lze tyto funkce použít v programu zahrnutím hlavičkových souborů. Soubory záhlaví jsou zahrnuty pomocí direktivy předběžného zpracování include. Preprocesor prohledá zadaný soubor, než bude pokračovat se zbytkem zdrojového souboru. Některé běžné funkce knihovny jsou následující, knihovna „math.h“obsahuje funkce související s matematickými operacemi. Knihovna „stdio.h“poskytuje funkce pro provádění vstupu a výstupu. „fopen()“otevře označený název souboru. "fclose()" zavře soubor. “printf() se používá k odeslání naformátovaného výstupu na standardní výstup. „fprintf ()“se používá k odeslání naformátovaného výstupu do proudu. „scanf()“se používá ke čtení formátovaného vstupu ze standardního vstupu. „stdlib.h“poskytuje funkce pro správu paměti a „time.h“poskytuje funkce pro manipulaci s časem a datem.
Jaká je podobnost mezi systémovým voláním a voláním knihovny?
Oba souvisí s operačním systémem
Jaký je rozdíl mezi systémovým voláním a voláním knihovny?
Systémové volání vs volání knihovny |
|
Systémové volání je funkce poskytovaná jádrem pro přechod do režimu jádra pro přístup k hardwarovým prostředkům. | Volání knihovny je funkce poskytovaná programovací knihovnou. |
Způsob provedení | |
Systémové volání je provedeno v režimu jádra. | Volání knihovny se provádí v uživatelském režimu. |
Přepínání režimů | |
A Systémové volání přepnutí z uživatelského režimu do režimu jádra. | Ve volání knihovny nedochází k přepínání z uživatelského režimu do režimu jádra. |
Přenositelnost | |
Systémové volání není přenosné. | Volání z knihovny je přenosné. |
Shrnutí – systémové volání vs volání knihovny
V jádře je implementováno systémové volání a v uživatelském prostoru je implementováno volání knihovny. Rozdíl mezi systémovým voláním a voláním knihovny je v tom, že systémové volání je funkce poskytovaná jádrem pro vstup do režimu jádra pro přístup k hardwarovým prostředkům a volání knihovny je funkce poskytovaná programovacími knihovnami. Volání knihovny mohou při dokončení úlohy záviset na systémových voláních. open (), fork (), cd () jsou některé příklady systémových volání. fopen (), fprintf () jsou příklady volání knihovny.
Stáhněte si PDF verzi systémového volání vs volání knihovny
Můžete si stáhnout PDF verzi tohoto článku a použít ji pro offline účely podle citace. Stáhněte si prosím PDF verzi zde Rozdíl mezi systémovým voláním a voláním knihovny