Synchronization & Deadlock

Synchronization & Deadlock
Pertemuan 5 • Synchronization & Deadlock
By Alimin, M.Kom
Program Studi Sistem dan Teknologi Informasi

Synchronization & Deadlock

By Alimin, M.Kom
Deadlock & Synchronization
Fokus Perkuliahan: Ketika banyak Process dan Thread menggunakan resource yang sama, Sistem Operasi harus mengatur akses agar data tetap aman, konsisten, dan proses tidak saling mengunci (*deadlock*).
Pertemuan 5: Synchronization & Deadlock 1 / 11 Slide Berikutnya →
01 • Review & Masalah Baru

Dari Thread Menuju Synchronization

Pada pertemuan sebelumnya kita belajar bahwa satu aplikasi dapat memecah tugasnya menjadi banyak Thread yang berjalan bersamaan.

Application → Process → Thread → Scheduler → CPU
Masalah Baru: Bagaimana jika beberapa Thread mengakses dan memanipulasi data memori yang sama di detik yang persis sama?
Concurrency Data Race
02 • Konsep Dasar

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.

Thread 1 → [ Minta LOCK ] → Eksekusi Critical Section → [ UNLOCK ] → Thread 2 Baru Boleh Masuk
03 • Kasus Nyata

Race Condition: Saldo Rekening

Kondisi Awal: Saldo = Rp1.000.000
Thread 1 (ATM):
Baca Rp1.000.000 → Rencana tarik Rp600.000 → Hitung sisa Rp400.000.
Thread 2 (Mobile Banking):
Baca Rp1.000.000 → Rencana tarik Rp500.000 → Hitung sisa Rp500.000.
Bahaya Race Condition: Jika keduanya menimpa nilai saldo tanpa antrean Lock, saldo akhir menjadi keliru (uang keluar Rp1.100.000 tapi sisa saldo tercatat Rp500.000).

*Bahasa Sederhana: Race Condition adalah kondisi saat beberapa Thread berebut memanipulasi data bersama tanpa izin antre yang jelas.

04 • Kebuntuan Sistem

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 A: Memegang Resource 1 ──→ Menunggu Resource 2
• Process B: Memegang Resource 2 ──→ Menunggu Resource 1
Hasil: Process A menunggu B, Process B menunggu A. Keduanya membeku selamanya (*Deadlock*).
Deadlock Traffic Gridlock Analogy
05 • Teori Coffman

4 Syarat Terjadinya Deadlock

1. Mutual Exclusion

Resource hanya boleh digunakan oleh satu proses pada satu saat.

2. Hold and Wait

Proses memegang setidaknya 1 resource sambil meminta resource lain.

3. No Preemption

Resource tidak bisa direbut paksa; hanya dilepas sukarela oleh pemegang.

4. Circular Wait

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.

06 • Komparasi

Race Condition vs Deadlock

01

Race Condition

Beberapa thread mengakses dan mengubah data bersama tanpa pengaturan waktu yang tepat.

Fokus Masalah: Inkonsistensi dan Kerusakan Data.
02

Deadlock

Beberapa proses saling mengunci karena memegang dan menunggu resource yang sama secara sirkular.

Fokus Masalah: Proses Macet / Terhenti Permanen.
07 • Kasus Kampus

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.

Sistem Database: Kuota = 1
• Thread A membaca Kuota = 1
• Thread B membaca Kuota = 1
Bahan Refleksi: Jika database tidak menerapkan *Transaction Locking* (ACID), kedua mahasiswa akan dinyatakan berhasil masuk dan kuota menjadi minus (-1). Ini adalah contoh nyata ancaman Race Condition di sistem kampus.
08 • Konteks Industri & AI

Synchronization pada Server & AI

Server inferensi AI menjalankan banyak proses secara bersamaan yang saling berebut memori VRAM GPU dan bus I/O storage.

AI App → Threads → CUDA Streams → GPU VRAM
Resource Contention: Tanpa sinkronisasi alokasi batch tensor antar thread, sistem server AI akan mengalami *CUDA Out-of-Memory (OOM)* atau deadlock antrean GPU.
GPU Hardware AI Server
09 • Sintesis Perkuliahan

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.
10 • Rangkuman & Penutup

Kesimpulan Pertemuan 5

Race Condition

Berebut mengubah data bersama tanpa pengaturan gembok (Lock).

Deadlock

Saling menunggu resource secara melingkar sehingga proses macet permanen.

“Sistem Operasi tidak hanya bertugas menentukan siapa yang berhak menggunakan CPU, tetapi juga menjamin bagaimana seluruh resource komputer digunakan secara aman, teratur, dan bebas dari kebuntuan.”