I found an article about this on IBM developerWorks. When the OS raises a signal to the JVM, the signal dispatcher thread will pass the signal to the appropriate handler
Revelations on Java signal handling and termination
by Chris White, Software Engineer, IBM