Rendszerhívás az operációs rendszerben (Operating System): Mi az, típusai és példái

Mi az a rendszerhívás Operating rendszer?

A rendszerhívás egy olyan mechanizmus, amely interfészt biztosít egy folyamat és az operációs rendszer között. Ez egy programozott módszer, amelyben egy számítógépes program szolgáltatást kér az operációs rendszer kernelétől.

A System call az operációs rendszer szolgáltatásait API-n (Application Programming Interface) keresztül kínálja a felhasználói programoknak. A rendszerhívások jelentik a kernelrendszer egyetlen belépési pontját.

Rendszerhívások Operating rendszer
Rendszerhívások Operating rendszer

Példa a rendszerhívásra

Például, ha programkódot kell írnunk az adatok olvasásához egy fájlból, másolja át az adatokat egy másik fájlba. Az első információ, amelyet a program igényel, a két fájl neve, a bemeneti és kimeneti fájlok.

Egy interaktív rendszerben az ilyen típusú programvégrehajtás bizonyos rendszerhívásokat igényel az operációs rendszertől.

  • Az első hívás egy felszólító üzenet írása a képernyőn
  • Másodszor, a két fájlt meghatározó karakterek beolvasása a billentyűzetről.

Hogyan működik a rendszerhívás?

Íme a System Call lépései az operációs rendszerben:

A rendszerhívás működik

Archia rendszerhívás tectúrája

Archia rendszerhívás tectúrája

Amint az a fent megadott rendszerhívási példa diagramon látható.

Step 1) A felhasználói módban végrehajtott folyamatok mindaddig, amíg egy rendszerhívás meg nem szakítja azt.

Step 2) Ezt követően a rendszerhívás prioritási alapon kernel módban kerül végrehajtásra.

Step 3) A rendszerhívás végrehajtásának befejeztével a vezérlés visszatér felhasználói módba.

Step 4) A felhasználói folyamatok végrehajtása ben folytatódott Kernel mód.

Miért van szükség rendszerhívásokra az operációs rendszerben?

A következő helyzetek rendszerhívásokat igényelnek az operációs rendszerben:

  • A fájlok olvasása és írása rendszerhívásokat igényel.
  • Ha egy fájlrendszer fájlokat szeretne létrehozni vagy törölni, rendszerhívásokra van szükség.
  • A rendszerhívások új folyamatok létrehozására és kezelésére szolgálnak.
  • A hálózati kapcsolatokhoz rendszerhívásokra van szükség a csomagok küldéséhez és fogadásához.
  • A hardvereszközök, például szkenner, nyomtató eléréséhez rendszerhívás szükséges.

A rendszerhívások típusai

Íme az öt rendszerhívás típus az operációs rendszerben:

  • Folyamatirányítás
  • Fájlkezelés
  • Device Management
  • Információk karbantartása
  • távközlés
A rendszerhívások típusai

A rendszerhívások típusai az operációs rendszerben

Folyamatirányítás

Ez a rendszerhívás végrehajtja a folyamat létrehozásának, folyamatleállításának stb.

Funkciók:

  • Befejezés és megszakítás
  • Betöltés és végrehajtás
  • Folyamat létrehozása és folyamat befejezése
  • Várj és Signal esemény
  • Memória lefoglalása és felszabadítása

Fájlkezelés

A fájlkezelő rendszerhívások olyan fájlkezelési feladatokat kezelnek, mint a fájl létrehozása, az olvasás és az írás stb.

Funkciók:

  • Hozzon létre egy fájlt
  • Fájl törlése
  • Fájl megnyitása és bezárása
  • Olvass, írj és helyezz át
  • Fájl attribútumok beszerzése és beállítása

Device Management

Az eszközkezelés elvégzi az eszközkezelés feladatát, mint például az eszköz puffereiből való olvasás, az eszközpufferekbe való írás stb.

Funkciók:

  • Kérje és engedje el az eszközt
  • Logikus eszközök csatlakoztatása/leválasztása
  • Eszközattribútumok beszerzése és beállítása

Információk karbantartása

Kezeli az információkat és azok átvitelét az operációs rendszer és a felhasználói program között.

Funkciók:

  • Szerezze be vagy állítsa be az időt és a dátumot
  • Folyamat- és eszközattribútumok lekérése

Kommunikáció

Az ilyen típusú rendszerhívásokat kifejezetten a folyamatok közötti kommunikációhoz használják.

Funkciók:

  • Kommunikációs kapcsolatok létrehozása, törlése
  • Üzenet küldése, fogadása
  • Segítség az OS-nek az állapotinformációk átviteléhez
  • Távoli eszközök csatlakoztatása vagy leválasztása

A rendszerhívás paramétereinek átadásának szabályai

Íme a paraméterek rendszerhívásnak való átadásának általános szabályai:

  • A paramétereket az operációs rendszernek kell benyomnia vagy ki kell emelnie a veremből.
  • A paraméterek regiszterekben adhatók át.
  • Ha több paraméter van, mint regiszter, akkor azt egy blokkban kell tárolni, és a blokkcímet paraméterként kell átadni egy regiszternek.

Az operációs rendszerben használt fontos rendszerhívások

várjon()

Egyes rendszerekben egy folyamatnak várnia kell egy másik folyamatra, hogy befejezze a végrehajtását. Ez a fajta helyzet akkor fordul elő, amikor egy szülőfolyamat utódfolyamatot hoz létre, és a szülőfolyamat végrehajtása felfüggesztve marad mindaddig, amíg az alárendelt folyamat le nem hajtja.

A szülőfolyamat felfüggesztése automatikusan megtörténik egy wait() rendszerhívással. Amikor a gyermekfolyamat befejezi a végrehajtást, a vezérlő visszakerül a szülőfolyamathoz.

Villa()

A folyamatok ezt a rendszerhívást használják olyan folyamatok létrehozására, amelyek önmaguk másolatai. Ennek a rendszernek a segítségével a Call szülő folyamat létrehoz egy gyermek folyamatot, és a szülő folyamat végrehajtása felfüggesztésre kerül, amíg a gyermek folyamat le nem fut.

végrehajt()

Ez a rendszerhívás akkor fut le, amikor egy végrehajtható fájl egy már futó folyamat keretében lecseréli a régebbi végrehajtható fájlt. Az eredeti folyamatazonosító azonban megmarad, mivel új folyamat nem épül fel, hanem a verem, az adatok, a fej, az adatok stb. helyébe az új folyamat lép.

megöl()

A kill() rendszerhívást az operációs rendszer arra használja, hogy befejező jelet küldjön egy folyamatnak, amely felszólítja a folyamatot a kilépésre. A kill rendszerhívás azonban nem feltétlenül jelenti a folyamat leállítását, és többféle jelentéssel bírhat.

kilépés ()

Az exit() rendszerhívás a programvégrehajtás leállítására szolgál. Különösen a többszálú környezetben ez a hívás határozza meg, hogy a szál végrehajtása befejeződött. Az operációs rendszer visszaszerzi a folyamat által használt erőforrásokat az exit() rendszerhívás használata után.

Összegzésként

Kategóriák Windows Unix
Folyamatirányítás CreateProcess()
Kilépési folyamat()
WaitForSingleObject()
Villa()
kilépés ()
várjon()
Eszköz manipuláció SetConsoleMode()
ReadConsole()
WriteConsole()
loctl()
olvas()
ír()
Fájlkezelés CreateFile()
Fájl olvasása()
WriteFile()
CloseHandle()
Nyisd ki()
Olvas()
ír()
Bezárás!)
Információk karbantartása Get CurrentProcessID()
SetTimer()
Alvás()
getpid()
riasztás()
alvás()
Kommunikáció CreatePipe()
CreateFileMapping()
MapViewOfFile()
Cső()
shm_open()
mmap()
Védelem SetFileSecurity()
InitializeSecurityDescriptvagy()
Security beállításaDescriptvagyCsoport ()
Chmod()
Umask()
Chown()