Apel de sistem în sistemul de operare (Operating System): Ce este, Tipuri și Exemple
⚡ Rezumat inteligent
Apelul de sistem este interfața controlată pe care un proces o folosește pentru a solicita servicii de kernel, cum ar fi accesul la fișiere, controlul proceselor și comunicarea cu dispozitivele, comutând în siguranță CPU-ul din modul utilizator în modul kernel privilegiat.

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
Exemplu de apel de sistem
De exemplu, pentru a scrie un program care citește date dintr-un fișier și le copiază în altul, programul are nevoie mai întâi de numele celor două fișiere: fișierul de intrare și cel de ieșire.
Într-un sistem interactiv, acest tip de execuție a programului necesită unele apeluri de sistem din partea sistemului de operare.
- Primul apel este de a scrie un mesaj de îndrumare pe ecran.
- Al doilea este citirea, de la tastatură, a caracterelor care definesc cele două fișiere.
Cum funcționează apelul de sistem?
Iată pașii pentru un apel sistem în sistemul de operare:
Architectura apelului de sistem
După cum puteți vedea în diagrama apelului de sistem de mai sus:
Pas 1) Procesele se execută în modul utilizator până când un apel sistem le întrerupe.
Pas 2) După aceea, apelul sistem este executat în modul kernel în funcție de prioritate.
Pas 3) Odată ce execuția apelului sistem s-a terminat, controlul revine la modul utilizator.
Pas 4) Execuția proceselor utilizatorului se reia, trecând între modul utilizator și modul kernel după cum este necesar.
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 precum un scaner sau o imprimantă necesită un apel sistem.
Tipuri de apeluri de sistem
Iată cele cinci tipuri de apeluri de sistem din sistemul de operare:
- Controlul proceselor
- Gestionarea fișierelor
- Device Management
- Întreținerea informațiilor
- Comunicarea
Tipuri de apeluri de sistem în sistemul de operare
Controlul proceselor
Aceste apeluri de sistem îndeplinesc sarcina de creare a proceselor, terminare a proceselor etc.
Funcţii posibile:
- Încheiere și abandonare
- Î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 sau detașați 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
Comunicarea
Aceste tipuri de apeluri sistem sunt utilizate în special pentru comunicarea interprocese.
Funcţii posibile:
- Crearea și ștergerea conexiunilor de comunicare
- Trimiteți și primiți mesaje
- Ajută informațiile despre starea transferului sistemului de operare
- Atașați sau detașați dispozitivele de la distanță
Reguli pentru transmiterea parametrilor pentru apelul de sistem
Iată regulile generale pentru transmiterea parametrilor către apelul sistem:
- Parametrii ar trebui să fie inserați sau eliminaț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, aceștia ar trebui stocați într-un bloc, iar adresa blocului ar trebui transmisă într-un registru.
Apeluri de sistem importante utilizate în sistemul de operare
aștepta()
În unele sisteme, un proces trebuie să aștepte finalizarea altuia. Acest lucru se întâmplă atunci când un proces părinte creează un proces copil, iar părintele rămâne suspendat până când copilul se termină.
Suspendarea elementului părinte are loc automat cu un apel sistem wait(). Când execuția copilului termină, controlul revine la elementul părinte.
furculiţă()
Procesele folosesc acest apel sistem pentru a crea procese care sunt o copie a lor însele. Cu ajutorul fork(), un proces părinte creează un proces copil, iar părintele este suspendat până când procesul copil se execută.
exec()
Acest apel sistem rulează un fișier executabil în cadrul unui proces deja existent, înlocuindu-l pe cel mai vechi. Identificatorul original al procesului rămâne, deoarece nu se construiește niciun proces nou, dar stiva, datele, memoria heap etc. sunt înlocuite de noul proces.
ucide()
Apelul de sistem kill() este utilizat de sistemul de operare pentru a trimite un semnal de terminare unui proces, îndemnându-l să se încheie. Cu toate acestea, un apel de sistem kill nu înseamnă neapărat terminarea procesului și poate avea diverse semnificații.
Ieșire()
Apelul de sistem exit() este utilizat pentru a termina execuția programului. Mai ales într-un mediu multi-threaded, acest apel definește faptul că execuția firului de execuție este completă. Sistemul de operare recuperează resursele utilizate de proces după apelul exit().




