Minggu, 23 April 2017

METODE SIKRONISASI


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 :
  1. http://webcache.googleusercontent.com/search?q=cache:http://july-indiarti fst13.web.unair.ac.id/artikel_detail-103493-Sistem%2520Operasi-Singkronisasi%2520Proses.html
  2. https://www.google.co.id/url Fridha.staff.gunadarma.ac.id




Tidak ada komentar:

Posting Komentar