I think, Preemption can easily be done in kernel mode, where it just have to call the Context-Switch procedure. Also, based on algorithm we can select the new process from the ready queue as well...
I'm unable to think and find Why and where the role of timers come and what exactly are significance of Hardware in preemptive scheduling.
Can we not do preemptive scheduling without hardware support?
Why I didn't ask on Stack-overflow?
=> I need the theoretical point, although I'll appreciate if someone mentions the actual implementations of Unix.