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.