The sleep command in unix is guaranteed to sleep a minimum.
Due to the way quanta (time slices) work in OS schedulers, other processes may get the cpu ahead of the sleeper who just awoke.
ie., there is no guarantee of an upper limit. sleep 1 may last longer than 1 second.
Linux sleep calls nanosleep - read the man page for that.