실행 중인 다중 스레드 프로세스에게 시그널을 전송하면 프로세스가 시그널을 즉시 처리하기를 기대한다. 그러나, 실행 중인 프로세스에 대기 중인 시그널이 존재하여도 시그널의 처리가 지연되는 문제로 인해 시그널링의 실시간성이 저하되는 문제가 발생한다. 첫 번째 원인은 시그널 송신 과정에서 수신 프로세스 내에서 하나의 스레드를 선택하여 선택된 스레드가 실행하여 프로세스에 대기 중인 시그널을 확인 및 처리하기를 기대한다는 것이다. 두 번째 원인은 프로세스 내 스레드가 유저 레벨에서만 계속 실행하여 커널 레벨에서 유저 레벨로 복귀할 때만 실행할 수 있는 시그널 확인 함수를 실행하지 못한다는 것이다.
본 논문에서는 기존 리눅스 커널의 시그널링 실시간성을 저하시키는 원인들을 제거하여 시그널링 실시간성을 향상시키는 방안을 제안한다. 첫 번째로 시그널 수신 프로세스 내에서 실행 중인 스레드가 선택된 스레드가 아니어도 프로세스에 대기 중인 시그널을 확인할 수 있도록 한다. 두 번째로 시그널 송신 과정에서 수신 프로세스 내 실행 중인 스레드가 위치한 CPU 코어에 인터럽트를 전송하여 CPU 코어에서 인터럽트를 처리하기 위해 커널 레벨로 진입하고 유저 레벨로 복귀하는 과정에서 대기 중인 시그널을 처리하도록 한다.
시그널링 실시간성 향상을 확인하기 위해 시그널 송신부터 확인 및 처리과정까지 소요되는 시그널링 시간을 측정한다. CPU 연산만을 수행하는 응용 프로세스를 제어하기 위하여 스케줄러 프로세스가 전송한 시그널들의 평균 시그널링 시간 측정 결과에서 시그널링 실시간성 향상 패치 커널이 기존 커널에 비해 최대 99.94% 감소한 평균 시그널링 시간을 보인다.