Systémové volání v OS (Operating System): Co je to, typy a příklady
Co je systémové volání Operating systém?
A systémové volání je mechanismus, který poskytuje rozhraní mezi procesem a operačním systémem. Jedná se o programovou metodu, ve které počítačový program požaduje službu od jádra operačního systému.
Systémové volání nabízí služby operačního systému uživatelským programům prostřednictvím API (Application Programming Interface). Systémová volání jsou jedinými vstupními body pro systém jádra.

Příklad systémového volání
Pokud například potřebujeme napsat programový kód pro čtení dat z jednoho souboru, zkopírujte tato data do jiného souboru. První informace, kterou program vyžaduje, je název dvou souborů, vstupního a výstupního souboru.
V interaktivním systému vyžaduje tento typ provádění programu některá systémová volání OS.
- První hovor je napsat výzvu na obrazovku
- Za druhé, pro čtení z klávesnice znaky, které definují dva soubory.
Jak funguje systémové volání?
Zde jsou kroky pro systémové volání v OS:
Jak můžete vidět na výše uvedeném vzorovém diagramu systémového volání.
Krok 1) Procesy prováděné v uživatelském režimu do doby, než je přeruší systémové volání.
Krok 2) Poté je systémové volání provedeno v režimu jádra na základě priority.
Krok 3) Po dokončení systémového volání se řízení vrátí do uživatelského režimu.,
Krok 4) Provádění uživatelských procesů bylo obnoveno v Režim jádra.
Proč potřebujete systémová volání v OS?
Následují situace, které vyžadují systémová volání v OS:
- Čtení a zápis ze souborů vyžaduje systémová volání.
- Pokud chce souborový systém vytvořit nebo odstranit soubory, jsou vyžadována systémová volání.
- Systémová volání slouží k vytváření a řízení nových procesů.
- Síťová připojení vyžadují systémová volání pro odesílání a přijímání paketů.
- Přístup k hardwarovým zařízením, jako je skener, tiskárna, vyžaduje systémové volání.
Typy systémových volání
Zde je pět typů systémových volání v OS:
- Kontrola procesu
- Správa souborů
- Správa zařízení
- Údržba informací
- Komunikace
Kontrola procesu
Tato systémová volání provádějí úlohu vytvoření procesu, ukončení procesu atd.
Funkce:
- Ukončit a přerušit
- Načíst a spustit
- Vytvořit proces a ukončit proces
- Počkejte a Signal událost
- Přidělte a uvolněte paměť
Správa souborů
Volání systému správy souborů zpracovávají úlohy manipulace se soubory, jako je vytváření souboru, čtení a zápis atd.
Funkce:
- Vytvořte soubor
- Smazat soubor
- Otevřít a zavřít soubor
- Číst, psát a přemisťovat
- Získejte a nastavte atributy souboru
Správa zařízení
Správa zařízení provádí práci se zařízením, jako je čtení z vyrovnávacích pamětí zařízení, zápis do vyrovnávacích pamětí zařízení atd.
Funkce:
- Vyžádejte si a uvolněte zařízení
- Logicky připojte/odpojte zařízení
- Získat a nastavit atributy zařízení
Údržba informací
Řeší informace a jejich přenos mezi OS a uživatelským programem.
Funkce:
- Získejte nebo nastavte čas a datum
- Získejte atributy procesu a zařízení
Komunikace
Tyto typy systémových volání se používají speciálně pro meziprocesovou komunikaci.
Funkce:
- Vytvořte, odstraňte komunikační spojení
- Odeslat, přijmout zprávu
- Pomozte OS přenést informace o stavu
- Připojte nebo odpojte vzdálená zařízení
Pravidla pro předávání parametrů pro systémové volání
Zde jsou obecná běžná pravidla pro předávání parametrů systémovému volání:
- Parametry by měl do zásobníku vložit nebo vyjmout operační systém.
- Parametry lze předávat v registrech.
- Pokud existuje více parametrů než registrů, mělo by být uloženo v bloku a adresa bloku by měla být předána jako parametr registru.
Důležitá systémová volání používaná v OS
Počkejte()
V některých systémech musí proces čekat, až jiný proces dokončí své provedení. Tento typ situace nastane, když nadřazený proces vytvoří podřízený proces a provádění nadřazeného procesu zůstane pozastaveno, dokud se nespustí jeho podřízený proces.
K pozastavení nadřazeného procesu dojde automaticky pomocí systémového volání wait(). Když podřízený proces ukončí provádění, ovládací prvek se přesune zpět do nadřazeného procesu.
Vidlička()
Procesy používají toto systémové volání k vytváření procesů, které jsou jejich kopií. S pomocí tohoto systému Call parent proces vytvoří podřízený proces a provádění nadřazeného procesu bude pozastaveno, dokud se podřízený proces nespustí.
exec()
Toto systémové volání se spustí, když je spustitelný soubor v kontextu již běžícího procesu, který nahrazuje starší spustitelný soubor. Původní identifikátor procesu však zůstává, protože není vytvořen nový proces, ale zásobník, data, hlava, data atd. jsou nahrazeny novým procesem.
zabít()
Systémové volání kill() používá OS k odeslání ukončovacího signálu procesu, který vybízí proces k ukončení. Systémové volání kill však nemusí nutně znamenat ukončení procesu a může mít různé významy.
exit ()
Systémové volání exit() se používá k ukončení provádění programu. Speciálně v prostředí s více vlákny toto volání definuje, že spuštění vlákna je dokončeno. OS po použití systémového volání exit() získá zpět prostředky, které proces použil.
Shrnutí
Kategorie | Windows | Unix |
---|---|---|
Kontrola procesu | CreateProcess() ExitProcess() WaitForSingleObject() |
Vidlička() exit () Počkejte() |
Manipulace se zařízením | SetConsoleMode() ReadConsole() WriteConsole() |
loctl() číst() napsat() |
Manipulace se soubory | CreateFile() ReadFile() WriteFile() CloseHandle() |
OTEVŘENO() Číst() napsat() zavřít!) |
Údržba informací | GetCurrentProcessID() SetTimer() Spát() |
getpid() poplach() spát() |
Komunikace | CreatePipe() CreateFileMapping() MapViewOfFile() |
Trubka() shm_open() mmap() |
Ochrana | SetFileSecurity() Inicializovat zabezpečeníDescriptnebo() Nastavit zabezpečeníDescriptneboSkupina () |
Chmod() Umask() Chown() |