SINKRONISASI 1 Sinkronisasi Clock • Sistem tersebar sebenarnya adalah proses-proses yang berkolaborasi atau bekerjasama. Sikronisasi sendiri diperlukan baik di sistem tunggal atau sistem tersebar dengan alasan yang sama. • Sikronisasi merupakan bagian penting untuk kerjasama dalam : • Pemakaian sumberdaya berbagi (Sharing resources) • Pengurutan kejadian • Kesepakatan clock tersebar GAMBAR INI MENGGAMBARKAN BAHWA BILA WAKTU PADA OUTPUT.O ADALAH 2144, KEMUDIAN SOURCE CODENYA DIMODIFIKASI DI KOMPUTER LAIN YANG CLOCKNYA LEBIH LAMBAT, SEHINGGA WAKTU SOURCE CODE ADALAH 2143. KARENA SOURCE CODE MEMILIKI WAKTU YANG LEBIH LAMA DARIPADA FILE OBJEKNYA, MAKA MAKE TIDAK AKAN MELAKUKAN REKOMPILASI. CLOCK FISIK • Pada beberapa sistem, waktu clock aktual menjadi penting, contohnya real-time sistem. Untuk sistem ini diperlukan clock fisik eksternal. Karena alasan efisiensi dan redundansi, clock fisik jamak biasanya digunakan, yang mengakibatkan ada dua masalah muncul: • Bagaimana mensinkronkan eksternal clock tersebut dengan clock sebenarnya • Bagaimana mensinkronkan antar clock yang ada. • Saat dimana matahari mencapai titik tertinggi di langit disebut transit of the sun, dan terjadi di siang hari. Interval antar dua transit berturutan disebut solar day. Sedangkan solar second didefinisikan tepat 1/86400 dari solar day. International Atomic Time (disingkat IAT) adalah rata-rata jumlah tick dari jam atom cesium 133 sejak tanggal 1 januari 1958 dibagi 9.192.631.770. • Disebabkan waktu siang bertambah lama, TAI menjadi lebih lambat dibanding solar second. Untuk mengkoreksinya, digunakan leap second dengan cara meloncati waktu TAI sehingga sama dengan solar second (lihat gambar). Waktu yang telah dikoreksi ini disebut Universal Coordinated Time (UTC). NIST memiliki beberapa stasiun radio gelombang pendek yang memancarkan pulsa pada setiap awal detik UTC,yang dapat digunakan untuk sinkronisasi. Stasiun ini dikenal dengan nama WWV. ALGORITMA SINKRONISASI CLOCK • Algoritma Cristian • Bila sebuah mesin memiliki penerima WWV sehingga dapat berfungsi sebagai time server. Secara periodik, setiap mesin mengirim pesan ke time server menanyakan waktu terkini, Cutc. Ada 2 masalah dalam algo ini, masalah major dan minor. Masalah majornya adalah waktu penanya tidak boleh dimundurkan dan untuk mengatasinya adalah dengan memperlambat clock tick. • Masalah minor adalah waktu tunda dari balasan server,yang besarnya variatif tergantung beban jaringan. Diatasi dengan menghitung interval waktu pengiriman dan penerimaan pesan To sd T1 dan waktu penangan interupsi I, sehingga bisa dihitung lama propagasi pesan dalam satu arah(T1-T0-I)/2. Nilai ini dijadikan koreksi terhadap nilai waktu yang diperoleh ALGORITMA BERKELEY • Algoritma Berkeley digunakan untuk mensinkronkan clock relatif terhadap clocklainnya, dan bukan terhadap master clock tertentu. Daemon di server time melakukan polling ke semua client, yang akan dijawab oleh setiap clock. Kemudian time daemonakan mengirim penyesuaiannya. • Forward dapat dilakukan dengan meloncat • Backward perlu perlambatan yang bertahap A. DAEMON TIME MENANYAKAN NILAI CLOCK KE SEMUA MESIN B. MESIN-MESIN MENJAWAB C. DAEMON TIME MEMBERITAHU SEMUA MESIN, BERAPA NILAI KOREKSI YANG HARUS DIGUNAKAN. ALGORITMA RATA-RATA • metode ini mensinkronkan clock dengan cara desentralisasi. Cara kerjanya dengan membagi waktu ke dalam interval resinkronisasi yang lebarnya tetap. Interval ke I dimulai pada T0 + iR dan berjalan sampai T0+(I+1)R, dimana T0 adalah kesepakatan lalu dan R adalah parameter sistem. Pada setiap awal interval, setiap mesin mengumumkan waktu terkininya. Karena clock di mesin yang berbeda akan berjalan dengan laju yang berbeda pula, pengumuman ini tidak akan terjadi bersamaan. Sesudah mesin mengumumkan waktunya, timer lokal diaktifkan untuk mengumpulkan semua pengumuman yang diterima dalam interval S. Setelah semua pengumuman diterima, waktu yang baru dapat dihitung dengan algoritma yang ada. Algoritma paling sederhana adalah merata-ratakan nilai yang diperoleh dari semua mesin. SUMBER CLOCK EKSTERNAL JAMAK • Algoritma ini menjadi dasar untuk protokol NTP (Network Time Protocol). Interval waktu dapat ditentukan dengan menggunakan algoritma Cristian dengan waktu tunda perambatan yang diketahui. • Digunakan dalam sistem yang disinkronkan dengan sangat akurat. • • • Waktu diperoleh dari beberapa sumber UTC Koreksi dari waktu rambat diperhitungkan Gunakan media overlap sebagai perkiraan terbaik • Standar waktu yang diterima bersumber pada satu set jam atom-jam atom. Bila perambatan sinyal radio tidak dipengaruhi oleh kondisi atmosfir, maka pemancaran sinyal waktu dan penerimaan sinyal tersebut dengan akurat dapat terjadi. Keakurasian terbaik yang dapat dicapai melalui satelit GEOS atau GPS berkisar 1.1 milidetik. Untuk aplikasi tertentu, didefinisikan kebenaran (correctness) sebagai dalam toleransi ∆ misal dalam 5 milidetik UTC. Definisi lain yang kadang-kadang digunakan adalah t` > t => C(t`) > C(t). AT-MOST-ONCE MESSAGE DELIVERY • Setiap pesan membawa pengenal koneksi dan time stamp. Untuk setiap koneksi, server menyimpan time stamp terbaru ke dalam tabel. Bila ada pesan masuk dengan timestamp yang lebih lama daripada time stamp yang disimpan, maka pesan tersebut akan ditolak dan dianggap sebagai duplikat. Server menyimpan variabel global yang memungkinkannya untuk menghapus timestamp lama.