Anda di halaman 1dari 23

LOGICAL CLOCK AND SYNCRONIZATION

Ikhtisar
Waktu Layanan
- Persyaratan dan masalah
- Sumber waktu

Jam algoritma sinkronisasi


- Clock skew & drift
- Cristian algoritma
- Algoritma Berkeley
- Network Time Protocol

Logical Clock
- Lamport's cap
Time Service
• Mengapa diperlukan?
- Untuk mengukur penundaan antara komponen
terdistribusi
- Untuk menyinkronkan aliran data, misalnya suara dan
video
- Sebagai penanda keakuratan waktu untuk
mengidentifikasi / mengotentikasi :
- transaksi bisnis
- serializability dalam database terdistribusi
- keamanan protokol
Masalah yang terjadi pada jam internal
Frekuensi osilasi
- Bervariasi dengan suhu
- Tingkat yang berbeda pada komputer yang berbeda

Ketepatan
- Biasanya keakuratan jam internal komputer melenceng 1
detik dalam 11,6 hari
Clock Skew And Clock Drift
jam milik tiap-tiap komputer tidak selalu sama. Perbedaan
antara pembacaan dua clock komputer berbeda disebut jam
skew.
Sedangkan perbedaan jam rata - rata disebut clock drift
Pada jam fisik, osilasi, frekuensi, dan temperatur
mempengaruhi perbedaan jam 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).
Sumber waktu
 Universal Coordinated Time (UTC)
Dasar dari perhitungan waktu atomik tetapi detik kabisat dimasukkan
untuk menjaga kesamaan waktu pada fase pergerakan orbit Bumi
 Sering disebut sebagai Waktu Zulu adalah perwujudan dari waktu
atom dari waktu universal(UT) atau waktu greenwich (GMT). Waktu ini
adalah dasar dari waktu sipil / zona waktu di seluruh dunia adalah
ditampilkan sebagai tambahan positif atau negatif dari UT.
 Beda UTC dari waktu atom internasional adalah sejumlah beberapa
detik genap (bukan pecahan), sesuai dengan waktu yang dihitung oleh
jam atom. Beda UTC dari UT hanya sepersekian detik.
 Sinyal UTC memancar setiap detik dari siaran radio dan
stasiun satelit
 Penerima untuk UTC dan GPS
- Tersedia secara komersial
- Digunakan untuk menyinkronkan jam lokal
Metoda Sinkronisasi
- Synchronous system
lebih sederhana, bersandar pada batas waktu yang dikenal
pada penggunaan sistem
- Sistem tak serempak
intranets
- Cristian’S algoritma
- Berkeley Algoritma
Internet
- Protokol Waktu Jaringan
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.
Algoritma Cristian

Cristian menyarankan untuk menggunakan server yang


menerima sinyal UTC untuk mensiknronisasikan
komputer secara eksternal. Sebuah proses p meminta
waktu dalam pesan m kepada server S, kemudian
menerima nilai waktu t dalam pesan mt. Proses p
merekam total waktu yang dibutuhkan Tround untuk
mengirim permintaan dan menerima balasan. Dengan
begini, waktu yang akurat dapat diperhitungkan
Permasalahannya adalah server yang menyimpan
waktu hanya satu, yang apabila gagal maka untuk
sementara waktu sinkronisasi tidak dapat dilakukan

Cristian menyarankan untuk menggunakan beberapa


server yang sudah tersinkronasi. Jadi, klien meminta
ke semua server dan hanya menggunakan balasan
yang pertama kali diterima.
Algoritma Berkeley

1. Server melakukan pemeriksaan validasi ke setiap klien


2. Setiap klien merespon ke server menggunakan waktu lokal
sehingga server tidak terganggu dalam hal waktu pengiriman data
3. Server memperkirakan waktu setempat / waktu lokal klien dan
memberikan perkiraan jarak interfal data terkirim
4. Server mengirimkan perkiraan waktu kepada seluruh klien yang
berwaktu lokal / tidak sama agar disamakan dengan server yang
memiliki perhitungan waktu yang lebih akurat
Protokol Waktu Jaringan (Network Time Protocol)

Metode Cristian dan algoritma Berkeley pada


dasarnya digunakan untuk komunikasi intranet.
Protokol Waktu Jaringan (NTP) mendefinisikan
arsitektur untuk pelayanan waktu dan protocol untuk
distribusi informasi waktu lewat internet
Tujuan dan fitur NTP, antara lain:
Untuk menyediakan layanan yang memungkinkan klien
di Internet yang akan disinkronkan akurat UTC:
Untuk menyediakan layanan yang bisa bertahan di
jaringan mengalami loss karena jarak.
Untuk mengaktifkan sinkronisasi klien yang cukup sering
untuk mengimbangi tingkat drift ditemukan di
kebanyakan komputer: NTP
Untuk menyediakan perlindungan terhadap interferensi
dari layanan waktu, baik galat maupun ketidaksengajaan.
Layanan NTP tersebar pada banyak server di internet. Server utama
tersambung langsung ke sumber waktu, seperti penerima sinyal radio UTC. Server
sekunder disinkronisasi dengan server primer. Server-servernya tersambung dalam
hierarkikal logika yang disebut synchronization subnet seperti Gambar 3. Semakin
keatas levelnya akan semakin akurat clock-nya. Galat terjadi setiap melewati satu level.
Server-server NTP bersinkronasi satu sama lain dengan tiga cara, antara lain multicast,
procedure-call, dan symmetric.
Logical Time and Logical Clock
Dari sudut pandang dari setiap single proses, event-
event diurutkan berdasarkan waktu seperti pada local
clock. Tetapi, seperti yang dikatakan oleh Lamport
[1978], kita tidak dapat melakukan singkronisasi clock
secara sempurna pada sebuah sistem terdistribusi.
Kita tidak dapat secara umum menggunakan physical
time untuk menentukan urutan dari suatu event yang
terjadi. Secara umum, kita dapat menggunakan sebuah
skema yang mirip dengan physical, tapi pada sistem
terdistribusi digunakan untuk mengurutkan event-event
yang terjadi pada proses yang berbeda
Pengurutan ini berdasarkan pada dua hal yang simple
dan intuitif :
Jika dua event terjadi bersamaan pada satu process
yang sama pi (i = 1,2, … ,N), kemudian event-event
tersebut terjadi sesuai dengan urutan pi yang kita
sebutkan diatas.
Kapan saja sebuah message dikirim diantara proses-
proses, event dari pengiriman message terjadi
sebelum event dari penerimaan message
Causal ordering (terjadi sebelum melakukan
relasi)
1. Jika p proses mengeksekusi x sebelum y, maka x →
y.
2. Untuk setiap m pesan, kirim (m) → RCV (m).
3. Jika x → y dan y → z, maka x → z.

Dua peristiwa a dan b yang dikatakan bersamaan


jika tidak a → b atau b → a.
Contoh kasus pembagian waktu physical time

HB1 : Jika ᴲ process pi : e ie’, maka e e’.


HB2 : untuk setiap message m, send(m) receive(m)
Dimana send(m) adalah event dari pengiriman message dan receive(m)
adalah event dari penerimaan message

HB3 : Jika e, e’ dan e” adalah event dimana e e’ dan e’ e” maka e e”

Relasi diilustrasikan pada gambar 5. Pada ketiga proses tersebut, dapat


dikombinasikan Menjadi a f.
Antar a dan e tidak ada relasi, maka ditulis a║ e
Logical Clocks

Lamport menemukan sebuah mekanisme yang


simple untuk mengurutkan happened-before secara
numeris. Mekanisme ini disebut logical clock.
Lamport logical clock adalah software counter yang
bertambah secara monoton dimana nilainya tidak
perlu menanggung hubungan tertentu ke suatu
physical clock. Setiap proses pi tetap berada pada
logical clock masing-masing
Timestamp dari suatu event e pada pi disini dinotasikan
dengan Li(e) dan L(e). Untuk notasi dalam suatu prose
adalah sebagai berikut :
LC 1 : Li bertambah sebelum setiap event muncul pada
proses pi Li := Li + 1
LC 2 :
(a) Ketika sebuah proses pi mengirim sebuah message m,
nilai L juga ditempelkan pada nilai m , t = L i
(b) pada saat menerima pesan (m,t), sebuah proses pj
menghitung Lj := max(Lj ,t) dan lalu mengaplikasikan LC1
sebelum melakukan timestamp untuk event receive(m).
Contoh kasus logical clocks

Anda mungkin juga menyukai