Earlier quoted context omitted.
I'm simplifying a bit (edit: quite a bit =]), but the way these attacks work is generally by exploiting the difference in timing between something being in cache, and something not being in cache. Or some resource being contended vs not contended. If something is in cache, and you also have access to that cache, accessing that thing will be fast and few CPU resources will be used. So you can tell that something is in…
The fix is simple, don't allow access to clocks or timing information in anything other than the microkernel that runs the OS.
Moreover, not every side channel attack relies on timing attack.
For interested readers, there is a paper titled "Fantastic Timers and Where to Find Them: High-Resolution Microarchitectural Attacks in JavaScript", which discussed a variety of ways to build high resolution clocks.
[1]: https://security.stackexchange.com/questions/177033/how-can-...