Dokumen tersebut membahas tentang sinkronisasi dan deadlock dalam sistem operasi. Sinkronisasi digunakan untuk mengatur jalannya beberapa proses secara bersamaan agar saling bertukar data dengan jumlah yang sama dan mencegah terjadinya inkonsistensi data. Deadlock terjadi ketika dua program saling memegang sumber daya yang dibutuhkan program lain sehingga tidak ada yang bisa melanjutkan. Ada beberapa cara untuk mencegah terjadinya dead
2. Sinkronisasi
Sinkronisasi adalah proses pengaturan jalannya
beberapa proses pada saat yang bersamaan. Untuk
saling bertukar data agar memiliki jumlah data yang
sama.
Tujuan utama sinkronisasi
adalah untuk menghindari terjadinya inkonsitensi 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 dan
starvation. Tujuan utama mungkin lebih condong ke
arah back-up (membuat cadangan)
Universitas Krisnadwipayana 2
3. SINKRONISASI
Race condition
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.
Universitas Krisnadwipayana 3
4. SINKRONISASI
Contoh race condition
Pada program di samping,
terlihat bahwa terdapat
variabel counter yang
diinisialisasi dengan nilai
0, dan ditambah 1 setiap
kali terjadi produksi serta
dikurangi 1 setiap kali
terjadi konsumsi.
Universitas Krisnadwipayana 4
5. SINKRONISASI
Contoh race condition pada Bahasa
mesin
Jika perintah counter++ dan counter--
berusaha mengakses nilai counter
secara konkuren, maka nilai akhir dari
counter bisa salah. Hal ini tidak berarti
nilainya pasti salah, tapi ada
kemungkinan untuk terjadi kesalahan.
Universitas Krisnadwipayana 5
6. SINKRONISASI
Contoh program
yang memperlihatkan race
condition
Status akhir dari counter seharusnya adalah 0,
tapi kalau urutan pengeksekusian program
berjalan seperti di atas, maka hasil akhirnya
menjadi 3. Perhatikan bahwa nilai akhir counter
akan mengikuti eksekusi terakhir yang
dilakukan oleh komputer. Pada program di atas,
pilihannya bisa 1 atau 3. Perhatikan bahwa nilai
dari counter akan bergantung dari perintah
terakhir yang dieksekusi. Oleh karena itu maka
kita membutuhkan sinkronisasi yang merupakan
suatu upaya yang dilakukan agar proses-proses
yang saling bekerjasama dieksekusi secara
beraturan demi mencegah timbulnya suatu
Universitas Krisnadwipayana 6
keadaan race condition.
7. SINKRONISASI
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 critical selection:
• Mutual exclution
• Progress
• Bounded Waiting
Universitas Krisnadwipayana 7
8. SINKRONISASI
Monitors
adalah kumpulan prosedur, variabel dan struktur data di
satu modul atau paket khusus (Hoare 1974).
Proses dapat memanggil prosedur-prosedur kapan pun
diinginkan. Tapi proses tak dapat mengakses struktur
data internal dalam monitor secara langsung. Hanya
lewat prosedur-prosedur yang dideklarasikan minitor
untuk mengakses struktur internal
Universitas Krisnadwipayana 8
9. SINKRONISASI
Properti-properti monitor adalah sebagai berikut:
• Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur
dala monitor dan tidak oleh prosedur di luar monitor.
• Hanya satu proses yang dapat aktif di monitor pada satu saat.
Kompilator harus mengimplementasi ini(mutual exclusion).
• Terdapat cara agar proses yang tidak dapat berlangsung di-blocked.
Menambahkan variabel-variabel kondisi, dengan dua operasi, yaitu Wait
dan Signal.
• Wait: Ketika prosedur monitor tidak dapat berkanjut (misal producer
menemui buffer penuh) menyebabkan proses pemanggil diblocked dan
mengizinkan proses lain masuk monitor.
• Signal: Proses membangunkan partner-nya yang sedang diblocked
dengan signal pada variabel kondisi yang sedang ditunggu partnernya.
• Versi Hoare: Setelah signal, membangunkan proses baru agar berjalan
dan menunda proses lain.
• Versi Brinch Hansen: Setelah melakukan signal, proses segera keluar
Universitas Krisnadwipayana 9
dari monitor.
10. DEADLOCK
Deadlock
Disebut juga Deadly Embrace adalah
keadaan dimana dua program
memegang kontrol terhadap sumber
daya yang dibutuhkan oleh program
yang lain.
Tidak ada yang dapat melanjutkan
proses masing-masing sampai program
yang lain memberikan sumber
dayanya, tetapi tidak ada yang
mengalah.
Menghadapi dead lock
1. Mengabaikan adanya deadlock.
2. Memastikan bahwa deadlock tidak akan
pernah ada, baik dengan metode
Pencegahan, dengan mencegah empat
kondisi deadlock agar tidak akan pernah
terjadi. Metode Menghindari deadlock, yaitu
mengizinkan empat kondisi deadlock, tetapi
menghentikan setiap proses yang
kemungkinan mencapai deadlock.
3. Membiarkan deadlock untuk terjadi,
pendekatan ini membutuhkan dua metode
yang saling mendukung, yaitu:
-Pendeteksian deadlock, untuk
mengidentifikasi
ketika deadlock terjadi.
Pemulihan deadlock, mengembalikan
kembali sumber daya yang
dibutuhkan pada proses yang
memintanya.
Universitas Krisnadwipayana 10
11. DEADLOCK
Mencegah dead lock
Syarat Langkah Kelemahan
Mutual ExclusionSpooling sumber daya Dapat menyebabkan chaos
Hold and Wait Meminta sumber daya di awal Sulit memperkirakan di awal dan tidak optimal
Universitas Krisnadwipayana 11
No Pre-emptive
Mengambil sumber daya di tengah
proses Hasil proses tidak akan baik
Circular Wait Penomoran permintaan sumber daya
Tidak ada penomoran yang memuaskan semua
pihak