Anda di halaman 1dari 5

BAB 7

TIME & COORDINATION

7.1. Logical Clock & Syncronitation


Waktu adalah hal yang penting dalam sistem terdistribusi karena beberapa hal.
Pertama, waktu adalah satuan akurasi. Untuk mengetahui kapan suatu peristiwa terjadi,
dibutuhkan sinkronisasi clock pada sistem dan di luar sistem. Sebagai contoh, transaksi e-
commerce terjadi di komputer pengguna dan komputer bank. Kejadian tersebut haruslah
dicatat waktunya secara akurat untuk keperluan audit. Kedua, algoritma mengenai
sinkronisasi clock memiliki beberapa masalah, antara lain mempertahankan konsistensi data
yang didistribusikan, otentikasi request yang dikirim ke server, dan menghapus proses yang
terduplikasi.
 Clock (Jam)
Setiap komputer pasti memiliki clock fisik. Clock adalah alat elektronik yang
menghitung osilasi yang terjadi pada kristal pada frekuensi tertentu, dan
menyimpannya dalam counter register. Sistem operasi membaca clock fisik tersebut
dan menerjemahkannya ke software clock. Software clock tidak selalu akurat sehingga
pewaktuan hardware dan software memiliki perbedaan walaupun sangat kecil. Namun,
software clock tetap menjadi acuan pencatatan waktu setiap kejadian proses. Kejadian
yang terjadi setelah suatu kejadian akan tercatat di waktu yang berbeda apabila
resolusi clock (periode update software clock) lebih kecil daripada interval waktu antar
kejadian.
 Clock Skew And Clock Drift
Clock milik tiap-tiap komputer tidak selalu sama. Perbedaan antara pembacaan dua
clock komputer berbeda disebut skew. Sedangkan perbedaan clock rate disebut clock
drift. Pada clock fisik, osilasi, frekuensi, dan temperatur mempengaruhi perbedaan
clock tiap komputer. Perbedaannya mungkin sangat kecil, tetapi akumulasi perbedaan
tersebut dapat mencapai tahap yang bisa diamati dengan mata telanjang walaupun
sudah disamakan nilainya. Clock drift rate adalah perubahan perbedaan pembacaan
antara clock dan perfect reference clock (clock yang dijadikan acuan).
 Waktu Universal Terkoordinasi (Coordinated Universal Time)
Clock komputer dapat disinkronkan dengan clock luar yang akurasinya tinggi. Clock
yang akurasinya paling tinggi menggunakan osilator atom. Keluaran clock ini
digunakan sebagai standar waktu international. Coordinated Universal Time (UTC)
adalah standar internasional untuk penjagaan waktu (timekeeping). Sinyal UTC
disiarkan dari stasiun radio dan satelit ke seluruh dunia. Komputer dengan penerima
sinyal di seluruh dunia dapat mensinkronkan clocknya dengan sinyal ini.
 Sinkronasi Clock Fisik
Untuk mengetahui kapan sebuah peristiwa terjadi secara akurat pada proses system
terdistribusi, diperlukan sinkronisasi dengan sumber waktu dari luar, yang disebut
sinkronisasi eksternal (external synchronization). Dan jika satu clock tersinkronisasi
dengan clock yang lain dengan derajat akurasi yang diketahui, maka kita bisa
mengukur interval terjadinya dua peristiwa pada komputer yang berbeda, walaupun
tidak tersinkronisasi ke sumber waktu dari luar. Hal ini disebut sinkronisasi internal
(internal synchronization).
Beberapa gagasan pengkoreksian (correctness) untuk clock sudah pernah diajukan.
Hardware clock H selalu dikoreksi apabila drift-nya sudah mencapai angka tertentu
(ρ > 0). Jadi, galat (error) perhitungan interval antara waktu sebenarnya t dan t’ (t >
t’) adalah:
(1 - ρ)(t' - t) ≤ H(t') - H(t) ≤ (1 + ρ)(t' -t)
Clock yang tidak menerima pengkoreksian apapun dinyatakan faulty. Clock
dinyatakan crash failure ketika berhenti berdetik sama sekali. Kegagalan clock lainnya
adalah arbitrary failure. Contoh arbitrary failure adalah ‘Y2K bug’ yang terjadi pada
pergantian tahun 1999 ke 2000. Setelah 31 Desember 1999 dilanjutkan ke 1 Januari
1900. Catatan: clock tidak harus akurat untuk menjadi benar.

7.2. Koordinasi Terdistribusi


Dalam sistem terdistribusi berbasis koordinasi, fokusnya adalah pada bagaimana
koordinasi antara proses berlangsung. Jika ada lebih dari satu proses yang siap running,
maka Sistem Operasi akan menentukan salah satu proses untuk running lebih dulu. Aktivitas
Koordinasi Terdistribusi :
1. Pengurutan Event
 Memori & clock tdk tunggal
 Tidak mungkin menyatakan urutan dua kejadian
 Hanya dpt ditentukan partial ordering (pengurutan sebagian) relasi Happened-Before
(Hukum sebab-akibat : suatu pesan dapat diterima setelah pesan tersebut dikirim. Jika
A dan B adalah event pada proses yg sama, dan A dieksekusi sebelum B, maka A →
B)
2. Mutual Exclusion
a. Pendekatan Tersentralisasi (Centralized)
• Salah satu proses dipilih sebagai koordinator utk mengatur entri ke CS
• Menggunakan pesan request-reply-release untuk masuk ke CS
• (+): menjamin mutex, dpt menjamin fairness (no starvation)
• (--): jika koordinator gagal → perlu dipilih kembali

b. Pendekatan Terdistribusi Penuh (Fully Distributed)


• Untuk masuk ke CS, proses mengirimkan pesan request (Pi, TS)
ke semua proses
• Pengiriman reply oleh Pi ke Pk :
– Jika Pi sedang berada di CS, reply ke Pk ditunda
– Jika Pi tidak akan masuk ke CS, reply langsung dikirim ke Pk
– Jika Pi akan masuk ke CS dan TS(Pi) < TS(Pk) maka reply ke Pk ditunda
• (+): menjamin mutex, bebas deadlock dan starvation
• (--): jumlah pesan minimum 2(n-1), proses harus tahu identitas semua proses lain, tidak
berfungsi jika ada proses yg gagal, mengganggu proses lain yg tidak akan masuk ke CS

c. Pendekatan Token Passing


• Menggunakan satu token yg beredar diantara proses
• Hanya proses yg memiliki token saat itu yg dapat masuk ke CS
• Syarat: adanya lingkaran lojik yg menghubungkan semua proses
• (+): menjamin mutex, bebas starvation
• (--): jika token gagal → perlu digenerate kembali, jika proses gagal → perlu dibentuk ring
lojik baru.

3. Atomisitas
Tiap situs memiliki koordinator transaksi yg berfungsi menjamin atomisitas eksekusi
transaksi, dengan cara:
 memulai eksekusi transaksi
 memecah menjadi beberapa sub-transaksi dan mendistribusikannya pada situs-
situs yg cocok utk dieksekusi
 mengkoordinasikan terminasi transaksi (commit, atau abort)
 Tiap situs menyimpan log untuk tujuan recovery
4. Concurrency Control
Manajer transaksi berfungsi mengelola eksekusi transaksi yg mengakses data
 Menyimpan log untuk tujuan recovery
 Berpartisipasi dalam skema kontrol-konkurensi untuk mengkoordinasi eksekusi
transaksi

5. Penanganan Deadlock
♦ Deadlock Prevention
· Pencegahan: Faktor-faktor penyebab deadlock yang harus dicegah untuk terjadi
· 4 faktor yang harus dipenuhi untuk terjadi deadlock:
· Mutual Exclusion: pemakaian resources.
· Hold and Wait: cara menggunakan resources.
· No preemption resource: otoritas/hak.
· Circular wait: kondisi saling menunggu.
· Jika salah satu bisa dicegah maka deadlock pasti tidak terjadi
♦ Deadlock Detection
· Mencegah dan menghidari dari deadlock sulit dilakukan:
· Kurang efisien dan utilitas sistim
· Sulit diterapkan: tidak praktis, boros resources
· Mengizinkan sistim untuk masuk ke “state deadlock”
· Gunakan algoritma deteksi (jika terjadi deadlock)
· Skema recovery untuk mengembalikan ke “safe state”

6. Algoritma Pemilihan
· Algoritma Bully
Adalah (Gracia-Moliana 1982) algoritma yang mengijinkan proses mengalami crash
pada saat terjadi pemilihan (election), meskipun pengiriman pesan antar proses
adalah reliable.
Ada tiga tipe pada algoritma ini, yaitu:
1. election message : digunakan untuk pemberitahuan akan adanya pemilihan
2. answer message : merupakan jawaban dari election message
3. coordinator message : digunakan untuk memberitahukan identitas dari proses
pemilihan
Sebuah proses dimulai dengan pemilihan ketika telah diperintahkan, melewati
timeout, saat coordinator gagal. Ketika sebuah proses menerima pesan coordinator proses
tersebut akan menset variabelnya menjadi elected. Jika sebuah proses menerima proses
election proses tersebut akan mengirim jawaban dan akan memulai proses terpilih
tersebut, kecuali telah mulai sebelumnya.

· Algoritma Ring
Tujuan dari algoritma ini adalah untuk memilih sebuah proses tunggal yang
disebut koordinator, yang merupakan proses dengan identifier terbesar. Awalnya, setiap
proses ditandai sebagai non-peserta dalam pemilihan. Setiap proses bisa mulai
pemilihan. Hal hasil dengan menandai dirinya sebagai salah satu peserta,
menempatkan para identifier dalam pemilihan pesan dan mengirimkannya kepada
tetangga searah jarum jam. Ketika sebuah proses menerima pesan pemilihan, itu
membandingkan pengenal dalam pesan dengan sendiri. Jika identifier yang tiba lebih
besar, maka meneruskan pesan 10 tetangganya. Jika identifier yang tiba lebih kecil dan
penerima bukan merupakan peserta maka pengganti pengenal sendiri dalam pesan dan
ke depan itu, tetapi tidak meneruskan pesan jika sudah menjadi peserta. Pada pemilihan
penerusan pesan dalam beberapa kasus, proses menandai dirinya sebagai peserta.

7.3. Model sinkronisasi & Asinkronisasi


Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat
yang bersamaan. Secara garis besar mungkin sinkronisasi adalah menyamakan
sesuatu secara bersamaan. Sinkronisasi adalah suatu proses pengendalian akses dari
sumber daya terbagi pakai (shared resource) oleh banyak thread sedemikian sehingga
hanya satu thread yang dapat mengakses sumber daya tertentu pada satu waktu.
Sistem Asynchronous - seperti object-oriented software - biasanya dibuat dari
modular 'benda keras', masing-masing dengan komunikasi yang terdefinisi dengan baik
antarmuka. Ini modul dapat beroperasi pada kecepatan variabel, apakah karena
pengolahan data-dependent, skala tegangan dinamis , atau variasi proses . Modul
kemudian dapat digabungkan bersama-sama untuk membentuk suatu sistem kerja
yang benar, tanpa mengacu pada global sinyal clock . Biasanya, daya rendah diperoleh
karena komponen diaktifkan hanya pada permintaan. Selain itu, beberapa gaya
asynchronous telah terbukti untuk mengakomodasi antarmuka clock, dan dengan
demikian mendukung desain campuran-waktu. Oleh karena itu, sistem asynchronous
cocok dengan baik kebutuhan yang benar-by-konstruksi metodologi dalam perakitan
sistem heterogen dan scalable skala besar.

Anda mungkin juga menyukai