Sistem Operasi recent site activity (1)
KELOMPOK 1 ( satu )
•
•
•
•
•
Roni Aditya
M. Lingga
Z. Jeges. P
Yunus. Prayogo
M. Maulana Nurul Amin
BAB V
Manajemen Memori
Memori merupakan tempat menampung data
dan kode instruksi program. Kode instruksi
Program akan dibaca dari memori ke register
prosesor untuk dieksekusi baris demi baris,
Manajemen memori berkaitan dengan aktifitas
pengelolaan penggunaan memori pada saat
komputer
REGISTER
CHACHE MEMORY
MAIN MEMORY
SECONDARY MEMORY
Gambar diatas menunjukan hierarki organisasi memori
pada sistem komputer secara umum.pada tingkatan
paling atas terdapat register yang secara fisik berada
dalam chip prosessor. Contoh memori register adalah
register IR(Instruction Register)yang menampung kode
instruksi yang akan di eksekusi oleh prosesor.
Memori utama umumnya dapat diakses secara random
sehingga disebut dengan RAM (Random Acces Memory) dan
Volatile yaitu jika komputer dimatikan maka datanya juga
turut hilang.
Namun sayangnya kecepatan transfer data memori utama
ke prosesor sangat lambat jika dibandingkan dengan
kecepatan eksekusi prosesor.
Sebagai contoh intel pentiumn IV 1,7GHz memiliki frontbus
berkecepatan 400MHz ini berarti terdapat selisih kecepatan
eksekusi prosesor dan transfer data dari memori ke prosesor
sebanyak 4kali dan berarti setiap kali terjadi transfer data
dari memori utama ke register prosesor,prosesor harus
menunggi waktu iddle sebanyak 4 skilus
Untuk Mengatasi perbedaan kecepatan ini maka di gunakan
teknik caching untuk memori utama mengunakan memori
chache yang terbagi menjadi L1 chache dan L2 chache dan
umumnya berada dalam prosesor contoh kapasitas memori
chache adalah 256kbyte, 512kbyte.
Prinsip kerja chaching adalah sebagai salinan bayangan dari
data atau kode instruksi di memori utama. Jadi setiap data
di chache memiliki asosiasi dengan data di memori utama.
Setiap kali prosesor mengakses instruksi ataupun data dari
memori utama maka prosesor akan memeriks apakah
salinannya di chache.Kalau ada maka instruksi atau data
tersebut akan diambil langsung dari chache tanpa butuh
mengakses memori utama.Jika ternyata tidak ada di chache
maka cheche akan di perbaharui secara mekanisme block.
Tingkat paling bawah dari hierarki organisasi memori adalah
memori sekunder (secondary memory) umumnya berupa disk atau
non volatile, Dengan kecepatan dala lebih lambat dari memori
utama
Penggunaan kapasitas memori sekunder umumnya di batasi
misalnya 2kali ukuran memori utama.Alasan pembatsaan tersebut
adalah pengaksesan memori sekunder terlalu sering akan
menyebabkan penurunankinerja sistem komputer secara signifikaan
5.1 PENGALAMATAN MEMORI
Metode pengalamatan memori mendefinisikan model alamat yang
di tuliskan pada kode instruksi program, mekanisme penyalinan
,loading ,kode instruksi dan data program ke memori utama yang
sesungguhnya.
Secara garis besar, pengalamatan memori dapat di bedakan atas
pengalamatn secara fisik ,relatif dan logika.
1PENGALAMATAN SECARA FISIK (physical/AbsoluteAddresing)
Alamat yang ditulis pada kode instruksi program hasil kompilasi
merupakan alamat fisik memori utama yang sesungguhnya.konsekuensinya
adalah pada saat penyalinan image proses kememori utama maka kode
instruksi dan data program harus disalin pada posisi yang sesuai
dengan refrensi tersebut.
2.PENGALAMATAN SECARA RELATIF(Relative Addresing)
Alamat pada kode instruksi program merupakan alamat relatif (Offset)
terhadap posisi awal program .Pada saat image proses dari program
tersebut di salin atau di alokasikan ke memori utama, alamat awal
memorinya di catat ke suatu register alokasi.
Pada saat eksekusi pengaksesan alamat akan di translasi dengan
menjumlahkan alamat refrensi pada instruksi dengan isi register
alokasiuntuk mendapatkan alamat fisik yang akan benar-benar di akses.
Yang umumnya dilakukan denga menggunakan perangkat perangkat keras
khusu yang di sebut dengan MMU(memory management unit)
3.PENGALAMATAN SECARA LOGIKA (LOGICAL ADDRESING)
Pada pengalamatan secara logika alamat yang dad
pada kode program merupakan suatu alamat logika
yang masih perlu diterjemahkan atau di translasikan
ke alamat fisik memori utama pada saat ekseskusi.
Kelebihan pengalamatan ini adalah relokasi
program dapat dilakukan secara fleksibel, kapasitas
alamat logika programdapat lebih besar dari pada
kapasitas fisik memori utama
Kode Program
…
…
Jump [35]
1400
Jump [35]
Ruang Alamat Logika
P1
KODE PROGRAM
DATA
P2
P3
P4
P5
CPU
P3(+0ffset)
Alamat Logika
TABEL ALOKASI
LOGIKA
FISIK
P1
F2
P3
F4
KODE
F1
F2
F3
F4 P3 (KODE)
F5
F6
F7
F8
F9
(2) Translasi Alamat
P1 Data
Berdasarkan cara membagi ruang lamat logika
program, Pengalamatan logika dapat dibedakan atas
sistem paging dan segmentasi. Sistem paging
membagi ruang alamat logika program dalam
fragmen yang berukuran berbeda-beda dan
pemartisian memori utama bersifat dinamisdengan
ukuran yang bervariasi yang di sebut dengan segmen
5.2 ADDRESS BINDING
Aktifitas translasi alamat ini disebut juga dengan
istilah address binding,Translasi alamat dapat terjadi
pada saat kompilasi (Compile time),pada saat alokasi
ke memori utama (loading-time) ataupun pada saat
eksekusi (exceution time).
1. Compile time
Jika lokasi kode instruksi atau data program di memori
sudah ditetapkan dengan denga pasti sebelumnya maka
pada saat kompilasi program, Alamat absolut (fisik) dapat
di tuliskan dalam kode program.Kosekuensinya adalah
pada saat program di-load ke memori,program harus di
letakan pada lokasi tertentu di memori yang bersesuaian
dan tidak boleh di relokasi selama eksekusi,Sistem yang
menggunakan pengalamatan fisik melakukan address
binding pada saat binding pada saat kompilasi program
2. Loading time
Address binding pada saat compile time membuat alokasi
program ke memori utama menjadi sangat tidak fleksibel,
karena kode program hanya dapat diletakan pada alokasi
yang sudah di tentukan pada saat kompilasi.
3.Execute time
Address binding dapat pula dilakukan pada saat
eksekusi kode instruksi program.Umumnya address
binding pada saat execution time membutuhkan
dukungan perangkat keras sperti MMU (memory
management unit).
Source
Program
Compile or
assembler
Other
Object
Modules
Compile Time
Object
module
Linkage
editor
System
Library
Dynamically
Loaded
System
library
Load
module
Load time
Loader
Dynamic
Linkin
In-memory
binary
memory
image
Execution time
(Time)
5.3 MANAJEMEN MEMORI PADA SISTEM
MONOPROGAMMING
Cara pengelolaan memori pada sistem
monoprogramming berbeda dengan sistem yang
multiprogramming.Adapun ciri-ciri manajemen
memori pada sistem monoprograming antara lain
1.Hanya ada satu proses pada suatu saat
menggunakan seluruh area memori pengguna.
2.Program di muatkan seluruhnya ke memori utama
dari disk.
3.Alokasi memori dilakukan secara berurutan, yang
artinya image proses dari program harus
menempati area memori yang utuh.
5.3.1 ALOKASI MEMORI
Pada sistem monoprogramming, seluruh area
memori yang tidak digunakan oleh sistem operasi
dan device driver akan dialokasikan semuanya ke
proses pengguna. Ada berbagai kemungkinan
konfigurasi ruang alamat memori fisik pada sistem
monoprograming.
Sistem Operasi
Di RAM
User Program
Di RAM
User Program
Di RAM
Sistem Operasi
Di RAM
User Program
Di RAM
Sistem Operasi
D ROM
Sistem Operasi
Di ROM
Gambar yang memperlihatkan konfigurasi yang cukup
umum,Yaitu ruang alamat memori sistem komputer yang
meliputi seluruh ruang alamat memori utama yang volatile
(RAM).Sistem operasi dan proses aplikasi pengguna
berbagai pakai kapasitas RAM
5.3.2 PROTEKSI MEMORI
Proteksi dapat di implementasikan dengan bantuan
register relokasi dan register pembatas(limit register)
register pembatas berisi jangkauan atau lebar ruang
alamat logika dari proses aplikasi pengguna.Jika alamat
logika yang diakses lebih besar dari nilai limit register
maka sinyal addressing error interupt akan di bangkitkan.
Sedangkan akses ke bagian memori OS di cegah dengan
mekanisme relokasi , dimana register relokasi diisi dengan
alamat fisik awal dari proses.
5.4 MANAJEMEN MEMORI PADA SISTEM
MULTIPROGRAMMING
Berbeda dengan sistem monoprogramming manajemen pada
sistem multiprogramming memiliki karakteristik sebagai
berikut.
1.Terdapat sejumlah proses yang menenpati memori utama
pada setiap saat
2.Image proses dari program dapat dimuat seluruhnya atau
sebagian saja ke memori utama
3.Alokasi memori utama ke proses dapat berurutan ataupun
tidak berurutan.
4.Dimungkinkan seluruh atau sebagian image proses
berpindah lokasi memori selama eksekusinnya
5.Dimungkinkan suatu lokasi memori utama diakses bersama
oleh sejumlah proses atau di sebut denga memory sharing
5.4.1 PENGALOKASIAN BERURUT DENGAN PARTISI STATIS
1.Memori dibagi menjadi partisi-partisi dengan ukuran
yang tetap
2.Satu proses hanya menggunakan satu partisi. Jika proses
sudah selesai,partisi tersebut dapat digunakan oleh proses
lain.
3.Membutuhkan pengelolaan informasi mengenai partisipartisi yang kosong yang siap untuk dialokasikan.
Model alokasi berturut dengan partisi statis dapat di
kategorikan bersdasarkan ukuran pertisi yaitu
1.Partisi statis berukuran sama.
Yaitu ukuran tiap partisi adalah sama besarnya
2.Partisi statis berukuran tidak sama
Yaitu ukuran tiap partisi berbeda-beda
5.4.2 PENGALOKASIAN BERURUT DENGAN PARTISI
DINAMIS.
1.Pada kondisi awal,memori utama tidak dibagi-bagi
menjadi partisi-partisi.
2.Pemartisian dilakukan pada saat image proses
akan di salinkan ke memori utama
3.Ukuran partisi yangh di alokasikan dengan ukuran
image proses
4.Partisi akan dibebaskan jika program sudah
selesai.
5.Membutuhkan pengelolaan informasi mengenai
area memori utama yang masih kosong dan dapat
dialokasikan ke proses.
5.4.3 PENGALOKASIAN BERURUT DENGAN SISTEM BUDDY
Pengalokasian berurut lainya adalah sistem buddy, yang
melakukan paemartisian secara dinamis.
Alokasi memori pada sistem buddy adalah sebagai berikut
1.Menetukan ukuran partisi
Jika suatu proses baru di-load maka akan di tentuakn ukuran
partisi yang akan dibuat ataupun digunakan untuk
menampung image proses.
2.Pengalokasian
Operasi selanjutnya adalah mencari hole yang besarnya
sukuran dengan perhitungan.Jka ternyata tidak ada maka
sistem buddy akan meencari hole yang berukuran sedikit
lebih besar dan kemudian memecahnya secara bertahap
sehingga didapatkan hole dengan ukuran yang di tentukan .
Kekurangan sistem budy adalah fragmentasi internal
tetap terjadi sedangkan kelebihanya adalah dealokasi
proses dapat dilakukan denga cepat.
kemudian image proses A sebesar 90kbyte hendak
dialokasi ke memori utama adalah sebesar 1m
byte.ketika belum ada proses pengguna yang
dialokasikan maka seluruh bagian memori masih kosong
dan tersedia.
Kemudian image proses A sebesar 90kbyte hendak
dialokasi ke memori utama.maka terjadi pemecahan
partisi sebanyak 3kali(1M byte menjadi 2 bagian sebesar
512k,521 k menjadi 2bagian sebesar 256k,256k,menjadi
128k)untuk mendapatkan partisi berukuran kelipatan
2terkecil yang dapat menampung image A.
Kemudian menjadi alokasi image proses B yang
berukuran sebesar 50 k. partisi terkecil yang
tersedia adalah partisi di samping partisi proses A
yang berukuran sebesar 128 K. karena proses B
hanya berukuran 50 K maka partisi tersebut dipecah
lagi menjadi 2 bagian sebesar 64 K, kemudian image
proses B di alokasikan pada bagian pertama dari
pecahan tersebut
5.4.4
Pengalokasian Tak Berturut Dengan Sistem Paging
• Berbeda dengan model pengalokasian
berurut,bagian-bagian dari image proses dapat
diletakkan secara terpisah di memori utama.Model
alokasi tak berturut yang akan di bahas di sini adalah
Sistem Paging.
Model alokasi memiliki karakteristik
berikut :
• Sistem paging memerlukan pengalamatan logika khusus yang
membagi suatu ruang alamat logika proses menjadi bagian
yang berukuran sama yang disebut denga page.
• Pada sistem paging,memori fisik di partisi secara statis yang
disebut dengan frame page atau disebut frame saja.
• Sistem paging memakai pengalokasian memori tak berurut.
• Sistem paging membutuhkan pengelolaan informasi
mengenai frame yang masih kosong.
• Pada sistem paging tidak terjadi fregmentasi
eksternal,sedangkan fregmentasi internal hanya terdapat
pada sejumlah frame tertentu.
Konsep-konsep alokasi sebagai berikut:
• Memori utama dibagi menjadi frame-frame kecil berukuran
sama.Tiap frame memiliki nomor frame sebagai refrensi.
• Ruang alamat logika dibagi menjadi page-page seukuran
frame,misalnya ruang alamat logika adalah 4 G,sedangkan
image proses berukuran 20 M bytes.
• Pada saat proses di-load,page-page image proses diletakkan
pada frame yang masih kosong.
• Page table umumnya berisi nomor frame yang dialokasikan
untuk image proses.Page table digunakan untuk translasi
alamat logika ke alamat fisik pada saat kode instruksi program
dieksekusi.
• Addres Binding pada Sistem Paging.
Adress binding pada sistem paging terjadi pada saat
eksekusi(execution time). Alamat refrensi pada kode instruksi
program adalah alamat pada ruang logika proses sehingga
pada saat eksekusi, alamat referensi tersebut harus di
translasi ke alamat fisik memori utama yang sesungguhnya.
• Proteksi Memori pada Sistem Paging.
Mekanisme lain yang didukung dalam sistem paging adalah
proteksi memori. Mekanisme proteksi ini berfungsi untuk
menghindari pengaksesan memori secara ilegal.
• Memori Sharing pada Sistem Paging.
Sistem paging mendukung mekanisme bagi pakai memori
utama utau memori sharing, mekanisme sharing ini penting
untuk menghemat penggunaan kapasitas memori.Pada sistem
paging, jika ada 2 atau lebih proses memiliki bagian kode
instruksi atau data yang sama maka bagian tersebut dapat
digunakan bersama dan cukup diletakkan sekali di frame
memori.Masing-masing memori mengacu ke frame yang sama
pada page tablenya.
5.4.5
PENGALOKASIAN TAK BERURUT DENGAN SISTEM
SEGMENTATION
• Selain sistem paging, model pengalokasian tak berurut lainnya
adalah sistem segmentation. Berbeda dengan sistem paging
yang menganut pemartisian secara statis maka sistem
segmentation memakai sistem pemartisian secara
dinamis.jadi memori utama tidak dipartisi dari awal ,tetapi di
partisi pada saat terjadi alokasi memori utama ke proses baru.
• Pengalokasian dengan sistem segmentation memiliki
karakteristik sebagai berikut:
1. Sistem segmentation memerlukan pengelamatan logika
khusus yang memecahkan image proses suatu program
menjadi bagian-bagian dengan segmen.
2. Pemartisian memori utama terjadi secara dinamis pada saat
alokasi.
3. Sistem segmentation menggunakan peengalokasian memori
tak berurut sehingga segmen image proses dari program
dapat menempaati bagian memori utama yang letaknya
terpisah satu sama lain.
4. Segmentation membutuhkan pengelolaan informasi
mengenai seluruh area kosong atau hole yang terbesar di
memori utama.
5. Pada sistem segmentation tidak terjadi fragmentasi internal,
tetapi fregmentasi eksternal tetap terjadi.
Alokasi Memori pada Sistem
Segmention
• Konsep alokasi sistem segmentation sebagai berikut:
1. Image proses dibagi menjadi beberapa segmen yang
ukurannya tidak harus sama.
2. Pada saat image proses dialokasikan ke memori utama,
segmen-segmen image proses ditempatkan pada bagian
memori yang masih kosong.
3. Segment table berisi rekaman nilai limit,yang berisi panjang
segmen dan nilai base, yang berisi alamat awal bagian
memori utama yang dialokasikan ke segmen.Indeks pada
segment table menunjukkan nomor segmen yang
dialokasikan.
5.5
OPTIMALISASI UTILITAS MEMORI
• Umumnya memori utama pada suatu komputer merupakan
sumber daya yang terbatas sehingga penggunaanya butuh
dioptimalkan. Dengan mengoptimalkan penggunaan memori,
diharapkan tingkat multiprograming atau konkurensi,yaitu
jumlah proses yang dapat dijalankan secara bersamaan juga
ikut meningkat. Di bawah ini akan dijelaskan beberapa strategi
untuk meningkatkan utilitis memori utama pada suatu sistem
komputer.
5.5.1
OVERLAY
• Overlay adalah suatu teknik pemrograman yang membagi
program yang besar menjadi bagian-bagian yang lebih kecil
sehingga dapat dimuat secara parsial ke dalam suatu page
memori yang berukuran lebih kecil.
5.5.2
DYNAMIC LOADING
• Dynamic loading adalah teknik pemrograman yang
memungkinkan hanya bagian-bagian program yang sedang
dibutuhkan pada saat run time yang akan disalin ke memori
utama.Dynamic loading berguna terutama untuk program
yang besar karna harus menangani banyak kasus yang jarang
terjadi.
5.5.3
DYNAMIC LINKIN
• Dynamic Linkin adalah teknik yang memungkinkan linkin ke
rutin-rutin pustaka program aplikasi yang dilakukan secara
dinamis pada saat runtime. Dynamic Linkin menghemat
penggunaan memori utama, karena jika sejumlah aplikasi
menggunakan rutin pustaka yang sama,maka pustaka tersebut
hanya akan disalinkan sekali saja ke memori utama namun
dapat direferensi dan digunakan bersama oleh aplikasiaplikasi tersebut.
5.5.4
VIRTUAL MEMORY
• Virtual memori atau memori maya adalah teknik pemetaan
memori yang melibatkan memori sekunder, umumnya disk,
sehingga ukuran memori sistem secara logika dapat lebih
besar dari ukuran memori utama secara fisik.Pada teknik
virtual memori diperlukan pengalamatan atau secara logika
dan melibatkan mekanisme swapping, yaitu proses
pemindahan sebagian atau seluruh bagian proses dari
memori utama ke memori sekunder, disebut dengan swap
out, atau dari disk ke memori utama disebut dengan swap in.
• Keuntungan dari model virtual memori dengan memakai
swapping adalah:
1. Lebih sedikit operasi I/O yang dilaakukan, karena swappinng
dilakukan per page.
2. Lebih sedikit memori utama yang diperlukan per proses,
karna tidak semua bagian image proses perlu disalinkan ke
memori utama pada saat alokasi.
3. Tangapan sistem menjadi lebih cepat karena tidak semua
bagian dari proses dapat mulai di eksekusi lebih cepat.
4. Leebih banyak proses yang dapat dijalankan secara tingkat
konkurensi atau tingkat multi programming dari sistem.
• Mekanisme-mekanisme Demand Paging:
1. Jumlah frame memori utama yang dialokasi setiap proses
tergantung kepada tingkat multiprogramming yang hendak
dicapai.
2. Menggunakan bit valid-invalid pada rekaman page table
proses untuk menyatakan ada tidaknya page proses tersebut
di frame memori utama.
3. Jika page dari alamat yang hendak di akses ternyata per
status invalid di page table maka trap page vauled akan
dibangkitkan agar ditangani lebih lanjut oleh rutin sistem
operasi, yaitu page fault handler.
• Adapun langkah-langkah penangan page fault oleh rutin
sistem operasi yaitu:
1. Mengecek apakah referense alamat falid.
2. Jika tidak valid maka proses akan dihentikan.
3. Jika valid berarti alasan page fault adalah karna page yang
diminta belum ada di memori utama sehingga sistem operasi
akan mencoba melakukan swap-in, yaitu memindahkan page
yang diminta daari swap space ke memori utama.
• Langkah-langkah swap-in meliputi:
a. Mencari frame memori utama yang kosong, jika tidak ada maka
akan dilakukan page replacement, dimana akan dipilih page di
frame, atau istilahnya victim page, untuk di swap-out k swapspace supaya tersedia frame kosong untuk operasi swap-in.
b. Memindahkan(swap-in) page yang diminta dari swap-space ke
frame memori utama yang telah ditentukan.
c. Memperbarui rekaman di page table proses, yang meliputi
catatan frame yang di alokasikan dan mengubah vilidation bit=1.
d. Mengulangi (restart) kode instruksi program yang menghasilkan
page vauld.
ALOKASI FRAME
• Dengan model demand paging, tidak semua page dari suatu
image proses perlu di alokasikan ke memori utama.Namun
jika trlalu sedikit frame yang dialokasikan maka akan sering
terjadi swapping yang pada akhirnya akan menurunkan
kinerja sistem.
• Beberapa strategi menentukan frame untuk tiap proses
yaitu:
1. Alokasi sama rata(equal allocation)
Tiap proses mendapat jumlah frame yang sama banyak,
sesuai dengan jumlah frame yang tersedia dan jumlah proses
yang ada.
2. Alokasi proporsional (proportional allocation)
Tiap proses mendapat jumlah frame sesuai dengan ukuran
dari image proses. Jumlah frame untuk proses ditentukan
oleh jumlah frame yang tersedia dan besarnya ukuran
masing-masing image proses.
3. Alokasi Berprioritas (priority alocation)
Jumlah frame yang dialokasikan untuk tiap proses
berdasarkan prioritas proses.
Page Replacement
• Pada saat suatu page proses yang diminta ternyata masih
berada di virtual memori maka page tersebut haarus
dialokasikan ke memori utama.Jika ternyata pada saat itu
memori utama dalam keadaan penuh maka diperlukan
operasi swap out, yaitu memindahkan sejumlah page dari
frame memori ke swap space.
• Algoritma page replacement secara garis besar dapat dibagi
dua yaitu:
1. Global Replacement.
Victim frame dapat dipilih dari semua frame yang ada di
memori utama. Jadi frame yang sedang ditempati oleh
proses lain dapat turut dikorbankan.
2. Local Replacement.
Victim frame hanya dapat dipilih dari frame-frame yang
sedang ditempati oleh image proses bersangkutan.
• Algoritma page replacement yang mungkin digunakan
diantaranya:
1. Algoritma FIFO(First In First Out).
Page yang diganti adalah page yang paling lama sudah berada di
memori atau paling awal dialokasikan.
2. Algoritma Optimal.
Page yang diganti adalah page yang baru akaan dipanggil lagi
pada waktu yang masih cukup lama. Algoritma ini mengasumsikan
sistem mampu memprediksikan page-page yang akan diakses.
3. Algoritma Least Recently Use (LRU).
Page yang diganti adalah page yang paling lama sudah tidak
diakses lagi.
•
•
•
•
•
Roni Aditya
M. Lingga
Z. Jeges. P
Yunus. Prayogo
M. Maulana Nurul Amin
BAB V
Manajemen Memori
Memori merupakan tempat menampung data
dan kode instruksi program. Kode instruksi
Program akan dibaca dari memori ke register
prosesor untuk dieksekusi baris demi baris,
Manajemen memori berkaitan dengan aktifitas
pengelolaan penggunaan memori pada saat
komputer
REGISTER
CHACHE MEMORY
MAIN MEMORY
SECONDARY MEMORY
Gambar diatas menunjukan hierarki organisasi memori
pada sistem komputer secara umum.pada tingkatan
paling atas terdapat register yang secara fisik berada
dalam chip prosessor. Contoh memori register adalah
register IR(Instruction Register)yang menampung kode
instruksi yang akan di eksekusi oleh prosesor.
Memori utama umumnya dapat diakses secara random
sehingga disebut dengan RAM (Random Acces Memory) dan
Volatile yaitu jika komputer dimatikan maka datanya juga
turut hilang.
Namun sayangnya kecepatan transfer data memori utama
ke prosesor sangat lambat jika dibandingkan dengan
kecepatan eksekusi prosesor.
Sebagai contoh intel pentiumn IV 1,7GHz memiliki frontbus
berkecepatan 400MHz ini berarti terdapat selisih kecepatan
eksekusi prosesor dan transfer data dari memori ke prosesor
sebanyak 4kali dan berarti setiap kali terjadi transfer data
dari memori utama ke register prosesor,prosesor harus
menunggi waktu iddle sebanyak 4 skilus
Untuk Mengatasi perbedaan kecepatan ini maka di gunakan
teknik caching untuk memori utama mengunakan memori
chache yang terbagi menjadi L1 chache dan L2 chache dan
umumnya berada dalam prosesor contoh kapasitas memori
chache adalah 256kbyte, 512kbyte.
Prinsip kerja chaching adalah sebagai salinan bayangan dari
data atau kode instruksi di memori utama. Jadi setiap data
di chache memiliki asosiasi dengan data di memori utama.
Setiap kali prosesor mengakses instruksi ataupun data dari
memori utama maka prosesor akan memeriks apakah
salinannya di chache.Kalau ada maka instruksi atau data
tersebut akan diambil langsung dari chache tanpa butuh
mengakses memori utama.Jika ternyata tidak ada di chache
maka cheche akan di perbaharui secara mekanisme block.
Tingkat paling bawah dari hierarki organisasi memori adalah
memori sekunder (secondary memory) umumnya berupa disk atau
non volatile, Dengan kecepatan dala lebih lambat dari memori
utama
Penggunaan kapasitas memori sekunder umumnya di batasi
misalnya 2kali ukuran memori utama.Alasan pembatsaan tersebut
adalah pengaksesan memori sekunder terlalu sering akan
menyebabkan penurunankinerja sistem komputer secara signifikaan
5.1 PENGALAMATAN MEMORI
Metode pengalamatan memori mendefinisikan model alamat yang
di tuliskan pada kode instruksi program, mekanisme penyalinan
,loading ,kode instruksi dan data program ke memori utama yang
sesungguhnya.
Secara garis besar, pengalamatan memori dapat di bedakan atas
pengalamatn secara fisik ,relatif dan logika.
1PENGALAMATAN SECARA FISIK (physical/AbsoluteAddresing)
Alamat yang ditulis pada kode instruksi program hasil kompilasi
merupakan alamat fisik memori utama yang sesungguhnya.konsekuensinya
adalah pada saat penyalinan image proses kememori utama maka kode
instruksi dan data program harus disalin pada posisi yang sesuai
dengan refrensi tersebut.
2.PENGALAMATAN SECARA RELATIF(Relative Addresing)
Alamat pada kode instruksi program merupakan alamat relatif (Offset)
terhadap posisi awal program .Pada saat image proses dari program
tersebut di salin atau di alokasikan ke memori utama, alamat awal
memorinya di catat ke suatu register alokasi.
Pada saat eksekusi pengaksesan alamat akan di translasi dengan
menjumlahkan alamat refrensi pada instruksi dengan isi register
alokasiuntuk mendapatkan alamat fisik yang akan benar-benar di akses.
Yang umumnya dilakukan denga menggunakan perangkat perangkat keras
khusu yang di sebut dengan MMU(memory management unit)
3.PENGALAMATAN SECARA LOGIKA (LOGICAL ADDRESING)
Pada pengalamatan secara logika alamat yang dad
pada kode program merupakan suatu alamat logika
yang masih perlu diterjemahkan atau di translasikan
ke alamat fisik memori utama pada saat ekseskusi.
Kelebihan pengalamatan ini adalah relokasi
program dapat dilakukan secara fleksibel, kapasitas
alamat logika programdapat lebih besar dari pada
kapasitas fisik memori utama
Kode Program
…
…
Jump [35]
1400
Jump [35]
Ruang Alamat Logika
P1
KODE PROGRAM
DATA
P2
P3
P4
P5
CPU
P3(+0ffset)
Alamat Logika
TABEL ALOKASI
LOGIKA
FISIK
P1
F2
P3
F4
KODE
F1
F2
F3
F4 P3 (KODE)
F5
F6
F7
F8
F9
(2) Translasi Alamat
P1 Data
Berdasarkan cara membagi ruang lamat logika
program, Pengalamatan logika dapat dibedakan atas
sistem paging dan segmentasi. Sistem paging
membagi ruang alamat logika program dalam
fragmen yang berukuran berbeda-beda dan
pemartisian memori utama bersifat dinamisdengan
ukuran yang bervariasi yang di sebut dengan segmen
5.2 ADDRESS BINDING
Aktifitas translasi alamat ini disebut juga dengan
istilah address binding,Translasi alamat dapat terjadi
pada saat kompilasi (Compile time),pada saat alokasi
ke memori utama (loading-time) ataupun pada saat
eksekusi (exceution time).
1. Compile time
Jika lokasi kode instruksi atau data program di memori
sudah ditetapkan dengan denga pasti sebelumnya maka
pada saat kompilasi program, Alamat absolut (fisik) dapat
di tuliskan dalam kode program.Kosekuensinya adalah
pada saat program di-load ke memori,program harus di
letakan pada lokasi tertentu di memori yang bersesuaian
dan tidak boleh di relokasi selama eksekusi,Sistem yang
menggunakan pengalamatan fisik melakukan address
binding pada saat binding pada saat kompilasi program
2. Loading time
Address binding pada saat compile time membuat alokasi
program ke memori utama menjadi sangat tidak fleksibel,
karena kode program hanya dapat diletakan pada alokasi
yang sudah di tentukan pada saat kompilasi.
3.Execute time
Address binding dapat pula dilakukan pada saat
eksekusi kode instruksi program.Umumnya address
binding pada saat execution time membutuhkan
dukungan perangkat keras sperti MMU (memory
management unit).
Source
Program
Compile or
assembler
Other
Object
Modules
Compile Time
Object
module
Linkage
editor
System
Library
Dynamically
Loaded
System
library
Load
module
Load time
Loader
Dynamic
Linkin
In-memory
binary
memory
image
Execution time
(Time)
5.3 MANAJEMEN MEMORI PADA SISTEM
MONOPROGAMMING
Cara pengelolaan memori pada sistem
monoprogramming berbeda dengan sistem yang
multiprogramming.Adapun ciri-ciri manajemen
memori pada sistem monoprograming antara lain
1.Hanya ada satu proses pada suatu saat
menggunakan seluruh area memori pengguna.
2.Program di muatkan seluruhnya ke memori utama
dari disk.
3.Alokasi memori dilakukan secara berurutan, yang
artinya image proses dari program harus
menempati area memori yang utuh.
5.3.1 ALOKASI MEMORI
Pada sistem monoprogramming, seluruh area
memori yang tidak digunakan oleh sistem operasi
dan device driver akan dialokasikan semuanya ke
proses pengguna. Ada berbagai kemungkinan
konfigurasi ruang alamat memori fisik pada sistem
monoprograming.
Sistem Operasi
Di RAM
User Program
Di RAM
User Program
Di RAM
Sistem Operasi
Di RAM
User Program
Di RAM
Sistem Operasi
D ROM
Sistem Operasi
Di ROM
Gambar yang memperlihatkan konfigurasi yang cukup
umum,Yaitu ruang alamat memori sistem komputer yang
meliputi seluruh ruang alamat memori utama yang volatile
(RAM).Sistem operasi dan proses aplikasi pengguna
berbagai pakai kapasitas RAM
5.3.2 PROTEKSI MEMORI
Proteksi dapat di implementasikan dengan bantuan
register relokasi dan register pembatas(limit register)
register pembatas berisi jangkauan atau lebar ruang
alamat logika dari proses aplikasi pengguna.Jika alamat
logika yang diakses lebih besar dari nilai limit register
maka sinyal addressing error interupt akan di bangkitkan.
Sedangkan akses ke bagian memori OS di cegah dengan
mekanisme relokasi , dimana register relokasi diisi dengan
alamat fisik awal dari proses.
5.4 MANAJEMEN MEMORI PADA SISTEM
MULTIPROGRAMMING
Berbeda dengan sistem monoprogramming manajemen pada
sistem multiprogramming memiliki karakteristik sebagai
berikut.
1.Terdapat sejumlah proses yang menenpati memori utama
pada setiap saat
2.Image proses dari program dapat dimuat seluruhnya atau
sebagian saja ke memori utama
3.Alokasi memori utama ke proses dapat berurutan ataupun
tidak berurutan.
4.Dimungkinkan seluruh atau sebagian image proses
berpindah lokasi memori selama eksekusinnya
5.Dimungkinkan suatu lokasi memori utama diakses bersama
oleh sejumlah proses atau di sebut denga memory sharing
5.4.1 PENGALOKASIAN BERURUT DENGAN PARTISI STATIS
1.Memori dibagi menjadi partisi-partisi dengan ukuran
yang tetap
2.Satu proses hanya menggunakan satu partisi. Jika proses
sudah selesai,partisi tersebut dapat digunakan oleh proses
lain.
3.Membutuhkan pengelolaan informasi mengenai partisipartisi yang kosong yang siap untuk dialokasikan.
Model alokasi berturut dengan partisi statis dapat di
kategorikan bersdasarkan ukuran pertisi yaitu
1.Partisi statis berukuran sama.
Yaitu ukuran tiap partisi adalah sama besarnya
2.Partisi statis berukuran tidak sama
Yaitu ukuran tiap partisi berbeda-beda
5.4.2 PENGALOKASIAN BERURUT DENGAN PARTISI
DINAMIS.
1.Pada kondisi awal,memori utama tidak dibagi-bagi
menjadi partisi-partisi.
2.Pemartisian dilakukan pada saat image proses
akan di salinkan ke memori utama
3.Ukuran partisi yangh di alokasikan dengan ukuran
image proses
4.Partisi akan dibebaskan jika program sudah
selesai.
5.Membutuhkan pengelolaan informasi mengenai
area memori utama yang masih kosong dan dapat
dialokasikan ke proses.
5.4.3 PENGALOKASIAN BERURUT DENGAN SISTEM BUDDY
Pengalokasian berurut lainya adalah sistem buddy, yang
melakukan paemartisian secara dinamis.
Alokasi memori pada sistem buddy adalah sebagai berikut
1.Menetukan ukuran partisi
Jika suatu proses baru di-load maka akan di tentuakn ukuran
partisi yang akan dibuat ataupun digunakan untuk
menampung image proses.
2.Pengalokasian
Operasi selanjutnya adalah mencari hole yang besarnya
sukuran dengan perhitungan.Jka ternyata tidak ada maka
sistem buddy akan meencari hole yang berukuran sedikit
lebih besar dan kemudian memecahnya secara bertahap
sehingga didapatkan hole dengan ukuran yang di tentukan .
Kekurangan sistem budy adalah fragmentasi internal
tetap terjadi sedangkan kelebihanya adalah dealokasi
proses dapat dilakukan denga cepat.
kemudian image proses A sebesar 90kbyte hendak
dialokasi ke memori utama adalah sebesar 1m
byte.ketika belum ada proses pengguna yang
dialokasikan maka seluruh bagian memori masih kosong
dan tersedia.
Kemudian image proses A sebesar 90kbyte hendak
dialokasi ke memori utama.maka terjadi pemecahan
partisi sebanyak 3kali(1M byte menjadi 2 bagian sebesar
512k,521 k menjadi 2bagian sebesar 256k,256k,menjadi
128k)untuk mendapatkan partisi berukuran kelipatan
2terkecil yang dapat menampung image A.
Kemudian menjadi alokasi image proses B yang
berukuran sebesar 50 k. partisi terkecil yang
tersedia adalah partisi di samping partisi proses A
yang berukuran sebesar 128 K. karena proses B
hanya berukuran 50 K maka partisi tersebut dipecah
lagi menjadi 2 bagian sebesar 64 K, kemudian image
proses B di alokasikan pada bagian pertama dari
pecahan tersebut
5.4.4
Pengalokasian Tak Berturut Dengan Sistem Paging
• Berbeda dengan model pengalokasian
berurut,bagian-bagian dari image proses dapat
diletakkan secara terpisah di memori utama.Model
alokasi tak berturut yang akan di bahas di sini adalah
Sistem Paging.
Model alokasi memiliki karakteristik
berikut :
• Sistem paging memerlukan pengalamatan logika khusus yang
membagi suatu ruang alamat logika proses menjadi bagian
yang berukuran sama yang disebut denga page.
• Pada sistem paging,memori fisik di partisi secara statis yang
disebut dengan frame page atau disebut frame saja.
• Sistem paging memakai pengalokasian memori tak berurut.
• Sistem paging membutuhkan pengelolaan informasi
mengenai frame yang masih kosong.
• Pada sistem paging tidak terjadi fregmentasi
eksternal,sedangkan fregmentasi internal hanya terdapat
pada sejumlah frame tertentu.
Konsep-konsep alokasi sebagai berikut:
• Memori utama dibagi menjadi frame-frame kecil berukuran
sama.Tiap frame memiliki nomor frame sebagai refrensi.
• Ruang alamat logika dibagi menjadi page-page seukuran
frame,misalnya ruang alamat logika adalah 4 G,sedangkan
image proses berukuran 20 M bytes.
• Pada saat proses di-load,page-page image proses diletakkan
pada frame yang masih kosong.
• Page table umumnya berisi nomor frame yang dialokasikan
untuk image proses.Page table digunakan untuk translasi
alamat logika ke alamat fisik pada saat kode instruksi program
dieksekusi.
• Addres Binding pada Sistem Paging.
Adress binding pada sistem paging terjadi pada saat
eksekusi(execution time). Alamat refrensi pada kode instruksi
program adalah alamat pada ruang logika proses sehingga
pada saat eksekusi, alamat referensi tersebut harus di
translasi ke alamat fisik memori utama yang sesungguhnya.
• Proteksi Memori pada Sistem Paging.
Mekanisme lain yang didukung dalam sistem paging adalah
proteksi memori. Mekanisme proteksi ini berfungsi untuk
menghindari pengaksesan memori secara ilegal.
• Memori Sharing pada Sistem Paging.
Sistem paging mendukung mekanisme bagi pakai memori
utama utau memori sharing, mekanisme sharing ini penting
untuk menghemat penggunaan kapasitas memori.Pada sistem
paging, jika ada 2 atau lebih proses memiliki bagian kode
instruksi atau data yang sama maka bagian tersebut dapat
digunakan bersama dan cukup diletakkan sekali di frame
memori.Masing-masing memori mengacu ke frame yang sama
pada page tablenya.
5.4.5
PENGALOKASIAN TAK BERURUT DENGAN SISTEM
SEGMENTATION
• Selain sistem paging, model pengalokasian tak berurut lainnya
adalah sistem segmentation. Berbeda dengan sistem paging
yang menganut pemartisian secara statis maka sistem
segmentation memakai sistem pemartisian secara
dinamis.jadi memori utama tidak dipartisi dari awal ,tetapi di
partisi pada saat terjadi alokasi memori utama ke proses baru.
• Pengalokasian dengan sistem segmentation memiliki
karakteristik sebagai berikut:
1. Sistem segmentation memerlukan pengelamatan logika
khusus yang memecahkan image proses suatu program
menjadi bagian-bagian dengan segmen.
2. Pemartisian memori utama terjadi secara dinamis pada saat
alokasi.
3. Sistem segmentation menggunakan peengalokasian memori
tak berurut sehingga segmen image proses dari program
dapat menempaati bagian memori utama yang letaknya
terpisah satu sama lain.
4. Segmentation membutuhkan pengelolaan informasi
mengenai seluruh area kosong atau hole yang terbesar di
memori utama.
5. Pada sistem segmentation tidak terjadi fragmentasi internal,
tetapi fregmentasi eksternal tetap terjadi.
Alokasi Memori pada Sistem
Segmention
• Konsep alokasi sistem segmentation sebagai berikut:
1. Image proses dibagi menjadi beberapa segmen yang
ukurannya tidak harus sama.
2. Pada saat image proses dialokasikan ke memori utama,
segmen-segmen image proses ditempatkan pada bagian
memori yang masih kosong.
3. Segment table berisi rekaman nilai limit,yang berisi panjang
segmen dan nilai base, yang berisi alamat awal bagian
memori utama yang dialokasikan ke segmen.Indeks pada
segment table menunjukkan nomor segmen yang
dialokasikan.
5.5
OPTIMALISASI UTILITAS MEMORI
• Umumnya memori utama pada suatu komputer merupakan
sumber daya yang terbatas sehingga penggunaanya butuh
dioptimalkan. Dengan mengoptimalkan penggunaan memori,
diharapkan tingkat multiprograming atau konkurensi,yaitu
jumlah proses yang dapat dijalankan secara bersamaan juga
ikut meningkat. Di bawah ini akan dijelaskan beberapa strategi
untuk meningkatkan utilitis memori utama pada suatu sistem
komputer.
5.5.1
OVERLAY
• Overlay adalah suatu teknik pemrograman yang membagi
program yang besar menjadi bagian-bagian yang lebih kecil
sehingga dapat dimuat secara parsial ke dalam suatu page
memori yang berukuran lebih kecil.
5.5.2
DYNAMIC LOADING
• Dynamic loading adalah teknik pemrograman yang
memungkinkan hanya bagian-bagian program yang sedang
dibutuhkan pada saat run time yang akan disalin ke memori
utama.Dynamic loading berguna terutama untuk program
yang besar karna harus menangani banyak kasus yang jarang
terjadi.
5.5.3
DYNAMIC LINKIN
• Dynamic Linkin adalah teknik yang memungkinkan linkin ke
rutin-rutin pustaka program aplikasi yang dilakukan secara
dinamis pada saat runtime. Dynamic Linkin menghemat
penggunaan memori utama, karena jika sejumlah aplikasi
menggunakan rutin pustaka yang sama,maka pustaka tersebut
hanya akan disalinkan sekali saja ke memori utama namun
dapat direferensi dan digunakan bersama oleh aplikasiaplikasi tersebut.
5.5.4
VIRTUAL MEMORY
• Virtual memori atau memori maya adalah teknik pemetaan
memori yang melibatkan memori sekunder, umumnya disk,
sehingga ukuran memori sistem secara logika dapat lebih
besar dari ukuran memori utama secara fisik.Pada teknik
virtual memori diperlukan pengalamatan atau secara logika
dan melibatkan mekanisme swapping, yaitu proses
pemindahan sebagian atau seluruh bagian proses dari
memori utama ke memori sekunder, disebut dengan swap
out, atau dari disk ke memori utama disebut dengan swap in.
• Keuntungan dari model virtual memori dengan memakai
swapping adalah:
1. Lebih sedikit operasi I/O yang dilaakukan, karena swappinng
dilakukan per page.
2. Lebih sedikit memori utama yang diperlukan per proses,
karna tidak semua bagian image proses perlu disalinkan ke
memori utama pada saat alokasi.
3. Tangapan sistem menjadi lebih cepat karena tidak semua
bagian dari proses dapat mulai di eksekusi lebih cepat.
4. Leebih banyak proses yang dapat dijalankan secara tingkat
konkurensi atau tingkat multi programming dari sistem.
• Mekanisme-mekanisme Demand Paging:
1. Jumlah frame memori utama yang dialokasi setiap proses
tergantung kepada tingkat multiprogramming yang hendak
dicapai.
2. Menggunakan bit valid-invalid pada rekaman page table
proses untuk menyatakan ada tidaknya page proses tersebut
di frame memori utama.
3. Jika page dari alamat yang hendak di akses ternyata per
status invalid di page table maka trap page vauled akan
dibangkitkan agar ditangani lebih lanjut oleh rutin sistem
operasi, yaitu page fault handler.
• Adapun langkah-langkah penangan page fault oleh rutin
sistem operasi yaitu:
1. Mengecek apakah referense alamat falid.
2. Jika tidak valid maka proses akan dihentikan.
3. Jika valid berarti alasan page fault adalah karna page yang
diminta belum ada di memori utama sehingga sistem operasi
akan mencoba melakukan swap-in, yaitu memindahkan page
yang diminta daari swap space ke memori utama.
• Langkah-langkah swap-in meliputi:
a. Mencari frame memori utama yang kosong, jika tidak ada maka
akan dilakukan page replacement, dimana akan dipilih page di
frame, atau istilahnya victim page, untuk di swap-out k swapspace supaya tersedia frame kosong untuk operasi swap-in.
b. Memindahkan(swap-in) page yang diminta dari swap-space ke
frame memori utama yang telah ditentukan.
c. Memperbarui rekaman di page table proses, yang meliputi
catatan frame yang di alokasikan dan mengubah vilidation bit=1.
d. Mengulangi (restart) kode instruksi program yang menghasilkan
page vauld.
ALOKASI FRAME
• Dengan model demand paging, tidak semua page dari suatu
image proses perlu di alokasikan ke memori utama.Namun
jika trlalu sedikit frame yang dialokasikan maka akan sering
terjadi swapping yang pada akhirnya akan menurunkan
kinerja sistem.
• Beberapa strategi menentukan frame untuk tiap proses
yaitu:
1. Alokasi sama rata(equal allocation)
Tiap proses mendapat jumlah frame yang sama banyak,
sesuai dengan jumlah frame yang tersedia dan jumlah proses
yang ada.
2. Alokasi proporsional (proportional allocation)
Tiap proses mendapat jumlah frame sesuai dengan ukuran
dari image proses. Jumlah frame untuk proses ditentukan
oleh jumlah frame yang tersedia dan besarnya ukuran
masing-masing image proses.
3. Alokasi Berprioritas (priority alocation)
Jumlah frame yang dialokasikan untuk tiap proses
berdasarkan prioritas proses.
Page Replacement
• Pada saat suatu page proses yang diminta ternyata masih
berada di virtual memori maka page tersebut haarus
dialokasikan ke memori utama.Jika ternyata pada saat itu
memori utama dalam keadaan penuh maka diperlukan
operasi swap out, yaitu memindahkan sejumlah page dari
frame memori ke swap space.
• Algoritma page replacement secara garis besar dapat dibagi
dua yaitu:
1. Global Replacement.
Victim frame dapat dipilih dari semua frame yang ada di
memori utama. Jadi frame yang sedang ditempati oleh
proses lain dapat turut dikorbankan.
2. Local Replacement.
Victim frame hanya dapat dipilih dari frame-frame yang
sedang ditempati oleh image proses bersangkutan.
• Algoritma page replacement yang mungkin digunakan
diantaranya:
1. Algoritma FIFO(First In First Out).
Page yang diganti adalah page yang paling lama sudah berada di
memori atau paling awal dialokasikan.
2. Algoritma Optimal.
Page yang diganti adalah page yang baru akaan dipanggil lagi
pada waktu yang masih cukup lama. Algoritma ini mengasumsikan
sistem mampu memprediksikan page-page yang akan diakses.
3. Algoritma Least Recently Use (LRU).
Page yang diganti adalah page yang paling lama sudah tidak
diakses lagi.