Memory virtualization allows virtual machines to access virtual memory addresses that are translated to physical memory addresses. Hardware support for memory virtualization reduces overhead by offloading page table management to the CPU. Memory sharing between virtual machines reduces memory usage by identifying identical pages and having them share physical memory. Virtual memory overcommitment allocates more virtual memory than physical memory available by swapping out unused memory to disk. Techniques for memory sharing and overcommitment aim to improve memory utilization in virtualized systems.