Lets say you have some programs that use a timer. Lets say that every X seconds the program sends a signal that is handled by a signal handler. Thus by a timer handler. The time is checked etc etc.
My point is how will the program know how much time has passed? It could:
1) Check every some milliseconds, which isn't efficient
2) The system might send a signal to the program every X seconds. But that goes back to 1) in a way.
You get the idea. How does the OS handle the "send a signal in X seconds" thing in an efficient way?