O kernel faz o agendamento de tarefas e fornece chamadas do sistema.
Quando um processo está rodando, o kernel programa seu tempo de execução - especialmente ele atribui um PID a ele - essa informação é armazenada dentro do espaço de endereço do kernel, em estruturas de dados (por exemplo, dentro de uma estrutura de tarefa).
Assim, quando um processo chama a chamada de sistema getpid()
, o kernel tem apenas de procurar na estrutura da tarefa do processo de chamada (ou seja, atualmente em execução).