Anda di halaman 1dari 54

MANAJEMEN MEMORI

MANAJEMEN MEMORI

 Konsep Dasar Memori


 Intro
 Pengalamatan memori
 Konsep binding
 Dynamic loading
 Dynamic linking
 Overlay
 Pengalamatan memori
 Logical address
 Physical address
 Swapping
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.

 Memori utama termasuk tempat penyimpanan data yang sementara (volatile),


artinya data dapat hilang begitu sistem dimatikan.

 Tanggung jawab Sistem operasi atas aktivitas managemen memori :


 Menjaga track memori yang sedang digunakan dan siapa yang menggunakannya.
 Memilih program yang akan di-load ke memori.
 Mengalokasikan dan meng-dealokasikan ruang memori sesuai kebutuhan.
INTRO
 Pada multiprogramming, setiap program yang sedang dijalankan harus dimuat
ke dalam memori
 Program yang ada di memori harus diproteksi
 Setiap program akan di tempatkan pada partisi yang berbeda
INTRO
Register
Processor

Cache Memory

Main Memory

Secondary
Memory

Hierarki Organisasi Memori


INTRO
 Tujuan pengorganisasian memori komputer:
 Meningkatkan kecepatan akses kode instruksi dan data oleh prosesor
 Mengurangi waktu menganggur(idle) prosesor
 Memperbesar kapasitas penyimpanan sistem memori komputer

 Secara umum, semakin bawah tingkatan pada hirarki organisasi komputer,


maka:
 Harga per satuan byte semakin rendah
 Kapasitas penyimpanan semakin besar
 Frekuensi pengaksesan semakin kurang
 Kecepatan akses semakin lambat
INTRO –CACHE MEMORY
 Untuk mengatasi perbedaan kecepatan, digunakan teknik caching untuk
memori utama dengan menggunakan memori cache.
 Umumnya berada dalam prosessor
 Kapasitas jauh lebih kecil dari memori utama
 Kecepatan transfer mengikuti clock processor
 Prinsip kerja sebagai salinan bayangan dari data dan kode instruksi di memori
utama
INTRO – MAIN MEMORY
 Memori utama pada umumnya dapat diakses secara random, RAM (Random
Access Memory) dan volatile.
 Namun sayangnya kecepatan transfer data dari memori utama ke prosesor
sangat lambat jika dibandingkan dengan eksekusi prosesor
 Contoh: Pentium IV 1.7GHz memiliki front bus 400MHz, artinya terdapat
selisih kecepatan 4X, berarti setiap kali terjadi transfer data dari memori
utama ke register prosesor, prosesor harus menunggu sebanyak 4 siklus
eksekusi.
INTRO – SECONDARY MEMORY
 Memori sekunder umumnya berupa disk dan bersifat non-volatile
 Kecepatan transfer jauh lebih lambat dari memori utama
 Untuk mengatasi kekurangan tempat pada ruang memori utama yaitu teknik
virtual memory
PENGALAMATAN MEMORI
 Tugas untuk mereferensi kode instruksi atau data di memori utama secara
tepat merupakan tanggung jawab dari compiler
 Compiler berfungsi mengubah source code yang ditulis programmer menjadi
file yang berisi kode instruksi program yang dapat dijalankan prosessor
 Dalam menentukan alamat instruksi atau data, compiler mengacu pada metode
pengalamatan memori yang dipakai sistem komputer
PENGALAMATAN MEMORI
 Metode pengalamatan memori mendefinisikan:
 Model alamat yang dituliskan pada kode instruksi program
 Mekanisme penyalinan
 Kapan dan bagaimana alamat dalam kode instruksi program diterjemahkan dalam
alamat fisik memori sesungguhnya.
PENGALAMATAN MEMORI

Secara garis besar metode pengalamatan memori dapat dibedakan atas :

 Pengalamatan secara fisik (Physical / absolute address)


 alamat yang ditulis pada kode instruksi adalah alamat fisik memori utama yang
sesungguhnya.

 Pengalamatan secara logika (Logical Addressing)


 perlu ditranslasikan ke alamat fisik memori utama.
 Pada saat eksekusi, pengaksesan alamat akan ditranslasi dengan menjumlahkan
alamat referensi awal pada instruksi dengan isi register alokasi untuk
mendapatkan alamat fisik memori
KONSEP BINDING (IKATAN)
 Alamat yang terdapat dalam kode instruksi tidak selamanya berupa alamat fisik,
tapi dapat berupa alamat logika yang perlu ditranslasi lebih dahulu.
 Aktivitas translasi alamat ini disebut dengan address binding.
KONSEP BINDING (IKATAN)
 Sebelum eksekusi, program berada di dalam disk, dan saat dieksekusi program
tersebut perlu berada pada suatu lokasi dalam memori fisik.
 Address Binding adalah cara instruksi dan data (yang berada di disk sebagai file
executable) dipetakan ke alamat memori. Alamat (address) pada source
program umumnya merupakan alamat simbolik. Sebuah compiler biasanya
membutuhkan “mengikat” (bind) alamat simbolik ke alamat relokasi.
KONSEP BINDING (IKATAN)
Address binding dapat terjadi pada saat:
 Compile Time
 apabila dimungkinkan letak / alamat fisik memori diketahui sebelum diekseskusi agar
langsung dapat ditulis pada source code.
 Kelemahan: program tidak dapat direlokasi selama eksekusi.

 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)

 Pada Multiprogramming memori utama harus mengalokasikan tempat


untuk sistem operasi dan beberapa user proses. Memori harus
mengakomodasi baik OS dan proses user.
 Memori dibagi menjadi 2 partisi :
 Untuk OS yang resident
 Untuk Proses User

 Contiguous Allocation terbagi menjadi 3:


 Partisi statis
 Partisi dinamis
 Sistem buddy
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)

1. Contiguous Allocation Partisi statis


Ciri-ciri
 Memori dibagi menjadi partisi-partisi dengan ukuran yang tetap.
 Satu proses hanya memakai satu partisi. Jika proses sudah selesai, partisi
tersebut dapat digunakan proses yang lain.
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)

1. Contiguous Allocation Partisi statis


 Dibagi menjadi 2 bagian:
 Berukuran sama
 Kelemahan Contiguous Allocation Partisi statis berukuran sama antara lain:
 Proses yang ukurannya lebih besar dari ukuran partisi tidak dapat dialokasikan.
 Sebaliknya bila ukuran proses lebih kecil daripada ukuran partisi, maka akan terjadi
pemborosan ruang memori (Fragmentasi internal).

 Berukuran tidak sama


 Untuk mengatasi kelemahan dari Pengalokasian berurut dengan partisi statis dengan ukuran
sama, yaitu proses ukuran kecil diletakkan ke partisi yang kecil dan sebaliknya.
 Ada 2 jenis strategi:
 Satu antrian untuk setiap partisi
 Satu antrian untuk seluruh partisi
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)

1. Contiguous Allocation Partisi statis


MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)

1. Contiguous Allocation Partisi statis


MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)

2. Contiguous Allocation Partisi dinamis


Ciri-ciri:
 Pada kondisi awal, memori tidak dibagi menjadi partisi-partisi
 Pemartisian dilakukan pada saat image proses akan disalin ke memori
utama.
 Ukuran partisi yang dialokasikan akan disesuaikan dengan ukuran image
proses.
 Partisi akan dibebaskan jika program sudah selesai.
 Keuntungan : tidak terjadi fragmentasi internal alokasi memori disesuaikan
dengan besarnya image proses.
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)

2. Contiguous Allocation Partisi dinamis


Cara Kerja:
 Pengalokasian dilakukan dengan mencari hole: suatu ruang memori utama
yang kosong, yang cukup besar untuk menampung image proses.
 Hole sisa kadang kala terlalu kecil untuk dapat dialokasikan ke proses
lainnya sehingga tidak bisa digunakan lagi (fragmentasi eksternal)
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)

2. Contiguous Allocation Partisi dinamis


MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)

2. Contiguous Allocation Partisi dinamis


 Salah satu cara untuk mengatasi masalah ini adalah melakukan memory
compaction, yaitu: menggeser image proses-proses yang ada di memori
sehingga hole terkumpul di satu tempat saja.
MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING
1. Pengalokasian berurutan (Contiguous Allocation)

2. Contiguous Allocation Partisi dinamis


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

Anda mungkin juga menyukai