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.

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:

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

Kriteria-kriteria utama dalam metode ini antara lain:

·         Alokasi memori: proses p membutuhkan k unit memori.
·         Kebijakan alokasi yaitu "sesuai yang terbaik": memilih partisi terkecil yang cukup besar (memiliki ukuran = k).
·         Fragmentasi dalam (Internal fragmentation) yaitu bagian dari partisi tidak digunakan.
·         Biasanya digunakan pada sistem operasi awal (batch).
·         Metode ini cukup baik karena dia dapat menentukan ruang proses; sementara ruang proses harus konstan. Jadi sangat sesuai dengan parti si berukuran tetap yang dihasilkan metode ini.
·         etiap partisi dapat berisi tepat satu proses sehingga derajat dari pemrograman banyak multiprogramming dibatasi oleh jumlah partisi yang ada.
·         etika suatu partisi bebas, satu proses dipilih dari masukan antrian dan dipindahkan ke partisi tersebut.
·         Setelah proses berakhir (selesai), partisi tersebut akan tersedia (available) untuk proses lain.

B. 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.

Alokasi memori: proses p membutuhkan k unit memori.
Kebijakan alokasi:
1.     Sesuai yang terbaik: memilih lubang (hole) terkecil yang cukup besar untuk keperluan proses sehingga menghasilkan sisa lubang terkecil.

2.     Sesuai yang terburuk: memilih lubang terbesar sehingga menghasil kan sisa lubang.

3.     Sesuai yang pertama: memilih lubang pertama yang cukup besar untuk keperluan proses

·         Fragmentasi luar (External Fragmentation) yakni proses mengambil ruang, sebagian digunakan, sebagian tidak digunakan.

·         Memori, yang tersedia untuk semua pengguna, dianggap sebagai suatu blok besar memori yang disebut dengan lubang. Pada suatu saat memori memiliki suatu daftar set lubang (free list holes).


·         Saat suatu proses memerlukan memori, maka kita mencari suatu lubang yang cukup besar untuk kebutuhan proses tersebut.

·         Jika ditemukan, kita mengalokasikan lubang tersebut ke proses tersebut sesuai dengan kebutuhan, dan sisanya disimpan untuk dapat digunakan proses lain.

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

5.     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.

6.     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.


7.     ika 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.

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

Fragmentasi luar mempunyai kriteria antara lain:

·         Ruang memori yang kosong dibagi menjadi partisi kecil.

·         Ada cukup ruang memori untuk memenuhi suatu permintaan, tetapi memori itu tidak lagi berhubungan antara satu bagian dengan bagian lain (contiguous) karena telah dibagi-bagi.

·         Kasus terburuk (Worst case): akan ada satu blok ruang memori yang kosong yang terbuang antara setiap dua proses.

·         Aturan 50 persen: dialokasikan N blok, maka akan ada 0.5N blok yang hilang akibat fragmentasi sehingga itu berarti 1/3 memori akan tidak berguna.

Perbandingan kompleksitas waktu dan ruang tiga kebijakan alokasi memori.

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.

0 Response to "Alokasi Memori Yang Berdampingan"

Posting Komentar

powered by Blogger | WordPress by Newwpthemes | Converted by BloggerTheme