The computer hardware of today's world was designed and architected for the purpose of running a single operating system and its applications and therefore most of the hardware of such computer would be left underutilized. Virtualization enables the option of running multiple virtual computers on a single physical system. This paper studies the various methods, through which virtualization is supported in computer systems. The impact of this solution on computer hardware architecture is also investigated.