Fasilitas paging / memori virtual memungkinkan kernel "memvirtualisasi" memori ke proses userspace. Kernel dapat mengambil halaman dari memori fisik, dan mengaturnya melalui paging sehingga tampak bersebelahan dengan proses userspace.
Batas dapat ditetapkan pada memori proses userspace dan jika proses melampaui itu "kesalahan halaman" terjadi, yang menyebabkan pengecualian CPU yang memantul kembali ke kernel. Ini mencegah program userspace dari mengacaukan memori yang dialokasikan ke kernel atau program lain, tanpa izin kernel.
Biasanya program userspace meminta kernel untuk memperpanjang batas ini melalui antarmuka yang terdefinisi dengan baik (disebut dengan fungsi C malloc()
dan free()
misalnya.). Kernel bertanggung jawab untuk melacak berapa banyak dan memori apa yang dialokasikan oleh suatu program.
Mekanisme "kesalahan halaman" ini juga dapat membuat kernel menukar halaman yang coba diakses oleh proses dengan satu dari disk, jika kernel dapat kelebihan memori (dan Windows dan Linux mendukung ini) maka mengapa disebut swapping. Jika akses memori memang tidak valid (yaitu proses mencoba mengakses memori yang tidak diminta terlebih dahulu) maka biasanya proses tersebut akan dimatikan dengan SIGSEGV.
Jadi "swapping" adalah fitur tambahan (di Linux Anda benar-benar dapat menonaktifkannya sepenuhnya jika Anda mau) yang tergantung pada memori virtual / paging, tetapi tidak diperlukan hanya karena CPU memiliki memori / paging virtual. Konsepnya tidak sama tetapi swapping tergantung pada paging / memori virtual yang ada.
Juga, setelah lebih dekat membaca pertanyaan Anda, "paging" kadang-kadang digunakan sebagai sinonim untuk "swapping" - tetapi saya belum pernah mendengar tentang "swapping" yang berarti memori seluruh proses ditukar vs "paging" yang berarti hanya sebagian dari itu ditukar.
Tetapi mengapa linux membutuhkan partisi swap? Jika memori fisik penuh, beberapa proses akan di-outsource ke hard drive dan proses baru akan dipetakan dari memori virtual ke memori fisik.
"Memori virtual" adalah memori fisik, hanya "dipetakan ulang." Perangkat keras MMU tidak dapat langsung memetakan ke perangkat penyimpanan apa pun. MMU dapat melempar kesalahan yang memberitahu kernel suatu proses mencoba mengakses memori yang seharusnya tidak - dan kernel dapat menggunakan mekanisme ini untuk melihat bahwa suatu proses menginginkan sesuatu dari disk yang ia pikir ada di memori dan kemudian melakukan " menukar". Intinya adalah sistem operasi yang memutuskan untuk menyimpan halaman ke disk sehingga dapat menggunakan halaman tersebut untuk proses lain, bukan perangkat keras.