Pemuatan Dinamis Linking Dinamis Pustaka Bersama

8

Bab 2. Alokasi Memori

2.1. Pendahuluan

Memori merupakan salah satu sumber daya yang penting dalam pengeksekusian sebuah proses. Memori terdiri dari array word atau byte yang masing-masing memiliki alamat. Suatu proses dapat dieksekusi bila ia telah berada dalam memori sebelum CPU mengambil instruksi-instruksi pada alamat yang ditunjuk oleh program counter. Bagian dari sistem yang bertugas untuk mengatur memori disebut memory manager. Memory manager mengatur bagian mana dari memori yang harus digunakan dan mana yang tidak pada suatu waktu, selain itu memory manager juga mengalokasikan memori untuk proses-proses yang membutuhkannya serta men-dealokasikannya kembali saat proses-proses tersebut tidak lagi membutuhkannya. Masalahnya adalah bagaimana jika memori tidak lagi cukup untuk menampung semua proses yang akan dieksekusi? Solusi untuk masalah ini adalah dengan teknik pemindahan proses dari memori ke dalam disk dan kembali memindahkannya ke memori pada saat hendak dieksekusi lagi atau yang lebih dikenal dengan istilah swapping.

2.2. Swap

Sebuah proses, sebagaimana telah diterangkan di atas, harus berada di memori sebelum dieksekusi. Proses swapping menukarkan sebuah proses keluar dari memori untuk sementara waktu ke sebuah penyimpanan sementara dengan sebuah proses lain yang sedang membutuhkan sejumlah alokasi memori untuk dieksekusi. Tempat penyimpanan sementara ini biasanya berupa sebuah fast disk dengan kapasitas yang dapat menampung semua salinan dari semua gambaran memori serta menyediakan akses langsung ke gambaran tersebut. Jika eksekusi proses yang dikeluarkan tadi akan dilanjutkan beberapa saat kemudian, maka ia akan dibawa kembali ke memori dari tempat penyimpanan sementara tadi. Bagaimana sistem mengetahui proses mana saja yang akan dieksekusi? Hal ini dapat dilakukan dengan ready queue. Ready queue berisikan semua proses yang terletak baik di penyimpanan sementara maupun memori yang siap untuk dieksekusi. Ketika penjadwal CPU akan mengeksekusi sebuah proses, ia lalu memeriksa apakah proses bersangkutan sudah ada di memori ataukah masih berada dalam penyimpanan sementara. Jika proses tersebut belum berada di memori maka proses swapping akan dilakukan seperti yang telah dijelaskan di atas. Gambar 2.1. Proses Swapping Sebuah contoh untuk menggambarkan teknik swapping ini adalah sebagai berikut: Algoritma Round-Robin yang digunakan pada multiprogramming environment menggunakan waktu kuantum satuan waktu CPU dalam pengeksekusian proses-prosesnya. Ketika waktu kuantum berakhir, 9