MAKALAH SISTEM OPERASI
“MANAJEMEN MEMORI”
“VIRTUAL MEMORY”
“SINKRONISASI PROSES”
UNPI CIANJUR |
Disusun oleh :
UJANG MARPUDIN
UNIVERSTASPUTRAINDONESIA
KATA PENGANTAR
Puji syukur kehadirat Tuhan Yang Maha Esa yang telah memberikan rahmat dan
hidayah kepada penulis, sehingga penulis dapat
menyelesaikanmakalah mengenai sistem berlapis. Makalah ini dibuat untuk melaksanakan tugas mata
kuliah Sistem Operasi.
Besar harapan penulis jika karya makalah ini dapat
bermanfaat bagi semuanya agar bisa menambah pengetahuan dan wawasan pembaca di
bidang teknologi, informasi dan komunikasi.
Kami sadar bahwa makalah ini masih jauh dari kata
sempurna, oleh karena itu kritik dan saran yang membangun sangat diperlukan
untuk membuat makalah ini menjadi lebih baik lagi.
PENULIS
BAB I
PEMBAHASAN
MANAJEMEN MIMORY
1.
Definisi memori
Memori adalah
pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan,
harus melalui memori terlebih dahulu.
Memori sebagai tempat penyimpanan instruksi/data
dari program, untuk dapat dieksekusi program harus dibawa ke memori dan menjadi
suatu proses. Memori harus digunakan dengan baik, sehingga dapat memuat banyak
proses dalam suatu waktu.
2.
Definisi Manajemen
Memori
manajemen memori adalah suatu
kegiatan untuk mengelola memori komputer. Proses ini menyediakan cara
mengalokasikan memori untuk proses atas permintaan mereka, membebaskan untuk
digunakan kembali ketika tidak lagi diperlukan serta menjaga alokasi ruang
memori bagi proses. Pengelolaan memori utama sangat penting untuk sistem
komputer, penting untuk memproses dan fasilitas masukan/keluaran secara
efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai
upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem
komputer.
3.
Fungsi manajemen memori
:
Manajemen
memori sangat penting untuk memproses dan fasilitas masukan/keluaran secara
efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai
upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di sistem
komputer. Berikut ini kami sebutkan fungsi manajemen memori diantaranya
1.
Meningkatkan kinerja atau Utilitas
CPU.
2. meningkatkan kecepatan akses CPU terhadap data dan instruksi Data dan instruksi dapat diakses dengan cepat oleh CPU.
3. meningkatkan efisensi pemakaian memori yang terbatas.
4. Meningkatkan efisiensi transfer atau perpindahan data dari atau ke memori utama dan dari atau ke CPU.
5. Mengelola informasi yang dipakai dan tidak dipakai.
6. Mengalokasikan memori ke proses yang memerlukan.
7. Mendealokasikan memori dari proses telah selesai.
8. Mengelola swapping atau paging antara memori utama dan disk.
2. meningkatkan kecepatan akses CPU terhadap data dan instruksi Data dan instruksi dapat diakses dengan cepat oleh CPU.
3. meningkatkan efisensi pemakaian memori yang terbatas.
4. Meningkatkan efisiensi transfer atau perpindahan data dari atau ke memori utama dan dari atau ke CPU.
5. Mengelola informasi yang dipakai dan tidak dipakai.
6. Mengalokasikan memori ke proses yang memerlukan.
7. Mendealokasikan memori dari proses telah selesai.
8. Mengelola swapping atau paging antara memori utama dan disk.
1. Manajemen Memori
Wulandari Tampongangoy (NIM. 10 311 177)
A.
Berdasarkan keberadaan
swapping :
1. Manajemen tanpa swapping.
Manajemen memori tanpa pemindahan citra proses antara
memori utama dan disk selama
ekseskusi.
2. Manajemen dengan swapping.
Manajemen memori dengan pemindahan citra proses antara
memori utama dan disk selama
ekseskusi.
B. Manajemen Memori Berdasarkan Alokasi Memori
Terdapat dua cara menempatkan
informasi ke dalam memori kerja yaitu :
1.
Alokasi Memori Berurutan (Contiguous Allocation)
Pada
alokasi memori berurutan, setiap proses menempati satu blok tunggal lokasi
memori yang berurutan.
·
Kelebihan : sederhana,
tidak ada rongga memory bersebaran, proses berurutan dapat dieksekusi secara
cepat.
·
Kekurangan : memori
boros, tidak dapat disisip apabila tidak ada satu blok memori yang mencukupi
2.
Alokasi Memori Tak Berurutan (Non Contiguous Allocation)
Program/proses
ditempatkan pada beberapa segmen berserakan, tidak perlu saling berdekatan atau
berurutan. Biasanya digunakan untuk lokasi memori maya sebagai lokasi
page-page.
·
Kelebihan : sistem
dapat memanfaatkan _ memori utama secara lebih efesien, dan sistem opersi masih
dapat menyisip proses bila jumlah lubang-lubang memori cukup untuk memuat
proses yang akan dieksekusi.
·
Kekurangan : memerlukan
pengendalian yang lebih rumit dan memori jadi banyak yang berserakan tidak
terpaka
. 10 311 177)
2. MANAJEMEN MEMORI PEMARTISIAN STATIS
·
Kondisi
tanpa swapping ada 2
macam :
a. Monoprogramming
Monoprogramming merupakan manajemen memori paling
sederhana, sistem komputer hanya mengijinkan satu program/pemakai berjalan pada
satu waktu. Semua sumber daya sepenuhnya dikuasi proses yang sedang berjalan.
Dalam
monoprogramming :
1.
Hanya terdapat satu proses pada satu saat, sehingga proses baru akan menimpa
proses lama yang sudah selesai eksekusi.
2.
Hanya satu proses mengunakan semua memori.
3.
Pemakai memusatkan program keseluruh memori dari disk atau tape.
4.
Program mengambil kendali seluruh mesin.
Monoprogramming masih
dipakai untuk sistem kecil yaitu sistem tempelan (embedded system) yang
menempel atau terdapat di sistem 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).
Masalah Proteksi Di
Monoprogramming
Merupakan 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. Untuk
mengatasinya Sistem operasi harus diproteksi dari modifikasi program
pemakai.
Proteksi ini diimplementasikan
menggunakan satu register batas (boundary register) di pemroses. Setiap
kali program pemakai mengacu alamat memori dibandingkan register
batas untuk memastikan proses pemakai tidak merusak sistem operasi, yaitu
tidak melewati nilai register batas.
b. Multiprogramming
dengan pemartisian statis
Multiprogramming
dapat dilakukan dengan pemartisian statis, yaitu memori dibagi menjadi beberapa
sejumlah partisi tetap. Pada partisi-partisi tersebut proses-proses
ditempatkan.
Ciri-ciri dari partisi statis sebagai berikut:
1.
Memori dibagi menjadi
partisi-partisi dengan ukuran yang tetap.
2.
Satu proses hanya
memakai satu partisi. Jika proses sudah selesai, partisi tersebut dapat
digunakan proses yang lain.
Manajemen Memori Multiprogramming
Melibatkan banyak pemakai secara
simultan sehingga di memori akan terdapat lebih dari satu proses bersamaan.
Oleh karena itu dibutuhkan sistem operasi yang mampu mendukung dua
kebutuhan tersebut.
Melakukan dua aktivitas :
1.
Proteksi memori dengan isolasi ruang-ruang alamat secara disjoint (terpisah).
2.
Pemakaian bersama memori.
Memungkinkan proses-proses bekerja sama mengakses
daerah memori bersama. Ketika konsep multiprogramming digunakan, pemakaian CPU
dapat ditingkatkan.
Multiprogramming Pemartisian Statis,
Terdapat beberapa alasan :
Mempermudah pemogram
Pemrogram
dapat memecah program menjadi dua proses atau lebih.
Agar dapat memberi layanan
interaktif ke beberapa orang secara simultan
Untuk itu
diperlukan kemampuan mempunyai lebih dari satu proses di memori agar memperoleh
kinerja yang baik.
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.
Eksekusi lebih murah jika proses
besar dipecah menjadi beberapa proses kecil
Dapat mengerjakan sejumlah job
secara simultan
3.
STRATEGI PENEMPATAN PROGRAM KE
PEMARTISIAN STATIS
1.
Strategi Pemartisian menjadi partisi berukuran sama (ukuran semua partisi memori
sama), yaitu:
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.
2.
Strategi Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua
partisi memori adalah berbeda
Strategi penempatan program ke partisi ada 2 jenis strategi
DESKRIPSI :
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.
1.
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.
2.
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.
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.
4.
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 :
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.
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 menggunakan base register dan limit register :
Solusi 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.
BAB II
PEMBAHASAN
VITUAL MEMORY
1.
Pengertian Virtual Memory
Virtual Memori adalah sebuah sistem
yang digunakan oleh sistem operasi untuk menggunakan sebagian dari Memori
Sekunder yaitu Harddisk seolah-olah ia menggunakannya sebagai memori
internal/utama (RAM) fisik yang terpasang di dalam sebuah sistem komputer.
Sistem ini beroperasi dengan cara memindahkan beberapa kode yang tidak
dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan page file.
Memori virtual adalah teknik yang
memisahkan memori logika user dari memori fisik. Menyediakan memori virtual
yang sangat besar diperuntukkan untuk programmer bila tersedia memori fisik
yang lebih kecil. Programmer tidak perlu khawatir jumlah memori fisik yang
tersedia, sehingga dapat berkonsentrasi pada permasalahan pemrograman.
Teknik ini menyembunyikan
aspek-aspek fisik memori dari pengguna dengan menjadikan memori sebagai lokasi
alamat virtual berupa byte yang tidak terbatas dan menaruh beberapa bagian dari
memori virtual yang berada di memori logis. Konsep memori virtual dikemukakan
pertama kali oleh John Fotheringham pada tahun 1961 dengan menggunakan dynamic
storage allocation pada sistem komputer atlas di Universitas Manchester.
Sedangkan istilah memori virtual dipopulerkan oleh Peter J. Denning yang
mengambil istilah 'virtual' dari dunia optik.
Memori virtual melakukan pemisahan
dengan menaruh memori logis ke disk sekunder dan hanya membawa halaman yang
diperlukan ke memori utama. Teknik ini menjadikan seolah-olah ukuran memori
fisik yang dimiliki lebih besar dari yang sebenarnya dengan menempatkan
keseluruhan program di disk sekunder dan membawa halaman halaman yang
diperlukan ke memori fisik.
`Jadi jika proses yang sedang
berjalan membutuhkan instruksi atau data yang terdapat pada suatu halaman
tertentu maka halaman tersebut akan dicari di memori utama. Jika halaman yang
diinginkan tidak ada maka akan dicari di disk. Ide ini seperti menjadikan
memori sebagai cache untuk disk.
Beberapa keuntungan penggunaan memori virtual adalah
sebagai berikut:
1.
Berkurangnya proses I/O yang dibutuhkan (lalu lintas I/O menjadi rendah).
Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memory
setiap kali diakses.
2. Ruang
menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh,
untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori fisik.
Pesan-pesan error hanya dimasukkan jika terjadi error.
3. Meningkatnya respon, karena
menurunnya beban I/O dan memori.
4. Bertambahnya jumlah pengguna yang
dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer
untuk menerima lebih banyak permintaan dari pengguna.
Gagasan utama dari memori virtual
adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik
yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang
digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu
bagian yang berada di disk diperlukan, maka bagian di memori yang tidak
diperlukan akan dikeluarkan dari memori fisik (swap-out) dan diganti (swap-in)
oleh bagian disk yang diperlukan itu.
Memori virtual diimplementasikan
dalam sistem multiprogramming. Misalnya: 10 program dengan ukuran 2 Mb dapat
berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256 Kbyte dan
bagian-bagian proses swap in) masuk ke dalam memori fisik begitu diperlukan dan
akan keluar (swap out) jika sedang tidak diperlukan. Dengan demikian, sistem
multiprogramming menjadi lebih efisien. Prinsip dari memori virtual yang perlu
diingat adalah bahwa "Kecepatan maksimum eksekusi proses di memori virtual
dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama
di sistem yang tidak menggunakan memori virtual".
Memori virtual biasanya
diimplementasikan menggunakan demand paging atau demand segmentation juga
digunakan. Tetapi algoritma segment-replacement lebih kompleks daripada
algoritma page-replacement karena segmen mempunyai ukuran yang bervariasi.
2.
Demand
Paging
Demand paging adalah sistem paging dengan
swapping. Page diletakkan di memori hanya jika diperlukan. Hal ini menyebabkan
kebutuhan I/O lebih rendah, kebutuhan memori lebih rendah, respon lebih cepat
dan lebih banyak user yang menggunakan.
Proses disimpan di memori sekunder
(disk). Jika proses akan dieksekusi, maka dipindah (swap) ke memori.
Menggunakan lazy swapper untuk melakukan swapping bila page tersebut akan
digunakan yang berarti sebuah page tidak pernah ditukar ke memori kecuali page
diperlukan. Jika page diperlukan, dilakukan acuan ke page tersebut, tetapi jika
acuan invalid maka dilakukan penghentian. Page yang sedang tidak berada di
memori tersebut akan dibawa ke memori dari backing store.
Untuk membedakan antara page pada
memori dengan page pada disk digunakan valid-invalid bit. Tabel page untuk page
yang berada di memori diset “valid’, sedangkan tabel page untuk page yang tidak
sedang di memori (ada pada disk) diset “invalid”.
Akses ke page yang diset “invalid”
menyebabkan page fault, yang menyebabkan trap ke sistem operasi. Karena status
(register, kode kondisi, counter instruksi) dari proses ter-interrupt disimpan
bila terjadi page fault, proses dapat dimulai lagi pada tempat dan status yang
sama, kecuali page yang cocok sedang di memori dan sedang diakses. Prosedur
untuk menangani page fault seperti Gambar 8-4 sebagaiberikut :
1. Sistem
operasi melihat tabel untuk menentukan jika acuan invalid maka proses
dihentikan dan page sedang tidak berada di memori.
2. Jika acuan invalid dilakukan trap
ke sistem operasi.
3. Sistem mencari frame kosong.
4. Sistem melakukan proses swapping
ke frame bebas.
5. Tabel page di-reset, bit
valid-invalid diset 1 atau valid
6. instruksi di-restart.
Apabila tidak ditemukan frame bebas maka dilakukan
page replacement yaitu mencari beberapa page di memori yang tidak digunakan
kemudian dilakukan swap out ke backing store. Terdapat beberapa algoritma page
replacement dimana performansi algoritma diharapkan menghasilkan jumlah page
fault minimum. Beberapa page kemungkinan dibawa ke memori beberapa kali.
Perangkat keras yang dibutuhkan untuk mendukung demand
paging sama dengan perangkat keras untuk sistem paging dengan swapping yaitu :
1) Tabel
page : tabel mempunyai kemampuan untuk memberi entry bit valid-invalid atau
nilai khusus untuk bit proteksi
2) Memori
sekunder : digunakan untuk membawa page yang tidak di memori danbiasanya adalah
disk kecepatan tinggi yang disebut swap device.
3.
Page Replacement
Page replacement diperlukan pada
situasi dimana proses dieksekusi perlu frame bebas tetapi tidak tersedia frame
bebas. Sistem harus menemukan satu frame yang sedang tidak digunakan dan
membebaskannya. Untuk membebaskan frame dengan cara menulis isinya untuk ruang
swap dan mengubah tabel page (dan tabel lain) yang menunjukkan page tidak lagi
di memori.
Langkah-langkah untuk page fault yang memerlukan page
replacement seperti Gambar 8-6 adalah sebagai berikut :
1. Carilah lokasi page yang
diharapkan pada disk.
2. Carilah frame kosong dg cara :
a) Bila ada frame kosong, gunakan.
b) Bila
tidak ada, gunakan algoritma page replacement untuk menyeleksi frameyang akan
menjadi korban.
c) Simpan page korban ke disk, ubah tabel page.
3. Baca page yang diinginkan ke
frame kosong yang baru, ubah tabel page.
4. Mulai kembali proses user.
4.
Algoritma Page Replacement
Terdapat beberapa algoritma page
replacement, setiap sistem operasi mempunyai skema yang unik. Algoritma page
replacement secara umum diinginkan yang mempunyai rata-rata page fault
terendah. Algoritma dievaluasi dengan menjalankannya pada string tertentu dari
memory reference dan menghitung jumlah page fault. String yang mengacu ke
memori disebut reference string (string acuan).String acuan dibangkitkan secara
random atau dengan menelusuri sistem danmenyimpan alamat dari memori acuan.
Misalnya jika ditelusuri proses tertentu, disimpan alamat berikut :
0100, 0432, 0101, 0612, 0102, 0103,
0104,
0101, 0611, 0102, 0103, 0104, 0101,
0610,
0102, 0103, 0104, 0101, 0609, 0102,
0105
dimana 100 byte per page direduksi ke string acuan :
1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1
Untuk menentukan jumlah page fault
untuk string acuan dan algoritma pagereplacement tertentu, harus diketahui
jumlah page frame tersedia juga harus diketahui. Semakin tinggi jumlah frame
lebih tinggi, semakin rendah jumlah page fault.
Terdapat beberapa algoritma page
replacement antara lain algoritma first in first our (FIFO), optimal dan least
recently use (LRU). Pada sub bab berikut akan diilustrasikan algoritma page
replacement tersebut dengan menggunakan string acuan
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7,
0, 1
1.
Algoritma FIFO
Algoritma FIFO merupakan algoritma
paling sederhana. Algoritma FIFO diasosiasikan dengan sebuah page bila page
tersebut dibawa ke memori. Bila ada suatu page yang akan ditempatkan, maka
posisi page yang paling lama yang akan digantikan. Algoritma ini tidak perlu
menyimpan waktu pada saat sebuah page dibawa ke memori.
Meskipun algoritma FIFO mudah
dipahami dan diimplementasikan, performansitidak selalu bagus karena algoritma
FIFO menyebabkan Belady’s anomaly. Belady’s anomaly mematahkan fakta bahwa
untuk beberapa algoritma page replacement, bila rata-rata page fault meningkat,
akan meningkatkan jumlah alokasi frame. Sebagai contoh, jika menggunakan string
acuan :
1, 2, 3, 4, 1, 2, 5, 1, 2, 5, 1, 2, 3, 4, 5
dengan algoritma FIFO terjadi Belady’s anomaly.
1.
Algoritma Optimal
Algoritma optimal merupakan hasil
penemuan dari Belady’s anomaly. Algoritma ini mempunyai rata-rata page fault
terendah. Algoritma optimal akan mengganti page yang tidak akan digunakan untuk
periode waktu terlama. Algoritma ini menjamin rata-rata page fault terendah
untuk jumlah frame tetap tetapi sulit implementasinya.
2.
Algoritma Least Recently Use (LRU)
Algoritma LRU merupakan perpaduan
dari algoritma FIFO dan optimal. Prinsip dari algoritma LRU adalah mengganti
page yang sudah tidak digunakan untuk periode waktu terlama.
Untuk mengimplementasikan algoritma LRU, digunakan dua
model yaitu :
1. Counter :
setiap entry tabel pagee diasosiasikan dengan sebuah “time-of-use” dan sebuah
clock logika atau counter ditambahkan ke CPU. Clock ini dinaikkan untuk setiap
acuan ke memori. Jika sebuah acuan ke page dibuat, isi clock register dicopy ke
time-of-use pada tabel page untuk page tersebut.
2. Stack :
stack dari nomor page diatur. Jika sebuah page digunakan acuan, maka page
dihapus dari stack dan meletakkan pada top of stack. Dengan cara ini, stack
selalu digunakan page dan bagian bawah untuk page LRU. Implementasi stack untuk
algoritma LRU.
4. Alokasi Frame
Alokasi frame berhubungan dengan
mekanisme alokasi sejumlah memori bebas yang tetap diantara beberapa proses.
Meskipun terdapat beberapa variasi pengalokasian frame bebas ke beberapa
proses, tetapi strategi dasar jelas yaitu : proses user dialokasikan untuk
sembarang frame bebas.
Jumlah minimum frame per proses
ditentukan oleh arsitektur dimana jumlah maksimum tergantung jumlah memori
fisik yang tersedia. Jumlah minimim frameditentukan oleh arsitektur instruction-set.
Bila terjadi page fault sebelum eksekusi instruksi selesai, instruksi harus
di-restart. Sehingga tersedia frame yang cukup untukmembawa semua page yang
berbeda dimana sembarang instruksi dapat mengacu. Misalnya mikrokomputer
menggunakan memori 128K yang dikomposisikan dengan page ukuran 1K, maka
terbentuk 128 frame. Jika sistem operasi menggunakan 35K, maka 93 frame sisa
digunakan program user. Bila suatu program menyebabkan page fault sebanyak 93
kali, maka menempati 93 frame bebas tersebut. Jika terjadi page faultke 94,
dari 93 frame yang terisi harus dipilih salah satu untuk diganti yang baru.
Bila program selesai, 93 frame tersebut dibebaskan kembali.
Terdapat 2 bentuk algoritma alokasi
yaitu equal allocation dan proportional allocation. Pada equal allocation, jika
terdapat m frame dan n proses, maka setiap proses dialokasikan sejumlah frame
yang sama (m/n frame). Pada proportionalallocation setiap proses dialokasikan
secara proporsional berdasarkan ukurannya. Jika ukuran virtual memori untuk
proses pi adalah si dan total jumlah frame yang tersedia m,maka frame ke ai
dapat dialokasikan ke proses pi sama dengan :
Dimana S = Σsi. Contohnya :
Selain itu terdapat algoritma
alokasi berprioritas yang menggunakan skema proporsional dengan lebih melihat
prioritas proses daripada ukuran proses. Jika proses Pi membangkitkan page
fault, dipilih satu dari frame-frame dari proses yang mempunyai nomor prioritas
terendah.
3.
Alokasi Global dan Alokasi Lokal
Page replacement adalah faktor
terpenting lain yang harus dipertimbangkan dalam alokasi frame. Pada multiple
process yang berkompentisi mendapatkan frame, algoritma page replacement
dikelompokkan dalam 2 kategori yaitu global replacement dan local replacement.
Global replacement mengijinkan suatu
proses untuk menyeleksi suatu frameyang akan dipindah dari sejumlah frame,
meskipun frame tersebut sedang dialokasikan ke proses yang lain. Pada local
replacement, jumlah frame yang dialokasikan untuk proses tidak berubah. Setiap
proses dapat memilih dari frame-frame yang dialokasikan untuknya.
Permasalahan pada global replacement
adalah proses tidak dapat mengontrolrata-rata page fault. Sejumlah page pada
memori untuk sebuah proses tidak hanya tergantung pada perilaku paging untuk
proses tersebut, tetapi juga perilaku paging untuk proses yang lain.
Bagaimanapun, karena algoritma global replacement menghasilkan throughput yang
lebih besar, metode ini sering digunakan.
4.
Thrashing
Misalnya sembarang proses tidak
mempunyai frame yang cukup. Meskipun secara teknis dapat mengurangi jumlah
frame yang dialokasikan sampai minimum, terdapat sejumlah page yang sedang
aktif digunakan. Jika suatu proses tidak memiliki jumlah frame yang cukup, maka
sering terjadi page fault. Sehingga harus mengganti beberapa page. Tetapi
karena semua page sedang digunakan, harus mengganti page yang tidak digunakan
lagi kemudian. Konsekuensinya, sering terjadi page fault lagi dan lagi. Proses
berlanjut page fault, mengganti page untuk page fault dan seterusnya.
Kegiatan aktifitas paging yang
tinggi disebut thrashing. Sebuah proses mengalami thrashing jika menghabiskan
lebih banyak waktu untuk paging daripada eksekusi. Efek thrashing dapat
dibatasi dengan menggunakan algoritma local (priority) replacement. Grafik
terjadinya proses thrashing pada sistem multiprogramming.
BAB III
PEMBAHASAN
SINKRONISASI PROSES
1.
Pengertian Sinkronisasi
Sinkronisasi merupakan suatu proses pengaturan
jalannya beberapa proses pada waktu yang bersamaan untuk menyamakan waktu dan
data supaya tidak terjadi inconsitensi (ketidak konsistenan) data akibat adanya
akses data secara konkuren agar hasilnya bagus dan sesuai dengan apa yang
diharapkan. Disini sinkronisasi diperlukan agar data tersebut tetap konsisten.
Shared memory merupakan solusi ke
masalah bounded-butter yang mengijinkan paling banyak n-1 materi dalam buffer
pada waktu yang sama. Suatu solusi, jika semua N buffer digunakan tidaklah
sederhana. Dimisalkan kita memodifikasi producer-consumer code dengan
menambahkan suatu variable counter, dimulai dari 0 dan masing-masing waktu
tambahan dari suatu item baru diberikan kepada buffer.
Sinkronisasi merupakan “issue”
penting dalam rancangan/implementasi OS (shared resources, data, dan
multitasking).
2. Tujuan
sinkronisasi
Tujuan dari sinkronisasi itu sendiri
ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh
beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses
sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan.
3. Masalah dalam sinkronisasi beserta solusinya
1. Race
Condition
Race Condition adalah situasi di mana beberapa
proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir
dari data bersama tersebut tergantung pada proses yang terakhir selesai. Untuk
mencegah race condition, proses-proses yang berjalan besamaan harus di
disinkronisasi.
Dalam beberapa sistem operasi,
proses-proses yang berjalan bersamaan mungkin untuk membagi beberapa
penyimpanan umum, masing-masing dapat melakukan proses baca (read) dan proses
tulis (write). Penyimpanan bersama (shared storage) mungkin berada di memori
utama atau berupa sebuah berkas bersama, lokasi dari memori bersama tidak
merubah kealamian dari komunikasi atau masalah yang muncul. Untuk mengetahui
bagaimana komunikasi antar proses bekerja, mari kita simak sebuah contoh
sederhana, sebuah print spooler. Ketika sebuah proses ingin mencetak sebuah
berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler
direktori yang khusus. Proses yang lain, printer daemon, secara periodik
memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak, dan jika
ada berkas yang sudah dicetak dihilangkan nama berkasnya dari direktori.
2. Critical
Section
Kunci untuk mencegah masalah ini dan di
situasi yang lain yang melibatkan shared memori, shared berkas, and shared
sumber daya yang lain adalah menemukan beberapa jalan untuk mencegah lebih dari
satu proses untuk melakukan proses writing dan reading kepada shared data pada
saat yang sama. Dengan kata lain kita memutuhkan mutual exclusion, sebuah jalan
yang menjamin jika sebuah proses sedang menggunakan shared berkas, proses lain
dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena proses 2
mulai menggunakan variabel bersama sebelum proses 1 menyelesaikan tugasnya.
Masalah menghindari race conditions dapat juga
diformulasikan secara abstrak. Bagian dari waktu, sebuah proses sedang sibuk
melakukan perhitungan internal dan hal lain yang tidak menggiring ke kondisi
race conditions. Bagaimana pun setiap kali sebuah proses mengakses shared memory
atau shared berkas atau melakukan sesuatu yang kritis akan menggiring kepada
race conditions. Bagian dari program dimana shaed memory diakses disebut
Critical Section atau Critical Region.
Walau pun dapat mencegah race
conditions, tapi tidak cukup untuk melakukan kerjasama antar proses secara
pararel dengan baik dan efisien dalam menggunakan shared data. Kita butuh 4
kondisi agar menghasilkan solusi yang baik:
• Tidak ada dua proses secara
bersamaan masuk ke dalam citical section.
• Tidak ada asumsi mengenai
kecepatan atau jumlah cpu.
• Tidak ada
proses yang berjalan di luar critical secion yang dapat mengeblok proses lain.
• Tidak ada proses yang menunggu
selamamya untuk masuk critical section.
Critical Section adalah sebuah segmen kode di mana
sebuah proses yang mana sumber daya bersama diakses. Terdiri dari:
Entry Section: kode yang digunakan untuk masuk ke
dalam critical section
Critical Section: Kode di mana hanya ada satu proses
yang dapat dieksekusi pada satu waktu
Exit Section: akhir dari critical section, mengizinkan
proses lain
Remainder Section: kode istirahat setelah masuk ke
critical section.
3. Solusi ke
Masalah Critical-Section
Ada bebrapa Solusi untuk mengatasi masalah Critical
Section, yaitu:
• Mutual exclution
Jika proses
pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang
dapat mengeksekusi dalam critical section mereka.
• Progress
Jika tidak
ada proses yang sedang dieksekusi dalam critical section dan ada beberapa proses yang ingin masuk ke
critical section mereka, maka pemilihan proses yang akan masuk ke critical
section berikutnya tidak bias ditunda.
• Bounded Waiting
Suatu
keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke critical
section mereka, setelah adanya proses yang meminta masuk ke critical section
dan sebelum permintaan itu diterima.
a. Asumsikan bahwa tiap proses mengeksekusi pada
nonzero speed.
b. Tidak ada asumsi mengenai kecepatan relative dan n
proses.
Cara-cara memecahkan masalah
• Hanya dua proses, Po dan P1
• Struktur umum dari proses adalah
Pi (proses lain Pj)
4. Bakery
Algorithm
Critical section untuk n proses:
a. Sebelum
memasuki critical Section-nya, proses menerima nomor pemilik nomor terkecil
memasuki critical section.
b. Jika
proses Pi dan Pj menerima nomor yang sama, jika i < j, maka Pi dilayani
duluan, lainnya Pj dilayani duluan (if i< j, then Pi is served first; else
Pj is served first).
c. Skema
penomoran selalu menghasilkan angka –angka yang disebutkan satu per satu, yaitu
1,2,3,3,3,3,4,5….
5. Semaphore
Semaphore adalah pendekatan yang
diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat
bekerja sama dengan menggunakan penanda-penanda sederhana. Seperti proses dapat
dipaksa berhenti pada suatu saat, sampai proses mendapatkan penanda tertentu
itu. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur
penanda yang cocok untuk kebutuhan itu. Variabel khusus untuk penanda ini
disebut semaphore.
Semaphore mempunyai dua sifat, yaitu:
a. Semaphore dapat diinisialisasi
dengan nilai non-negatif.
b. Terdapat dua operasi terhadap
semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah
operasi P dan V.
• Operasi Down
Operasi ini menurunkan nilai
semaphore, jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya
diblocked. Operasi Down adalah atomic, tidak dapat diinterupsi sebelum
diselesaikan. Menurunkan nilai, memeriksa nilai, menempatkan proses pada
antrian dan memblocked sebagai instruksi tunggal. Sejak dimulai, tidak ada
proses lain yang dapat mengakses semaphore sampai operasi selesai atau
diblocked.
• Operasi Up
Operasi Up menaikkan nilai
semaphore. Jika satu proses atau lebih diblocked pada semaphore itu tidak dapat
menyelesaikan operasi Down, maka salah satu dipilih oleh system dan menyelesaikan
operasi Down-nya. Urutan proses yang dipilih tidak ditentukan oleh Djikstra,
dapat dipilih secara acak. Adanya semaphore mempermudah persoalan mutual
exclusion. Skema penyelesaian mutual exclusion mempunyai bagian sebagai
berikut:
Sebelum masuk critical section,
proses melakukan Down. Bila berhasil maka proses masuk ke critical section.
Bila tidak berhasil maka proses di-blocked atas semaphore itu. Proses yang
diblocked akan dapat melanjutkan kembali bila proses yang ada di critical
section keluar dan melakukan opersai up sehingga menjadikan proses yang
diblocked ready dan melanjutkan sehingga opersi Down-nya berhasil.
6. Problem
Klasik pada Sinkronisasi
Ada tiga hal yang selalu menjadi masalah pada proses
sinkronisasi:
a. Problem Bounded buffer.
b. Problem Reades and Writer.
c. Problem Dining Philosophers.
7. Monitors
Solusi sinkronisasi ini dikemukakan
oleh Hoare pada tahun 1974. Monitor adalah kumpulan prosedur, variabel dan
struktur data di satu modul atau paket khusus. Proses dapat memanggil prosedur-prosedur
kapan pun diinginkan. Tapi proses tidak dapat mengakses struktur data internal
dalam monitor secara langsung. Hanya lewat prosedur-prosedur yang
dideklarasikan minitor untuk mengakses struktur internal.
Properti-properti monitor adalah sebagai berikut:
a.
Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur dalam
monitor dan tidak oleh prosedur di luar monitor.
b. Hanya
satu proses yang dapat aktif di monitor pada satu saat. Kompilator harus
mengimplementasi ini(mutual exclusion).
c. Terdapat
cara agar proses yang tidak dapat berlangsung di-blocked. Menambahkan
variabel-variabel kondisi, dengan dua operasi, yaitu Wait dan Signal.
d. Wait:
Ketika prosedur monitor tidak dapat berkanjut (misal producer menemui buffer
penuh) menyebabkan proses pemanggil diblocked dan mengizinkan proses lain masuk
monitor.
e. Signal:
Proses membangunkan partner-nya yang sedang diblocked dengan signal pada
variabel kondisi yang sedang ditunggu partnernya.
f. Versi
Hoare: Setelah signal, membangunkan proses baru agar berjalan dan menunda
proses lain.
g. Versi
Brinch Hansen: Setelah melakukan signal, proses segera keluar dari monitor.
Dengan memaksakan disiplin hanya satu proses pada satu
saat yang berjalan pada monitor, monitor menyediakan fasilitas mutual
exclusion. Variabel-variabel data dalam monitor hanya dapat diakses oleh satu
proses pada satu saat. Struktur data bersama dapat dilindungi dengan
menempatkannya dalam monitor. Jika data pada monitor merepresentasikan sumber
daya, maka monitor menyediakan fasilitas mutual exclusion dalam mengakses
sumber daya itu.
BAB IV
PENUTUP
ü Kesimpulan
Manajemen Memori
Manajemen Memori pada System Operasi
yaitu meningkatkan utilitas CPU yang sebesar-besarnya, data dan instruksi dapat
di akses dengan cepat oleh CPU, memori utama memiliki kapasitas yang sangat
terbatas, sehingga pemakaiannya harus seefisien mungkin dan transfer data dari
memori
ü Vitual
memory
Memori virtual adalah teknik yang memisahkan memori logika
user dari memori fisik. Menyediakan memori virtual yang sangat besar
diperuntukkan untuk programmer bila tersedia memori fisik yang lebih kecil.
Programmer tidak perlu khawatir jumlah memori fisik yang tersedia, sehingga
dapat berkonsentrasi pada permasalahan pemrograman.
ü Sinkronisasi
proses
Sinkronisasi
adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan.
Tujuan utama sinkronisasi adalah menghindari terjadinya inkonsistensi data
karena pengaksesan oleh beberapa proses yang berbeda (mutual exclusion) serta
untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan
lancar dan terhindar dari deadlock atau starvation.
Tidak ada komentar:
Posting Komentar