MANAJEMEN MEMORI
Manajemen Memori
Monoprogramming
Multiprogramming
Contiguous allocation
Non-contiguous allocation
KONSEP DASAR MEMORI
INTRO
Memory merupakan tempat menampung data dan kode instruksi program
Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses
yang akan dijalankan, harus melalui memori terlebih dahulu.
Sistem Operasi bertugas untuk mengatur peletakan banyak proses pada suatu
memori
Manajemen memori berkaitan dengan aktifitas pengelolaan penggunaan
memori pada saat komputer aktif dan menjalankan proses-proses
INTRO
Memori Utama berfungsi sebagai tempat penyimpanan yang akses datanya
digunakan oleh CPU atau perangkat I/O.
Cache Memory
Main Memory
Secondary
Memory
Loading Time
Dilakukan pada saat loading program ke memori utama
Hasil kompilasi disimpan dalam file yang berisi alamat fisik.
Jika terjadi perubahan relokasi maka code di-load ulang
KONSEP BINDING (IKATAN)
Address binding dapat terjadi pada saat:
Execution Time
membutuhkan perangkat keras seperti MMU (Memory Management Unit)
MMU bertanggung jawab membantu proses perhitungan transasi alamat logika ke
alamat fisik pada saat eksekusi.
Dimungkinkan suatu proses berpindah alamat sewaktu dieksekusi.
DYNAMIC LOADING
Tidak semua bagian program diambil ke memori.
Dengan dynamic loading, Routine yang tidak digunakan tak akan pernah di-load
ke memori.
Mekanisme dasar:
Program utama diload dan dieksekusi.
Pada saat suatu routine butuh memanggil routine yang lain, maka pertama routine
pemanggil mengecek apakah rotine yang dibutuhkan sudah pernah diambil. Jika belum,
maka routine yang dipanggil tersebut akan diambil dan dialokasikan di memori utama
DYNAMIC LOADING
Keuntungan dynamic loading :
Rutin yang tidak digunakan tak akan pernah di-load ke memori.
Untuk menghindari pemakaian rutin yang salah dalam program dengan jumlah kode
yang besar.
Tidak memerlukan bantuan sistem operasi. Metode ini menjadi tanggung jawab
user/programmer. SO hanya menyediakan routine library
DYNAMIC LINKING
Konsep sama dengan dynamic loading, hanya saja penekanan pada proses
linking.
Program-program user tidak perlu menduplikasi system library karena :
System library dipakai bersama
Mengurangi pemakaian space : satu rutin library di memori digunakan secara bersama
oleh sekumpulan proses
Contoh : DLL Win32
sistem operasi dibutuhkan untuk memeriksa apakah routine yang diperlukan ada di
ruang memori proses yang lain.
OVERLAY
Overlay membagi program yang besar menjadi bagian-bagian yang lebih kecil dan dapat
dimuat dalam memori utama.
Dibutuhkan ketika proses yang ada lebih besar dibandingkan memori yang tersedia
Diimplementasikan oleh user, tidak ada dukungan khusus dari sistem operasi, desain
program pada struktrur overlay cukup kompleks.
Ide dari overlay adalah yang disimpan di memori adalah hanya instruksi dan data yang
diperlukan pada waktu tertentu. Bila instruksi lain yang diperlukan, maka akan
diletakkan ditempat instruksi lama yang tidak diperlukan lagi.
OVERLAY
Overlay pada two-pass assembler
OVERLAY
Untuk load keseluruhan dibutuhkan memori 200K. Jika yang tersedia hanya 150K,
maka tidak bisa dieksekusi.
Dengan menggunakan overlay, maka routine dibagi menjadi 2 overlay
Overlay A terdiri dari symbol table, common routine dan pass 1 (butuh 120K)
Overlay B terdiri dari symbol table, common routine dan pass 2 (butuh 130K)
Membutuhkan overlay driver 10K
SWAPPING
SWAPPING
SWAPPING
Suatu proses dapat di-swap secara temporary keluar dari memori dan dimasukkan ke
backing store, dan dapat dimasukkan kembali ke dalam memori pada eksekusi
selanjutnya.
Backing store –disk cepat yang cukup besar untuk mengakomodasi copy semua
memori image pada semua user; menyediakan akses langsung ke memori image.
Roll out, roll in – varian swapping yang digunakan dalam penjadualan prioritas; proses
dengan prioritas rendah di-swap out, sehingga proses dengan prioritas tinggi dapat di-
load dan dieksekusi.
Bagian terbesar dari swap time adalah transfer time, total transfer time secara
proporsional dihitung dari jumlah memori yang di swap.
MANAJEMEN MEMORI
MANAJEMEN MEMORI
Manajemen memori pada sistem Monoprogramming
Manajemen memori pada sistem Multiprogramming
MANAJEMEN MEMORI PADA SISTEM
MONOPROGRAMMING
Ciri-ciri:
Hanya ada satu proses pada suatu saat dan menggunakan seluruh area memori.
Program diletakkan seluruhnya ke memori dari disk.
Program mengambil kendali seluruh sumber daya komputer.
MANAJEMEN MEMORI PADA SISTEM
MONOPROGRAMMING
Ilustrasi dan user
MANAJEMEN MEMORI PADA SISTEM
MULTIPROGRAMMING
Ciri-ciri:
Terdapat sejumlah proses yang menempati memori
Alokasi memori ke proses dapat berurutan atau tidak
Dimungkinkan suatu lokasi memori utama diakses bersama oleh sejumlah
proses (memory sharing)
MANAJEMEN MEMORI PADA SISTEM
MULTIPROGRAMMING
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)
3. Sistem Buddy
Berupa pemartisian secara dinamis
Ciri khusus adalah partisi yang terbentuk senantiasa berukuran besar
sebesar bilangan 2n
2,4,8,16…..256,512,1024(1Mb)
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)
3. Sistem Buddy
Alokasi memori pada sistem buddy:
Menentukan ukuran partisi
Ditentukan ukuran partisi untuk menampung image proses yaitu ukuran bilangan pangkat 2
terkecil
Misal : ukuran image proses = 12kb
maka ukuran partisi yang bisa digunakan adalah 16kb.
Pengalokasian
Selanjutnya adalah mencari hole yang ukurannya sebesar perhitungan.
Jika tidak ada maka dicarikan hole yang berukuran sedikit lebih besar. Kemudian dipecah
secara bertahap sesuai dengan aturan bilangan pangkat 2.
Misal : ukuran image proses = 12kb
dan hole yang paling kecil adalah 64kb.
maka dipecah menjadi 2 partisi 32kb, selanjutnya dipecah lagi menjadi 2 partisi 16kb.
dan partisi 16kb pertama yang bisa dipakai untuk image proses 12kb.
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)
3. Sistem Buddy
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
2. Pengalokasian tidak berurutan (Non-Contiguous Allocation)
1. Paging
Pada model pengalokasian tak berurut, bagian-bagian dari image proses
dapat diletakkan secara terpisah di memori utama.
Pada sistem paging memerlukan pengalamatan logika khusus yang
membagi menjadi blok-blok dengan ukuran sama yang disebut page
Pada sistem paging, perlu adanya translasi alamat ke memori fisik yang
dipartisi secara statis yang disebut frame, yang ukurannya sama dengan
page pada ruang alamat logika
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
2. Pengalokasian tidak berurutan (Non-Contiguous Allocation)
1. Paging
Konsep dasar alokasi memori :
Memori utama dibagi menjadi frame-frame kecil berukuran sama dan diberi
nomor frame sebagai referensi.
Ruang alamat logika proses dibagi menjadi page-page seukuran frame
Loading time: page-page image proses diletakkan pada frame-frame kosong dan
dicatat pada page table
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
2. Pengalokasian tidak berurutan (Non-Contiguous Allocation)
1. Paging
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
2. Pengalokasian tidak berurutan (Non-Contiguous Allocation)
1. Segmentation
Segmentasi adalah skema pengaturan memori yang mendukung user untuk
melihat memori tersebut.
Tiap-tiap segmen memiliki nama dan panjang.
Memakai sistem partisi dinamis.
Pada pengalamatan logika, image proses dibagi menjadi bagian-bagian yang
disebut segmen.
Pembagian segmen biasanya mengikuti struktur program oleh kompiler,
yang biasanya tiap segmen berupa main program, stack, routine, symbol
table
Partisi memori utama terjadi pada saat alokasi yang besarnya sesuai
dengan besar segmen program yang dialokasikan
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
2. Pengalokasian tidak berurutan (Non-Contiguous Allocation)
1. Segmentation
Dukungan Hardware:
Pemetaan ke alamat fisik dilakukan
dengan menggunakan tabel segmen,
masing-masing berisi base dan limit
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
2. Pengalokasian tidak berurutan (Non-Contiguous Allocation)
1. Segmentation
Ilustrasi gambar di atas:
Suatu alamat logik terdiri dari dua bagian, yaitu nomor segmen (s), dan
offset pada segmen (d).
Nomor segmen digunakan sebagai indeks dalam segmen table. Offset d
alamat logik harus antara 0 hingga dengan segmen limit. Jika tidak maka
diberikan pada sistem operasi.
Jika offset ini legal maka akan dijumlahkan dengan segmen base untuk
menjadikannya suatu alamat di memori fisik dari byte yang diinginkan.
Jadi segmen table ini merupakan suatu array dari pasangan base dan
limit register.
TERIMA KASIH