Clocks, Timers and Virtualization
The aim of this post is to learn the kinds of clocks and timing mechanism’s available on an x86 system, how they are virtualized by different hypervisors (with a focus on Hyper-V and WSL2) and what is the practical resolution of clocks and timers in both virtualized and bare-metal x86 systems accessible via programming languages like C or Golang. Clocks and Timers A system might have two kinds of clocks available to use in the system, a Wall-Clock Timer and a Monotonic Clock.
Understanding x86 Virtualization
Virtualization enables a computer system to run multiple operating systems simultaneously and isolated from each other. x86 is the Instruction Set Architecture found in most PCs and Servers today, we will take a look at how x86 hardware is virtualized by applications like VMWare Workstation and QEMU.
Virtualized Ubuntu 19 running via VMWare on Windows 10
Advantages of Virtualization Developers can have multiple virtual machines running various environments required for development and testing.