Back to IF3130 Sistem Paralel dan Terdistribusi
Topic: Distributed Mutual Exclusion (Mutex)
Questions/Cues
Tujuan Mutual Exclusion
Centralized Algorithm (Cara Kerja & Kelemahan)
Token Ring Algorithm
Lamport Mutex (Logic & Overhead)
Ricart & Agrawala (Optimasi)
Perbandingan Algoritma
Starvation & Deadlock
Reference Points
Slides: IF3130-20-Mutex-2022.pdf (Halaman 1-22)
Fokus: Koordinasi Akses Resource
1. Konsep Dasar & Tantangan
Mutual Exclusion (Mutex) adalah mekanisme untuk memastikan bahwa pada satu waktu, hanya satu proses yang boleh mengakses Critical Section (resource bersama seperti file, printer, atau variabel global).
Pada Sistem Lokal: Menggunakan semaphore, monitor, atau instruksi hardware
Test and Set.Pada Sistem Terdistribusi: Jauh lebih sulit karena tidak ada shared memory atau global clock. Kita hanya bisa mengandalkan Message Passing.
Asumsi: Setiap resource punya ID unik. Proses meminta akses dengan mengirimkan ID tersebut.
2. Kategori Algoritma
Ada tiga pendekatan utama untuk menyelesaikan masalah ini:
Centralized: Bergantung pada satu koordinator pusat.
Token Based: Hak akses digilir menggunakan “koin” atau token elektronik.
Contention Based: Kesepakatan terdistribusi (distributed agreement) berdasarkan timestamp.
3. Centralized Algorithm
Pendekatan paling sederhana, meniru sistem single-processor.
Cara Kerja:
Satu proses dipilih jadi Koordinator (C).
Proses P minta akses kirim
Request(R)ke C.Jika resource bebas C kirim
Grant(R).Jika resource sibuk C tidak membalas (atau antrikan request). P menunggu.
Setelah selesai, P kirim
Release(R)ke C. C lalu memberi akses ke antrean berikutnya.Keuntungan: Adil (FIFO), mudah implementasi, pesan sedikit (3 pesan: Request, Grant, Release).
Kelemahan:
Single Point of Failure: Koordinator mati = sistem macet.
Bottleneck: Koordinator kebanjiran request pada sistem besar.
Ketidakpastian: P tidak bisa membedakan antara “Koordinator mati” atau “Resource sedang sibuk” (karena sama-sama tidak ada balasan).
4. Token Ring Algorithm
Mengorganisir proses dalam topologi cincin logis (logical ring).
Cara Kerja:
Sebuah Token (hak akses) berputar dari ke .
Saat proses menerima token:
Jika butuh resource Tahan token, masuk Critical Section. Setelah selesai, oper token.
Jika tidak butuh Langsung oper token ke tetangga.
Karakteristik:
Fairness: Dijamin tidak ada starvation (semua pasti kebagian jatah token).
Order: Urutan akses ditentukan arah putaran cincin, bukan siapa cepat dia dapat (FCFS).
Masalah: Jika token hilang (node pemegang token crash), token harus dibuat ulang (regenerasi), yang sulit dideteksi (apakah hilang atau sedang dipakai proses yang lambat?).
5. Lamport Mutual Exclusion (Timestamp Based)
Algoritma terdistribusi penuh tanpa koordinator, menggunakan Logical Clock.
Prinsip: Setiap request diberi timestamp unik. Prioritas diberikan pada timestamp terkecil (terlama).
Mekanisme:
P ingin akses Kirim
Request(timestamp)ke SEMUA node lain. Masukkan request ke antrean lokal sendiri.Penerima menaruh request di antrean lokal (diurutkan timestamp), lalu kirim balasan
ACK.Syarat Masuk Critical Section:
Request P ada di paling depan antrean lokalnya sendiri.
P sudah menerima pesan (ACK/lainnya) dari SEMUA node dengan timestamp > timestamp requestnya.
Setelah selesai P hapus request dari antrean, kirim
Releaseke semua orang.Overhead: Sangat tinggi. Butuh pesan per akses (Request, ACK, Release ke semua orang).
6. Ricart & Agrawala Algorithm (Optimasi Lamport)
Memperbaiki algoritma Lamport dengan menghilangkan pesan
Releaseeksplisit dan menundaACK.
Cara Kerja:
P kirim
Requestke semua node.Penerima Q memproses request P:
Jika Q tidak butuh resource Kirim
OKke P.Jika Q sedang pakai resource JANGAN BALAS, simpan request P dalam antrean (pending).
Jika Q juga ingin resource Bandingkan timestamp. Jika P lebih lama (kecil), kirim
OK. Jika Q lebih lama, tahan (pending).P masuk Critical Section setelah menerima
OKdari SEMUA node.Setelah selesai, P mengirim
OKtertunda ke semua request di antreannya.Overhead: Lebih efisien, pesan.
Kelemahan: Masih ada point of failure. Jika satu node diam (crash), pengirim akan menunggu selamanya (perlu timeout/algoritma deteksi kegagalan).
Mutual Exclusion Terdistribusi bertujuan mengatur akses resource tanpa memori bersama. Algoritma Centralized efisien namun rentan bottleneck/failure tunggal. Token Ring menjamin keadilan (fairness) dan mencegah starvation, namun lambat jika ring besar dan token hilang. Algoritma berbasis waktu seperti Lamport dan Ricart & Agrawala memungkinkan keputusan desentralisasi penuh menggunakan timestamp logis, namun memiliki overhead komunikasi tinggi () dan rentan terhadap kegagalan satu node saja (karena butuh persetujuan semua orang).
Additional Information (Deep Dive)
Perbandingan Pesan (Message Complexity)
Misalkan ada node dalam sistem.
Centralized: 3 pesan (Request, Grant, Release). Konstan, tidak peduli jumlah N.
Token Ring: Bervariasi. 1 hingga (token terus berputar meski idle). Waktu tunggu maksimal sebanding dengan .
Lamport: . Sangat boros bandwidth.
Ricart & Agrawala: . Lebih hemat karena menggabungkan ACK dan Release (ACK tertunda berfungsi sebagai izin giliran).
Race Condition pada Ricart & Agrawala
Apa yang terjadi jika P1 dan P2 mengirim request bersamaan dengan timestamp persis sama?
Algoritma ini menggunakan Total Ordering. Jika timestamp sama, ID proses digunakan sebagai tie-breaker. Misal , maka P1 menang.
Sumber & Referensi:
- Paper: G. Ricart & A. Agrawala, “An Optimal Algorithm for Mutual Exclusion in Computer Networks” (CACM 1981).
Spaced Repetition Questions (Review)
1. Mengapa algoritma "Centralized" memiliki masalah "Single Point of Failure" dan bagaimana dampaknya?
Karena seluruh keputusan akses bergantung pada satu proses koordinator. Jika koordinator crash, tidak ada proses lain yang bisa mendapatkan akses resource. Selain itu, proses klien sulit membedakan apakah koordinator mati atau hanya lambat merespon (resource sibuk), yang bisa menyebabkan sistem hang.
2. Apa perbedaan utama strategi "Balasan (Reply)" antara algoritma Lamport dengan Ricart & Agrawala?
Pada algoritma Lamport, setiap penerima pesan request SELALU membalas dengan ACK segera. Pada Ricart & Agrawala, penerima menunda balasan (Deferred Reply) jika ia sendiri sedang menggunakan resource atau memiliki prioritas lebih tinggi. Balasan baru dikirim setelah ia selesai menggunakan resource.
3. Dalam algoritma Token Ring, apa yang terjadi jika sebuah proses tidak membutuhkan resource saat menerima token?
Proses tersebut akan segera meneruskan token ke proses tetangganya (next node in ring). Ini memastikan token terus berputar mencari proses yang membutuhkan akses.