Identificador de proceso


En informática , el identificador de proceso (también conocido como ID de proceso o PID ) es un número utilizado por la mayoría de los kernels de sistemas operativos , como los de Unix , macOS y Windows , para identificar de forma única un proceso activo . Este número se puede usar como parámetro en varias llamadas a funciones, lo que permite manipular los procesos, como ajustar la prioridad del proceso o eliminarlo por completo.

En los sistemas operativos similares a Unix, la fork() llamada al sistema crea nuevos procesos . El PID se devuelve al proceso padre , lo que le permite referirse al hijo en futuras llamadas a funciones. El padre puede, por ejemplo, esperar a que el hijo termine con la waitpid()función o terminar el proceso con kill().

Hay dos tareas con identificadores de proceso especialmente distinguidos: swapper o sched tiene el identificador de proceso 0 y es responsable de la paginación , y en realidad es parte del kernel en lugar de un proceso normal en modo de usuario . El ID de proceso 1 suele ser el proceso de inicio principalmente responsable de iniciar y apagar el sistema. Originalmente, el proceso ID 1 no estaba específicamente reservado para init por ninguna medida técnica: simplemente tenía este ID como consecuencia natural de ser el primer proceso invocado por el kernel. Los sistemas Unix más recientes suelen tener componentes de núcleo adicionales visibles como "procesos", en cuyo caso el PID 1 se reserva activamente para el proceso de inicio para mantener la coherencia con los sistemas más antiguos.

Los ID de proceso, en primer lugar, generalmente se asignan de forma secuencial, comenzando en 0 y aumentando hasta un valor máximo que varía de un sistema a otro. Una vez que se alcanza este límite, la asignación se reinicia en 300 y vuelve a aumentar. En macOS y HP-UX , la asignación se reinicia en 100. Sin embargo, para este pase y los siguientes, se omiten los PID que todavía están asignados a los procesos. Algunos consideran que se trata de una posible vulnerabilidad de seguridad, ya que permite extraer información sobre el sistema o transmitir mensajes de forma encubierta entre procesos. Como tal, las implementaciones que están particularmente preocupadas por la seguridad pueden elegir un método diferente de asignación de PID. [1] En algunos sistemas, como MPE/iX, se usa el PID más bajo disponible, a veces en un esfuerzo por minimizar el número de páginas de kernel de información de proceso en la memoria.

El ID del proceso actual lo proporciona una getpid()llamada al sistema o como una variable $$en el shell. El ID de proceso de un proceso principal se puede obtener mediante una getppid()llamada al sistema.

Algunos procesos, por ejemplo, el reproductor de música moc y el demonio MySQL , escriben su PID en una ubicación de archivo documentada, para permitir que otros procesos lo busquen.