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.

Systémová volání Operasystém
Systémová volání Operasystém

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:

Systémové volání funguje

Archisystémového volání

Archisystémového volání

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
Typy systémových volání

Typy systémových volání v OS

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()