Senin, 22 April 2013

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. 

Clock, Kejadian, dan Process State

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

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.

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.


Senin, 08 April 2013

HARDWARE SISTEM OPERASI TERDISTRIBUSI


Sistem operasi terdistribusi pada umumnya memerlukan hardware secara spesifik. Komponen utama dalam sistem ini adalah : workstation, LAN, gateway, dan processor pool, seperti yang diilustrasikan pada gambar di atas.
Workstation atau komputer personal mengeksekusi proses yang memerlukan interaksi dari user seperti text editor atau manager berbasis window. Server khusus memiliki fungsi untuk melakukan tugas yang spesifik. Server ini mengambil alih proses yang memerlukan I/O yang khusus dari larikan disk. Gateway berfungsi untuk mengambil alih tugas untuk terhubung ke jaringan WAN.
Procesor pool mengambil alih semua proses yang lain. Tiap unit ini biasanya terdiri dari prosesor, memori lokal, dan koneksi jaringan. Tiap prosesor mengerjakan satu buah proses sampai prosesor yang tidak digunakan habis. Untuk selanjutnya proses yang lain berada dalam antrian menunggu proses yang lain selesai. Inilah keunggulan sistem operasi terdistribusi dalam hal reliabilitas. Apabila ada satu unit pemroses yang mati, maka proses yang dialokasikan harus di restart, tetapi integritas sistem tidak akan terganggu, apabila proses deteksi berjalan dengan baik. Desain sistem ini memungkinkan untuk 10 sampai 100 prosesor.
Spesifikasi perangkat keras yang harus disediakan pada tiap cluster minimalnya adalah :
File server: 16 MB RAM, 300MB HD, Ethernet card.
Workstation: 8 MB RAM, monitor, keyboard, mouse
Pool processor: 4 MB RAM, 3.5” floppy drive


Sistem operasi terdistribusi, yang saat ini akan dibahas sebagai titik tolak adalah Amoeba, yang saat ini banyak digunakan sebagai salah satu implementasi dari sistem operasi terdistribusi itu sendiri. Sistem Amoeba ini tumbuh dari bawah hingga akhirnya tumbuh menjadi sistem operasi terdistribusi.

Sumber
http://ilmukomputer.com
http://caklaser.files.wordpress.com/2012/10/sistem-operasi-terdistribusi.ppt
http://www.fk.unair.ac.id/pdfiles/SISTEM%20TERDISTRIBUSI.pdf