This problem occurs because MSDOS-based systems, including Windows 3.x, 95, and 98 do not send the proper idle instruction to the CPU when they are idle. Instead of sending the CPU a "HLT" (halt) instruction, which puts the CPU idle until needed, these operating systems will instead loop through code that does nothing, but keeps the CPU busy.
How to fix (source, by fixedwheel):
Install rain, waterfall or cpuidle in the Win9x guest - my preference is rain as it only does what is needed -replace the idle loop with HLT execution- and nothing more here is a link explaining something about, related to real hardware [http://estu.nit.ac.jp/~e982457/other/cpuidle/idle.htm][2] d/l rain from here: [http://www.benchtest.com/downloads/index.html][3]
I checked, and the download link for rain
does not seem to work right now, but you should be able to use one of the other programs mentioned or find an alternate download source. Just get one of those programs and install it in the virtual machine.