Synchronization & Deadlock
Dari Thread Menuju Synchronization
Pada pertemuan sebelumnya kita belajar bahwa satu aplikasi dapat memecah tugasnya menjadi banyak Thread yang berjalan bersamaan.
Apa Itu Synchronization?
Synchronization adalah mekanisme kontrol sistem operasi untuk mengatur urutan eksekusi beberapa Thread terhadap resource bersama agar integritas data tetap konsisten.
🔒 Lock / Mutex
Mekanisme kunci gembok: resource diamankan sementara sehingga hanya satu thread yang boleh masuk.
🚪 Critical Section
Segmen kode sensitif yang membaca atau memanipulasi variabel/data bersama.
Race Condition: Saldo Rekening
Baca Rp1.000.000 → Rencana tarik Rp600.000 → Hitung sisa Rp400.000.
Baca Rp1.000.000 → Rencana tarik Rp500.000 → Hitung sisa Rp500.000.
*Bahasa Sederhana: Race Condition adalah kondisi saat beberapa Thread berebut memanipulasi data bersama tanpa izin antre yang jelas.
Deadlock: Ketika Proses Saling Mengunci
Deadlock adalah situasi ketika dua atau lebih proses terhenti permanen karena masing-masing memegang satu resource dan menunggu resource lain yang sedang dipegang oleh proses lawannya.
• Process B: Memegang Resource 2 ──→ Menunggu Resource 1
4 Syarat Terjadinya Deadlock
Resource hanya boleh digunakan oleh satu proses pada satu saat.
Proses memegang setidaknya 1 resource sambil meminta resource lain.
Resource tidak bisa direbut paksa; hanya dilepas sukarela oleh pemegang.
Ada rantai saling tunggu melingkar (P1 menunggu P2, P2 menunggu P1).
*Jika salah satu dari empat syarat di atas berhasil dicegah atau diputus, maka Deadlock tidak akan pernah terjadi.
Race Condition vs Deadlock
Race Condition
Beberapa thread mengakses dan mengubah data bersama tanpa pengaturan waktu yang tepat.
Deadlock
Beberapa proses saling mengunci karena memegang dan menunggu resource yang sama secara sirkular.
Studi Kasus: Sistem KRS Kuota 1 Kursi
Tersisa 1 kursi terakhir pada mata kuliah pilihan. Mahasiswa A dan Mahasiswa B menekan tombol daftar di milidetik yang hampir sama.
• Thread A membaca Kuota = 1
• Thread B membaca Kuota = 1
Synchronization pada Server & AI
Server inferensi AI menjalankan banyak proses secara bersamaan yang saling berebut memori VRAM GPU dan bus I/O storage.
Sintesis Pertemuan 1 s.d. 5
Setelah mempelajari Kernel, Process, CPU Scheduling, Thread, Concurrency, Synchronization, dan Deadlock, kita dapat memahami bahwa saat ratusan aplikasi aktif di Windows:
- Sistem Operasi memecah aplikasi menjadi Process dan Thread.
- CPU Scheduler membagi jatah waktu pada 12 logical processor secara adil.
- Synchronization dan Lock menjamin data bersama tidak rusak akibat Race Condition.
- Algoritma pencegahan memutus siklus agar tidak terjadi Deadlock.
Kesimpulan Pertemuan 5
Berebut mengubah data bersama tanpa pengaturan gembok (Lock).
Saling menunggu resource secara melingkar sehingga proses macet permanen.