Fork-exec: cosa viene ereditato e cosa no

From Sistemi Operativi
Jump to navigation Jump to search

Proprietà che il processo child eredita dal processo parent:

  • real uid, real gid, effective uid, effective gid
  • gids supplementari
  • id del gruppo di processi
  • session ID
  • terminale di controllo
  • directory corrente
  • directory root
  • maschera di creazione file (umask)
  • maschera dei segnali
  • flag close-on-exec per tutti i descrittori aperti
  • environment

Proprietà che il processo child non eredita dal processo parent:

  • valore di ritorno di fork
  • process ID
  • process ID del processo parent
  • file locks
  • l’insieme dei segnali in attesa viene svuotato

Cosa viene ereditato da exec?

  • process ID e parent process ID
  • real uid e real gid
  • supplementary gid
  • process group ID
  • session ID
  • terminale di controllo
  • current working directory
  • root directory
  • maschera creazione file (umask)
  • file locks
  • maschera dei segnali
  • segnali in attesa

Cosa non viene ereditato da exec?

  • effective user id e effective group id
  • vengono settati in base ai valori dei bit di protezione

Cosa succede ai file aperti?

  • Dipende dal flag close-on-exec che è associato ad ogni descrittore
  • Se close-on-exec è true, vengono chiusi
  • Altrimenti, vengono lasciati aperti (comportamento di default)