Sistem Komputer - Manajemen memori berdasar alokasi memori
Manajemen memori berdasar alokasi memori terbagi dua, yaitu :
1. Alokasi memori berurutan (kontigu).
Adalah tiap-tiap proses menempati satu blok tunggal lokasi memori yang
berturutan.
Keunggulan :
a. Sederhana.
b. Tidak akan terbentuk lubang-lubang memori bersebaran.
c. Karena berurutan, proses dapat dieksekusi dengan cepat.
Kelemahan :
a. Dapat memboroskan memori.
b. Tidak dapat memuatkan proses bila tidak ada satu blok memori yang
mencukupi.
2. Alokasi memori tak berurutan (non-kontinyu).
Program dibagi menjadi beberapa blok atau segmen. Blok-blok program
ditempatkan di memori dalam potongan-potongan tanpa perlu saling berdekatan.
Teknik biasa digunakan pada sistem memori maya sebagai alokasi page-page
dilakukan secara global.
Keuntungan :
a. Sistem dapat memanfaatkan memori utama secara lebih efisien.
b. Sistem operasi masih mampu memuatkan proses bila jumlah total lubang-
lubang memori cukup untuk memuat proses yang akan dieksekusi.
Kelemahan :
a. Memerlukan pengendalian yang lebih rumit dan sulit.
b. Memori dapat menjadi banyak lubang tersebar (memori tak terpakai
bersebaran).
Hirarki memori
Pemakaian memori dua tingkat, menggunakan cache memory yang dapat
meningkatkan kinerja dan utilisasi memori secara dinamik. Chace memory
merupakan penyimpan berkecepatan tinggi lebih cepat dibanding memori utama.
Chace memory lebih mahal dibanding memori utama, sehingga kapasitas cache
relatif kecil.
|
Hubungan chace memori, memori utama dan memori sekunder |
Gambar diatas memperlihatkan hubungan antara chace memory, memori utama dan
penyimpan sekunder. Dengan cache memory, bagian program yang akan
digunakan (dieksekusi atau diacu) dikopi dulu ke chace sebelum dieksekusi. Di
chace memory, instruksi dapat dieksekusi dengan lebih cepat dibanding di memori
utama. Penggunaan chace atau memori antara yang lebih cepat mempunyai alasan
yang dikemukakan oleh Denning, yaitu ekseksui program biasanya pada suatu interval waktu mengumpul di satu lokasi kecil. Prinsip ini disebut lokalitas. Lokalitas
dapat berupa lokalitas waktu dan ruang. Prinsip lokalitas berkembang menjadi
konsep working set model.
Manajemen memori tanpa swapping
Manajemen memori tanpa swapping terdiri dari :
a. Monoprogramming.
Monoprogramming sederhana tanpa swapping merupakan manajemen memori
paling sederhana, sistem komputer hanya mengijinkan satu program/pemakai
berjalan pada satu waktu. Semua sumber daya sepenuhnya dkuasi proses yang
sedang berjalan.
Manajemen memori monoprogramming sederhana mempunyai ciri-ciri berikut :
a. Hanya terdapat satu proses pada satu saat, sehingga proses baru akan
menimpa proses lama yang sudah selesai eksekusi.
b. Hanya satu proses mengunakan semua memori.
c. Pemakai memusatkan program keseluruh memori dari disk atau tape.
d. Program mengambil kendali seluruh mesin.
Karena hanya terdapat satu proses dan menguasai seluruh sistem, maka
eksekusi memori dilakukan secara berurutan.
Teknik ini digunakan sampai sekitar 1960, ditinggalkan bahkan untuk komputer
pribadi karena tiap proses harus berisi device driver perangkat I/O yang
digunakan.
Pada gambar menunjukkan tiga organisasi memori menjalankan satu proses
tunggal :
- Pertama menunjukkan seluruh kebutuhan (sistem operasi, device
driver dan proses driver dapat ditempatkan di sistem operasi atau di setiap
proses pemakai, bergantung perancang sistem operasi.
- kedua menunjukkan sistem operasi ditempatkan di ROM, sedang
program pemakai di RAM.
- ketiga menunjukkan device driver di ROM. Device driver di ROM
biasa disebut ROM-BIOS (Read Only Memory - Basic Input Output Systems).
|
Tiga cara organisasi memori untuk satu proses tunggal |
Embedded system
Teknik monoprogamming masih dipakai untuk sistem kecil yaitu sistem tempelan
(embedded system) yang menempel atau terdapat disistem lain. Sistem-sistem
tempelan menggunakan mikroprosesor kecil, seperti Intel 8051, dan sebagainya.
Sistem ini biasanya untuk mengendalikan satu alat sehingga menjadi bersifat
intelejen (intelegent devices) dalam menyediakan satu fungsi spesifik. Karena
hanya satu fungsi spesifik, dapat diprogram di mikroprosesor dengan memori
kecil (1-64 Kb).
Sistem tempelan telah banyak digunakan, misalnya sistem tempelan di mobil
antar lain untuk :
a. Pengendalian pengapian.
b. Pengendalian pengeluaran bahan bakar.
c. Pengendalian pengereman.
d. Pengendalian suspensi.
e. Pengendalian kemudi.
f. Dan sebagainya.
Pada mobil mewah terdapat lebih dari 50 mikroprosesor, masing-masing
mengendalikan satu fungsi spesifik.
Proteksi pada monoprogramming sederhana.
Pada monoprogramming, pemakai mempunyai kendali penuh terhadap seluruh
memori utama.
Memori terbagi menjadi tiga bagian, yaitu :
a. Bagian yang berisi rutin-rutin sistem operasi.
b. Bagian yang berisi program pemakai.
c. Bagian yang tidak digunakan.
Masalah proteksi di monoprogramming adalah cara memproteksi rutin sistem
operasi dari penghancuran program pemakai. Program pemakai dapat tersesat
sehingga memanipulasi atau menempati ruang memori rutin sistem operasi.
Aktivitas program pemakai ini dapat merusak sistem operasi.
Sistem operasi harus diproteksi dari modifikasi program pemakai. Proteksi ini
diimplementasikan menggunakan satu registe batas (boundary register)
dipemroses.Setiap kali program pemakai mengacu alamat memori dibandingkan
register batas untuk memastikan proses pemakai tidak merusak sistem operasi,
yaitu tidak melewati nilai register batas.
Register batas berisi alamat memori tertinggi yang dipakai sistem operasi. Jika
program pemakai mencoba memasuki sistem operasi, instruksi diintersepsi dan
job diakhiri dan diberi pesan kesalahan. Untuk memperoleh layanan sistem
operasi, program pemakai harus menggunakan instruksi spesifik meminta
layanan sistem operasi. Integritas sistem operasi terjaga dan program pemakai
tidak merusak bagian sistem operasi.
|
Proteksi pada monoprogramming |
Gambar diatas menunjukkan skema proteksi menggunakan register batas.
Register batas menunjuk alamat terakhir sistem operasi. Bila program pemakai
mengacu ke alamat daerah sistem operasi, pemroses menjadi fault menyatakan
terjadinya pelanggaran pengaksesan oleh proses pemakai.
b. Multiprogramming dengan pemartisian statis.
Terdapat beberapa alasan kenapa multiprogramming digunakan, yaitu :
a. Mempermudah pemogram.
Pemogram dapat memecah program menjadi dua proses atau lebih.
b. Agar dapat memberi layanan interaktif ke beberapa orang secara simultan.
Untuk itu diperlukan kemampuan mempunyai lebih dari satu proses
dimemori agar memperoleh kinerja yang baik.
c. Efisiensi penggunaan sumber daya.
Bila pada multiprogramming maka proses tersebut diblocked (hanya DMA
yang bekerja) dan proses lain mendapat jatah waktu pemroses, maka DMA
dapat meningkatkan efisiensi sistem.
d. Eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses
kecil.
e. Dapat mengerjakan sejumlah job secara simultan.
Multiprogramming dapat dilakukan dengan pemartisian statis, yaitu memori dibagi
menjadi beberapa sejumlah partisi tetap. Pada partisi-partisi tersebut proses-proses
ditempatkan. Pemartisian statis berdasarkan ukuran partisi-partisinya terbagi dua,
yaitu :
- Pemartisian menjadi partisi-partisi berukuran sama, yaitu ukuran semua
partisi memori adalah sama.
Beberapa proses yang ukurannya kurang atau sama dengan ukuran partisi
dimasukkan ke sembarang partisi yang tersedia.
Kelemahan :
- Bila program berukuran lebih besar dibanding partisi yang tersedia, maka tidak
dapat dimuatkan, tidak dapat dijalankan. Pemogram harus mempersiapkan
overlay sehingga hanya bagian program yang benar-benar dieksekusi yang
dimasukkan ke memori utama dan saling bergantian. Untuk overlay diperlukan
sistem operasi yang mendukung swapping.
- Untuk program yang sangat kecil dibanding ukuran partisi yang ditetapkan, maka
banyak ruang yang tak dipakai yang diboroskan, disebut fragmentasi internal.
Kelemahan ini dapat dikurangi dengan partisi-partisi tetap berukuran berbeda.
- Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran
semua partisi memori adalah berbeda. Dari gambar menunjukkan skema multiprogramming pemartisian tetap berukuran berbeda.
|
Multiprogramming dengan pemartisian tetap berukuran sama |
Strategi penempatan program ke paritisi
a. Strategi penempatan pada pemartisian menjadi partisi-partisi berukuran sama.
Penempatan proses ke memori dilakukan secara mudah karena dapat dipilih
sembarang partisi yang kosong.
b. Strategi penempatan pada pemartisian menjadi partisi-partisi berukuran berbeda.
Terdapat dua strategi penempatan program ke partisi, yaitu :
- Satu antrian untuk tiap partisi (banyak antrian untuk seluruh partisi).
Proses ditempatkan ke partisi paling kecil yang dapat memuatnya.
Keuntungan :
Teknik ini adalah meminimalkan pemborosan memori.
Kelemahan :
Dapat terjadi antrian panjang disuatu partisi sementara antrian partisi-partisi lain
kosong. Teknik ini diperlihatkan pada gambar dibawah ini.
|
Multiprogramming dengan pengisian pemartisian tetap dengan banyak
antrian
|
b. Satu antrian untuk seluruh partisi.
Proses-proses diantrikan di satu antrian tunggal untuk semua partisi.
Proses segera ditempatkan di partisi bebas paling kecil yang dapat memuat.
Keunggulan :
Lebih fleksibel serta implementasi dan operasi lebih minimal karena hanya
mengelola satu antrian.
Kelemahan :
Proses dapat ditempatkan di partisi yang banyak diboroskan, yaitu proses kecil
ditempatkan di partisi sangat besar.
Teknik ini diperlihatkan pada gambar dibawah ini.
|
Multiprogramming dengan pengisian pemartisian tetap dengan satu
antrian
|
Kelemahan ini dapat diatasi dengan prosedur pemindahan. Pemindahan dilakukan
bila proses besar akan masuk memori tetapi hanya tersedia partisi kecil sementara
proses kecil menempati partisi besar. Proses kecil di swap ke partisi kecil yang
sedang bebas kemudian proses besar di antrian menempati partisi besar yang
ditinggal proses kecil.
Pemartisian memori menjadi partisi-partisi secara statis mempunyai dua masalah,
yaitu :
- a. Relokasi.
Adalah masalah penempatan proses sesuai alamat fisik sehubungan alamat
partisi memori dimana proses ditempatkan. Proses dapat ditempatkan pada
partisi-partisi berbeda menurut keadaan sistem saat itu. Pengalamatan fisik
secara absolut untuk proses tidak dapat dilakukan.
Solusi pertama :
Sistem operasi menambahkan alamat awal partisi dimana proses ditempatkan
ke setiap alamat yang diacu proses. Pada saat proses kompilasi, linker harus
memasukkan satu daftar atau bit map biner pada program memberitahu word
program yang alamat-alamatnya direlokasi. Linker harus mencatat opcode,
konstanta, dan item-item yang tak perlu direlokasi.
Masalah yang ditimbulkan :
Solusi ini menimbulkan masalah proteksi terhadap memori. Program tak
terkendali selalu mampu membangun instruksi baru dan meloncati.
Tak ada cara untuk menghentikan jika program membaca atau menulis word di
memori partisi lain (yang bukan hak-nya). Masalah relokasi dan proteksi tidak
dapat dipisahkan, diperlukan satu solusi tunggal mengatas kedua masalah
tersebut.
- b. Proteksi.
Masalah proteksi pada banyak partisi dengan banyak proses di satu sistem
secara bersamaan dikhawatirkan proses menggunakan atau memodifikasi
daerah yang dikuasai proses lain (yang bukan haknya). Bila kejadian ini terjadi,
maka proses lain dapat terganggu dan hasil yang diperolehnya dapat menjadi
kacau.
Solusi IBM 360 :
Pada komputer IBM 360 membagi memori menjadi blok-blok, tiap blok
ditambahi 4 bit kode proteksi. Blok berukuran 2 Kb. Proses jua mempunyai
PSW (Program Status Word) yang antara lain berisi status proteksi. Status
proteksi ini terdiri dari 4 bit (sama dengan bit kode proteksi untuk blok memori),
merupakan kunci dalam pengaksesan memori. Proses hanya diijinkan
mengakses blok-blok memori yang berkode proteksi sama dengan kode
proteksi yang dimiliki PSW proses. Jika proses mengakses blok memori berkode
proteksi berbeda dengan kunci PSW-nya, terjadi trap. Trap ini memberitahu
sistem operasi bahwa telah terjadi pelanggaran memori, yaitu terdapat
pengaksesan ke blok memori yang bukan wewenang proses yang
menyebabkan trap.
Solusi menggunakan base register dan limit register :
Solusi lain adalah menggunakan dua register yaitu base register dan limit
register. Base register diisi alamat awal partisi dan limit register diisi panjang
partisi. Setiap alamat yang dihasilkan secara otomatis ditambah dengan nilai
base register. Instruksi yang mengacu pada alamat yang melebihi limit register
akan menimbulkan trap yang memberitahu sistem operasi bahwa telah terjadi
pelanggaran pengaksesan memori.
Teknik ini lebih unggul dibanding teknik pada IBM 360 karena sangat lebih
efisien. Teknik ini tidak perlu menempatkan 4 bit proteksi di tiap blok memori.
Teknik inipun lebih fleksibel.
Keuntungan :
a. Alamat tidak perlu dimodifikasi.
b. Setiap instruksi dapat diperiksa agar tidak meloncati batas limit register.
c. Program dapat dipindah walau sedang dieksekusi.Pemindahan dilakukan hanya dengan mengganti nilai base register.
Gambar dibawah menunjukkan skema proteksi dan relokasi menggunakan register
basis dan register batas. Register basis menunjuk alamat awal proses sedang
register batas menunjuk alamat akhir proses. Bila proses mengacu alamat lebih
dari alamat yang ditunjuk register batas maka pemroses mengirim sinyal fault
yang memberitahu terjadinya pelanggaran pengaksesan memori.
|
Skema relokasi dan proteksi menggunakan register basis
dan register batas
|
Sistem Komputer - Manajemen memori berdasar alokasi memori, lanjut aja materinya masih berlanjut klik sistem komputer sekarang.