Anda di halaman 1dari 20

MANAJEMEN MEMORI

Kelompok IV :
• Pujo Widagdo
• Ridwan
• Desy Kurniasih
• Rizki Dimas
• Tri Yuniasih
• Puteri Yuni
• Noveta Geti
• Christine Indriani
• Fitriani
• Susilo
• Rofik
MANAJEMEN MEMORI
Manajemen memori adalah proses pengedalian dan
koordinasi memori computer, menugaskan bagian yang
disebut blok ke berbagai program untuk mengoptimalkan
kinerja system secara keseluruhan.
Adapun Manajemen Memori yang akan dibahas adalah :
1. Konsep dasar memori, terbagi menjadi 4:
• Konsep Binding
• Dynamic Loading
• Dynamic Linking
• Overlay
KONSEP BINDING

• Dynamic Loading adalah program utama di-load dahulu dan


dieksekusi. Bila suatu routine perlu memanggil routine lain, routine
yang dipanggil lebih dahulu diperiksa apakah rutin yang dipanggil
sudah di-load. Jika tidak, relocatable linking loader dipanggil untuk
me-load rutin yg diminta ke memori dan meng-ubah tabel alamat.

• KEUNTUNGAN
rutin yang tidak digunakan tidak pernah di-load. Skema ini lebih
berguna untuk kode dalam jumlah besar diperlukan untuk
menangani kasus-kasus yang jarang terjadi seperti error
routine. Dinamicloading tidak memerlukan dukungan khusus dari
sistem operasi. Sistem operasi hanya perlu menyediakan beberapa
rutin pustaka untuk implementasi dynamic loading.
KONSEP BINDING

• Dynamic Linking adalah proses dengan


banyak langkah, ditemukan juga
penghubung-penghubung pustaka yang
dinamis, yang menghubungkan semua
rutin yang ada di pustaka
KONSEP BINDING
Konsep Binding adalah salah satu metode dalam manajemen
memori dalam komputer yang mana melakukan data ke
dalam beberapa alamat memori sebelum eksekusi program.
Contoh Konsep Binding:
-Proses Loading dalam eksekusi sebuah program sebelum
dipakai.
Objek
Source dalam
Program 1 Modul Lokasi
pengung-
Program
gah hasil
Berjalan
kompilasi
Source Ready
program to
“n” Execute

Proses Kompilasi Program


Cara Kerja Konsep Binding

• Sebelum eksekusi, program berada di dalam disk, dan


saat di eksekusi, program tersebut perlu berada pada
suatu lokasi dalam memori fisik.
• Alamat (address) pada source program umumnya
merupakan alamat simbolik. Sebuah compiler
biasanya membutuhkan "mengikat" (bind) alamat
simbolik ke alamat relokasi.
• Binding instruksi dan data ke memori dapat terjadi
dalam tiga cara yang berbeda:
1. Compilation Time
2. Load Time
3. Execution Time
• Sebagian besar sistem memperbolehkan sebuah
proses user (user process) untuk meletakkan di
sembarang tempat dari memori fisik. Sehingga,
meskipun alamat dari komputer dimulai pada 00000,
alamat pertama dari proses user tidak perlu harus
dimulai 00000.
DYNAMIC LOADING
Dynamic loading adalah salah satu konsep manajemen
memori dimana tidak semua bagian program diambil ke
memori, hanya bagian-bagian yang diperlukan saja yang
harus tetap tinggal dalam memori.

Contoh Dynamic Loading int total=0;


• Load routine main () ke memory int hitung(int a,int b){
• Routing hitung () masih di disk return a+b;
• Program memanggil fungsi hitung }
() int main(){
• Routing hitung di load ke memory printf(“Program Hitung”);
int hasil = hitung(5,10);
printf(“Hasil”);
}
Cara Kerja Dynamic Loading

Program utama di - load dahulu dan dieksekusi. Bila


suatu routine perlu memanggil routine lain, routine yang
dipanggil lebih dahulu diperiksa apakah rutin yang
dipanggil sudah di- load . Jika tidak, relocatable linking
loader dipanggil untuk me-load routine yang diminta ke
memori dan mengubah tabel alamat.
DYNAMIC LINKING

• Linking ditunda hingga waktu eksekusi.


• Program-program user tidak perlu menduplikasi system
library.
• System library dipakai bersama
• Mengurangi pemakaian space : satu rutin library di
memory digunakan secara bersama oleh
sekumpulan proses.
Contoh Dyamic Linking : DLL Win32
Cara Kerja Dynamic Linking

• Mekanisme menggunakan stub (potongan kecil yang


mengindikasi bagaimana meload library jika routine
tidak tersedia saat itu).

• Saat stub dieksekusi, ia akan memeriksa apakah rutin


yang bersangkutan sudah berada didalam memori
(diakses oleh proses lain yang run), kalau belum ada
maka rutin tersebut akan di load.

• Stub menempatkan dirinya pada alamat rutin dan


mengeksekusi rutin tersebut.
OVERLAY

Overlay adalah suatu teknik pemrograman yang berfungsi


membagi program, yang besar, menjadi bagian yang kecil
sehingga dapat dimuat secara parsial kedalam suatu page
memori yang berukuran lebih kecil.

Overlay program dipecah menjadi bagian-bagian yang


dapat dimuat memori, jika memori terlalu kecil untuk
menampung seluruhnya sekaligus. Overlay disimpan pada
disk dan dikeluarkan masukkan dari dan ke memori oleh
sistem operasi. Pembagian dilakukan oleh programmer.
Contoh Overlay

Terdapat two assembler. Selama pass 1,dibangun tabel


symbol, dan selama pass 2 dibangkitkan kode bahan
mesin. Kita dapat membagi assembler ke dalam kode
pass 1, kode pass 2, tabel symbol dan rutin umum pass
2.
Diasumsikan ukuran komponen sebagai berikut:
Pass 1 70k
Pass 2 80k
Tabel symbol 20k
Rutin umum 30k
Cara Kerja Overlay

• Pertama-tama membuat beberapa overlays yang didasarkan pada


instruksi-instruksi yang dibutuhkan pada satu waktu tertentu.
Setelah itu, membuat overlays driver-nya yang digunakan sebagai
jembatan atau perantara antara overlays yang dibuat.

• Proses selanjutnya ialah me-load instruksi yang dibutuhkan pada


satu waktu kedalam absolute memori dan menunda instruksi lain
yang belum dibutuhkan pada saat itu. Setelah selesai dieksekusi
maka instruksi yang tertunda akan di-load menggantikan instruksi
yang sudah tidak dibutuhkan lagi.

• Proses proses tersebut diatur oleh overlay driver yang dibuat oleh
pengguna. Untuk membuat suatu overlays dibutuhkan relokasi
dan linking algoritma yang baik oleh pelanggan.
RUANG ALAMAT LOGIKA &
FISIK
Alamat Logic adalah alamat yang dibuat di CPU.
Kumpulan dari alamat logic yang dibuat oleh program
adalah ruang alamat logic.

Sedangkan, Alamat Fisik adalah alamat yang dilihat di


memori (alamat yang dimasukkan ke register di memori).
Kumpulan dari alamat fisik yang berkorespondensi adalah
ruang alamat fisik.
Contoh Ruang Alamat Logika
& Fisik
Alamat Fisik adalah MAC address (alamat yang sudah
terdapat di NIC yang tidak dapat berubah), sedangkan
alamat logika adalah IP Address.
• Berikut contoh dari MAC Address :
Ethernet Adapter Local Area Connection
Connection-specific DNS Suffix. :
Description: Realtek RTL8168D(P) PCI-E Gigabit
Ethernet NIC
1. Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Realtek
RTL8168D(P)/8111D(P) PCI-E Gigabit Ethernet NIC
Physical Address. . . . . . . . . : 00-30-67-48-6D-08
Dhcp Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 192.168.0.7
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1
DNS Servers . . . . . . . . . . . : 203.130.193.74
202.134.0.155
• Berikut contoh dari IP Address :
1. IP address 25.20.5.31
Default subnet mask 255.0.0.0
Berada dikelas A

2. IP address 172.20.5.31
Default subnet mask 255.255.0.0
Berada dikelas B

3. IP address 195.20.5.31
Default subnet mask 255.255.255.0
Berada dikelas C
Cara Kerja Ruang Alamat
Logika & Fisik
Pada saat program berada di CPU, program tersebut
memiliki alamat logika, kemudian oleh MMU dipetakan
menjadi alamat fisik yang akan disimpan didalam
memori.

Ilustrasinya sebagai berikut, nilai pada register ini akan


ditambah dengan setiap alamat yang dibuat oleh user
process yang kemudian dikirim ke memori.
Contohnya register relokasi berada di 14000, alamat
logika di 346, maka langsung dipetakan menjadi alamat
fisik di 14346.
Terima kasih…

Anda mungkin juga menyukai