Rozdíl mezi voláním systému a voláním funkce

Rozdíl mezi voláním systému a voláním funkce
Rozdíl mezi voláním systému a voláním funkce

Video: Rozdíl mezi voláním systému a voláním funkce

Video: Rozdíl mezi voláním systému a voláním funkce
Video: L-7.1: File System in Operating System | Windows, Linux, Unix, Android etc. 2024, Listopad
Anonim

Systémové volání vs volání funkce

Typický procesor provádí instrukce jednu po druhé. Ale mohou nastat případy, kdy procesor musí zastavit aktuální instrukci a spustit nějaký jiný program nebo segment kódu (ubytovaný na nějakém jiném místě). Poté se procesor vrátí k normálnímu provádění a pokračuje tam, kde skončil. Takovými příležitostmi jsou systémové volání a volání funkce. Systémové volání je volání podprogramu zabudovaného do systému. Volání funkce je volání podprogramu v rámci samotného programu.

Co je systémové volání?

Systémová volání poskytují programům běžícím na počítači rozhraní pro komunikaci s operačním systémem. Když program potřebuje požádat o službu (pro kterou nemá oprávnění to sám provést) z jádra operačního systému, použije systémové volání. Procesy na uživatelské úrovni nemají stejná oprávnění jako procesy přímo interagující s operačním systémem. Například ke komunikaci s externím I/O zařízením nebo k interakci s jinými procesy používá program systémová volání.

Co je volání funkce?

Volání funkce se také nazývá volání podprogramu. Podprogram (také známý jako procedura, funkce, metoda nebo rutina) je součástí většího programu, který je zodpovědný za provedení konkrétního úkolu. Větší program může vykonávat velké pracovní zatížení a podprogram může provádět pouze jednoduchý úkol, který je také nezávislý na zbývajícím programovém kódování. Funkce je kódována tak, že ji lze volat vícekrát a z různých míst (i z jiných funkcí). Když je volána funkce, procesor může přejít na místo, kde se nachází kód funkce, a provádět instrukce funkce jednu po druhé. Po dokončení funkcí se procesor vrátí přesně tam, kde skončil, a bude pokračovat v provádění od další instrukce. Funkce jsou skvělým nástrojem pro opětovné použití kódu. Mnoho moderních programovacích jazyků podporuje funkce. Kolekce funkcí se nazývá knihovna. Knihovny se často používají jako prostředky pro sdílení a obchodování softwaru. V některých případech může být celý program sekvencí podprogramů (např. vláknová kompilace kódu).

Jaký je rozdíl mezi voláním systému a voláním funkce?

Systémové volání je volání podprogramu zabudovaného v systému, zatímco volání funkce je volání podprogramu v rámci programu. Na rozdíl od volání funkcí se systémová volání používají, když program potřebuje provést nějakou úlohu, ke které nemá oprávnění. Systémová volání jsou vstupní body do jádra operačního systému a nejsou propojena s programem (jako volání funkcí). Na rozdíl od systémových volání jsou volání funkcí přenosná. Časová režie systémového volání je větší než režie volání funkce, protože musí proběhnout přechod mezi uživatelským režimem a režimem jádra. Systémová volání se provádějí v adresovém prostoru jádra, zatímco volání funkcí se provádějí v uživatelském adresovém prostoru.

Doporučuje: