Virtual memory là abstraction layer giữa process và RAM vật lý: mỗi process có không gian địa chỉ ảo riêng (64-bit: 128TB), OS + MMU (Memory Management Unit) dịch virtual address sang physical address qua page table.
Lợi ích:
- Isolation: process A không thể đọc bộ nhớ process B dù cùng máy
- Overcommit: tổng virtual memory của tất cả process có thể vượt RAM thực (OS swap ít-dùng pages ra disk)
- Shared libraries: nhiều process share cùng physical pages của libc nhưng map vào virtual address space riêng
- Memory-mapped files (mmap): file map vào virtual memory, OS lazily load pages khi access
- Copy-on-Write (CoW) khi fork: parent và child share physical pages cho đến khi một bên write
Nhược điểm: page table overhead (~8MB per process với 4-level paging); TLB miss latency. Thực tế: docker stats show virtual memory rất lớn nhưng RSS (Resident Set Size) là RAM thực dùng; OOM Killer kill process dùng nhiều RAM nhất khi system hết memory.