From reading older questions, it seems that running a second OS in a VM is the preferred way to run different instances of an OS. However, wouldn't an OS running inside a VM run slower, since the computer has to accommodate two operating systems? I want to install another instance of Windows 7 on my laptop already running Windows 7, and I am concerned that the VM instance would be slow(er), since it won't get full use of all of my memory.
If you have hardware virtualization extensions in your CPU (most server and desktop, and many laptop processors do now), CPU bound applications will have a minimal hit.
If you have enough ram to dedicate to your VM, it won't be shared (VirtualBox and microsoft's hyperv don't overcommit memory IIRC, so this is a moot point if you use one of those. If you use VMWare, you can pin memory, so it's reserved for your VM), so memory bound applications will have a minimal hit.
Disc bound applications will always have a hit if the host & guest use the same drive, or if multiple guests use the same drive. Often the hit is fairly significant. If you can dedicate a drive to your VM, or use a fast NAS box for it's disc-bound applications, you'll see a minimal hit.
Does that help?
Yes & No. With the advent of Hypervisors, virtual OSes now have more direct access to physical hardware. On the other-side of the coin... some things still have an "overhead" which will eat your performance. For example, if you're storing the disk images in a file on the host OS, you'll still have a layer of abstraction which will eat some performance. In many cases the amount of overhead is insignificant. For most of the raw-computing power... there is near-0 overhead in a virtual environment (CPU/RAM access) Many Hypervisors now also even give you a way to virtualize page-files which really can have some dramatic results.
I've actually built systems where the guest OS has direct access to a SSD, and the Host OS runs directly off a standard platter disk... and the Guest OS significantly out-performs the host-OS.
There are many advantages to virtualizing an OS... some reasons include:
- portability. You can move a virtual instance from one piece of hardware to another with minimal down-time.
- scalability. You can run multiple OSes in parallel to better utilize the hardware. Most of the time OSes sit idle doing very little... so why dedicate 6 physical sets of hardware when you only need the computing power of 1? What if you need an extra server to test something on without always having an extra server sitting around doing nothing?
- adaptability. If you need to switch from windows to linux to macos & back & forth... it takes much longer to shut-down one to boot into the other... than it would to simply run them in parallel.
There's several more reasons... but my honest opinion is that you run your personal favorite operating system as the Host-OS... and any secondary OSes as virtual instances on-demand. There amount of overhead vs. processing power today makes any reasons you would dual-boot seem foolish.
You're right in that the VM'ed Windows 7 would be running with less resources (not necessarily slower, depending on your hardware). Is there a reason you want to have another Windows 7? There might be a way around it.
Also, I'm guessing you could dual boot two instances of Windows 7. However, I would recommend getting something like GRUB to manage your OS's at boot time. Windows has a nack of screwing up the boot manager.