Bloc de control proces (Unix)

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

Procesul blocului de control din kernel - ul sistemelor de operare Unix și Unix-like include un set specific de atribute, dintre care majoritatea sunt moștenite de noile procese create de furca de apel sistem () (o copie a atributelor) este moștenită.

Unele dintre ele sunt apoi modificate automat printr-o invocare ulterioară a executării apelului de sistem () .

Atribute ne-moștenite

Aceste atribute nu sunt moștenite de procesele secundare create folosind fork ():

  • PID - identifică în mod unic procesul din sistem. Nu poate fi modificat și nu se modifică pe durata procesului. Invocarea fork () creează un nou proces cu o nouă valoare pentru acest atribut.
  • PID părinte - Identifică procesul părinte. Nu este editabil, dar poate deveni 1 pe parcursul vieții procesului dacă rămâne orfan . Invocarea fork () creează un nou proces copil care are valoarea acestui atribut PID al procesului părinte care a numit fork ().

Atribute moștenite care nu sunt modificate de exec ()

Procesul copil creat prin fork () moștenește o copie a următoarelor atribute, iar invocațiile ulterioare ale exec () nu le modifică:

  • Pgid - Identifică grupul de proces din care face parte acest proces și, de asemenea, liderul procesului de grup. Toate procesele se pot modifica (cu limite) apelând setpgrp system ().
  • SID (ID sesiune) - Identifică sesiunea din care face parte acest proces. Toate procesele se pot modifica (cu limite) prin apeluri setsid system () și setpgrp ().
  • curent UID real - Identificați utilizatorul real al proprietarului procesului. Procesele privilegiate pot fi modificate prin apeluri către setuid () system setreuid ().
  • curent GID real - Identifică grupul principal real . Procesele privilegiate pot modifica apelurile prin setgid () system setregid ().
  • umask current - Indică permisiunea de a nega faptul că creați un fișier sau director nou . Toate procesele se pot modifica prin apelarea sistemului umask () .
  • lista GID suplimentară (în număr maxim dependent de implementare). Procesele privilegiate pot fi modificate prin apelarea setgroups system ()
  • lista descriptorilor fișierelor deschise în prezent.
  • referința la „ inodul directorului curent . Toate procesele pot fi modificate prin apelarea sistemului chdir ()
  • referința la „ inodul directorului pentru a fi considerat drept rădăcina sistemului de fișiere . Procesele privilegiate pot fi modificate prin apelarea chroot ().
  • referința la structura care reprezintă terminalul părinte. De asemenea, este posibil să nu existe niciun terminal părinte asociat procesului.

Variabilele de mediu ale procesului, deși nu fac parte din blocul de control al procesului, sunt moștenite între procese. Procesele își pot modifica propriile copii ale variabilelor folosind setenv () sau putenv ().

Atribute moștenite și modificate de exec ()

Procesele secundare create folosind fork () moștenesc o copie a următoarelor atribute, dar un executor de invocare ulterior () le poate modifica:

  • curent UID eficient - Identifică utilizatorul de utilizat pentru permisiuni. În mod normal, este identic cu UID-ul real, dar poate fi diferit în cazul programelor setate ID utilizator . Procesele privilegiate pot fi modificate prin apeluri seteuid system (), setuid () și setreuid ().
  • curent GID eficient - Identifică grupul principal de utilizat pentru permise. În mod normal, este identic cu GID-ul real, dar poate fi diferit în cazul programelor setate ID utilizator . Procesele privilegiate se pot modifica prin apeluri setegid system (), setgid () și setregid ().
  • UID efectiv salvat - Valoarea UID efectivă dell ' de la ultima descărcare a unui program prin exec (). Procesele privilegiate pot fi modificate prin apelarea sistemului setuid () .
  • GID efectiv salvat - Valoarea GID efectivă dell ' de la ultima descărcare a unui program prin exec (). Procesele privilegiate pot fi modificate prin apelarea sistemului setgid () .
  • indicații către semnalele managerilor. Fiecare proces poate fi modificat prin apelarea sistemului sigaction () .

Bibliografie

  • W. Richard Stevens, Advanced Programming in the UNIX Environment, Addison Wesley, 1992, ISBN 0-201-56317-7 .

Elemente conexe

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