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