This is a common problem with early operating systems in virtual machines, because they idle by running a busy loop. So they appear to the virtual machine as if they are busy all the time.
There is no really satisfactory solution. There are idle programs that you can run (eg
idle.com or
POWER in DOS,
FDAPM in FreeDOS, or
cpuidle or
cpucool for the Win95 series of operating systems). However, because DOS is a single tasking system, as soon as you start a program (such as an editor), it may go back to using 100% CPU.
The other thing you can do to alleviate the problem is to use
nice to run the virtual machine at a lower priority; it doesn't stop it using 100% CPU, but at least it has less of an impact on other programs you are running independently of the virtual machine.
Another option is to run WinNT or Win2000 in the virtual machine, and run your DOS applications from a terminal. However, not all DOS apps will work, and it certainly smells like overkill!