Apel de sistem în sistemul de operare (Operating System): Ce este, Tipuri și Exemple

Ce este apelul de sistem Operating System?

A apel de sistem este un mecanism care asigură interfața dintre un proces și sistemul de operare. Este o metodă programatică în care un program de calculator solicită un serviciu de la nucleul sistemului de operare.

System call oferă serviciile sistemului de operare programelor utilizatorului prin API (Application Programming Interface). Apelurile de sistem sunt singurele puncte de intrare pentru sistemul kernel.

Apeluri de sistem Operating System
Apeluri de sistem Operating System

Exemplu de apel de sistem

De exemplu, dacă trebuie să scriem un cod de program pentru a citi datele dintr-un fișier, copiați acele date într-un alt fișier. Prima informație pe care programul le solicită este numele celor două fișiere, fișierele de intrare și de ieșire.

Într-un sistem interactiv, acest tip de execuție a programului necesită unele apeluri de sistem de către OS.

  • Primul apel este să scrieți un mesaj de solicitare pe ecran
  • În al doilea rând, să citim de la tastatură caracterele care definesc cele două fișiere.

Cum funcționează apelul de sistem?

Iată pașii pentru apelul de sistem în sistemul de operare:

Apelul de sistem funcționează

Architectura apelului de sistem

Architectura apelului de sistem

După cum puteți vedea în diagrama exemplu de apel de sistem dată mai sus.

Pas 1) Procesele executate în modul utilizator până în momentul în care un apel de sistem îl întrerupe.

Pas 2) După aceea, apelul de sistem este executat în modul kernel pe o bază prioritară.

Pas 3) Odată ce execuția apelului de sistem s-a încheiat, controlul revine la modul utilizator.,

Pas 4) Execuția proceselor utilizatorului a fost reluată în Modul kernel.

De ce aveți nevoie de apeluri de sistem în sistemul de operare?

Următoarele sunt situații care necesită apeluri de sistem în sistemul de operare:

  • Citirea și scrierea din fișiere necesită apeluri de sistem.
  • Dacă un sistem de fișiere dorește să creeze sau să ștergă fișiere, sunt necesare apeluri de sistem.
  • Apelurile de sistem sunt folosite pentru crearea și gestionarea de noi procese.
  • Conexiunile de rețea necesită apeluri de sistem pentru trimiterea și primirea pachetelor.
  • Accesul la dispozitive hardware, cum ar fi scaner, imprimantă, necesită un apel de sistem.

Tipuri de apeluri de sistem

Iată cele cinci tipuri de apeluri de sistem în sistemul de operare:

  • Controlul proceselor
  • Gestionarea fișierelor
  • Device Management
  • Întreținerea informațiilor
  • Comunicații
Tipuri de apeluri de sistem

Tipuri de apeluri de sistem în sistemul de operare

Controlul proceselor

Aceste apeluri de sistem îndeplinesc sarcina de creare a procesului, de terminare a procesului etc.

Funcţii posibile:

  • Încheiere și Avortare
  • Încărcați și executați
  • Creați un proces și încheiați procesul
  • Așteaptă și Signal eveniment
  • Alocați și eliberați memorie

Gestionarea fișierelor

Apelurile sistemului de gestionare a fișierelor gestionează lucrări de manipulare a fișierelor, cum ar fi crearea unui fișier, citirea și scrierea etc.

Funcţii posibile:

  • Creați un fișier
  • Sterge fisierul
  • Deschideți și închideți fișierul
  • Citiți, scrieți și repoziționați
  • Obțineți și setați atributele fișierului

Device Management

Gestionarea dispozitivului face treaba de manipulare a dispozitivului, cum ar fi citirea din bufferele dispozitivului, scrierea în bufferele dispozitivului etc.

Funcţii posibile:

  • Solicitați și eliberați dispozitivul
  • Atașați/detașați în mod logic dispozitivele
  • Obțineți și setați atributele dispozitivului

Întreținerea informațiilor

Se ocupă de informații și transferul acestora între sistemul de operare și programul utilizatorului.

Funcţii posibile:

  • Obțineți sau setați ora și data
  • Obțineți atribute de proces și dispozitiv

Comunicare

Aceste tipuri de apeluri de sistem sunt utilizate în mod special pentru comunicațiile între procese.

Funcţii posibile:

  • Creați, ștergeți conexiuni de comunicații
  • Trimiteți, primiți mesaj
  • Ajută OS să transfere informații despre stare
  • Atașați sau detașați dispozitivele de la distanță

Reguli pentru transmiterea parametrilor pentru apelul de sistem

Iată reguli generale comune pentru transmiterea parametrilor la apelul de sistem:

  • Parametrii ar trebui să fie introduși sau scoși din stivă de către sistemul de operare.
  • Parametrii pot fi trecuți în registre.
  • Când există mai mulți parametri decât registre, ar trebui să fie stocați într-un bloc, iar adresa blocului ar trebui să fie transmisă ca parametru unui registru.

Apeluri de sistem importante utilizate în sistemul de operare

aștepta()

În unele sisteme, un proces trebuie să aștepte ca un alt proces să își finalizeze execuția. Acest tip de situație apare atunci când un proces părinte creează un proces copil, iar execuția procesului părinte rămâne suspendată până la executarea procesului său copil.

Suspendarea procesului părinte are loc automat cu un apel de sistem wait(). Când procesul copil își încheie execuția, controlul se mută înapoi la procesul părinte.

furculiţă()

Procesele folosesc acest apel de sistem pentru a crea procese care sunt o copie a lor. Cu ajutorul acestui sistem Apelarea procesului părinte creează un proces copil, iar execuția procesului părinte va fi suspendată până la executarea procesului copil.

exec()

Acest apel de sistem rulează atunci când un fișier executabil în contextul unui proces care rulează deja, care înlocuiește fișierul executabil mai vechi. Cu toate acestea, identificatorul original al procesului rămâne, deoarece un proces nou nu este construit, dar stiva, datele, capul, datele etc. sunt înlocuite de noul proces.

ucide()

Apelul de sistem kill() este folosit de OS pentru a trimite un semnal de terminare unui proces care îndeamnă procesul să iasă. Cu toate acestea, un apel de sistem kill nu înseamnă neapărat uciderea procesului și poate avea diferite semnificații.

Ieșire()

Apelul de sistem exit() este folosit pentru a termina execuția programului. În special în mediul multi-thread, acest apel definește că execuția firului este completă. Sistemul de operare revendică resursele care au fost folosite de proces după utilizarea apelului de sistem exit().

Rezumat

Categorii Windows Unix
Controlul procesului CreateProcess()
ExitProcess()
WaitForSingleObject()
furculiţă()
Ieșire()
aștepta()
Manipularea dispozitivului SetConsoleMode()
ReadConsole()
WriteConsole()
loctl()
citit()
scrie()
Manipularea fișierelor CreateFile()
ReadFile()
WriteFile()
CloseHandle()
Deschis()
Citit()
scrie()
închide!)
Mentinerea informatiilor GetCurrentProcessID()
SetTimer()
Dormi()
getpid()
alarma()
dormi()
Comunicare CreatePipe()
CreateFileMapping()
MapViewOfFile()
teava()
shm_open()
mmap()
Protecţie SetFileSecurity()
InitializeSecurityDescriptsau()
SetSecurityDescriptsauGrup ()
Chmod()
Umask()
Chown()