Apel sistem

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Un apel de sistem (în engleză system call), în informatică , indică mecanismul utilizat de un proces la nivel de utilizator sau la nivel de aplicație, pentru a solicita kernel - ul de serviciu al sistemului de operare al computerului utilizat. De obicei, este disponibil ca funcție în acele limbaje de programare care acceptă programarea sistemului (cum ar fi limbajul C ) sau ca instrucțiuni speciale de asamblare .

Caracteristici

Fundamental este trecerea de la modul utilizator la modul Kernel printr-o anumită instrucțiune care este identificată în capcană .

Din motive de securitate, codul inerent serviciilor sistemului de operare este executabil numai în modul kernel , având acces complet la hardware . De fapt, un apel către kernel necesită adesea utilizarea unei instrucțiuni speciale de limbaj mașină care provoacă o comutare contextuală a microprocesorului (de la „modul protejat” la „modul de supraveghere”, care, pe procesoarele Intel și compatibile , este numit de „Ring” 3 "până la" Ring 0 "). Acest lucru permite kernel-ului sistemului de operare să efectueze operațiuni sensibile, cum ar fi accesarea hardware - ului sau a unității de gestionare a memoriei , cu toate acestea implică o cheltuieli generale mai mari. Ulterior, când sarcina exercitată prin apelul de sistem invocat este terminată, controlul face procedura inversă, de la modul kernel pentru a reveni la modul utilizator .

De asemenea, foarte importante sunt apelurile către bibliotecile utilizatorilor ( API ). Apelul către un API este identic cu un apel către o funcție a aplicației în sine, în practică starea registrelor microprocesorului și adresa de retur sunt înregistrate pe stivă . Prin urmare, chiar și în sistemele de operare cu protecție a memoriei și separarea spațiilor de adrese, vor exista puține cheltuieli generale .

Tipologie

Principalele categorii de apeluri de sistem sunt:

  1. control proces / thread :
    • sarcină,
    • a executa,
    • creați / ucideți un proces / fir,
    • get / info / set atributele unui proces / Thread ,
    • așteptați și semnalizați,
    • alocat
    • etc.
  2. gestionarea fișierelor și a sistemului de fișiere :
    • creați fișiere,
    • sterge fisierul,
    • deschide - inchide,
    • Citeste si scrie,
    • obține / seta atribute de fișiere,
    • etc.
  3. gestionarea dispozitivelor :
    • cerere,
    • eliberare,
    • Citeste si scrie,
    • obține / setează atribute,
    • etc.
  4. gestionarea informațiilor :
    • obțineți / setați ora sau data,
    • obțineți / setați date de sistem,
    • obțineți / setați procesul, fișierul sau atributele unui dispozitiv,
    • etc.
  5. comunicare :
    • creați / ștergeți conexiunea,
    • trimite / primi mesaje,
    • transferul informațiilor de stare,
    • etc.

Pe sistemele Posix și sisteme similare, apelurile de sistem obișnuite sunt close() , execlp() , fork() , kill() , open() , read() , wait() și write() .

Pentru sistemele Windows NT consultați articolul Native API .

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT