Sinkronisasi

Critical section adalah bagian yg berisi sejumlah variabel yg akan di share (dipengaruhi & mempengaruhi) proses lain.

Penyelesaian critical section harus memenuhi 3 syarat :
1. mutual exclusion
-jika suatu proses sedang mengerjakan critical section, maka tidak
boleh ada proses lain yg masuk critical section

2. progress
– jika tidak ada suatu proses mengerjakan critical section, dan ada
beberapa proses yg akan masuk critical section,maka hanya proses2 yg sedang
berada pd entri section saja yg boleh berkompetisi mengerjakan critical section.
3.bounded waiting
– besarnya waktu tunggu dari suatu proses yg akan memasuki critical section sejak
proses itu meminta izin untuk mengerjakan critical section, sehingga
permintaan itu dipenuhi.

algoritma pemecahan dua proses
algoritma 1 (algoritma turn)
algoritma 2 (algoritma flag)
algoritma 3 (algoritma peterson)
untuk lengkap nya dapat di download di sini mengenai algoritma pemecahan dua proses.

Deadlock dan starvation
1. deadlock
– buntu karena menunggu kejadian yg tidak terjadi
2.starvation
– proses menunggu alokasi sumber daya.
-starvation adalah keadaan dimana satu/beberapa proses ‘kelapara’ karena
terus dan terus menunggu kebutuhan sumber daya dipenuhi. karena sumber
daya tsb tidak tersedia/dialokasikan untuk proses lain, akhirnya proses
yang membutuhkan tidak bisa memilikinya. kondisi ini merupakan akibat
dari keadaan menunggu berkepanjangan.

NB:
-setiap deadlock menghasilkan starvation
-tidak setiap starvation menghasilkan deadlock

Deadlocks


Pengertian :
proses menunggu suatu kejadian tertentu yg tidak pernah terjadi

*model deadlock
urutan kejadian pengoperasian perangkap input/output :
1. meminta (request) : meminta pelayanan perangkat input/output
2. memakai (use) : memakai perangkat input/output.
3. melepaskan (release) : melepaskan pemakaian input/output

deadlock tidak hanya terjadi pd 2 proses dan 2 sumber daya, deadlock
dapat terjadi dengan melibatkan lebih dari 2 proses dan 2 sumber daya.

karakteristik deadlock
coffman menyatakan untuk syarat terjadinya deadlock:
1.mutual exclusion
2.hold and wait
3.non-preemption condition (kondisi non preemption)
4.circular wait condition (kondisi menunggu secara sirkular)

metode2 mengatasi deadlock :
1.metode pencegahan terjadinya deadlock (deadlock prevention)
2. metode penghindaran terjadinya deadlock(deadlock avoidance)
3.metode deteksi dan pemulihan dari deadlock (deadlock detection and recovery)

pencegahan daedlock
Havendar menyarankan srategi untuk meniadakan dg syarat ;
1.setiap proses harus meminta semua sumber daya yg diperlukan sekaligus
dan tidak berlanjut sampai semua diberikan
2.jika proses telah sedang memegang sumber daya tertentu, untuk permintaan berikutnya
proses harus melepas dulu sumber daya yg dipegangnya. jika diperlukan
proses meminta kembali sekaligus dengan sumber daya yg baru
3.beri pengurutan linier terhadap tipe2 sumber daya pd semua proses,
yaitu jika proses telah dialokasikan suatu tipe sumber daya,proses
hanya boleh berikutnya meminta sumber daya -sumber daya tipe pada urutan berikutnya

Algoritma Banker oleh Djikstra
kelemahan algoritma ini :
1.proses jarang mengetahui diawal proses jumlah max sumber daya yg akan diperlukan
2.jumlah proses tidak tetap,secara dinamis beragam begitu pemakai2
baru login & logout
3.sumber daya yg dihitung sbg tersedia dapat saja tiba2 dicopot sehingga sebenarnya menjadi tidak tersedia
4.proses2 haru independen
5.algoritma menghendaki memberikan semua permintaan selama waktu yg tak terhingga
6.algoritma menghendaki client2 mengembalikan sumber daya setelah suatu
waltu yg terhingga

pendeteksian deadlock
adalah teknik untuk menentukan apakah deadlock terjadi serta mengindentifikasi
proses & sumber daya yg terlibat dalam deadlock

pemulihan dari deadlock
yaitu begitu sistem terdapat deadlock maka deadlock harus diputuskan
dengan menghilangkan salah 1 / lebih persyaratannya.

pendekatan yg dilakukan :
1.singkirkan semua proses yg melibatkan deadlock
2.backup semua proses yg terlibat deadlock ke suatu check point yg
didefinisikan sebelumnya & dijalankan kembali semua proses itu
3.secara berurutan singkirkan proses sampai tdk terjadi deadlock lagi.
4.secara berurutan preemp sumber daya tdk ada deadlock lagi.

pendekatan penanggulangan deadlock terpadu
Silberschatz menyarankan suatu pendekatan terpadu yaitu :
1. kelompokkan sumber daya menjadi kelas sumber daya
2. gunakan strategi pengurutan linier
3. dalam 1 kelas sumber daya gunakan algoritma yg sesuai untuk sumber daya tersebut.