SIGALRM과 SIGVTALRM의 차이점은 무엇입니까?

SIGALRM과 SIGVTALRM의 차이점은 무엇입니까?

둘 다 경과 시간을 기준으로 신호를 보내는 데 사용된다는 것을 이해합니다. 하지만 차이점은 무엇입니까?

내 경우에는 특정 스레드 시간에 대해 이러한 신호를 내보내고 싶습니다. 프로세스가 일시 중지되거나 존재하지 않으면 시간 카운터가 일시 중지됩니다(예를 들어, 종료된 다음 criu 를 통해 재개되는 경우 발생할 수 있음).

답변1

위키피디아에 따르면https://en.wikipedia.org/wiki/Signal_(IPC)SIGVTALRM은 다음 이후에 전송됩니다.CPU 시간프로세스 시간(즉, "작업 시간")이 지났습니다. 대신 SIGALRM은 스톱워치로 측정된 실시간 시간을 계산합니다.

SIGALRM, SIGVTALRM 및 SIGPROF 신호는 알람 설정 함수(예: setitimer)에 대한 이전 호출에서 지정된 시간 제한이 경과되면 프로세스로 전송됩니다. SIGALRM은 실시간 또는 시계 시간이 경과되면 전송됩니다. SIGVTALRM은 프로세스에서 사용하는 CPU 시간이 소진되면 전송됩니다. SIGPROF는 프로세스와 프로세스를 대신하는 시스템이 사용하는 CPU 시간이 소진되면 전송됩니다.

관련 정보