Alokasi Memori Yang Berdampingan

Memori biasanya dibagi menjadi dua bagian, yakni:

  1. Sistem Operasi (Operating System).

  2. Proses Pengguna (User Processes).

Sistem Operasi dapat dialokasikan pada memori bagian bawah (low memory) mau pun memori bagian atas (high memory). Hal ini tergantung pada letak vektor interupsi (interrupt vector) pada memori tersebut. Jika vektor interupsi lebih sering berada pada memori bawah, maka sistem operasi juga biasanya diletakkan pada memori bawah.

Memori memerlukan suatu perlindungan yang disebut dengan istilah memory protection yakni perlindungan memori terhadap:

  1. Sistem operasi dari proses pengguna;

  2. Proses pengguna yang satu dari proses pengguna lainnya.

Perlindungan memori tersebut dapat diakomadasikan menggunakan suatu register pengalokasian kembali (relocation register) dengan suatu register batasan (limit register).

Register batasan berisi jarak dari alamat logik (logical address), sementara register pengalokasian kembali berisi nilai dari alamat fisik (physical address) yang terkecil. Dengan adanya register pengalokasian kembali dan register batasan ini, mengakibatkan suatu alamat logik harus lebih kecil dari register batas an dan memori akan memetakan (mapping) alamat logik secara dinamik dengan menambah nilai dalam register pengalokasian kembali.

Gambar 4-1. Alokasi Kembali. Sumber: . . .

             register batasan  register pengalokasian kembali
                               |           |                                                      
|Prosesor|-->(alamat logik)-->|<|->(ya)-->|+|-->(alamat fisik)-->|MAR|
                   |(no)      
                    perangkap:  kesalahan pengalamatan

Sebagaimana telah diketahui, bahwa pengatur jadual prosesor (CPU scheduler) bertugas mengatur dan menyusun jadual dalam proses eksekusi proses yang ada. Dalam tugasnya, pengatur jadual prosesor akan memilih suatu proses yang telah menunggu di antrian proses (process queue) untuk dieksekusi. Saat memilih satu proses dari proses yang ada di antrian tersebut, dispatcher akan mengambil register pengalokasian kembali dan register batasan dengan nilai yang benar sebagai bagian dari skalar alih konteks.

Oleh karena setiap alamat yang ditentukan oleh prosesor diperiksa berlawanan dengan register-register ini, kita dapat melindungi sistem operasi dari program pengguna lainnya dan data dari pemodifikasian oleh proses yang sedang berjalan.

Metode yang paling sederhana dalam mengalokasikan memori ke proses-proses adalah dengan cara membagi memori menjadi partisi tertentu. Secara garis besar, ada dua metode khusus yang digunakan dalam membagi-bagi lokasi memori:

  1. Alokasi partisi tetap (Fixed Partition Allocation) yaitu metode membagi memori menjadi partisi yang telah berukuran tetap.

    Kriteria-kriteria utama dalam metode ini antara lain:

  2. Alokasi partisi variabel (Variable Partition Allocation) yaitu metode dimana sistem operasi menyimpan suatu tabel yang menunjukkan partisi memori yang tersedia dan yang terisi dalam bentuk s.

    Suatu proses yang telah dialokasikan memori akan dimasukkan ke memori dan selanjutnya dia akan bersaing dalam mendapatkan prosesor untuk pengeksekusiannya.

    • Jika suatu proses tersebut telah selesai, maka dia akan melepaskan kembali semua memori yang digunakan dan sistem operasi dapat mengalokasikannya lagi untuk proses lainnya yang sedang menunggu di antrian masukan.

    • Apabila memori sudah tidak mencukupi lagi untuk kebutuhan proses, sistem operasi akan menunggu sampai ada lubang yang cukup untuk dialokasikan ke suatu proses dalam antrian masukan.

    • Jika suatu lubang terlalu besar, maka sistem operasi akan membagi lubang tersebut menjadi dua bagian, dimana satu bagian untuk dialokasikan ke proses tersebut dan satu lagi dikembalikan ke set lubang lainnya.

    • Setelah proses tersebut selesai dan melepaskan memori yang digunakannya, memori tersebut akan digabungkan lagi ke set lubang.

Fragmentasi luar mempunyai kriteria antara lain:

Perbandingan kompleksitas waktu dan ruang tiga kebijakan alokasi memori.

Gambar 4-2. Alokasi Kembali. Sumber: . . .

                         Waktu       Ruang 
                        =================== 
Sesuai yang Terbaik      Buruk         Baik
Sesuai yang Terburuk     Buruk         Buruk
Sesuai yang Pertama      Baik          Baik

Sesuai yang pertama merupakan kebijakan alokasi memori paling baik secara praktis.