• Tidak ada hasil yang ditemukan

Rangkuman Materi Sistem Terdistribusi

N/A
N/A
Protected

Academic year: 2021

Membagikan "Rangkuman Materi Sistem Terdistribusi"

Copied!
66
0
0

Teks penuh

(1)

UNIVERSITAS GUNADARMA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

SISTEM TERDISTRIBUSI

”RINGAKASAN MATERI PERTEMUAN 1 S/D 11”

DISUSUN OLEH :

Depok

2014 / 2015

DWI ARDIANTI / 12111225

FATIMAH ZAHRAH / 12111732

M. YUSUP / 15111014

PRAMESWARI HANDAYANI / 15111550

RIAN ARIZTIAN / 16111094

SINGGIH MULYANI / 16111774

(2)

ii

KATA PENGANTAR

Assalamu’alaikum warahmatullahi wabarakatuh. alhamdulillahirabbilalamin. Segala puji bagi Allah yang telah menolong kami menyelesaikan Tugas Sistem Terdistribusi ini dengan penuh kemudahan. Tanpa pertolongan NYA mungkin penulis tidak akan sanggup menyelesaikan dengan baik. shalawat dan salam semoga terlimpah curahkan kepada baginda tercinta yakni nabi Muhammad SAW.

Tugas Sistem Terdistribusi ini disusun agar pembaca dapat memperluas ilmu tentang Tugas Sistem Terdistribusi, yang kami sajikan berdasarkan pengamatan dari berbagai sumber. Tugas ini di susun oleh penyusun dengan berbagai rintangan. Baik itu yang datang dari diri penyusun maupun yang datang dari luar. Namun dengan penuh kesabaran dan terutama pertolongan dari Tuhan akhirnya makalah ini dapat terselesaikan.

Penyusun juga mengucapkan terima kasih kepada Dosen yang telah sudi kira nya memberi ilmu dan bimbingan kepada penulis agar dapat mengerti tentang bagaimana cara kami menyusun Tugas Sistem Terdistribusi.

Semoga tugas ini dapat memberikan wawasan yang lebih luas kepada pembaca. Walaupun tugas ini memiliki kelebihan dan kekurangan. Penulis mohon untuk saran dan kritiknya. Terima kasih.

penulis Depok, 21 Januari 2015

(3)

iii

DAFTAR ISI

LEMBAR COVER ... i

KATA PENGANTAR ... ii

DAFTAR ISI ... iii

BAB 1 ... 1

PENGENALAN SISTEM TERDISTRIBUSI ... 1

1.1. Definisi dan contoh Sistem Terdistribusi ... 1

1.2. Karakteristik Sistem Terdistribusi ... 1

1.3. Model Sistem Terdistribusi ... 3

1.4. Permasalahan Sistem Terdistribusi ... 5

BAB 2 ... 6

KOMUNIKASI ... 6

2.1. Protocol ... 6

2.2. RPC (Remote Procedure Call) ... 6

2.3. Studi kasus RPC ... 6 2.4. Object Interface ... 7 BAB 3 ... 8 PROSES ... 8 3.1. Thread ... 8 3.1.1. Pengertian Thread ... 8 3.1.2. Pustaka Thread ... 8

3.1.3. Implementasi Threads Pada User-Space ... 8

3.2. Client – Server ... 9

3.2.1. Pengertian Client Server ... 9

3.2.2. Model Client-Server ... 9

3.3. Agent ... 10

3.3.1. Pengertian Agent ... 10

3.3.2. Karakteristik Agent ... 10

3.3.3. Klasifikasi Software Agent ... 11

BAB 4 ... 13

SISTEM OPERASI TERDISTRIBUSI ... 13

4.1. Fungsi Sistem Operasi ... 13

4.2. Komponen Inti Sistem Operasi ... 13

(4)

iv

4.3.1. Konsep Dasar Proses Dalam Sistem Operasi ... 15

4.3.2. Konsep Dasar Thread Dalam Sistem Operasi... 16

BAB 5 ... 19

FILE SERVICE... 19

5.1. Pengenalan File Service ... 19

5.2. Komponen File service ... 20

5.3. Arsitektur File Service ... 20

5.3.1. Contoh File Service... 21

BAB 6 ... 23

NAME SERVICE ... 23

6.1. Pengenalan Name Service ... 23

6.1.1. Name Resolution, Binding, Attributes ... 23

6.2. Model Name Service and the Domain Name System ... 24

6.2.1. Name Space ... 24

6.2.2. Name Resolution ... 25

6.2.3. Name servers and navigation ... 26

6.2.4. Domain Name System ... 27

BAB 7 ... 29

TIME & COORDINATION ... 29

7.1. Logical Clock & Syncronitation ... 29

7.2. Koordinasi Terdistribusi ... 30

7.3. Model sinkronisasi & Asinkronisasi ... 33

BAB 8 ... 34

SHARE DATA & TRANSACTION ... 34

8.1. Shared Data... 34

8.2. Fault Tolerance & Transaction ... 35

8.3. Replication ... 36

BAB 9 ... 38

DISTRIBUTED DATABASE MANAGEMENT ... 38

9.1. Pengenalan Data Terdistribusi ... 38

9.2. Distributed Database Management System (DDBMS) ... 39

BAB 10 ... 42

PARALLEL PROCESSING ... 42

10.1. Konsep Parallel ... 42

10.2. Arsitektur Parallel ... 43

(5)

v

BAB 11 ... 49

SECURITY ... 49

11.1. DEFINISI SECURITY ... 49

11.1.1. DEFINISI DARI SECURITY ... 49

11.1.2. TEKNIK KEAMANAN ... 50

11.1.3. ENKRIPSI DAN DEKRIPSI ... 50

11.1.4. LAYANAN AUTENTIKASI ... 51

11.1.5. TANDA TANGAN DIGITAL ... 51

11.1.6. KRIPTOGRAFI KUNCI SIMETRIS ... 52

11.1.7. KRIPTOGRAFI KUNCI ASIMETRIS ... 52

11.1.8. KRIPTOGRAFI HIBRID ... 53

11.2. MEKANISME DAN TEKNIK SECURITY ... 53

11.2.1. MEKANISME KEAMANAN ... 53

11.2.2. MEKANISME SECURITY ... 55

11.2.3. TEKNIK SECURITY ... 56

(6)

1

BAB 1

PENGENALAN SISTEM TERDISTRIBUSI

1.1.

Definisi dan contoh Sistem Terdistribusi

Sistem Terdistribusi terdiri dari dua kata yaitu “Sistem” dan “Terdistribusi”. Sistem terdistribusi merupakan sekumpulan elemen yang saling berhubungan satu dengan yang lainnya dan membentuk satu kesatuan untuk menyelesaikan satu tujuan yang spesifik atau menjalangkan sperangkat fungsi. Adapun terdistribusi berasal dari kata “distribusi” yang merupakan lawan kata “sentralisasi” yang artinya penyebaran, sirkulasi, penyerahan, pembagian menjadi bagian-bagian kecil.

Contoh Sistem Terdistribusi :

a. Intranet Jaringan (proprietary) yang teradministrasi secara lokal dan dapat terhubung ke internet melalui firewall juga adanya layanan internal dan eksternal didalamnya.

b. Internet Jaringan global yang menghubungkan komputer satu sama lain dan dapat berkomunikasi dengan media IP sebagai protokol.

c. World Wide Web Arsiteketur client/server terbuka yang diterapkan di atas infrastuktur internet dan juga shared resources melalui URL.

d. Mobile dan sistem komputasi ubiguitos Sistem telepon Celullar (e.g. GSM) re. Resources yang dishare : frekuensi radio, waktu transmisi dalam satu frekuensi, bergerak, komputer laptop, ubiquitos computing, handheld devices, PDA, etc

e. Sistem terdistribusi multimedia biasanya digunakan pada infrastruktur internet -karakteristik Sumber data yang heterogen dan memerlukan sinkronisasi secara real time -video, audio, text Multicast

1.2.

Karakteristik Sistem Terdistribusi

Resource Access and Sharing

Kemampuan menggunakan hardware, software atau data dimanapun dan kapanpun. Karakteristik ini juga yang menentukan siapa saja yang dapat mengakses sebuah resource dalam sebuah sistem terdistribusi. Salah satu contohnya dalam sebuah web, terdapat .htaccess yang hanya dapat diakses oleh user-user yang telah memiliki grant access terhadap file tersebut.

(7)

2 Openness (Keterbukaan)

Sebuah keterbukaan dalam sistem terdistribusi memiliki pengertian kemampuan sebuah sistem dalam mengembangkan fleksibilitas terhadap peningkatan kinerja sebuah sistem. Seperti penambahan module baru dan ketersediaan extension / plugin yang dapat terkoneksi dengan sistem lain. Contoh karakteristik ini misalkan sebuah aplikasi web banking yang dapat terhubung dengan sistem web milik perusahaan finance.

Concurrency

Semua proses dalam sistem terdistribusi dilakukan secara concurrency (secara bersama-sama). Hal ini dilakukan untuk mencegah inkonsistensi dan ketidak valid an sebuah data dan proses. Sebagai contoh dalam sebuah aplikasi web yang diakses oleh banyak user. Ketika server melakukan sebuah update. Maka semua user yang mengakses halaman web tersebut akan langsung mendapatkan update terbaru tersebut.

Scalability

Skalabilitas memiliki pengertian bahwa sebuah sistem terdistribusi harus dapat ditingkatkan kinerjanya tanpa mengubah komponen-komponen di dalamnya. Sebagai contoh, sebuah aplikasi web yang digunakan oleh user yang terlalu banyak. Maka untuk meningkatkan kinerja dari web tersebut agar tidak terjadi overload atau system down maka perlu dilakukan upgrade processor dan ram. Dalam proses upgrading tersebut, komponen dalam web tidak perlu diubah.

Fault Tolerance (Toleransi Kesalahan)

Kesalahan pasti terjadi dalam sebuah sistem. Entah itu disebabkan karena masalah jaringan, power supply, bencana alam atau human error. Sebuah sistem terdistribusi dirancang memliki kemampuan untuk menangani hal-hal tersebut. Contoh dalam hal ini adalah dibangunnya sebuah clustering server. Dimana ketika server utama mengalami down karena beberapa penyebab kesalahan, maka extended server langsung membackup sistem utama dan menggantikannya.

Transparency

Secara umum, transparansi disini tidak berlaku untuk user biasa yang mengutamakan fungsionalitas, apakah ia sedang menggunakan sistem yang terdistribusi atau tidak. Namun secara khusus bagi seorang pengelola baik itu developer atau administrator sistem sangat perlu untuk mengetahui arsitektur dari sistem yang sedang

(8)

3 digunakan karena untuk mempermudah bagi mereka dalam mengembangkan dan memelihara sistem tersebut.

1.3.

Model Sistem Terdistribusi

 Model Client Server

Sistem client-server mempunyai satu atau lebih proses client dan satu atau lebih proses server, dan sebuah proses client dapat mengirim query ke sembarang proses server. Client bertanggung jawab pada antar muka untuk user, sedangkan server mengatur data dan mengeksekusi transaksi. Sehingga suatu proses client berjalan pada sebuah personal komputer dan mengirim query ke sebuah server yang berjalan pada mainframe.

Arsitektur ini menjadi sangat popular untuk beberapa alasan. Pertama, implementasi yang relatif sederhana karena pembagian fungsi yang baik dan karena server tersentralisasi. Kedua, mesin server yang mahal utilisasinya tidak terpengaruh pada interaksi pemakai, meskipun mesin client tidak mahal. Ketiga, pemakai dapat menjalankan antarmuka berbasis grafis sehingga pemakai lebih mudah dibandingkan antar muka pada server yang tidak user-friendly. perlu diingat batasan antara client dan server dan untuk menjaga komunikasi antara keduanya yang berorientasi himpunan.

1. Model Multiple Server

Gambar 1.1 Model Multiple Server Service disediakan oleh beberapa server

Contoh:

• Sebuah situs yang jalankan dibeberapa server

• Server menggunakan replikasi atau database terdistribusi 2. Model Proxy Server

(9)

4 Proxy server menyediakan hasil copy (replikasi) dari resource yang di atur oleh server lain. Biasa nya proxy server di pakai untuk menyimpan hasil copy web resources. Ketika client melakukan request ke server, hal yang pertama dilakukan adalah memeriksa proxy server apakah yang diminta oleh client terdapat pada proxy server. Proxy server dapat diletakkan pada setiap client atau dapat di pakai bersama oleh beberapa client. Tujuannya adalah meningkatkan performance dan availibity dengan mencegah frekwensi akses ke server.

• Proxy server membuat duplikasi beberapa server yang diakses oleh client • Caching:

– Penyimpanan lokal untuk item yang sering diakses – Meningkatkan kinerja

– Mengurangi beban pada server 3. Model Peer To Peer

Gambar 1.3 Model Peer To Peer

Bagian dari model sistem terdistribusi dimana sistem dapat sekaligus berfungsi sebagai client maupun server. Sebuah arsitektur di mana tidak terdapat mesin khusus yang melayani suatu pelayanan tertentu atau mengatur sumber daya dalam jaringan dan semua kewajiban dibagi rata ke seluruh mesin, yang dikenal sebagai peer. Pola komunikasi yang digunakan berdasarkan aplikasi yang digunakan. Peer-to-peer merupakan model yang paling general dan fleksible.

4. Model Mobile Code

Gambar 1.4 Model Mobile Code

Kode yang berpindah dan dijalankan pada pc yang berbeda Contoh: Applet

5. Model Mobile Agent

Sebuah program yang berpindah dari satu komputer ke komputer yang lain • Melakukan perkerjaan otomatis

(10)

5 Contoh:

– Untuk install dan pemeliharan software pada komputer sebuah organisasi

1.4.

Permasalahan Sistem Terdistribusi

Keheterogenan

 Suatu sistem terdistribusi dpt dibangun dr berbagai n/w, o/s, h/w, & p/l yg berbeda. IP dpt digunakan untuk mengatasi perbedaan jaringan. Middleware mengatasi perbedaan lainnya.

Keterbukaan

 Mendukung extensibility.-Setiap komponen memiliki antarmuka (interface), yang di-publish ke komponen lain.

Perlu integrasi berbagai komponen yang dibuat olehprogrammer atau vendor yang berbeda.

Keamanan

 Shared resources & transmisi informasi rahasia perlu dilengkapi dengan enkripsi. Cegah denial of service.-PS: Dibahas dalam kuliahCriptography & Information Security.

Scalability

 Penambahan pemakai membutuhkan penambahan resource yang konstan. Cegah bottleneck Jika perlu, gunakan replikasi.

Penanganan Kegagalan

 Setiap proses (komputer atau jaringan) dpt mengalami kegagalan secara independen.

Komponen lain harus tetap berjalan dengan baik.

E.g. failed branch in a distributed banking system. Concurrency

 Multiple users with concurrent requests to a shared resources. Setiap resource hrs aman di lingkungan tersebut di atas.

Transparansi

 Transparan: bagi pemakai, keberadaan beberapa komponen tampak sebaaig satu sistem saja. Accesstransparency : Local & remote resources dapat diakses dengan operasi yang sama.

(11)

6

BAB 2

KOMUNIKASI

2.1.

Protocol

Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi perangkat keras.

Protokol perlu diutamakan pada penggunaan standar teknis, untuk menspesifikasi bagaimana membangun komputer atau menghubungkan peralatan perangkat keras. Protokol secara umum digunakan pada komunikasi real-time dimana standar digunakan untuk mengatur struktur dari informasi untuk penyimpanan jangka panjang.

2.2.

RPC (Remote Procedure Call)

Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah server harus menyediakan layanan remote procedure.Pendekatan yang dilakuan adalah sebuah server membuka socket, lalu menunggu client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu haruS menghubungi port yang mana, client bisa me-request kepada sebuah matchmaker pada sebuah RPC port yang tetap. Matchmaker akan memberikan port apa yang digunakan oleh prosedur yang diminta client.

RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak remote procedure. RPC menggunakan socket untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC secara default sudah ter-install kedalam sistemnya, biasanya RPC ini digunakan untuk administrasi sistem. Sehingga seorang administrator jaringan dapat mengakses sistemnya dan mengelola sistemnya dari mana saja, selama sistemnya terhubung ke jaringan.

2.3.

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,

(12)

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

2.4.

Object Interface

Pengertian Interface adalah Himpunan operasi – operasi yang menentukan perilaku sebuah objek, biasanya digunakan apabila kita ingin menentukan apa saja yang harus dillakukan oleh satu class tetapi tidak menentukan bagaimana cara untuk melakukannya. Untuk memiliki class yang tidak berhubungan yang mengimplementasikan method yang sama.

Contoh:

– Class Line dan MyInteger : Tidak berhubungan, Keduanya mengimplementasikan method perbandingan

– isGreater – isles – isEqual

◦ Untuk mengungkapkan sebuah interface pemrograman object tanpa pernyataan class ◦ Untuk model multi inheritance yang mengijinkan sebuah class untuk memiliki lebih dari satu superclass.

Cara Membuat Interface

Untuk membuat interface, kita tulis, --- public interface [InterfaceName]

{

//beberapa method tanpa isi }

(13)

8

BAB 3

PROSES

3.1.

Thread

3.1.1. Pengertian Thread

Thread adalah sebuah alur kontrol dari sebuah proses. Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama.

3.1.2. Pustaka Thread

Pustaka Thread atau yang lebih familiar dikenal dengan Thread Library bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread. Ada dua cara dalam mengimplementasikan pustaka thread:

a. Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi tidak melalui system call. Jadi, jika kita memanggil fungsi yang sudah ada di pustaka, maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call.

b. Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call akan melibatkan system call ke kernel.

Ada tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java, dan Win32. Implementasi POSIX standard dapat dengan cara user level dan kernel level, sedangkan Win32 adalah kernel level. Java API thread dapat diimplementasikan oleh Pthreads atau Win32.

3.1.3. Implementasi Threads Pada User-Space

Kegunaan Thread yaitu Multithreading berguna untuk multi processor dan single processor.

Kegunaan untuk system multi processor adalah :

 Sebagai unit pararel atau tingkat granularitas pararelisme.

 Peningkatan kinerja disbanding berbasis proses. Kegunaan multithreading pada single processor, adalah :

 Kerja foreground dan background sekaligus di satu aplikasi.

(14)

9

 Mempercepat eksekusi program.

 Pengorganisasian program menjadi lebih baik.

Manfaat utama banyak thread di satu proses adalah memaksimumkan derajat kongkurensi antara operasi-operasi yang terkait erat. Aplikasi jauh lebih efisien dikerjakan sebagai sekumpulan thread disbanding sekumpulan proses.

3.2.

Client – Server

3.2.1. Pengertian Client Server

Server adalah komputer yang dapat memberikan service ke client, sedangkan client adalah komputer yang mengakses beberapa service yang ada di server.

Ketika client membutuhkan suatu service yang ada di server, dia akan mengirim request kepada server lewat jaringan. Jika request tersebut dapat dilaksanakan, maka server akan mengirim balasan berupa service yang dibutuhkan untuk saling berhubungan menggunakan Socket.

Gambar 3.3 Client-Server

Karakteristik Server : Pasif; Menunggu request; Menerima request, memproses mereka dan mengirimkan balasan berupa service. Karakteristik Client : Aktif; Mengirim request; Menunggu dan menerima balasan dari server.

3.2.2. Model Client-Server

a. Arsitektur Mainframe

Pada arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat besar, baik memori, processor maupun media penyimpanan. b. Arsitektur File Sharing

Pada arsitektur ini komputer server menyediakan file-file yang tersimpan di media penyimpanan server yang dapat diakses oleh pengguna.

c. Arsitektur Client/Server

Salah satu hasilnya yaitu berupa software database server yang menggantikan software database berbasis file server.

d. Model Two-tier

Model Two-tier terdiri dari tiga komponen yang disusun menjadi dua lapisan: client (yang meminta service) dan server (yang menyediakan service).

(15)

10 Gambar 3.4 Model Two-lier

e. Model Three-tier

Pada model ini disisipkan satu layer tambahan diantara user interface tier dan database tier.

Gambar 3.5 Model Three-tier

3.3.

Agent

3.3.1. Pengertian Agent

Agent adalah entitas perangkat lunak yang didedikasikan untuk tujuan tertentu yang memungkinkan user untuk mendelegasikan tugasnya secara mandiri, selanjutnya software agent nantinya disebut agent saja. Agent bisa memiliki ide sendiri mengenai bagaimana menyelesaikan suatu pekerjaan tertentu atau agenda tersendiri. Agent yang tidak berpindah ke host lain disebut stationary agent.

3.3.2. Karakteristik Agent

1. Autonomy

2. Intelligence, Reasoning, dan Learning 3. Mobility dan Stationary

4. Delegation Reactivity

5. Proactivity dan Goal-Oriented

(16)

11

3.3.3. Klasifikasi Software Agent

1. Klasifikasi menurut Karakteristik yang Dimiliki

Menurut Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada karakteristiknya.

Gambar 3.6 Klasifikasi Software Agent Menurut Karakteristik Yang Dimiliki

a) Collaborative Agent : Agent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar agent dalam kerangka Multi Agent System (MAS).

b) Interface Agent : Agent yang memiliki kemampuan untuk berkolaborasi dengan user, melakukan fungsi monitoring dan learning untuk memenuhi kebutuhan user.

c) Mobile Agent : Agent yang memiliki kemampuan untuk bergerak dari suatu tempat ke tempat lain, dan secara mandiri melakukan tugas ditempat barunya tersebut, dalam lingkungan jaringan komputer.

d) Information dan Internet Agent : Agent yang memiliki kemampuan untuk menjelajah internet untuk melakukan pencarian, pemfilteran, dan penyajian informasi untuk user, secara mandiri. Atau dengan kata lain, memanage informasi yang ada di dalam jaringan Internet.

e) Reactive Agent : Agent yang memiliki kemampuan untuk bisa cepat beradaptasi dengan lingkungan baru dimana dia berada.

f) Hybrid Agent : Kita sudah mempunyai lima klasifikasi agent. Kemudian agent yang memiliki katakteristik yang merupakan gabungan dari karakteristik yang sudah kita sebutkan sebelumnya adalah masuk ke dalam hybrid agent.

g) Heterogeneous Agent System : Dalam lingkungan Multi Agent System (MAS), apabila terdapat dua atau lebih hybrid agent yang memiliki perbedaan kemampuan dan karakteristik, maka sistem MAS tersebut kita sebut dengan heterogeneous agent system.

2. Klasifikasi menurut Lingkungan Dimana Dijalankan

a) Desktop Agent : Agent yang hidup dan bertugas dalam lingkungan Personal Computer (PC), dan berjalan diatas suatu Operating System (OS).

(17)

12 b) Internet Agent : Agent yang hidup dan bertugas dalam lingkungan jaringan Internet,

melakukan tugas memanage informasi yang ada di Internet.

c) Intranet Agent : Agent yang hidup dan bertugas dalam lingkungan jaringan Intranet, melakukan tugas memanage informasi yang ada di Intranet.

Bahasa pemrograman yang dipakai untuk tahap implementasi dari software agent, sangat menentukan keberhasilan dalam implementasi agent sesuai dengan yang diharapkan.

Dari karakteristik di atas dapat disimpulkan bahwa bahasa pemrograman yang layak untuk mengimplementasikan software agent adalah sebagai berikut :

• Java • Telescript

(18)

13

BAB 4

SISTEM OPERASI TERDISTRIBUSI

4.1. Fungsi Sistem Operasi

1. Sistem Operasi Sebagai Kordinator.

Dalam hal ini sistem operasi berfungsi untuk mengatur semua aktivitas yang kompleks dari perangkat lunak sistem/perangkat lunak aplikasi yang sedang dijalankan agar dapat berjalan sesuai dengan urutan yang benar. Selain mengatur semua aktivitas perangkat lunak, sistem operasi juga bertugas mengatur/mengelola semua aktivitas yang berhubungan dengan hardware, baik input device ataupun output device.

2. Sistem Operasi Sebagai Penghubung.

Sistem operasi komputer berfungsi untuk menyiapkan serta menghubungkan program aplikasi agar dapat berinteraksi dengan perangkat keras secara konsisten dan stabil.

3. Sistem Operasi Sebagai Pelindung.

Hal ini dimaksudkan bahwa salah satu fungsi atau tugas dari sistem operasi adalah untuk memegang kendali proses, melindungi file dan memberi batasan pada pembacaan dan penulisan serta eksekusi data dan program. Sistem operasi juga dapat berfungsi sebagai pengatur tentang siapa saja yang dapat mengakses file, program dan sistem yang ada di komputer kita.

4. Sistem Operasi Sebagai Interpretasi (penerjemah).

Sistem Operasi berfungsi sebagai penerjemah perintah-perintah dan instruksi-instruksi antara User dan Sistem. Sebagai fasilitas komunikasi yang mudah antara sistem komputer dan User (pengguna).

5. Sistem Operasi Sebagai Server (Pelayan).

Hal ini berarti fungsi dari sistem operasi komputer adalah untuk melayani segala sesuatu yang dibutuhkan oleh seorang user (pengguna).

4.2. Komponen Inti Sistem Operasi

Komponen sistem operasi terdiri dari :

(19)

14 adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O.

 Manajemen Memori Utama

Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori Utama berfungsi sebagai tempat penyimpanan yang akses datanya digunakan oleh CPU atau perangkat I/O.

 Manajemen Penyimpanan Sekunder

Data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil. Oleh karena itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkan secondarystorage yang bersifat permanen dan mampu menampung banyak data. Contoh dari secondarystorage adalah harddisk, disket, dll.

 Manajemen Sistem I/O Sering disebut device manager.

Menyediakan "device driver" yang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis, menutup). Contoh: pengguna menggunakan operasi yang sama untuk membaca berkas pada hard-disk, CD-ROM dan floppy disk.

 Manajemen Berkas

Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas tersebut. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.). Sistem operasi bertanggung-jawab : pembuatan dan penghapusan berkas, pembuatan dan penghapusan direktori, mendukung manipulasi berkas dan direktori, memetakan berkas ke secondary storage, mem-backup berkas ke media penyimpanan yang permanen (non-volatile).

 Sistem Proteksi

Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor, atau pengguna ke sistem sumber daya. Mekanisme proteksi harus: membedakan antara penggunaan yang sudah diberi izin dan yang belum.

 Jaringan Sistem terdistribusi

adalah sekumpulan prosesor yang tidak berbagi memori atau clock. Tiap prosesor mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem.

 Command-Interpreter System

Sistem Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card

(20)

15 interpreter, commandline interpreter, dan UNIX shell. Command-Interpreter System sangat bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi I/O devices yang ada. Contohnya: CLI, Windows, Pen-based (touch), dan lain-lain.

Pengertian dan Fungsi Kernel

Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. karena akses terhadap perangkat keras terbatas, sedangkan ada lebih dari satu program yang harus dilayani dalam waktu yang bersamaan maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebutTugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman. Kernel berfungsi layaknya jembatan yang menghubungkan antara software dan hardware pada komputer.

Fungsi utama kernel adalah untuk mengelola sumber daya komputer dan memungkinkan program lain untuk menjalankan dan menggunakan sumber daya koputer tersebut. Untuk menjalankan aplikasi suatu kernel pertama kali harus menyediakan space address untuk aplikasi lalu men-load file yang berisi kode aplikasi ke dalam memory, mempersiapkan stack untuk program dan percabangan ke lokasi lain untuk program, dan kemudian baru memulai eksekusi program.

4.3. Proses dan Thread

4.3.1. Konsep Dasar Proses Dalam Sistem Operasi

Proses dalam sistem operasi adalah suatu bagian dari program yang berada pada status tertentu dalam rangkaian eksekusinya. Di dalam bahasan Sistem Operasi, kita lebih sering membahas proses dibandingkan dengan program.

Secara informal, proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor's register.

Process State

Status proses selalu berubah-ubah selama suatu program dieksekusi atau dijalankan. Beberapa status tersebut ialah :

a. New : proses baru diciptakan b. Running : proses sedang dijalankan

(21)

16 d. Ready : proses menunggu untuk dilayani processor

e. terminated : proses telah menyelesaikan eksekusi.

Gambar 4.1 Status Proses

Process Control Block (PCB)

Sistem operasi membutuhkan banyak informasi mengenai proses guna pengelolaan proses. Semua informasi ini ada pada PCB. PCB mengandung beberapa informasi seperti berikut :

 Process State : berisi informasi status proses.

 Program counter : berisi informasi mengenai alamat instruksi selanjutnya.

 CPU register : berisi register2 CPU apa saja yang digunakan

 CPU scheduling information : berisis penjadwalan proses beserta algoritmanya

 Memory management information: berisi informasi tentang berapa jumlah memory yang digunakan, limit register, tabel segment, dll berkenaan dengan penggunaan memory.

 I/O status information : berisi informasi tentang perangkat apa saja yang digunakan dalam proses.

 Accounting : berisi informasi tentang statistik eksekusi proses seperti waktu yang diperlukan, jumlah proses, dll.

Gambar 4.2 Process Control Block

4.3.2. Konsep Dasar Thread Dalam Sistem Operasi

Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali.

(22)

17 Perbedaan antara proses dengan thread tunggal dan proses dengan thread yang banyak adalah proses dengan thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.

Gambar 4.3 Thread Keuntungan Thread

Keuntungan dari program yang multithreading dapat dipisah menjadi empat kategori : 1. Responsi

2. Berbagi sumber daya 3. Ekonomi

4. Utilisasi arsitektur multiprocessor

Multithreading Models

a. Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. t

b. Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris9. c. Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke

thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna.

Gambar 4.4 Model Multithreading

Pembatalan Thread (Thread Cancellation)

(23)

18 a. Asynchronous cancellation. Suatu thread seketika itu juga membatalkan target

thread.

b. Deferred cancellation. Suatu thread secara periodik memeriksa apakah ia harus batal, cara ini memperbolehkan target thread untuk membatalkan dirinya secara terurut.

Penjadwalan Thread

Untuk menjadwalkan thread, sistem dengan model mulithreading many to many atau many to one menggunakan :

a. Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process) yang tersedia.

b. System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread , kemudian menjadwalkannya ke satu thread tertentu(CPU / Kernel).

(24)

19

BAB 5

FILE SERVICE

File Sistem Terdistribusi ( Distributed File System , disingkat DFS ) adalah file sistem yang mendukung sharing files dan resources dalam bentuk penyimpanan persistent di sebuah network. File server pertama kali didevelop pada tahun 1970 dan Sun NFS (Network

File System) menjadi DFS pertama yang banyak digunakan setelah awal pemunculannya di

tahun 1985. DFS yang terkenal selain NFS adalah AFS (Andrew File System) dan CIFS (Common Internet File System).

Gambar 5.1 Service terdistribusi

5.1. Pengenalan File Service

File service adalah suatu perincian atau pelayanan dari file system yang ditawarkan pada komputer client. Suatu file server adalah implementasi dari file service dan berjalan pada satu atau lebih mesin. File itu sendiri berisi dari nama, data dan atribut file seperti kepemilikan file, ukuran, waktu pembuatan file dan hak akses file. File sistem merupakan mekanisme penyimpanan on-line serta untuk akses, baik data maupun program yang berada dalam sistem operasi.

(25)

20

5.2. Komponen File service

Komponen-komponen file service adalah terdiri dari :

 File Service

Pengoperasian dari masing-masing file.

 Directory Service

Management atau pengaturan direktori.

 Naming Service

- Location Independence :

o File dapat dipindahkan tanpa penggantian nama. - Hal yang umum untuk penamaan file dan directori :

o Mesin + nama path e.g / machine / path atau machine : path o Mounting File sistem secara remote kedalam hirarki local file. o Single name space yang sama pada semua mesin.

- Dua level penamaan :

Nama simbolik yang dilihat user dan nama binary yang dilihat oleh sistem.

5.3. Arsitektur File Service

Gambar 5.2 Arsitektur File Service

Layanan Flat File (Flat file service) – Beroperasi pada isi file.

– Unique File Identifier (UFID).

Layanan Directori (Directory Service)

– Menyediakan pemetaan antara nama sebagai teks ke UFIDs.

 Modul Client

– Menyediakan aplikasi untuk mengakses layanan file jarak jauh secara transparan. – Menyimpan status (state): open files, positions.

(26)

21 – Mengetahui lokasi jaringan dari flat file dan directory server.

5.3.1. Contoh File Service

Network File System (NFS) merupakan sebuah protokol yang dikembangkan oleh Sun Microsystem pada tahun 1984 dan NFS didefinisikan dalam RFC 1094, 1813 dan 3530 sebagai DFS yang mengijikan sebuah komputer untuk mengakses file melalui network serasa akses file di disk local. NFS merupakan protokol yang sangat mendukung dalam pengaplikasian suatu file system yang terdistribusi.

Gambar 5.3 Arsitektur NFS

Tujuan dari NFS adalah untuk memungkinkan terjadinya pertukaran sistem berkas secara transparan antara mesin-mesin bebas tersebut. Hubungan yang terjadi di sini didasarkan pada hubungan client-server yang menggunakan perangkat lunak NFS server dan NFS client yang berjalan diatas workstation.

NFS didesain agar dapat beroperasi di lingkungan ataupun jaringan yang heterogen yang meliputi mesin, platform, sistem operasi, dan arsitektur jaringan. Ketidaktergantungan ini didapat dari penggunaan RPC primitif yang dibangun diatas protokol External Data

Representation (XDR).

Jika misalnya terjadi sebuah pertukaran sistem berkas antara server dan client , maka pertukaran sistem berkas yang terjadi disini harus dipastikan hanya berpengaruh pada tingkat client dan tidak mempengaruhi sisi server , karena server dan client adalah mesin yang berbeda dan sama-sama bebas. Untuk itu, mesin client harus melakukan operasi

(27)

22 Protokol NFS umumnya menggunakan protokol Remote Procedure Call (RPC) yang berjalan di atas UDP dan membuka port UDP dengan port number 2049 untuk komunikasi antara client dan server di dalam jaringan. Client NFS selanjutnya akan mengimpor sistem berkas remote dari server NFS, sementara server NFS mengekspor sistem berkas lokal kepada client.

Mesin-mesin yang menjalankan perangkat lunak NFS client dapat saling berhubungan dengan perangkat lunak NFS server untuk melakukan perintah operasi tertentu dengan menggunakan request RPC. Adapun operasi-operasi yang didukung oleh NFS adalah sebagai berikut:

a. Mencari berkas di dalam direktori. b. Membaca kumpulan direktori. c. Memanipulasi link dan direktori. d. Mengakses atribut berkas. e. Membaca dan menulis berkas.

Perlu diketahui bahwa server NFS bersifat stateless , yang artinya setiap request harus mengandung argumen yang penuh dan jelas sebab server NFS tidak menyimpan sejarah informasi request . Data yang dimodifikasi harus di commit ke server sebelum hasilnya di kembalikan ke client . NFS protokol tidak menyediakan mekanisme

concurrency-control.

Beberapa manfaat NFS diantaranya ialah

– Lokal workstations menggunakan ruang disk lebih kecil

– Pemakai tidak harus membagi direktori home pada setiap mesin di jaringan – Direktori home dapat di set up pada NFS server dan tersedia melalui jaringan

– Device penyimpanan seperti floppy disk, CDROM drives, dll dapat digunakan oleh mesin lainnya

Kerugian /Kelemahan NFS

– Desain awal hanya untuk jaringan yang lokal dan tertutup – Security

(28)

23

BAB 6

NAME SERVICE

6.1. Pengenalan Name Service

Dalam sistem terdistribusi, name service digunakan untuk menunjuk ke suatu sesumber yang beragam dan tersebar seperti komputer, layanan (services), file, remote

object, use yang dapat memudahkan pengguna.

Contoh penamaan pada aplikasi sistem terdistribusi: – URL untuk mengakses suatu halaman web. – Alamat e-mail utk komunikasi antar pemakai.

Selain itu name service juga merupakan layanan penamaan yang berfungsi untuk menyimpan naming context, yakni kumpulan binding nama dengan objek, tugasnya untuk me-resolve nama. Kebutuhan akan penamaan juga memicu munculnya layanan penamaan (Naming Services) yang menyediakan mekanisme dan struktur penamaan objek itu sendiri. Contohnya DNS (Domain Name Service), X.500, COBRA, dan GNS.

6.1.1. Name Resolution, Binding, Attributes

• Name resolution: Nama ditranslasikan ke data ttg resource/object tsb.

• Binding: Asosiasi antara nama & obyek. Dan biasanya nama diikat (bound) ke

attributes dari suatu obyek.

• Address: atribut kunci dari sebuah entitas dalam sistem terdistribusi • Attribute: nilai suatu object property.

(29)

24 Didalam setiap name objek terdapat juga beberapa atribut yang merupakan properti suatu objek. Contoh :

✓ DNS : memetakan dari nama ke atribut alamat IP host

✓ X.500 : memetakan suatu nama seseorang ke beberapa atribut, seperti email, telepon, dsb.

✓ CORBA Naming Service yang memetakan nama remote objek ke remote object

reference.

6.2. Model Name Service and the Domain Name System

Suatu name service dapat menyimpan kumpulan satu atau lebih kontek penamaan yaitu sehimpunan keterkaitan antara nama dan atribut objek, seperti user, komputer,

services dan remote object. Yang dibutuhkan dari suatu Name Services adalah :

– penamaan unik yang standard – scalability

– consistency

– performance dan availability

– mudah menyesuaikan terhadap perubahan – perlindungan kegagalan

Dalam rangka memenuhi kebutuhan tersebut, sebuah name server setidaknya dapat menerapkan mekanisme berikut :

o Partitioning

✓ Tidak ada satu name server yang dapat menyimpan seluruh nama dan atribut untuk seluruh jaringan.

✓ Data nama dipartisi berdasarkan domain. o Replication

✓ Sebuah domain biasanya memiliki lebih dari satu name server ✓ Untuk meningkatkan availability dan performance

o Caching

✓ Sebuah name server dapat melakukan mekanisme caching terhadap data nama dari name server lain

✓ Hal ini dilakukan untuk mencegah operasi permintaan sama berulang-ulang

6.2.1. Name Space

Name Space adalah kumpulan nama sah yang dikenal oleh suatu layanan yang

sesuai. Suatu nama dapat digambarkan dengan menggunakan generative grammar, seperti BNF (Backus-Naur Form).

(30)

25 Contoh BNF untuk email

Berikut adalah beberapa karakter dari name space : • memiliki struktur internal

✓ flat

✓ hirarki yang mempresentasikan posisi (contoh sistem berkas UNIX)

✓ hirarki yang mempresentasikan struktur organisasi (contoh Internet Domain) • Karena hirarki, memiliki potensi tak terbatas

• Suatu name space dapat diatur secara terdistribusi (naming domain)

• Suatu name space dapat berupa gabungan dari beberapa nama space lain. Contoh mount pada UNIX/Linux

6.2.2. Name Resolution

Nama resolution yaitu diberikan nama obyek , temukan obyek tersebut. Simpan semua nama di setiap name server. Partisi basis data penamaan (naming database) dapat dilakukan berdasarkan:

• Algoritma:

✓ Tergantung dari nilai sebuah fungsi hash.

✓ Tidak tergantung pada struktur dan lokasi obyek. • Sintaks:

✓ Contoh: telaga.cs.ui.ac.id. • Atribut.

(31)

26

6.2.3. Name servers and navigation

Navigasi dan name servers di sini memiliki arti petunjuk pengaksesan nama data dari lebih dari satu name server untuk menyelesaikan suatu pemetaan nama (resolve a name). Yang didalamnya terdapat 3 metode,yaitu :

1. Iterative Navigation

Agent tetap memegang kendali proses resolusi sebuah nama. Server mengembalikan status resolusi dan alamat server yang harus dihubungi selanjutnya.

Agent bekerja lebih keras dari cara pertama, dan perlu sedikit pintar.

Transitive Navigation hampir sama dengan resolusi rekursif. Return address dari

agent diteruskan oleh server, sehingga jika informasi lokasi obyek ditemukan, informasi

tersebut langsung diteruskan ke agent. Kelebihan : berkurangnya pengiriman pesan,

server tidak perlu menyimpan status on going resolution. Kekurangan: pengirim tidak

menerima ACK.

(32)

27 3. Recursive Server Controlled

Rekursif adalah aktifitas berpindah dari server ke server, shg nama selalu

di-resolve dalam konteks yang baru. Multiple servers transparan bagi name agent. Agent tidak

sibuk. Servers harus menyimpan return address untuk setiap outgoing lookup, dan secara keseluruhan bekerja keras.

6.2.4. Domain Name System

Domain Name System merupakan sebuah name service sebagai standard penamaan pada Internet. Hal itu ditemukan oleh Mockapertis (1987) untuk menggantikan skema penamaan original, dimana semua hal dilakukan oleh satu central master file dan di download oleh FTP untuk semua computer yang membutuhkannya.

Database DNS diterapkan dengan sistem partitioning yang terbagi-bagi dalam suatu zone berdasar domainnya dan letak geografis. Top level organizational domain (biasa disebut generic domains) yang digunakan saat ini antara lain :

Com - organisasi komersial Edu - institusi pendidikan Gov - institusi pemerintahan Mil - organisasi militer

Net - Network support center

Org - Organisasi tertentu yang tidak disebutkan disini Int - organisasi internasional

Us - United states Uk - United kingdom Id – Indonesian

(33)
(34)

29

BAB 7

TIME & COORDINATION

7.1. Logical Clock & Syncronitation

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.

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

(35)

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

7.2. Koordinasi Terdistribusi

Dalam sistem terdistribusi berbasis koordinasi, fokusnya adalah pada bagaimana koordinasi antara proses berlangsung. Jika ada lebih dari satu proses yang siap running, maka Sistem Operasi akan menentukan salah satu proses untuk running lebih dulu. Aktivitas Koordinasi Terdistribusi :

1. Pengurutan Event

 Memori & clock tdk tunggal

 Tidak mungkin menyatakan urutan dua kejadian

 Hanya dpt ditentukan partial ordering (pengurutan sebagian) relasi Happened-Before (Hukum sebab-akibat : suatu pesan dapat diterima setelah pesan tersebut dikirim. Jika A dan B adalah event pada proses yg sama, dan A dieksekusi sebelum B, maka A → B)

(36)

31 2. Mutual Exclusion

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

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.

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

(37)

32 4. 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

5. Penanganan Deadlock ♦ Deadlock Prevention

· Pencegahan: Faktor-faktor penyebab deadlock yang harus dicegah untuk terjadi · 4 faktor 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 ♦ 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) · Skema recovery untuk mengembalikan ke “safe state”

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

Sebuah proses dimulai dengan pemilihan ketika telah diperintahkan, melewati timeout, saat coordinator gagal. Ketika sebuah proses menerima pesan coordinator proses tersebut akan menset variabelnya menjadi elected. Jika sebuah proses menerima proses

(38)

33 election proses tersebut akan mengirim jawaban dan akan memulai proses terpilih tersebut, kecuali telah mulai sebelumnya.

· Algoritma Ring

Tujuan dari algoritma ini adalah untuk memilih sebuah proses tunggal yang disebut koordinator, yang merupakan proses dengan identifier terbesar. Awalnya, setiap proses ditandai sebagai non-peserta dalam pemilihan. Setiap proses bisa mulai pemilihan. Hal hasil dengan menandai dirinya sebagai salah satu peserta, menempatkan para identifier dalam pemilihan pesan dan mengirimkannya kepada tetangga searah jarum jam. Ketika sebuah proses menerima pesan pemilihan, itu membandingkan pengenal dalam pesan dengan sendiri. Jika identifier yang tiba lebih besar, maka meneruskan pesan 10 tetangganya. Jika identifier yang tiba lebih kecil dan penerima bukan merupakan peserta maka pengganti pengenal sendiri dalam pesan dan ke depan itu, tetapi tidak meneruskan pesan jika sudah menjadi peserta. Pada pemilihan penerusan pesan dalam beberapa kasus, proses menandai dirinya sebagai peserta.

7.3. Model sinkronisasi & Asinkronisasi

Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. Secara garis besar mungkin sinkronisasi adalah menyamakan sesuatu secara 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.

Sistem Asynchronous - seperti object-oriented software - biasanya dibuat dari modular 'benda keras', masing-masing dengan komunikasi yang terdefinisi dengan baik antarmuka. Ini modul dapat beroperasi pada kecepatan variabel, apakah karena pengolahan data-dependent, skala tegangan dinamis , atau variasi proses . Modul kemudian dapat digabungkan bersama-sama untuk membentuk suatu sistem kerja yang benar, tanpa mengacu pada global sinyal clock . Biasanya, daya rendah diperoleh karena komponen diaktifkan hanya pada permintaan. Selain itu, beberapa gaya asynchronous telah terbukti untuk mengakomodasi antarmuka clock, dan dengan demikian mendukung desain campuran-waktu. Oleh karena itu, sistem asynchronous cocok dengan baik kebutuhan yang benar-by-konstruksi metodologi dalam perakitan sistem heterogen dan scalable skala besar.

(39)

34

BAB 8

SHARE DATA & TRANSACTION

8.1. Shared Data

Sharing adalah suatu fasilitas yang digunakan untuk membagi suatu file, perangkat dan koneksi internet untuk digunakan secara bersama-sama dengan tujuan untuk menghemat biaya dan perangkat. Sharing dapat dilakukan terhadap File Dokumen/Software dalam drive atau folder,atau dalam CD-Rom, sharing perangkat: Printer dan CD-Room dan sharing jaringan koneksi internet.

Untuk Melakukan Sharing ada beberapa hal yang harus diperhatikan diantaranya: 1. Jaringan sudah tekoneksi dengan baik

2. Protokol sharing file dan printer sudah terinstall 3. Setting Sharing dengan dengan benar.

Ada beberapa Sharing yang sering di jumpai diantaranya: 1. Sharing Data: Sharing File/Folder/Drive

2. Sharing Perangkat: CD/DVD ROM dan Sharing Printer 3. Sharing Internet/Sharing Koneksi Internet

Keuntungan Shared Data

1. Mengurangi biaya duplikasi usaha pengumpulan data 2. Aman-menjaga data dalam lingkungan yang aman 3. Back-up data

Kelemahan Shared Data

Kemudahan sharing file dalam jaringan yang ditujukan untuk dipakai oleh orang-orang tertentu, seringkali mengakibatkan bocornya sharing folder dan dapat dibaca pula oleh orang lain yang tidak berhak. Hal ini akan selalu terjadi apabila tidak diatur oleh administrator jaringan.

Sementara data sharing salah satu basis ini menguntungkan, pengarsipan dataset melalui organisasi yang berdedikasi adalah lebih baik.Pusat data memiliki infrastruktur terpusat dan in-house semua aspek keahlian dalam menelan data, Kurasi, persiapan, dokumentasi, penyimpanan, penyebaran, dukungan pengguna dan promosi. ·

Tujuan Shared Data

Sharing resources bertujuan agar seluruh program, peralatan atau peripheral lainnya dapat dimanfaatkan oleh setiap orang yang ada pada jaringan komputer tanpa terpengaruh oleh lokasi maupun pengaruh dari pemakai.

(40)

35 Walaupun perangkat sekarang sudah memiliki kemampuan yang cepat dalam proses-proses komputasi, atau misal mengakses data, tetapi pengguna masih saja menginginkan ssitem berjalan dengan lebih cepat. Apabila hardware terbatas, kecepatan yang diinginkan user dapat di atasi dengan menggabung perangkat yang ada dengan sistem.

8.2. Fault Tolerance & Transaction

Salah satu tujuan dalam membangun sebuah system terdistribusi adalah memungkinkan untuk melakukan improvisasi terhadap kehandalan sistem. Ini dilakukan karena setiap system pasti akan menemukan kesalahan atau gangguan. Sehingga perlu untuk dibuat pencegahan atau solusi untuk mengatasi masalah tersebut. Availability: kalau mesin mati (down), sistem tetap harus berjalan dengan jumlah layananan yang tersisa. Dalam suatu sistem terdistribusi komponen dalam system yang sangat vital terutama pada resources (critical resources) berjumlah seminimal mungkin. Yang dimaksud dengan critical resources adalah komponen dalam system yang harus ada untuk menjalankan sistem terdistribusi.

Secara umum, ada dua jenis fault tolerant, yaitu fault tolerant secara hardware dan secara software. Untuk itu, masing – masing Software dan Hardware harus di replikasi. Sehingga kalau terjadi kegagalan / error maka yang lain akan menangani. Data dalam sistem terdistribusi tidak boleh hilang, oleh karena itu copy dari data atau resource lainnya tersebut disimpan secara redundan pada server lain, tapi tetap harus dijaga konsistensi datanya. Hal ini memang berkaitan dengan replikasi. Dengan membuat system terdistribusi yang fault tolerance maka Sistem harus bisa mendeteksi kegagalan dan melakukan tindakan dasar sebagai berikut:

1.Mask the fault (menutupi kegagalan): tugas harus dapat dilanjutkan dengan menurunkan kinerja tapi tanpa terjadi kehilangan data atau informasi.

2.Fail Gracefully: membuat suatu antisipasi terhadap suatu kegagalan ke suatu prosedur yang telah di rencanakan dan memungkinkan untuk menghentikan proses dalam waktu yang singkat tanpa menghilangkan informasi atau data.

Data Transaction adalah transaksi pengiriman ( Send – Request ) ke sebuah Server-Host dengan alamat IP / IP adress dengan Format ( Protokol ) Server-Server-Host tersebut dengan harapan Host melakukan apa yang pengirim Inginkan dalam hal ini Server-Host atau Client. Sebagai Contoh : Server – Host A atau Client mengirim sebuah data kepada Server – Host B, Pengirim menginginkan sebuah data xxx agar di proses oleh Server-Host – B lalu memberikan informasi dsb ke pada Pengirim dalam hal ini ( Server – Host A atau Client ).

(41)

36 Pada contoh di atas tentu pengirim harus tahu kemana akan di kirim, yah itulah butuhnya sebuah ip address, dengan ip adress tentu data yang kita kirim akan sampai ke tujuan yang kita inginkan, pengiriman data dengan TCP/IP adalah baik, karena dengan konsep protokol TCP/IP data yang kita kirim pasti sampai kepada tujuan yang tepat, keculi memakai protokol UDP alias broadcast.

8.3. Replication

Replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objek database dari satu database ke database lain dan melaksanakan sinkronisasi antara database sehingga konsistensi data dapat terjamin. Dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringan lokal maupun internet. Replikasi juga memungkinkan untuk mendukung kinerja aplikasi, penyebaran data fisik sesuai dengan penggunaannya, seperti pemrosesan transaksi online dan DSS (Desiscion Support System) atau pemrosessan database terdistribusi melalui beberapa server.

Selain itu ada yang menyebutkan bahwa Replikasi adalah proses menyalin dan memelihara objek database dalam beberapa database yang membentuk suatu sistem database terdistribusi. Replikasi dapat meningkatkan kinerja dan melindungi ketersediaan aplikasi karena data pilihan alternatif akses ada. Sebagai contoh, sebuah aplikasi biasanya dapat mengakses database lokal daripada server jauh untuk meminimalkan lalu lintas jaringan dan mencapai kinerja maksimum. Selanjutnya, aplikasi dapat terus berfungsi jika server lokal mengalami kegagalan, tetapi server lain dengan data direplikasi tetap dapat diakses.

Dengan replication dasar, replika data memberikan akses read-only ke tabel data yang berasal dari sebuah situs (master) primer.Aplikasi dapat query data dari replika data lokal untuk menghindari akses jaringan terlepas dari ketersediaan jaringan.Namun, aplikasi di seluruh sistem harus mengakses data pada situs utama ketika pembaruan diperlukan. Keuntungan replication tergantung dari jenis replikasi tetapi pada umumnya replikasi mendukung ketersediaan data setiap waktu dan dimanapun diperlukan. Adapun keuntungan lainnya adalah :

1. Memungkinkan beberapa lokasi menyimpan data yang sama. Hal ini sangat berguna pada saat lokasi-lokasi tersebut membutuhkan data yang sama atau memerlukan server yang terpisah dalam pembuatan aplikasi laporan.

2. Aplikasi transaksi online terpisah dari aplikasi pembacaan seperti proses analisis database secara online, data smarts atau data warehouse.

(42)

37 3. Memungkinkan otonomi yang besar. Pengguna dapat bekerja dengan meng-copy data pada saat tidak terkoneksi kemudian melakukan perubahan untuk dibuat database baru pada saat terkoneksi.

4. Data dapat ditampilkan seperti layaknya melihat data tersebut dengan menggunakan aplikasi berbasis Web.

5. Meningkatkan kinerja pembacaan.

6. Membawa data mendekati lokasi individu atau kelompok pengguna. Hal ini akan membantu mengurangi masalah karena modifikasi data dan pemrosesan query yang dilakukan oleh banyak pengguna karena data dapat didistribusikan melalui jaringan dan data dapat dibagi berdasarkan kebutuhan masing-masing unit atau pengguna. Dibawah ini merupakan jenis-jenis Replication:

1. Snapshot replication : Mendistribusikan data yang dapat dilihat pada saat tertentu tanpa melakukan update.

2. Merge replication : Merge replication memungkinkan pengguna bekerja dan merubah data sesuai dengan wewenangnya. Pada saat server tidak dikoneksikan ke seluruh lokasi dalam topologi, replikasi merubah ke nilai data yang sama.

3. Transactional Replication : Pengguna mendapatkan salinan lengkap dari database awal dan kemudian mendapatkan update periodik sebagai perubahan data.

(43)

38

BAB 9

DISTRIBUTED DATABASE MANAGEMENT

9.1. Pengenalan Data Terdistribusi

Database terdistribusi adalah sebuah database yang diatur oleh sebuah Database Management System (DBMS) yang tersimpan secara fisik pada beberapa komputer yang terdapat pada beberapa lokasi dengan terkoneksi pada sebuah jaringan. jaringan tersebut harus bisa menyediakan akses bagi user untuk melakukan sharing data. Terdapat dua macam sifat dari database terdistribusi yaitu Heterogenous dan Homogenous. Homogenous artinya suatu database terdistribusi dimana data di distribusikan pada beberapa komputer dengan menggunakan DBMS(database management system) yang sama. DBMS digunakan pada database terdistribusi untuk melakukan koordinasi data pada beberapa node. Sedangkan Heterogenous adalah kebalikan dari Homogenous dimana data di sebarkan dengan menggunakan DBMS yang berbeda.

Untuk menjaga agar basis data yang terdistribusi tetap up-to-date, ada dua proses untuk menjaganya, yakni replikasi dan duplikasi. Dalam replikasi, digunakan suatu perangkat lunak untuk mencari — atau lebih tepatnya melacak — perubahan yang terjadi di satu basis data. Setelah perubahan dalam satu basis data teridentifikasi dan diketahui, baru kemudian dilakukan perubahan agar semua basis data sama satu dengan yang lainnya. Proses replikasi memakan waktu yang lama dan membebani komputer karena kompleksitas prosesnya. Sementara itu, proses duplikasi tidak sama dan tidak sekompleks replikasi. Dalam proses ini, satu basis data dijadikan master, kemudian diperbanyak menjadi sejumlah duplikat. Selama proses duplikasi berlangsung, perubahan hanya boleh dilakukan pada basis data master agar data lokal tidak tertimpa.

Konsep

1. Database terdistribusi (Distributed Database), merupakan sekumpulan interrelasi(hubungan) secara logic dari data yang digunakan bersama (dan deskripsi data), yang secara fisik terdistribusi melalui jaringan komputer.

2. DBMS Terdistribusi (Distributed DBMS),Merupakan sistem Software yang mengijinkan pengaturan dari database terdistribusi dan membuat distribusi tersebut terbuka untuk para pengguna/user.

3. DDBMS terdiri dari database yang secara logical tunggal dan dibagi menjadi beberapa fragment (bagian). Masing-masing fragment disimpan pada satu atau lebih komputer. 4. DDBMS mempunyai beberapa karakter, diantaranya :

(44)

39 a) Kumpulan dari data yangdigunakan bersama, yang berhubungan secara logic. b) Data dipecah - pecah menjadi sejumlah fragmen.

c) Fragmen dapat direplikasi.

d) Fragmen/replikanya dapat dialokasikan/ditempatkan ke suatu site(tempat). e) Tempat - tempat (site) dihubungkan oleh jaringan komunikasi.

f) Data yang terdapat pada setiap site berada dibawah kontrol/pengawasan dari DBMS.

g) DBMS yang terdapat pada setiap site dapat mengatur aplikasi - aplikasi lokal secara autonom.

h) Setiap DBMS berpartisipasi paling sedikit dalam sebuah aplikasi global.

9.2. Distributed Database Management System (DDBMS)

Karakteristik pengolahan data terdistribusi antara lain :

 Beberapa data digunakan pada banyak lokasi.

 Sering diperlukan sistem manajemen database yang memberikan akses kepada banyak pemakai dengan view yang berbeda dari data yang sama.

 Peningkatan biaya penyimpanan per bit pada unit penyimpan yang sangat besar lebih rendah dibandingkan pada penyimpan yang lebih kecil.

 Beberapa masalah pada data yang terpisah secara geografis adalah masalah integritas, kepemilikan, dan kemacetan (deadlock) ketika banyak processor meng-update data yang sama.

Pengolahan data di masa depan merupakan perkembangan mesin komputer yang pesat yang kebanyakan dihubungkan dengan jaringan telekomunikasi. Saat ini telah banyak komputer dengan ukuran kecil dengan harga yang murah. Namun komputer mini tidak akan menggantikan komputer besar, dengan alasan beberapa fungsi dan data masih harus terpusat. Oleh karena itu maka tugas seorang perancang sistem adalah untuk :

 memutuskan distribusi mesin atau processor yang bagaimana yang paling baik.

 Penghubung yang bagaimana yang diperlukan.

 Di mana data harus disimpan.

Tujuan Utama Pengolahan Data Terdistribusi :

 Otonomi lokal

Memberikan tingkat otonomi lokal dalam komputasi kepada kelompok pemakai lokal.

Gambar

Gambar 1.3 Model Peer To Peer
Gambar 3.3 Client-Server
Gambar 3.5 Model Three-tier
Gambar 3.6 Klasifikasi Software Agent Menurut Karakteristik Yang Dimiliki
+6

Referensi

Dokumen terkait

Hasil penelitian ini dapat menunjukkan bahwa PT.Trans Multi Cargo sebagai perusahaan pengangkut limbah dalam melakukan perjanjian kerjasama dengan PT.Ivo Mas maupun perusahaan

Perancangan subsistem interface dirancang menggunakan bahasa pemrograman python untuk melakukan pengukuran dan pemantauan secara realtime pada tegangan baterai aki

Hasil penelitian ini dapat menunjukkan bahwa PT.Trans Multi Cargo sebagai perusahaan pengangkut limbah dalam melakukan perjanjian kerjasama dengan PT.Ivo Mas maupun perusahaan

Pemodelan Multi Agent System (MAS) menggunakan metode Prometheus dapat menghasilkan analisis yang lebih jelas mengenai bagaimana tingkah laku agents saat evakuasi

Langkah-langkah utama yang dilakukan dalam perancangan awal antara lain 1) Membuat kerangka modul pembelajaran biologi berbasis metakognisi tentang materi sistem koordinasi yang

Berdasarkan hasil penelitian dapat disimpulkan bahwa Lembar Kerja Peserta Didik (LKPD) elektronik berbasis Guided Discovery pada materi sistem koordinasi kelas XI SMA

Agent mempunyai kemampuan untuk melakukan suatu tugas/pekerjaan dalam kapasitas untuk sesuatu atau untuk orang lain terhadap komponen sistem e-Learning yang lain

Dengan menggunakan kemampuan yang ada di location Service inilah Aplikasi Pencari IDL dan Objek Pada Sistem Terdistribusi Berbasis CORBA akan melakukan pengaksesan dan