Logical Clock and Synchronization
November 21, 2017 | Author: Aan_Isa_Putra_4244 | Category: N/A
Short Description
Download Logical Clock and Synchronization...
Description
LOGICAL CLOCK AND SYNCHRONIZATION
KELOMPOK 5 : TIME AND COORDINATION
NPM
NAMA
10107005
ABDUL AZIZ
10107146
ALIF ANANDITO
12107054
ANDRI IRAWAN ISA PUTRA
10107203
ANGGI PURNAMA
10107765
HABIBI SEGAP AL HAMID
Universitas gunadarma
Logical clock and synchronization 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. Jika dianalogikan, seperti teori relativitas milik Einstein. Suatu kejadian yang diamati oleh pengamat yang satu bisa saja berbeda dengan pengamat lainnya dalam hal interval (jeda) waktu. Dalam sistem terdistribusi, masalahnya adalah mencatat waktu terjadinya suatu kejadian pada node yang berbeda-beda secara akurat sehingga dapat diketahui mana yang hanya terjadi dan mana yang terjadi secara serempak.
1.
Clock, Kejadian, dan Process State
1.1
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
1.2
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).
1.3
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.
2.
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.
2.1
Sinkronisasi pada Sistem Sinkron Pada sistem sinkron, sebuah proses mengirim waktu t dari clock lokalnya ke proses
lainnya dalam pesan m. Proses seharusnya menerima dan mencocokkannya dengan clock lokalnya sendiri dengan t + Ttrans, di mana Ttrans adalah waktu transmisi. Sayangnya Ttrans bervariasi dan sulit diketahui. Namun, waktu minimal transmisi min tetap dapat diperkirakan apabila jaringan lancar dan tidak ada proses lain yang berjalan bersamaan. Sistem terdistribusi yang banyak digunakan adalah asinkron. Delay pesan tidak terbatas atau tergantung masingmasing clock komputer. Pada sistem asinkron, Ttrans = min + x, di mana x ≥ 0. Nilai x tidak diketahui, tetapi dapat diukur.
2.2
Metode Cristian untuk Sinkronisasi Clock
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.
2.3
Algoritma Berkeley Gusella dan Zatti mengembangkan algoritma untuk sinkronisasi internal. Mereka
mengembangkan algoritma ini pada komputer berbasis Barkeley UNIX. Pada lagoritma ini, sebuah komputer ditunjuk sebagai coordinator yang disebut master. Komputer ini kemudian memilih komputer-komputer untuk dimintai sinkronisasi, yang disebut slave, dengan master secara periodik. Slave-slave membalas dengan nilai clock miliknya. Master menghitung clocknya sendiri dengan memperhitungkan waktu perjalanan data dan rata-rata dari nilai clock yang didapat. Algoritma ini tidak akan membaca clock yang faulty. Clock yang hanya berbeda sedikit, dengan jumlah tertentu, dengan clock lainnya yang dipilih untuk dirata-rata. Hal ini disebut fault tolerant average. Sehingga, ketika ada satu clock yang gagal atau rusak, tidak mempengaruhi clock Master.
2.4
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
klien
untuk
mensinkronisasi
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 clocknya. Galat terjadi setiap melewati satu level. Server-server NTP bersinkronasi satu sama lain dengan tiga cara, antara lain multicast, procedure-call, dan symmetric.
1. Multicast ditujukan untuk LAN berkecepatan tinggi. Satu atau lebih server secara periodik menyebar waktu clock ke server di komputer lain yang tersambung di LAN. Mode ini akurasinya rendah tetapi cocok untuk berbagai kepentingan. 2. Procedure-call hampir sama dengan algoritma Cristian. Server menerima request dari komputer lain dan membalasnya dengan pembacaan clock saat pengiriman. Mode ini cocok ketika keakurasian tinggi dibutuhkan atau ketika multicast tidak dappat dilakukan. 3. Mode symmetric ditujukan untuk server yang mensuplai waktu dalam LAN atau pada level tertinggi dari sebuah synchronization subnet.
Pada mode procedure-call dan symmetric mode, memroses pertukaran bagian-bagian pesan. Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi, yaitu waktu local ketika pesan tersebut dikirimkan. Seperti pada Gambar 4, pesan m menyimpan catatan waktu setiap akan ditransmisikan, yaitu Ti-3 dan Ti-1, dan ketika diterima, yaitu Ti-2 dan Ti. Kemudian NTP menghitung jeda waktu antara dua clock komputer.
3.
Logical Time and Logical Clock
Dari sudut pandang dari setiap single proses, event-event diurutkan berdasakan 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 bersamaam 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 Lamport menyebutkan partial ordering diperoleh dengan men-generalalisasikan kedua hubungan ini, relasi happened-before. Istilah ini biasa juga disebut causal ordering atau potential causal ordering. Kita dapat mendefinisikan relasi happened-before, dinotasikan dengan �, seperti berikut : HB1 : Jika ᴲ process pi : e
e’, maka e
e’.
i
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 Relasi menjadi a
e’ dan e’
e” maka e
e”
diilustrasikan pada gambar 5. Pada ketiga proses tersebut, dapat dikombinasikan f. Antar a dan e tidak ada relasi, maka ditulis a║ e
3.1
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 = Li (b) pada saat menerima pesan (m,t), sebuah proses pj menghitung L j := max(Lj ,t) dan lalu mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m).
3.2
Totally ordered logical clocks Beberapa pasang event yang berbeda, yang dihasilkan oleh proses yang berbeda, telah
diidentifikasi dengan Lamport timestamp secara numeris. Namun, kita dapat menciptakan sebuah urutan total peristiwa yaitu, satu untuk yang semua pasangan dari event yang berbeda terjadi. Jika e adalah sebuah peristiwa yang terjadi di pi dengan local timestamp Ti dan e' adalah sebuah event yang terjadi di pj dengan local timestamp Tj, kita mendefinisikan global logic timestamp untuk event ini menjadi (Ti, i) dan (Tj, j). Dan kita define (Ti, i)
View more...
Comments