Identificador de procés
From Wikipedia, the free encyclopedia
En informàtica, l'identificador de procés (també conegut com a ID de procés o PID, de l'anglès Process Identifier) és un número utilitzat pel nucli d'alguns sistemes operatius com UNIX (o sistemes Unix-like), Mac OS X o Windows NT amb l'objectiu d'identificar de forma unívoca un procés.
En sistemes operatius unix-like, l'identificador de procés d'un procés nou (procés fill) creat a partir d'un altre procés (procés pare) és el valor retornat per la crida de sistema fork.
El PID pot ser passat a funcions de control de processos com waitpid()
o kill()
per tal de realitzar accions en el procés identificat pel PID.
En sistemes operatius que disposen del sistema de fitxers procfs, tota la informació d'un procés es pot trobar a la carpeta /proc/pid/
.
En sistemes operatius unix-like, hi ha dos processos que tenen identificadors de procés especials:
- Swapper o sched: Té el PID 0, i és el responsable de la Paginació i actualment és normalment part del nucli del sistema operatiu i no pas un procés més de l'espai d'usuari.
- init: Té el PID 1 i és el responsable de l'inici i l'apagada del sistema. Es tracta per tant del primer procés a executar-se durant l'arrancada del sistema.
En sistemes operatius unix-like, els identificadors de procés normalment s'ordenen de forma seqüencial, començant per zero i augmentant d'un en un fins a un valor màxim que depèn de cada sistema operatiu. Quan s'assoleix aquest límit, el compte torna a començar però aquest cop saltant els identificadors de procés que encara estan assignats a processos. Aquest mètode és considerat poc segur segons algunes fonts.[1]
Els sistemes operatius Unix, els identificadors de procés són generalment assignats de forma seqüencial, començant des del 0 i augmentant fins a un valor màxim que varia en cada sistema. Quan s'arriba a aquest límit, es reinicia l'assignació a un increment de 300. En Mac OS X i HP-UX, es reinicia l'assignació a 100.
A Windows, es pot obtenir l'identificador actual del procés utilitzant la comanda GetCurrentProcessId()
.[2] i l'identificador d'altres processos amb GetProcessId()
.[3]
En els sistemes operatius Unix-like, l'identificador del procés actual s'obté amb la crida de sistema getpid()
, o amb la variable del shell: $$
.
A Linux, el valor màxim d'un procés es pot consultar en el fitxer /proc/sys/kernel/pid_max.[4]