Manajemen Memori - E

advertisement
Sistem operasi
Manajemen Memori
Manajemen Memori
Pembahasan :
• Konsep dasar manajemen memori
• Ruang alamat logika dan fisik
• Swapping
• Alokasi berurutan
• Paging
• Segmentasi
• Segmentasi dengan paging
Manajemen Memori
• Tugas utama system operasi adalah untuk mengatur memori, yang
meliputi tugas memasukkan (swap in) dan mengeluarkan (swap
out) blok-blok data dari memori sekunder.
• Didalam system Uniprogramming, memori utama dibagi menjadi
dua bagian yaitu satu bagian untuk system operasi (resident monitor,
kernel) dan satu bagian lainnya untuk program yang saat itu
dieksekusi.
• Sedangkan didalam system Multiprogramming bagian memori
“pengguna” harus dibagi lagi untuk mengakomodasi proses yang
jumlahnya banyak. Pembagian tersebut dilakukan secara dinamis
oleh system operasi. Proses yang demikian dikenal dengan
manajemen memori.
Konsep dasar manajemen memori
Operasi manejemen memori yag terpenting adalah membawa
program-program ke dalam memori utama untuk dieksekusi oleh
prosesor.
Dibawah ini ada beberapa teknik untuk manajemen memori yang
dibuat menjadi tabel :
• Partisi tetap
Memori utama dibagi menjadi beberapa statis pada saat pembuatan
system. Sebuah proses dapat dimuatkan kedalam partisi yang
ukurannya sama atau lebih besar.
• Partisi dinamis
Partisi-partisi dibuat secara dinamis, sehingga semua proses
dimuatkan kedalam partisi yang ukurannya sama dengan ukuran
proses.
Konsep dasar manajemen memori
• Paging sederhana
Memori utama dibagi menjadi frame-frame yang berukuran sama.
Setiap proses dibagi menjadi paga-page yang berukuran sama yang
panjangnya sama dengan frame.
• Segmentasi sederhana
Setiap proses dibagi menjadi beberapa segmen
Konsep dasar manajemen memori
• Virtual memori paging
Seperti pada paging sederhana, kecuali saja disini tidak perlu
memuatkan seluruh page suatu proses. Page-page nonresident
yang diperlukan akan dibawa kemudian secara otomatis.
• Segmentasi memori virtual
Seperti pada segmentasi sederhana kecuali saja disini tidak perlu
memuatkan seluruh segmen suatu proses. Segmen-segmen
nonresident yang diperlukan akan dibawa kemudian secara
otomatis.
Ruang alamat logika dan ruang
alamat fisik
• Alamat yang dibangkitkan oleh CPU disebut alamat
logika (logical address) dimana alamat terlihat sebagai
uni memory yang disebut alamat fisik (physical address).
Tujuan utama manajemen memori adalah konsep
meletakkan ruang alamat logika ke ruang alamat fisik.
• Memory Manajement Unit (MMU) adalah perangkat
keras yang memetakan alamat virtual ke alamat fisik.
Pada skema MMU, nilai register relokasi ditambahkan ke
setiap alamat yang dibangkitkan oleh proses user pada
waktu dikirim ke memori.
Ruang alamat logika dan ruang
alamat fisik
Swapping
Sebuah proses harus berada di memori untuk di eksekusi. Proses
juga dapat di tukar (swap) sementara keluar memory ke backing
store dan kemudian di bawa kembali ke memori untuk
melanjutkan eksekusi.
Alokasi berurutan
Memori utama biasanya di bagi menjadi kedalam dua partisi yaitu
untuk :
• Sistem operasi biasanya diletakkan pada alamat memori rendah
dengan vektor interpsi.
• Proses user di letakakn pada alamat memori tinggi.
Single Partition Allocation
Single Partition Allocation
Pada single partition allocation di asumsikan sistem opersi di
tempatkan di memori rendah dan proses user di eksekusi di
memori tinggi. MAR = Memory Address Register
Relocation
register
Logical
address
Physical
address
Multiple Partition Allocation
• partisi tetap (fixed partition) di mana memori dibagi
dalam sejumlah partisi terbatas pada tinggkat
multiprograming. Skema ini digunakan oleh IBM OS/360
yang di sebut multiprogramming with fixed number of
task (MFT).
• Partisi dinamis (variable partition) merupakan MFT
yang di generalisasi yang di sebut multiprogramming
with variable number of task (MVT). Skema ini di
gunakan terutama pada lingkungan batch.
Proses alokasi memori
Contoh alokasi memory
• Diasumsikan tersedia memori 2560K dan untuk
OS 400K. Sisa 2160K digunakan untuk user
proses.
• Diasumsikan terdapat 5 job (P1 s/d P5) terdapat
pada input queue.
• Diasumsikan penjadwalan FCFS digunakan
untuk meletakkan job ke memori. Penjadwalan
CPU secara round-robin (quantum time = 1)
untuk penjadwalan job yang sudah terdapat di
memori.
Contoh alokasi memori
Contoh alokasi memori
Multiple Partition Allocation
• Menggunakan MVT, terdapat beberapa lubang dengan
ukuran berbeda. Bila proses datang dan memerlukan
memori, dicari dari lubang yang cukup untuk proses.
• Dynamic storage-allocation dapat dilibatkan untuk
memenuhi permintaan ukuran n dari lubang yang bebas.
Strategi yang digunakan meliputi :
• First-fit : alokasi lubang pertama yang cukup untuk
proses. Pencarian dari awal.
• Next-fit : alokasi lubang pertama yang besarnya cukup,
pencarian dari akhir sebelumnya.
Multiple Partition Allocation
• Best-fit : alokasi lubang terkecil yang cukup untuk
proses. Strategi ini memerlukan pencarian keseluruhan
lubang, kecuali bila ukuran sudah terurut.
• Worst-fit : alokasi lubang terbesar yang cukup untuk
proses. Strategi ini memerlukan pencarian keseluruhan
lubang, kecuali disimpan berdasarkan urutan ukuran.
• Diantara algoritma diatas, first-fit dan best-fit lebih baik
dibanidngkan worst-fit dalam hal menurunkan waktu dan
utilitas penyimpan. Meski first-fit dan best-fit lebih baik
dalam hal utilitas penyimpanan tetapi first-fit lebih cepat.
Fragmentasi
• Fragmentasi eksternal terjadi pada situasi dimana
terdapat cukup ruang memori total untuk memenuhi
permintaan, tetapi tidak dapat langsung dialokasikan
karena tidak berurutan
• Fragmentasi internal terjadi pada situasi dimana
memori yang dialokasikan lebih besar daripada memori
yang diminta, tetapi untuk satu partisi tertentu hanya
berukuran kecil sehingga tidak digunakan.
Fragmentasi
Fragmentasi
• Solusi untuk masalah fragmentasi eksternal adalah
dengan
teknik
pemadatan
(compaction)
yaitu
memadatkan sejumlah lubang kosong menjadi satu
lubang besar sehingga dapat digunakan untuk proses.
Pemadatan tidak selalu dapat dipakai. Agar proses dapat
dieksekusi pada lokasi baru, semua alamat internal harus
direlokasi.
• Pemadatan hanya dilakukan pada relokasi dinamis dan
dikerjakan pada waktu eksekusi. Karena relokasi
membutuhkan pemindahan program dan data dan
kemudian mengubah register basis (atau relokasi) yang
mencerminkan alamat basis baru.
Fragmentasi
Paging
User seolah mempunyai ruang memory sangat besar tanpa
mengelola overlay.
Beberapa istilah dalam sistem paging :
 Alamat maya (virtual address)
 Alamat nyata (real address)
 Page
 Page frame
 Page fault
Konsep dasar Paging
Paging merupakan solusi untuk permasalahan fragmentasi
eksternal dimana ruang-ruang logika tidak berurutan
Mengizinkan sebuah proses dialokasikan pada memori fisik
yang terakhir tersedia
Arsitektur sistem paging
Model Paging
Segmentasi
• Konsep dasar segmentasi
user atau programmer tidak memikirkan sejumlah rutin program
yang dipetakan ke main memori sebagai array linear dalam byte,
tetapi memori dilihat sebagai kumpulan segmen dengan ukuran
berbeda-beda, tidak perlu berurutan diantara segmen tersebut.
Segmentasi adalah skema manajemen memori yang
memungkinkan user untuk melihat memori tersebut.
• Arsitektur segmentasi
pemetaan alamat logika ke alamat fisik menggunakan tabel
segmen terdiri atas :
 Segmen basis (base) berisi alamat fisik awal
 Segmen limit merupakan panjang segmen
Tabel page dapat berupa register atau memori berkecepatan
tinggi
Contoh segmentasi
Segment table
Proteksi dan sharing
Proteksi bit dapat diletakkan pada tabel segmen. Segmen
instruksi dapat diproteksi sebagai segmen read-only atau
execute only. Segmen data dapat diproteksi sebagai segmen
read-write.
Segmentasi dengan paging
• Multics
Solusi yang diadopsi adalah dengan melakukan paging pada segmen.
Paging menghilangkan fragmentasi eksternal di mana frame kosong
dapat digunakan untuk page yang tepat.
• Intel 30386
Menggunakan segmentasi dengan paging untuk manajemen memori ,
maksimum jumlah segmen per proses adalah 16K. Setiap segmen
maksimal berukuran 4 gigabytes. Ukuran page adalah 4Kbyte, dibagi
dalam partisi :
 Partisi 1 terdiri atas 8K segmen yang pribadi untuk proses tersebut
 Partisi 2 terdiri atas 8K segmen yang digunakan bersama untuk semua
proses
Teknik paging Vs segmentasi
Hal yang dipertimbangkan
Paging
Segmentasi
Perlukah pemrograman menyadari bahwa
teknik ini dipakai?
Tidak
Ya
Berapa banyak ruang alamat linear yang
terdapat
Cuma 1
Banyak
Dapatkah total ruang alamat melampaui
ukuran memori fisik?
Ya
Ya
Dapatkah prosedur dan data dibedakan dan
diproteksi secara terpisah ?
Tidak
Ya
Dapatkah tabel-tabel yang mempunyai fluktuasi
ukuran diakomodasikan dengan mudah?
Tidak
Ya
Apakah pemakaian bersama prosedur-prosedur
antara user difasilitasi?
Tidak
Ya
Kenapa teknik ini ditemukan?
Untuk
mendapatkan
alamat linear besar
tanpa harus
membeli banyak
memori fisik
Untuk memungkinkan
program-program dan
data dipecah, serta
membantu pemakaian
bersama dan proteksi
ORANG-ORANG YANG OPTIMIS BUKAN BERARTI
MENJALANI HIDUP TANPA KESULITAN
MEREKA TETAP MENGHADAPI MASALAH,
TANTANGAN, DAN HAMBATAN
NAMUN ITU TIDAK MENGHALANGI LANGKAHNYA
JUSTRU ITU SEBAGAI KESEMPATAN
TERIMAKASIH ^_^
Download