Rabu, 24 April 2013

Time And Coordination


Time And Coordination

·         Time And Coordination

adalah mengkordinasikan waktu dalam transfer data,  agar tidak terjadi ketimpangan pada proses transfer data.  Selain itu juga, berguna untuk mengukur penundaan antara komponen terdistribusi, menyinkronkan aliran data misalnya: suara dan video,  dan sebagai penanda keakuratan waktu untuk mengidentifikasi atau  mengotentikasi transaksi bisnis dan serializability dalam database terdistribusi dan keamanan protocol.
·         Apa itu waktu?

Bagaimana  Anda mengkoordinasikan didistribusikan komputer jika tidak ada waktu global. Tidak ada Waktu global bahwa setiap orang dapat melakukan sinkronisasi. Sinkronisasi dapat di lakukan apabila Dua sistem setuju untuk apa waktu itu dan dengan menggunakan clock eksternal dan jam lokal (subset eksternal). Salah satu pendekatan untuk sinkronisasi dua sistem: Kirim pesan dengan waktu, t, receiver menetapkan waktu untuk t + waktu transmisi
·         NTP - Network Time Protocol

Dirancang untuk: Sinkronisasi komputer pada jaringan besar dengan UTC. Keandalannya  Bisa bertahan kerugian panjang dengan konektivitas Memberikan melayang secara signifikan kurang dari jam motherboard. Keamanan terhadap penolakan layanan dan spoofing

Pengurutan Event
• Pengurutan event sangat diperlukan, al. untuk alokasi resources
• Pada DS tidak ada memori dan clock milik bersama 􀃆 pengurutan event bersifat relatif terhadap waktu (relasi happened before)
Relasi Happened Before
• Aturan:
– Jika A dan B adalah event pada proses yg sama, dan A dieksekusi sebelum B, maka A 􀃆 B
– Jika A adalah event pengiriman pesan oleh satu proses dan B adalah event penerimaan pesan oleh proses lain, maka A 􀃆 B
– Jika A 􀃆 B dan B 􀃆 C, maka A 􀃆 C
– Relasi 􀃆 bersifat irreleflexive partial ordering
– Jika A 􀃆 B, mungkin A dan B saling mempengaruhi
– Jika event A dan B tidak terkait dgn relasi , maka 􀃆A dan B konkuren (saling tidak mempengaruhi)

Implementasi
• Idealnya, diperlukan satu clock milik bersama atau kumpulan clock yg disinkronisasikan
• Global ordering menggunakan timestamp:
– untuk tiap pasang A dan B, jika A 􀃆 B maka timestamp A < timestamp B
• Clock Lojik, dapat diimplementasikan sbg counter yg diinkremen setiap eksekusi event berurutan pada satu proses
– Tiap proses Pi memiliki clock lojik LCi
– Pada proses Pi , jika A terjadi sebelum B maka LCi (A) < LCi (B)
– Antar proses, jika proses Pi menerima pesan (event B) dgn
timestamp t sedangkan LCi (B) < t, maka Pi harus memajukan
clocknya sehingga LCi (B) = t + 1

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

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

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

Selasa, 09 April 2013

Sistem Operasi Terdistribusi



        Sistem operasi (Operating System atau OS) adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah kata dan browser web.
        Secara umum, Sistem Operasi adalah software pada lapisan pertama yang ditaruh pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan “kernel” suatu Sistem Operasi.
             Sistem Operasi secara umum terdiri dari beberapa bagian:



1. Mekanisme Boot, yaitu meletakkan kernel ke dalam memory
2. Kernel, yaitu inti dari sebuah Sistem Operasi
3. Command Interpreter atau shell, yang bertugas membaca input dari pengguna
4. Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
5. Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrol mereka.


         Sebagian Sistem Operasi hanya mengizinkan satu aplikasi saja yang berjalan pada satu waktu (misalnya DOS), tetapi sebagian besar Sistem Operasi baru mengizinkan beberapa aplikasi berjalan secara simultan pada waktu yang bersamaan. Sistem Operasi seperti ini disebut sebagai Multi-tasking Operating System (misalnya keluarga sistem operasi UNIX). Beberapa Sistem Operasi berukuran sangat besar dan kompleks, serta inputnya tergantung kepada input pengguna, sedangkan Sistem Operasi lainnya sangat kecil dan dibuat dengan asumsi bekerja tanpa intervensi manusia sama sekali. Tipe yang pertama sering disebut sebagai Desktop OS, sedangkan tipe kedua adalah Real-Time OS, contohnya adalah Windows, Linux, FreeBSD, Solaris, palm, symbian dan sebagainya.

Apakah yang Dimaksud Dengan Sistem Operasi Terdistribusi?

Sistem operasi terdistribusi adalah salah satu implementasi dari sistem terdistribusi, di mana sekumpulan komputer dan prosesor yang heterogen terhubung dalam suatu jaringan. Koleksi-koleksi dari objek-objek ini secara tertutup bekerja secara bersama-sama untuk melakukan suatu tugas atau pekerjaan tertentu. Tujuan utamanya adalah untuk memberikan hasil secara lebih, terutama dalam:
- file system
- name space
- waktu pengolahan
- keamanan
- akses ke seluruh resources, seperti prosesor, memori, penyimpanan sekunder, dan perangkat keras.



MANFAAT DAN KEUNGGULAN SISTEM OPERASI TERDISTRIBUSI
Sistem operasi terdistribusi memiliki manfaat dalam banyak sistem dan dunia komputasi yang luas. Manfaat-manfaat ini termasuk dalan sharing resource, waktu komputasi, reliabilitas, dan komunikasi (Silverschatz Galvin, 1998 hal. 17).

Shared Resource
Walaupun perangkat sekarang sudah memiliki kemampuan yang cepat dalam proses-proses komputasi, atau misal dalam mengakses data, tetapi pengguna masih saja menginginkan sistem berjalan dengan lebih cepat. Apabila hardware terbatas, kecepatan yang diinginkan user dapat diatasi dengan menggabung perangkat yang ada dengan sistem DOS (Distributed Operating System).

Manfaat Komputasi
Salah satu keunggulan sistem operasi terdistribusi ini adalah bahwa komputasi berjalan dalam keadaan pararel. Proses komputasi ini dipecah dalam banyak titik (nodes), yang mungkin berupa komputer pribadi, prosesor tersendiri, dan kemungkinan perangkat prosesor-prosesor yang lain. Sistem operasi terdistribusi ini bekerja baik dalam memecah komputasi ini dan baik pula dalam mengambil kembali
hasil komputasi dari titik-titik cluster untuk ditampilkan hasilnya.
 
Reliabilitas
Fitur unik yang dimiliki oleh DOS ini adalah reliabilitas. Berdasarkan design dan implementasi dari design sistem ini, maka hilangnya suatu node tidak akan berdampak terhadap integritas system. Hal ini berbeda dengan komputer personal, apabila ada salah satu hardware yang mengalami kerusakan, maka system akan berjalan tidak seimbang, bahkan sistem bisa tidak dapat berjalan atau mati.
Dalam sistem operasi terdistribusi tadi sebenarnya cara kerjanya mirip dengan personal computer, tetapi bedanya apabila ada node yang mati, maka akan terjadi proses halt terhadap node tersebut dan proses komputasi dapat dialihkan. Hal ini akan membuat sistem DOS selalu memiliki reliabilitas yang tinggi.

Komunikasi
Sistem operasi terdistribusi biasanya berjalan dalam jaringan, dan biasanya melayani koneksi jaringan. Sistem ini biasanya digunakan user untuk proses networking. User dapat saling bertukar data, atau saling berkomunikasi antar titik baik secara LAN maupun WAN.


Contoh Sistem Terdistribusi

1.       Internet: Jaringan komputer dan aplikasi yang heterogen Mengimple mentasikan protokol Internet.
2.       Sistem Multimedia Terdistribusi: Biasanya digunakan pada infrastruktur internet

a.       Karakteristik
Sumber data yang heterogen dan memerlukan sinkronisasi secara real time    (Video, audio, text, M u lticast)
Contoh: Teleteaching tools (mbone-based, etc.) - Video-conferencing,  Video and audio on demand
3.       Sistem Intranet:
                              a.  Jaringan yang teradministrasi secara lokal,
                              b.  Biasanya proprietary,
                              c.  Terhubung ke internet (melalui firewall),
                              d.  Menyediakan layanan internal dan eksternal
                4. Mobile dan Sistem Komputasi Ubiquitous
                    a.  Sistem telepon Cellular (e.g., GSM)
                    b.  Resources dishare : frekuensi radio, waktu transmisi dalam satu frekuensi, bergerak
                     c.  Komputer laptop, ubiquitous computing
                    d.  Handheld devices, PDA, etc
                5. Contoh lainnya:
                    a. Sistem telepon (ISDN, PSTN)
                    b. Manajemen jaringan: Administrasi sesumber jaringan
                    c. Network File System (NFS): Arsitektur untuk mengakses sistem file

Referensi :

http://id.wikipedia.org/wiki/Sistem_operasi
http://ilmukomputer.org/2006/08/25/sistem-operasi-terdistribusi/

Artikel lainnya tentang Sistem Terdistribusi :
Priyo Gondho Kusumo : http://priyo19.blogspot.com/

­­­­­­­­­­

Selasa, 02 April 2013

TRACE ROUTE


Berikut ini adalah Trace dari Modem SMART dengan tipe CE 682 UI. Saya mencoba trace ke situs twitter, dan berikut ini hasilnya :


Selasa, 19 Maret 2013

STUDI KASUS RPC

Definisi RPC :
RPC (Remote Procedure Call) adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh (remote system). RPC mengasumsi keberadaan dari low-level protokol transportasi seperti TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal Data Representation (XDR), yang merupakan standar dari representasi data dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan.

Cara Kerja RPC :
Tiap prosedur yang dipanggil dalam RPC, maka proses ini harus berkoneksi dengan server remote dengan mengirimkan semua parameter yang dibutuhkan, menunggu balasan dari server dan melakukan proses kemudian selesai. Proses di atas disebut juga dengan stub pada sisi klien. Sedangkan Stub pada sisi server adalah proses menunggu tiap message yang berisi permintaan mengenai prosedur tertentu.
Contoh aplikasi untuk meremote pada teknik RPC (Remote Procedure Call) adalah menggunakan putty untuk melakukan SSH.

Flowchart :






Kelebihan RPC
  • Relatif mudah digunakan
  • Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure. Sehingga pemrogram dapat berkonsentrasi pada software logic, tidak perlu memikirkan low level details seperti soket, marshalling & unmarshalling.
  • Robust (Sempurna)
  • Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission-critical application yg memerlukan scalability, fault tolerance, & reliability.

Kekurangan RPC
  • Tidak fleksibel terhadap perubahan
  • Static relationship between client & server at run-time.
  • Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.
  • Kurangnya location transparency
  • Misalnya premrogram hanya boleh melakukan pass by value, bukan pass by reference.
  • Komunikasi hanya antara 1 klien & 1 server (one-to-one at a time).
  • Komunikasi antara 1 klien & beberapa server memerlukan beberapa koneksi yg terpisah.


Studi Kasus RPC :
Contoh studi kasus RPC yaitu pada jasa penge-print-an di rental pengetikan yang di dalamnya terdapat 1 komputer server, beberapa komputer client dan sebuah printer yang hanya terhubung dengan server. User dari computer client ingin mencetak data dari komputernya. Biasanya user memindah data dengan bantuan device external seperti disket, flash disk, hard disk, atau cd-rw. Namun dengan RPC hal tersebut akan menjadi lebih efisien. 
Solusi : Dengan RPC, untuk mencetak data dari computer client, computer client mengirim pesan “cetak” kepada computer server. Kemudian computer server menerima perintah tersebut dan kemudian menjalankan perintah mencetak data. Setelah itu server mengirimkan pesan pada client berupa informasi “file telah dicetak”. 

Referensi :
1. http://xceaster.files.wordpress.com/2009/07/remote-procedure-call.pdf (Tanggal akses 19 Maret 2013)
2. http://sea7star.blogspot.com/2012/03/remote-procedure-call-rpc.html (Tanggal akses 19 Maret 2013)
3. http://id.scribd.com/doc/33389539/Tugas-Mk-Istem-Terdistibusi-Makalah-RPC (Tanggal akses 19 Maret 2013)

Selasa, 12 Maret 2013

Karekteristik Sistem Terdistribusi


Karakteristik Sistem Terdistribusi


SISTEM TERDISTRIBUSI

Sistem terdidtribusi adalah suatu kesatuan dari elemen-elemen yang saling berinteraksi secara sistematis dan teratur untuk mendistribusikan data, informasi, obyek dan layanan dari dan kepada pengguna yang terkait didalamnya. Infrastruktur utama sistem terdistribusi adalah jaringan, hardware software dan pengguna yang terkait di dalamnya.
Ada beberapa hal yang harus diperhatikan dalam membangun sistem terdistribusi,
yaitu :

  1. Transparency (Kejelasan)
  2. Communication (Komunikasi)
  3. Performance &amp; Scalability (Kinerja dan Ruang Lingkup)
  4. Heterogeneity (Keanekaragaman)
  5. Opennes (Keterbukaan)
  6. Reliability &amp; Fault Tolerancy (Kehandalan dan Toleransi Kegagalan)
  7. Security (Kemanan)


Karakteristik yang dimiliki system terdistribusi, adalah sebagai berikut:

1. No global clock (Keterbatasan dalam Global Clock)
          Hal ini menyebabkan kesulitan dalam mensinkronkan waktu seluruh komputer/perangkat yang terlibat. Dapat berpengaruh pada pengiriman pesan/data, seperti saat beberapa proses berebut ingin masuk ke critical session.
• Dalam pemakaian bersama atas sumber daya diperlukan beberapa hal, yaitu:
- Dibutuhkan hardware dan software yang mendukung
-Memerlukan resource manager
-Perlunya suatu hubungan antara resource dengan pihak yang menggunakannya.
-Terdapat client-server, remote evolution, code on demand, dan mobile agent.
• Terdapat batasan pada ketepatan proses sinkronisasi clock pada sistem terdistribusi, oleh karena asynchronous message passing
• Pada sistem terdistribusi, tidak ada satu proses tunggal yang mengetahui global state sistem saat ini (disebabkan oleh concurrency dan message passing)

2. Independent failure
• Setiap komponen/perangkat dapat mengalami kegagalan namun komponen/perangkat lain tetap berjalan dengan baik.
• Kemungkinan adanya kegagalan proses tunggal yang tidak diketahui.
• Proses tunggal mungkin tidak peduli pada kegagalan sistem keseluruhan

3. Concurrency of components
Pengaksesan suatu komponen/sumber daya (segala hal yang dapat digunakan bersama dalam jaringan komputer) secara bersamaan.
• Setiap komponen Hardware atau Software bersifat otonom.
• Sinkronisasi dan koordinasi dengan message passing.
• Sharing resource
• Masalah umum dalam system concurrent:
- Deadlock
- Lifelock
- Komunitas yang tidak handal
Contoh: Beberapa pemakai browser mengakses halaman web secara bersamaan.


Referensi :
  • http://djawaslow.wordpress.com/about/ (tanggal akses 07/03/2013)
  • http://sistemterdistribusipradityo.wordpress.com/2011/01/14/1-4-karakteristik-sistem-terdistribusi/ (tanggal akses 07/03/2013)
  • http://fandystress.blogspot.com/2012/03/karakteristik-sistem-terdistribusi.html (tanggal akses 07/03/2013)