Virtual memory allows processes to access a large virtual address space that exceeds physical memory. The CPU translates virtual addresses to physical addresses using a page table cached in the TLB. A TLB miss requires accessing the page table in memory, leading to multiple expensive memory lookups. Caches are virtually indexed but physically tagged to handle multiple virtual addresses mapping to the same physical address. I/O devices communicate with CPU and memory via buses in a memory-mapped or interrupt-driven manner, with DMA offloading data transfers to improve efficiency.