Anda di halaman 1dari 25

TIME AND COORDINATION

Dosen Pengampu:
Syefudin
Peraturan dan Nilai
 1. Absensi Kehadiran min 75 %
 2. Tugas Kelompok
 3. Tanya Jawab
 4. Quiz minimal 2x
 5. UTS
 Note: Catatan, softcopy, slide, fotocopyan, mencatat materi
selama perkuliahan.
Apa itu Time and Coordination ?
 Time And Coordination adalah mengkordinasikan waktu
dalam transfer data, agar tidak terjadi ketimpangan pada
proses transfer data.
 berguna untuk mengukur penundaan antara komponen
terdistribusi
 menyinkronkan aliran data misalnya: suara dan video
 sebagai penanda keakuratan waktu untuk mengidentifikasi
atau mengotentikasi transaksi bisnis dan serializability
dalam database terdistribusi dan keamanan protocol
Time
 Time adalah sistem komputasi interaktif, dimana sistem komputer
menyediakan komunikasi on-line antara user dengan sistem. User
memberikan instruksi pada sistem operasi atau program secara
langsung dan menerima respon segera.

Coordination
 Coordination adalah sekumpulan algoritma yang tujuannya
bermacam-macam namun men-share tujuannya, sebagai dasar
dalam sistem terdistribusi : berupa sekumpulan proses untuk
mengkoordinasikan tindakan atau menyetujui satu atau beberapa
nilai.
Contoh Kasus Coordination
 Contohnya pada kasus mesin seperti pesawat ruang angkasa. Hal itu perlu
dilakukan, komputer mengendalikannya agar setuju pada kondisi tertentu seperti
apakah misi dari pesawat luar angkasa dilanjutkan atau telah selesai.
 Komputer tersebut harus mengkoordinasikan tindakannya secara tepat untuk
berbagi hal yang penting dalam Coordination and Agreement adalah apakah
system terdistribusi asinkron atau sinkron. Algoritma–algoritma yang digunakan
juga harus mempertimbangkan kegagalan yang terjadi, dan bagaimana caranya
untuk berhubungan satu sama lain ketika sedang mendesaian algoritma.
Selanjutnya di makalah ini juga akan dijelaskan mengenai masalah dalam
mendistribusikan mutual exclusion, election, multicast communication, dan
mengenai masalah dalam persetujuan (agreement).
Logical Clock & Synchronisation
 Logical Clock
 Logical clock adalah software counter yang bertambah secara monoton dimana
nilainya tidak perlu menanggung hubungan tertentu ke suatu physical clock.
 Hampir seluruh komputer memiliki sebuah circuit untuk menunjukkan waktu.
Pada kenyataannya circuit tersebut bukanlah penunjuk waktu (jam) yang
sebenarnya. Kata yang tepat untuk mendeskripsikan circuit tersebut adalah timer.
Timer pada suatu komputer pada umumnya merupakan suatu crystal quartz yang
termekanisasi.
 Synchronization
 Adalah proses pengaturan jalannya beberapa proses pada saat yang 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.
Sinkronisasi Clock
 Sinkronisasi Clock adalah suatu masalah pada computer science mengenai
perbedaan waktu pada beberapa komputer atau sistem. Semua komputer memiliki
rangkaian pencatat waktu (clock). Selalu ada sedikit perbedaan yang terjadi dan
mengakibatkan perbedaan waktu pula yang disebut clock skew.
 Untuk mengatasi perbedaan waktu tersebut ada beberapa algoritma yang telah
dikembangkan untuk digunakan dalam sinkronisasi clock, yaitu :
a) Algoritma Lamport
b) Algoritma Christian
c) Algoritma Berkeley
 Algoritma untuk sinkronisasi dalam sistem terdistribusi memiliki beberapa sifat:
1. Informasi yang relevan tersebar di beberapa computer
2. Keputusan pembuatan proses hanya berdasarkan informasi local.
3. Peristiwa kegagalan dengan penyebab tunggal di dalam sistem harus dihindarkan
4. Tidak tersedianya clock atau sumber waktu global yang akurat.
Sinkronisasi Clock
 Sikronisasi merupakan bagian penting untuk kerjasama dalam :
1. Pemakaian sumberdaya berbagi (Sharing resources)
2. Pengurutan kejadian
3. Kesepakatan clock tersebar
 Gambar dibawah 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.
Algoritma Lamport
 Menurut Lamport, sinkronisasi clock tidak harus dilakukan dengan
nilai mutlak clocknya, karena yang diperlukan dalam sikronisasi
proses-proses adalah urutan proses tersebut. Jadi yang dipentingkan
adalah konsistensi internal clock, bukan apakah clock tersebut harus
sama persis dengan waktu real. Clock jenis ini biasanya disebut clock
logika.
 Syarat : Perlu pengurutan kejadian untuk sembarang pasangan
kejadian, tidak boleh ambigu, harus diketahui keterdahuluan kejadian.
 Solusi :
Penerapan algortima Lamport untuk pengurutan kejadian
Penggunaan stempel waktu untuk proses
Algoritma Christian
 Suatu algoritma yang menganggap suatu mesin sebagai time server. Semua mesin akan
menanyakan waktu yang tertera pada time server tersebut. Mesin tersebut (time server)
kemudian merespon dengan waktu yang sesingkat-singkatnya dengan mengirimkan pesan
berisi waktu pada saat itu (C UTC). Pada saat pengirim pesan menerima jawaban (reply)
maka mesin tersebut dapat menset waktu menjadi C UTC.
 Kelemahan : waktu tidak boleh berjalan mundur, dibutuhkan waktu untuk mengirimkan
balasan dari time server.
Algoritma Berkeley
 Algoritma Berkeley digunakan untuk mensinkronkan clock relatif terhadap clock lainnya,
dan bukan terhadap master clock tertentu. Pada algoritma Berkeley, time server bersifat
aktif. Time server akan melakukan polling pada setiap mesin secara berkala dan
menanyakan waktu pada tiap mesin. Berdasarkan jawaban yang diberikan, time server
mengkomputasi dan memberikan perintah untuk mempercepat atau memperlambat waktu.
Proses Koordinasi pada Sistem Terdistribusi
 Sistem tedistribusi memungkinkan kita untuk saling mengkoordinasikan dan
saling bekerja sama dalam melakukan aktifitas secara lebih efisien dan lebih
efektif. Tujuan utama dari system terdistribusi dapat direpresentasikan dengan :
resource sharing , openness, concurrency, scalability, fault-tolerance dan
transparency.
 Proses koordinasi nya :
 •Dijalankan secara bersamaan (execute concurrently)
 •interaksi untuk bekerjasama dalam mencapai tujuan yang sama
 •mengkoordinasikan aktifitas dan pertukaran informasi yaitu pesan yang dikirim
melalui jaringan komunikasi
Aktivitas Koordinasi Terdistribusi :
Pengurutan Event
 Dalam manajemen koordinasi proses pada sistem tersentralisasi memungkinkan
untuk menentukan urutan kejadian, sebab hanya terdapat satu memori dan clock.
Sejumlah aplikasi sangat menekankan urutan, misal : alokasi resource, resource
dapat dipakai setelah resource tersebut dipesan dan dijamin bebas. Manajemen
koordinasi antar proses pada sistem terdistribusi untuk menentukan urutan kejadian
tidak semudah seperti sistem tersentralisasi, karena pada sistem terdistribusi
parameter yang diperhatikan lebih komplek, yaitu :
a. memori & clock tidak tunggal
b. tidak mungkin menyatakan urutan dua kejadian
c. hanya dapat ditentukan partial ordering (urutan bagian
Relasi Happened-Before
 Relasi Happened-Before adalah suatu relasi yang memperhatikan urutan kejadian,
karena kejadian yang satu dengan yang lain saling terkait. Pada Relasi Happened-
Before berlaku :
 a) Proses-proses sekuensial, proses sekuensial adalah semua kejadian
dijalankan oleh satu pemroses (total ordering).
 b) Hukum sebab-akibat, hukum sebab-akibat adalah suatu kejadian dimana
pesan dapat diterima setelah pesan tersebut dikirimkan.
 c) Simbol relasi happened-before : →
Relasi Happened-Before
 Sejumlah kejadian dapat dikelompokkan dalam relasi Happened-Before sebagai
berikut :
1. Jika kejadian A & B berada dalam satu proses dan A dieksekusi sebelum B,
maka ditulis A → B
2. Jika A adalah kejadian pengiriman pesan (sending) oleh sebuah proses dan B
adalah sebuah kejadian penerima pesan (receiving) oleh proses lain, maka ditulis
A → B (sending dilakukan sebelum receiving).
3. Jika A→B dan B→C, maka A→C Karena suatu event tidak dapat terjadi
sebelum dirinya sendiri terjadi, maka relasi happened-before tidak bersifat
refleksi (dipasangkan ke dirinya sendiri).
4. Jika 2 event A & B tidak memenuhi Relasi → R (A tidak terjadi sebelum B &
B tidak terjadi sebelum A), maka kedua event tersebut dieksekusi bersamaan
(concurent). Dalam artian kondisi kedua event tersebut tidak dapat saling
mempengaruhi. (A→B : ada kemungkinan A mempengaruhi B)
Mutual Exclusion
 Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber
daya pada satu interval waktu tertentu. Sumber daya yang tidak dapat dipakai
bersama pada saat bersamaan. Ada model pendekatan dalam mutual exclusion
yaitu :
 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
Mutual Exclusion
 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
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

Protokol Two-Phase Commit (2PC)


 Semua situs yg mengeksekusi transaksi T harus memiliki hasil akhir yg sama
(commit atau abort) Jika T adalah transaksi yg diinisiasi pada situs Si dengan
koordinator Ci, maka setelah transaksi selesai Ci memulai protokol 2PC:
 Fase1: Ci mengirimkan pesan ke semua situs yg mengeksekusi T untuk mengetahui
transaksi commit atau abort.
 Fase2: Ci menentukan hasil akhir transaksi setelah menerima respon dari semua
situs; transaksi commit jika semua situs memberi respon commit.
Protokol Two-Phase Commit (2PC)
 Penanganan Kegagalan pada 2PC
 Kegagalan pada salah satu situs yg berpartisipasi
•Masalah: situs yg selesai melakukan recovery harus memeriksa log utk menentukan status
transaksi
•Jika commit, situs melakukan redo(T)
•Jika abort, situs melakukan undo(T)
 Kegagalan pada koordinator
•Masalah: situs yg berpartisipasi harus menentukan nasib T
•Jika salah satu situs berisi record maka coordinator akan mengikuti hasilnya
•Jika ada situs yg belum berisi maka koordinator tdk dpt memutuskan
 Kegagalan pada jaringan
•Masalah: pesan yg dikirimkan tidak sampai
•Jika beberapa link terputus dapat dilakukan partisi jaringan
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
 Protokol Locking
 Skema nonreplikasi
Tiap situs memiliki satu manajer lock lokal untuk mengelola permintaan
lock/unlock data yg disimpan pada situs tsb
(+): sederhana
(--): penanganan deadlock lebih rumit karena tdk ditangani oleh satu situs
 Pendekatan Koordinator Tunggal
Ada manajer lock tunggal yg berada pada salah satu situs utk menangani
permintaan lock/unlock data
•Read dpt dilakukan pada situs mana saja yg menyimpan data
•Write dilakukan pada semua replikasi
Concurrency Control

 Protokol Mayoritas
Tiap situs memiliki lock manajer yg mengelola data dan duplikat data yg disimpan pd
situs tsb
•Lock manajer menentukan lock yg dapat diberikan
•Transaksi thd data tdk dimulai sebelum kunci dari mayoritas replika diperoleh
(+): penanganan terdesentralisasi
(--): penanganan deadlock perlu modifikasi, rumit
Penanganan Deadlock
 a)Deadlock Prevention
• Pencegahan: Faktor-faktor penyebab deadlock yang harus dicegah untukterjadi
• 4faktor 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
 b)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)
• Deteksi:melihat apakah penjadwalan pemakaian resource yang tersisa masih memungkinkan berada dalam
safe state (variasi “safe state”).
• Skema recovery untuk mengembalikan ke “safe state”
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
 Algoritma Ring
Tujuan dari algoritma ini adalah untuk memilih sebuah proses tunggal yang disebut
koordinator, yang merupakan proses dengan identifier terbesar.
Perbedaan Model Sinkronisasi dan Asinkronisasi
 Sinkron yaitu: sebelum seluruh proses transaksi update dinyatakan selesai, data
yang telah dimodifikasi disinkronkan ke setiap duplikatnya; proses ini harus
menunggu hingga data di tempat penyimpanan duplikat selesai ditulis sebelum
dilakukan perubahan lainnya sehingga menjadi lebih kompleks
 Asinkron yaitu: copy data diperbaharui secara periodik berdasarkan data utama
yang diperbaharui; proses penulisan data selesai tanpa perlu menunggu penulisan
data di tempat penyimpanan duplikat selesai; proses ini memang meningkatkan
kinerja sistem namun risikonya, inkonsistensi data bisa terjadi.
SELESAI

Anda mungkin juga menyukai