Sistem operasi dan berbagai proses pengguna terletak di dalam memori utama. Oleh karena itu, kita harus menjaga agar proses diantara keduanya tidak bercampur dengan cara mengalokasikan sejumlah bagian memori tersebut untuk sistem operasi dan proses pengguna. Memori ini biasanya dibagi menjadi 2 bagian. Satu untuk sistem operasi, dan satu lagi untuk proses pengguna.
Pemetaan memori (memory mapping) membutuhkan sebuah register relokasi. Sebagaimana yang telah dijelaskan pada bab sebelumnya, register relokasi merupakan base register yang ditambahkan ke dalam tiap alamat proses pengguna pada saat dikirimkan ke memori. Pada pemetaan memori ini terdapat limit register yang terdiri dari rentang nilai alamat logika . Dengan adanya limit register dan register relokasi, tiap alamat logis haruslah lebih kecil dari limit register. Proses pemetaan dilakukan oleh MMU (Memory Management Unit) dengan menjumlahkan nilai register relokasi ke alamat logis. Alamat yang telah dipetakan ini lalu dikirim ke memori. Pada gambar dibawah ini kita dapat melihat bahwa sebuah proses yang memiliki base register 30004 dan limit register 12090 akan dipetakan ke memori fisik dengan alamat awalnya sesuai dengan base register (30004) dan berakhir pada alamat (30004 + 12090 = 42094).
Ketika penjadwal CPU memilih suatu proses untuk dieksekusi, ia akan
memasukkan register relokasi dan juga limit
register -nya. Register relokasi memungkinkan sistem
operasi untuk merubah ukuran partisinya pada memori secara dinamis.
Contohnya, kode dan buffer
yang dialokasikan untuk driver peralatan pada sistem operasi
dapat dihapus dari memori jika peralatan
tersebut jarang digunakan. Kode semacam ini disebut kode sistem operasi
yang transient, oleh karena kode ini
dapat "datang dan pergi" dari memori tergantung kapan ia dibutuhkan.
Sehingga penggunaan kode transient
ini dapat merubah ukuran sistem operasi selama
eksekusi program berlangsung.