1. Sikronissasi pada proses Critical ection
§
Masalah Critical Section
a) n proses mencoba menggunakan shared data bersamaan
b) Setiap proses mempunyai “code” yang mengakses/ manipulasi
shared data tersebut => “critical section”
c) Problem: Menjamin jika ada satu proses yang sedang
d) “eksekusi” pada bagian “critical section” tidak ada
proses lain yang diperbolehkan masuk ke “code” critical section dari proses
tersebut.
§ Solusi “critical
section problem” harus memenuhi:
1. Mutual Exclusion: Jika proses Pi
sedang “eksekusi” pada bagian “critical section” (dari proses Pi) maka tidak
ada proses proses lain dapat “eksekusi” pada bagian critical section dari proses-proses
tersebut.
2. Progress: Jika
tidak ada proses sedang eksekusi pada critical section-nya dan jika terdapat
lebih dari satu proses lain yang ingin masuk ke critical section, maka
pemilihan siapa yang berhak masuk ke critical section tidak dapat ditunda tanpa
terbatas.
3. Bounded Waiting: Terdapat batasan
berapa lama suatu proses harus menunggu giliran untuk mengakses “critical section”
– jika seandainya proses lain yang diberikan hak akses ke critical section.
2. Metode Test-and-Set (mutual exclusion)
a. Mutual exclusion dapat diterapkan:
b. Gunakan shared data, variabel: lock: boolean
(initially false)
c. lock: menjaga critical section
d. Process Pi:
do {
while (TestAndSet(lock)) ;
critical section
lock = false;
remainder section
}
3. Metode Semaphore
a. Perangkat sinkronisasi yang tidak membutuhkan busy
waiting
b. Semaphore S – integer variable
Dapat dijamin akses ke var. S oleh dua operasi atomik:
- Implementasi Semaphore
a. Didefinisikan sebuah Semaphore dengan sebuah Record
b.
Diasumsikan terdapat 2 operasi sederhana :
§
block menhambat proses yang
akan masuk
§
wakeup(P) memulai
eksekusi pada proses P yang di block
4.
Metode Masalah Klasik Sinkronisasi
1)
Bounded-Buffer
Problem
Produsen menghasilkan barang dan konsumen yang akan
menggunakannya. Beberapa batasan yang harus dipenuhi, yaitu :
§
Barang yang dihasilkan oleh produsen terbatas
§
Barang yang dipakai konsumen terbatas - Konsumen hanya
boleh menggunakan barang yang dimaksud setelah produsen menghasilkan barang
dalam jumlah tertentu
§
Produsen hanya boleh memproduksi barang jika konsumen
sudah kehabisan barang
Pada penyelesaian
permasalahan bounded buffer menggunakan semaphore berikut:
2)
Reader
and Writer Problem
Pada
masalah ini terdapat dua variasi yaitu :
1) seorang reader tidak perlu menuggu reader lain
untuk selesai hanya karena ada writer menunggu (reader memiliki
prioritas lebih tinggi disbanding dengan writer)
2) Jika ada writer yang sedang menunggu,
maka tidak boleh ada reader lain yang bekerja (writer memiliki
prioritas yang lebih tinggi)
§ Jika terdapat writer dalam critical
section dan terdapat n reader yang menunggu, maka
satu reader akan antri di wrt dan n-1 reader akan
antri di mutex.
§ Jika writer mengeksekusi signal(wrt),
maka dapat disimpulkan bahwa eksekusi adalah menunggu reader atau
menunggu satu writer. Variabel umum yang digunakan adalah
3) DiningPhilosophers Problem
Permasalahan dining-philosophers pada gambar
disamping terdapat 5 filosof yang akan makan. Di sana disediakan 5 supit. Jika
filosof lapar, ia akan mengambil 2 supit yaitu di tangan kanan dan kiri. Namun
adakalanya hanya diambil supit satu saja. Jika ada filosof yang mengambil 2
supit, maka ada filosof yang harus menunggu sampai supit tersebut diletakkan.
Hal ini
dapat diimplementasikan dengan wait dan signal.
Referensi :
- http://webcache.googleusercontent.com/search?q=cache:http://july-indiarti fst13.web.unair.ac.id/artikel_detail-103493-Sistem%2520Operasi-Singkronisasi%2520Proses.html
- https://www.google.co.id/url Fridha.staff.gunadarma.ac.id