NPM : 21120015
SINKRONISASI
Apa itu Sinkronisasi ?
Sinkronisasi adalah proses pengaturan jalannya
beberapa proses pada saat yang bersamaan,
mengakses data, memanipulasi data yang sama,
untuk saling bertukar data agar memiliki jumlah
data yang sama.
Tujuan utama sinkronisasi
1.Race condition
2.Critical selection
1. Race condition
situasi di mana beberapa proses mengakses dan
memanipulasi data bersama pada saat bersamaan.
Nilai akhir dari data bersama tersebut tergantung
pada proses yang terakhir selesai. Untuk
mencegah race condition, proses-proses yang
berjalan bersamaan harus di disinkronisasi.
Contoh race condition
Pada program di bawah ini, terlihat bahwa terdapat
variabel counter yang diinisialisasi dengan nilai 0,
dan ditambah 1 setiap kali terjadi produksi serta
dikurangi 1 setiap kali terjadi konsumsi.
2. Critical selection
adalah sebuah segmen kode di mana sebuah proses yang
mana sumber daya bersama diakses.
Bagian Critical selection :
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.
Solusi Problem Critical-Section
(1)
4 kondisi solusi yang baik :
1.Tidak ada dua proses secara bersamaan
masuk ke dalam critical section.
2.Tidak ada asumsi mengenai kecepatan
atau jumlah CPU.
3.Tidak ada proses yang berjalan di luar
critical section yang dapat mem-blok
proses lain.
4.Tidak ada proses yang menunggu
selamanya untuk masuk critical section.
Solusi Problem Critical-Section
(2)
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(kemajuan proses):
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 hanya proses-proses yang sedang berada pada entry
section saja yang boleh berkompetisi untuk mengerjakan critical
Section