Come vengono numerati i processi in UNIX?


17

Non riesco a trovare alcun modello quando osservo la numerazione dei PID nella tabella dei processi ( ps -a), poiché i PID non sono numeri successivi e talvolta vi sono ampi "spazi" tra questi numeri. È perché potrebbero esserci alcuni processi che vengono eseguiti per un breve periodo e riservano alcuni PID? Esiste un intervallo, dopo il quale viene ripristinata la numerazione dei processi?

Sto usando Mac OS X ma immagino che la risposta dovrebbe applicarsi a UNIX in generale.

Risposte:


18

Sì su entrambi i fronti.

Molti processi hanno vita breve. Ricevono un PID, eseguono, finiscono e il PID scompare dalla tabella dei processi.

I processi a volte vivono solo per una frazione di secondo!

Spesso all'avvio dei programmi eseguono numerosi comandi durante il controllo del sistema e l'inizializzazione del loro ambiente.

Il numero PID massimo dipende dal sistema ed è talvolta configurabile. Fondamentalmente se sai che avrai un numero enorme di processi, potresti dover aumentare il numero, ma sui nuovi sistemi operativi credo che il numero massimo sia in genere abbastanza grande per la maggior parte di qualsiasi carico di lavoro.

I PID sono voci nella tabella dei processi e maggiore è la quantità di memoria occupata dalla tabella dei processi.

Dai un'occhiata a questa domanda correlata: /server/279178/what-is-the-range-of-a-pid-on-linux-and-solaris

Si noti inoltre che in relazione a ciò vi è il "numero massimo di processi per utente", che è una misura per la protezione da un utente malintenzionato che crea intenzionalmente molti processi per bloccare l'intera tabella dei processi.


7

È anche possibile configurare alcuni kernel moderni per assegnare PID casuali a nuovi processi per una maggiore sicurezza. Almeno Linux e FreeBSD possono farlo con un'impostazione sysctl, e OpenBSD lo fa sempre. In questi casi puoi dire sempre meno sugli schemi di numerazione.


Sai qual è il costo delle prestazioni per questo?
Bruce Ediger,

@Bruce: la prima patch proposta ha avuto le prestazioni peggiori di O (infty) a causa dell'ingenua randomizzazione. Ma penso che abbiano ottenuto qualcosa di sicuro e utilizzabile. Non ho trovato nulla di molto attuale sull'argomento ... non quello usato credo. :)
unperson325680,

5
Per me i PID casuali sembrano sicurezza dall'oscurità.
Johan

Questo è quello che è, soprattutto ...
unperson325680,

A partire da singole iniziative, Linux lo proponeva solo attraverso la patch grsecurity , il team del kernel Linux ha sempre rifiutato di implementarlo ( esempio qui ) e persino il team grsecurity lo ha infine abbandonato alla fine del 2006 .
WhiteWinterWolf
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.