• Tidak ada hasil yang ditemukan

Logical Clock and Synchronization

N/A
N/A
Protected

Academic year: 2021

Membagikan "Logical Clock and Synchronization"

Copied!
11
0
0

Teks penuh

(1)

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

(2)

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.

(3)

1.2

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).

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.

(4)

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 masing-masing clock komputer. Pada sistem asinkron, Ttrans = min + x, di mana x ≥ 0. Nilai x tidak

diketahui, tetapi dapat diukur.

(5)

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.

(6)

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 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.

(7)

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.

(8)

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 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

(9)

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 Lj := max(Lj ,t) dan lalu

(10)

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) <(Tj, j) jika hanya jika salah Ti <Tj atau Ti = Tj dan i <j terpenuhi. Urutan ini tidak memiliki arti fisik umum (karena pengidentifikasi proses yang tidak beraturan), tetapi kadang-kadang berguna. Lamport menggunakannya, misalnya, untuk mengurutkan proses masuknya ke bagian kritis.

3.3

Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi kekurangan pada Lamport clocks : fakta bahwa dari L(e) < L(e’) kita tidak dapat menyimpulkan bahwa e e’ . Vektor clock untuk sebuah sistem dari N proses adalah sebuah array dari N integer. Setiap proses berada pada vektor clock Vi masing-masing. Aturan adalah sebagai berikut

VC1 : Inisialisasi Vi [j] = 0 for i,j = 1,2,… , N

VC2 : sesaat sebelum pi men-timestamp sebuah event, diset Vi[i] := Vi[i] + 1

VC3 : pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 : Ketika pi menarima sebuah timestamp t pada sebuah sebuah message, pi di set Vi[j] :=

(11)

DAFTAR PUSTAKA

Herusetyo, Arif , Time and Global State , UGM Publisher, Yogyakarta,

2006.

L. Lamport , Time, Clocks And The Ordering Of Events In A Distributed

System, Computer Science Laboratory SRI International , Massachusett,

1990.

Coulouris , George , Distributed System: Concept and Design, Addison

Press, Wesley 2001.

Referensi

Dokumen terkait

Bagian atau lapisan paling luar matahari yang dapat dilihat pada waktu terjadi gerhana matahari total disebut korona?. Gas yang terdapat pada bagian korona sangat tipis dengan

Sumber sekunder adalah kesaksian seseorang yang bukan merupakan saksi mata yakni seorang yang tidak hadir pada waktu peristiwa terjadi yang digunakan dalam penelitian

Penelitian ini bertujuan untuk mengetahui konsentrasi residu enrofloksasin (EFX) dan metabolitnya siprofloksasin (CFX) yang terdistribusi dalam daging dada, paha dan hati serta

Indikator yang menunjukan artikel berita objektif seperti ada pencantuman waktu terjadi peristiwa, pencantuman sumber berita yang jelas, adanya fakta sosiologis dan psikologis,

suatu Peristiwa di luar kendali kami terjadi, kami akan menghubungi Anda sesegera mungkin untuk memberi tahu Anda dan jika kami gagal memperbaiki situasi dalam waktu yang wajar,

Simple present tense adalah bentuk waktu yang digunakan untuk menjelaskan peristiwa yang terjadi di waktu sekarang dalam bentuk sederhana atau suatu

Kemudian, karena untuk mengetahui sejauhmana dinamika yang terjadi pada tarekat Sya ā riyyah di Sumatra Barat tersebut diperlukan sumber-sumber lain yang lahir sebelumnya dan

Data ketersediaan air diperlukan untuk mengetahui kemampuan dan potensi dari sumber air dalam menyediakan sejumlah air dalam jangka waktu tertentu, sesuai dengan