Sobes.tech
Junior — Middle

Como é que o sinal de controlo do processo é enviado no sistema operativo?

sobes.tech IA

Resposta da IA

Nos sistemas operativos baseados em Unix/Linux, o envio de um sinal a um processo é feito através da chamada de sistema kill(). Esta chamada permite enviar um sinal específico (por exemplo, SIGINT, SIGTERM, SIGKILL) a um processo pelo seu identificador PID.

Exemplo de uso em C:

#include <signal.h>
#include <unistd.h>

int main() {
    pid_t pid = 1234; // PID do processo ao qual enviamos o sinal
    int sig = SIGTERM; // sinal de término
    int result = kill(pid, sig);
    if (result == 0) {
        // sinal enviado com sucesso
    } else {
        // erro ao enviar o sinal
    }
    return 0;
}

Além do kill(), existem outras formas, como o comando kill no terminal ou as funções raise() para enviar um sinal a si próprio. Os sinais são usados para controlar o processo: interrupção, parada, retomada, término, etc.