new look

Sunday 17 August 2014

TUGAS SISTEM TERDISTRIBUSI




1.    Konsep dasar dan pengertian Sistem Terdistribusi dari segi:

a.      Definisi dan contoh nyata pada sitem terdistribusi:
Definisi : Sebuah sistem yg komponennya berada pada jaringan komputer, Komponen tersebut saling berkomunikasi  dan  melakukan koordinasi hanya dengan pengiriman pesan (message passing).
Contoh nyata:
1.       Sistem Telepon (ISDN, PSTN),
2.       Manajemen Jaringan (Adminstrasi ke sumber jaringan),
3.       Network File System (NFS) (Arsitektur untuk mengakses sistem file melalui jaringan),
4.       WWW (World Wide Web) (Arsitektur client/server yang diterapkan di atas infrastruktur internet)

b.   Karakteristik Sistem Terdistribusi
Sistem terdistribusi memiliki karakteristik sebagai berikut:
1.    Konkurensi, yang dimaksud dengan konkurensi adalah sistem atau program yang berjalan bersama-sama,  konkurensi pada sistem terdistribusi adalah suatu karakteristik yang dimiliki oleh sistem terdistribusi dimana sifatnya setiap komputer atau aplikasi dapat melakukan pekerjaan masing-masing tanpa terjadi konflik pada pekerjaannya.
2.    Tidak ada / Keterbatasan Global Clock, yaitu Setiap komputer memiliki clock yang berbeda dalam sistem terdistribusi. Agar tidak terjadi konflik maka diperlukan koordinasi agar tidak terjadi konflik clock antar komputer. Saat program membutuhkan koordinasi antar komputer, dilakukan proses pertukaran pesan antar komputer.
3.    Kegagalan Independent, yaitu: komputer atau sistem dapat mengalami kegagalan atau kerusakan akan sangat merepotkan apabila kerusakan pada 1 komputer atau 1 sistem akan mempengaruhi semua komputer/sistem. Oleh karena itu apabila terdapat komponen yang rusak atau gagal, kerusakan tidak meyebar ke komponen lainnya.
c.         Model Sistem Terdistribusi
  1. 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. perlu diingat batasan antara client dan server untuk menjaga komunikasi antara keduanya yang berorientasi himpunan. Khususnya membuka kursor dan mengambil tupel pada satu waktu membangkitkan beberapa pesan dan dapat diabaikan. Berikut gambar model Client Server
Adapun kinerja dari client dan server adalah sebagi berikut:
• Client:
1. Memproses akses data
2. Melakukan operasi pada komputer lain
• Server:
1.Memproses mengatur data
2. Memproses mengatur resources
3.Memproses komputasi
• Interaksi:
– Invocation/result
2.    Model Multiple Server
 Service disediakan oleh beberapa server
 Contoh: Sebuah situs yang jalankan dibeberapa server, dan server tersebut menggunakan replikasi atau database terdistribusi
3.    Model Proxy Server
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.
4.    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 fleksibel.
5.     Mobile Code
Kode yang berpindah dan dijalankan pada pc yang berbeda, contohnya Applet.
6.        Model Mobile Agent
Sebuah program yang berpindah dari satu komputer ke komputer yang lain, untuk melakukan perkerjaan otomatis.

d.   Permasalahan pada sistem terdistribusi
Masalah dengan sistem terdistribusi yang dapat dimunculkan antara lain berkaitan dengan :
  • Software  yaitu bagaimana merancang dan mengatur software dalam distribusi Sistem.
  • Ketergantungan pada infrastruktur jaringan
  • Kemudahan akses ke data yang di share, memunculkan masalah keamanan
Dalam setiap penggunaan suatu sistem, banyak sekali ditemui permasalahan – permasalahan yang muncul, begitu juga dengan sistem terdistribusi. Selain permasalahan – permasalahan yang akan dihadapi terdapat tantangan – tantangan dalam sistem terdistribusi adapaun tantangan-tantangan tersebut antara lain:

1.      Keheterogenan
  • Suatu sistem terdistribusi dapat dibangun dari berbagai network, operasi sistem, hardware dan programming language yang berbeda.
  • IP dapat digunakan utk mengatasi perbedaan jaringan.
  • Middleware mengatasi perbedaan lainnya.
2.      Keterbukaan
·                               Mendukung extensibility.
·                               Setiap komponen memiliki antarmuka (interface), yg di-publish ke komponen lain.
·                               Perlu integrasi berbagai komponen yg dibuat oleh programmer atau vendor lain.
3.      Keamanan

·           Shared resources & transmisi informasi rahasia perlu dilengkapi dengan enkripsi.
·           Cegah denial of service
4.      Scalability

·                               Penambahan pemakai membutuhkan penambahan resource yg konstan.
·                               Cegah bottleneck.
·                               Jika perlu, gunakan replikasi.

2.        penjelasan  tentang komunikasi antar komponen  dalam sistem terdistribusi, dari segi:
a. Protokol. Pengertian sederhana dari komunikasi adalah hubungan antara dua atau lebih sumber. Dalam sistem terdistribusi komunikasi dapat diartikan sebagai jalinan hubungan antara sistem satu dengan dua atau lebih sistem lainnya atau hubungan antar sistem melalui suatu perangkat dan metode. Dalam contoh sistem terdistribusi komunikasi dapat diimplementasikan oleh beberapa metode atau media, diantaranya protokol dan RPC.
Protokol adalah aturan-aturan main yang mengatur komunikasi diantara beberapa komputer di dalam sebuah jaringan, aturan tersebut termasuk di dalamnya sebuah petunjuk yang berlaku bagi cara-cara atau metode mengakses sebuah jaringan, topologi fisik, tipe-tipe dan kecepatan transfer data. Dalam sistem terdistribusi protokol berperan sebagai penghubung dalam komunikasi data sehingga proses penukaran data bisa berjalan dengan baik dan benar.
Secara khusus, fungsi protokol adalah sebagai berikut :
a. Fragmentasi dan Re-assembly
Pembagian informasi yang dikirim menjadi beberapa paket data dari sisi pengirim. Jika telah sampai di penerima, paket data tersebut akan digabungkan menjadi paket berita yang lengkap.
b. Enkapsulasi
Enkapsulasi (Encaptulation) adalah proses pengiriman data yang dilengkapi dengan alamat, kode-kode koreksi, dan lain-lain.
c. Kontrol Konektivitas
Membangun hubungan komunikasi berupa pengiriman data dan mengakhiri hubungan dari pengirim ke penerima.
d. Flow Control
Fungsi dari Flow Control adalah sebagai pengatur jalannya data dari pengirim ke penerima.
e.    Error Control
Tugasnya adalah mengontrol terjadinya kesalahan sewaktu data dikirimkan.
f. Pelayanan Transmisi
Fungsinya adalah memberikan pelayanan komunikasi data yang berhubungan dengan prioritas dan keamanan data.
b.   Penjelasan Konsep RPC (Remote Procedure Call)
Remote Procedure Call (RPC) adalah sebuah metode untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan akses 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 dirancang untuk membuat client/server interaksi lebih aman dan lebih mudah seperti keamanan, sinkronisasi, dan data mengalirkan menangani, ke dalam suatu standar yang umum.

c.    Studi Kasus pada RCP (Remote Procedure Call)

Protokol RPC digunakan untuk membangun aplikasi klien-server yang terdistribusi. Protokol ini didasarkan pada memperluas konsep konvensional dari suatu prosedur dimana nantinya prosedur ini dapat dipanggil dimana pemanggil tidak harus mempunyai alamat yang sama dengan yang lokasi dimana prosedur ini dipanggil. Dimana proses ini dapat dilakukan pada sistem yang sama atau sistem yang berbeda namun terhubung pada jaringan. Namun terdapat kelemahan didalam bagian dari RPC yang berhubungan dengan pertukaran message melalui TCP/IP. Kegagalan terjadi dikarenakan karena penanganan kesalahan pada message yang berisi informasi yang salah. Hasil dari kelemahan ini berakibat pada bagian antar-muka RPC, yaitu bagian yang mendengarkan port RPC yang di-enable.

d.   Konsep Terdistribusi
Ada dua jenis basis data terdistribusi, yaitu homogen dan heterogen. Basis data homogen yaitu sistem dimana setiap tempat menjalankan tipe DBMS yang sama, sedangkan basis data heterogen yaitu sistem dimana setiap tempat yang berbeda menjalankan DBMS yang berbeda baik Relational DBMS atau non Relational DBMS. Dua arsitektur alternatif DBMS terdistribusi adalah client-server dan collaboration server.
Dua arsitektur alternatif DBMS terdistribusi adalah client-server dan collaboration server:

·         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.
  • Collaboration Server
Proses client cukup komplek dan terjadi overlap dengan server, sehingga perbedaan antara client dan server menjadi jelas. Untuk mengurangi perbedaan diguankan alternatif arsitektur client-server yaitu sistem Collaboration Server. Pada sistem ini terdapat sekumpulan server basis data, yang menjalankan transaksi data lokal yang bekerjasama mengeksekusi transaksi pada beberapa server.

  • Fragmentasi
Fragmentasi terdiri dari relasi yang dibagi ke relasi atau fragmen yang lebih kecil dan mengirim fragmen, pada beberapa tempat. Terdapat dua macam fragmentasi, fragmentasi horizontal dan fragmentasi vertikal. Pada fragmentasi horisontal, setiap fragmen terdiri dari sebuah subset baris dari relasi asal. Pada fragmentasi vertikal, setiap fragment terdiri dari sebuah subset kolom dari relasi asal.
Objek interface
Set dari beberapa fungsi tersedia untuk invocation dalam sebuah proses, yang dispesifikasikan dengan satu atau lebih interface definition. Interface definition, memiliki konsep yang hampir sama dengan beberapa bahasa (Modula, C++, Java). Dalam bentuk basic dari arsitektur client-server. Setiap proses server terlihat seperti sebuah entitas dengan interface yang tetap, disertai pendefinisian fungsi-fungsi yang dapat diminta. Dalam bahasa berbasis objek, seperti bahasa C++ dan bahasa Java, dengan penambahan proses-proses terdistribusi yang dapat dikonstruksi dalam sebuah metode yang berbasis objek. Beberapa objek dapat dienkapsulasi dalam server atau proses peer, dan mereferensikan ke server melewati beberapa proses yang lain, sehingga metode-metode dapat diakses dengan remote invocation
3.    Konsep Proses pada sistem terdistribusi bedasarkan:
Dalam sistem terdistribusi proses adalah program yang sedang dieksekusi atau dengan bahasa lain yaitu task, banyak program yang sedang dijalankan, masing-masing mendapat bagian memori dan kontrol sendiri.
a.    Thread
Thread adalah sebuah pengontrol aliran program pelaksanaan program dengan menggunakan kendali tunggal. Operasi yang paling modern saat ini adalah sistem yang banyak sekali menyediakan berbagai cara, dan memungkinkan suatu proses terkendali dengan baik. Thread bermanfaat untuk Multithreading yang berguna untuk Multiprocessor dan Single processor.
Implementasi Thread :
1.        Thread level kernel.
Keunggulan:
-     Memudahkan koordinasi multithread seperti proses server.
-          Tidak seboros kumpulan proses tradisional.
Kelemahan:
-     Operasi manajemen thread sangat lebih boros.
-     Kernel harus menyediakan semua feature.

2.    Thread level pemakai.

Keunggulan :
-          Kinerja luar biasa bagus disbanding thread level kernel.
-          Tidak diperlukan modifikasi kernel.
-          Fleksibelitas tinggi.
Kelemahan :
-          Tidak manfaatkan multiprocessor.
-          Untuk aplikasi dengan keterlibatan kernel yang kecil.
-          Mengharuskan nonblocking system call.

3.    Contoh penggunaan thread dalam aplikasi database:

                Keuntungannya
Menjalankan command di Delphi tanpa mempengaruhi kinerja user clientyaitu pada penyimpanan transaksi yang seolah-olah aplikasi berhenti/hang, meskipun sudah memakai script SQL dan memakai koneksi berbeda tapi tetap saja terasa meski hanya beberapa detik saja. Hal ini tentu saja akan merepotkan user jika transaksi yang harus dimasukkan terbilang banyak dan terdiri dari banyak intruksi, maka diperlukan Thread untuk menanganinya.
Multithreaded server

Program dengan satu alur eksekusi disebut dengan program sekuensial. Program yang demikian hanya memiliki satu titik eksekusi pada tiap saat. Sedangkan program yang memiliki lebih dari satu alur eksekusi pada tiap saat disebut dengan program konkuren. Tiap unit alur eksekusi dari program konkuren disebut dengan thread. Thread dapat menciptakan thread baru lainnya ataupun membunuh thread yang sudah ada. Thread memberikan ilusi adanya sejumlah aktivitas yang berjalan pada saat bersamaan.

Multithreaded server memiliki arti dimana thread bisa digunakan dalam waktu yang bersamaan misalnya menggunakan sejumlah thread dalam program, antara lain: kemampuan melakukan sejumlah tugas secara simultan dan tak bergantung satu sama lain.Misalkan satu thread melakukan penggambaran animasi secara background, sedangkan thread lain menangani inputan user lewat keyboard. Selain itu thread dapat meningkatkan throughput aplikasi, memperbaiki waktu tanggapan (responsiveness) aplikasi dan kemampuan untuk menggunakan sumber daya sistem secara efisien.
b.        Client – server
Client-Server adalah arsitektur jaringan yang memisahkan client dengan server. Masing-masing client dapat meminta data atau informasi dari server.
Arsitektur jaringan Client Server merupakan model konektivitas pada jaringan yang membedakan fungsi komputer sebagai Client dan Server. Arsitektur ini menempatkan sebuah komputer sebagai Server. Nah Server ini yang bertugas memberikan pelayanan kepada terminal-terminal lainnya tang terhubung dalam system jaringan atau yang kita sebut Clientnya. Server juga dapat bertugas untuk memberikan layanan berbagi pakai berkas (file server), printer (printer server), jalur komunikasi (server komunikasi).

Model-model arsitektur client server
Ada beberapa model client/server yang penting untuk diketahui, yaitu:
Arsitektur Mainframe pada arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat besar, baik memori, processor maupun media penyimpanan. Melalui komputer terminal, pengguna mengakses sumber daya tersebut.
Arsitektur File Sharing pada arsitektur ini komputer server menyediakan file-file yang tersimpan di media penyimpanan server yang dapat diakses oleh pengguna. Arsitektur file sharing memiliki keterbatasan, terutama jika jumlah pengakses semakin banyak serta ukuran file yang di shaing sangat besar.
Arsitektur Client/ Server, karena keterbatasan sistem file sharing, dikembangkanlah arsitektur client/server. Salah satu hasilnya yaitu berupa software database server yang menggantikan software database berbasis file server. Dikenalkan pula RDBMS (Relational Database Management System). Dengan arsitektur ini, query data ke server dapat terlayani dengan lebih cepat karena yang ditransfer bukanlah file, tetapi hanyalah hasil dari query tersebut. RPC (Remote Procedure Calls) memegang peranan penting pada arsitektur client/server.
Model Two-tier, model Two-tier terdiri dari tiga komponen yang disusun menjadi dua lapisan : client (yang meminta serice) dan server (yang menyediakan service). Tiga komponen tersebut yaitu :
1. User Interface. Adalah antar muka program aplikasi yang berhadapan dan digunakan langsung oleh user.
2. Manajemen Proses.
3. Database.
Model ini memisahkan peranan user interface dan database dengan jelas, sehingga terbentuk dua lapisan.
twotier.gif
Pada gambar tersebut, user interface yang merupakan bagian dari program aplikasi melayani input dari user. Input tersebut diproses oleh Manajemen Proses dan melakukan query data ke database (dalam bentuk perintah SQL). Pada database server juga bisa memiliki Manajemen Proses untuk melayani query tersebut, biasanya ditulis ke dalam bentuk Stored Procedure.
Model Three-tier Pada model ini disisipkan satu layer tambahan diantara user interface tier dan database tier. Tier tersebut dinamakan middle-tier.

thtrcs.gif

c.    Agent
Agent merupakan suatu entitas software komputer yang memungkinkan user (pengguna) untuk mendelegasikan tugas kepadanya secara mandiri (autonomously), agent juga memiliki arti bahwa agent harus bisa berjalan dalam kerangka lingkungan jaringan (network environment).
Dari sini ada dua point yang bisa diambil yaitu:
· Agent mempunyai kemampuan untuk melakukan suatu tugas/pekerjaan.
·      Agent melakukan suatu tugas/pekerjaan dalam kapasitas untuk sesuatu, atau untuk orang lain.
Dari segi teknologi,  agent memiliki karakteristik yang sangat erat kaitanya dengan teknologi saat ini,  tentu tidak semua karakteristik dan atribut terangkum dalam satu agent. Pada dasarnya daftar karakteristik dan atribut dibawah adalah merupakan hasil survey dari karakteristik yang dimiliki oleh agent-agent yang ada pada saat ini, berikut karakteristik agent:
1.  Autonomy: Agent dapat melakukan tugas secara mandiri dan tidak dipengaruhi secara langsung oleh user, agent lain ataupun oleh lingkungan (environment). Untuk mencapai tujuan dalam melakukan tugasnya secara mandiri, agent harus memiliki kemampuan kontrol terhadap setiap aksi yang mereka perbuat, baik aksi keluar maupun kedalam. Dan satu hal penting lagi yang mendukung autonomy adalah masalah intelegensi (intelligence) dari agent.
2.        Intelligence, Reasoning, dan Learning: Setiap agent harus mempunyai standar minimum untuk bisa disebut agent, yaitu intelegensi (intelligence). Dalam konsep intelligence, ada tiga komponen yang harus dimiliki: internal knowledge base, kemampuan reasoning berdasar pada knowledge base yang dimiliki, dan kemampuan learning untuk beradaptasi dalam perubahan lingkungan.
3.    Mobility dan Stationary: Khusus untuk mobile agent, dia harus memiliki kemampuan yang merupakan karakteristik tertinggi yang dia miliki yaitu mobilitas. Berkebalikan dari hal tersebut adalah stationary agent. Bagaimanapun juga keduanya tetap harus memiliki kemampuan untuk mengirim pesan dan berkomunikasi dengan agent lain.
4.        Delegation: Sesuai dengan namanya dan seperti yang sudah kita bahas pada bagian definisi, agent bergerak dalam kerangka menjalankan tugas yang diperintahkan oleh user. Fenomena pendelegasian (delegation) ini adalah karakteristik utama suatu program disebut agent.
5.    Reactivity: Karakteristik agent yang lain adalah kemampuan untuk bisa cepat beradaptasi dengan adanya perubahan informasi yang ada dalam suatu lingkungan (enviornment). Lingkungan itu bisa mencakup: agent lain, user, adanya informasi dari luar, dsb.
6.        Proactivity dan Goal-Oriented: Sifat proactivity boleh dikata adalah kelanjutan dari sifat reactivity. Agent tidak hanya dituntut bisa beradaptasi terhadap perubahan lingkungan, tetapi juga harus mengambil inisiatif langkah penyelesaian apa yang harus diambil. Untuk itu agent harus didesain memiliki tujuan (goal) yang jelas, dan selalu berorientasi kepada tujuan yang diembannya (goal-oriented).
7.        Communication and Coordination Capability: Agent harus memiliki kemampuan berkomunikasi dengan user dan juga agent lain. Masalah komunikasi dengan user adalah masuk ke masalah user interface dan perangkatnya, sedangkan masalah komunikasi, koordinasi, dan kolaborasi dengan agent lain adalah masalah sentral penelitian Multi Agent System (MAS).
    Bahasa komunikasi agent yaitu menggunakan bahasa pemograman, bagaimanapun juga setiap bahasa pemrograman memiliki karakteristik sendiri sesuai dengan paradigma pemrograman yang dia anut. Sehingga pemakaian bahasa permrograman yang kita pakai akan menentukan keberhasilan dalam implementasi agent sesuai yang kita harapkan.
Ditarik dari beberapa petunjuk diatas, para peneliti merekomendasikan bahasa
pemrograman berikut untuk mengimplementasikan software agent:
Java dan Telescript
Beberapa peneliti memberikan petunjuk tentang bagaimana karakteristik bahasa pemrorgaman yang sebaiknya kita pakai. Petunjuk-petunjuk tersebut adalah:
  1. Object-Orientedness: Karena agent adalah berhubungan dengan obyek, maka bagaimanapun juga agent harus diimplementasikan kedalam pemograman yang berorientasi obyek (object-oriented programming language).
  2. Platform Independence: Idealnya bahasa pemrograman yang dipakai untuk implementasi adalah yang terlepas dari platform, atau dengan kata lain program tersebut harus bisa dijalankan di platform apapun (platform independence).
  3. Communication Capability: Pada saat berinteraksi dengan agent lain dalam suatu lingkungan jaringan (network environment), tentu saja diperlukan kemampuan untuk melakukan komunikasi secara fisik. Sangat lebih baik seandaianya bahasa pemrograman mensupport pemrograman untuk network dan komunikasinya.
  4. Security: Faktor keamanan (security) juga hal yang harus diperhatikan dalam memilih bahasa pemrorgaman untuk implementasi software agent. Terutama untuk mobil agent, diperlukan bahasa pemrograman yang mensupport level-level keamanan yang bisa membuat agent bergerak dengan aman.
  5. Code Manipulation: Beberapa aplikasi software agent memerlukan manipulasi kode program secara runtime. Bahasa pemrograman untuk software agent sebaiknya juga harus bisa memberikan support terhadap masalah ini.
4.        Sistem Operasi bekerja dalam sistem Terdistribusi
a.        Fungsi Sistem Operasi (SO)

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.
b.        Komponen Inti SO dan fungsi kernel
Komponen sistem operasi terdiri dari:
a. Manajemen Proses
Proses 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.
b.    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.
c.    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)


d.    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.
e.    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 secondary-storage yang bersifat permanen dan mampu menampung banyak data. Contoh dari secondary-storage adalah harddisk, disket, dan lainnya.
f.     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.
specify the controls to be imposed.
provide a means of enforcement.
g.      Command-Interpreter System

Sistem Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements umumnya disebut:  control-card interpreter, command-line interpreter, dan UNIX shell.
h.      Jaringan

Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau clock, tiap prosesor mempunyai memori sendiri.

Fungsi Kernel
Dalam sebuah perangkat komputer, kernel merupakan komponen inti dari Sistem Operasi yang berjalan dalam perangkat tersebut. Kernel bertugas untuk mengatur pembagian sumber daya sistem; komunikasi antara komponen hardware dan software. Kernel menghubungkan antara software aplikasi dan hardware komputer. Ia menyediakan abstraction layer pada level terendah untuk resource-resource seperti memori, prosesor dan perangkat I/O di mana suatu software aplikasi harus mengontrol resource-resource tersebut agar dapat berfungsi.

c.    Konsep Proses dan Thread dalam sistem operasi
Konsep Proses
Proses merupakan program yg sedang dieksekusi, eksekusi proses berlangsung secara sekuensial. Proses adalah program yang sedang dieksekusi. Eksekusi proses dilakukan secara berurutan. Dalam suatu proses terdapat program counter, stack dan daerah data.
Pada saat proses dieksekusi, akan terjadi perubahan status. Status proses didefiniskan sebagai bagian dari aktivitas proses yang sedang berlangsung saat itu. Status proses terdiri dari :
a. New: proses sedang dibuat.
b. Running: proses sedang dieksekusi.
c. Waiting: proses sedang menunggu beberapa event yang akan terjadi.
d. Ready: proses menunggu jatah waktu dari CPU untuk diproses.
e. Terminated: proses telah selesai dieksekusi.
Gambar perubahan status proses
Konsep Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multi-threads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.

5.    Pembahasan tentang model dasar untuk File Service
a.    Pemahaman file service terdistribusi

File adalah kumpulan informasi yang berhubungan dan tersimpan dalam secondary storage. 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.
b.   Komponen-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, terdiri dari:
a.    Location Independence : File dapat dipindahkan tanpa penggantian nama
b.        Hal yang umum untuk penamaan file dan directori : Mesin + nama path e.g / machine / path atau machine : path. Mounting File sistem secara remote kedalam hirarki local file. Single name space yang sama pada semua mesin.
c.         Dua level penamaan :Nama simbolik yang dilihat user dan nama binary yang dilihat oleh sistem.

c.       Interface pada file service

Sebuah file server menyediakan file service ke client. Dari sisi client terdapat interface untuk file service dalam hal operasi primitif file, seperti membuat file (create), menghapus(delete) dan read / write file. Komponen perangkat keras utama yang mana file server mengontrolnya adalah sebuah local storage (umumnya disk drive / HDD). Ditempat itulah file-file tersimpan dan dari tempat tersebut request client meretrive file. Pada DFS client,server dan juga perangkat penyimpanan merupakan mesin terpisah dalam sebuah lingkungan terdistribusi (Intranet). Jadi, aktifitas layanan (service) dibawa melewati jaringan (network),jadi selain sistem memiliki satu data terpusat, sistem memiliki beberapa perangkat penyimpanan independent. Konfigurasi konkret dan juga implementasi dari sebuah DFS dapat beragam bentuknya. Dalam beberapa konfigurasi, server berjalan sebagai dedicated machine (layanan terpusat) atau juga menjadi server dan client. DFS dapat diimplementasikan sebagai bagian dari Sistem Operasi Terdistribusi dengan sebuah layer software yang tugasnya mengatur komunikasi antara sistem operasi konvensional dan file system.Parameter untuk mancapai DFS adalah transparansi. Secara ideal, DFS terlihat sebagai bentuk file system terpusat, faktor keseragaman (multiplicity) dan penyebaran server serta perangkat penyimpanan tidak terlihat oleh user. Oleh karena itu interface client yang digunakan program tidak akan membedakan antara file local dan remote.

6.    Pembahasan tentang Name Service yang digunakan client dalam proses pengalamatan,segi:
a.             Pemahaman  konsep dasar  name service
Name Service dalam Sistem terdistribusi merupakan layanan penamaan yang berfungsi untuk menyimpan naming context, yakni kumpulan binding nama dengan objek, tugasnya untuk me-resolve nama. Name Service memiliki konsentrasi pada aspek penamaan, dan pemetaan antara nama & alamat. Resource yang dipakai dalam Name Service adalah: komputer, layanan, remote object, berkas, pemakai.
Contoh naming pada aplikasi sistem terdistribusi:
  • URL untuk mengakses suatu halaman web.
  • Alamat e-mail utk komunikasi antar pemakai.

b.      Pengenalan Model Name Service

Model name service pada sistem terdistribusi merujuk pada penamaan aplikasi yang tersimpan dalam suatu sistem.contoh pada penamaan ini seperti pemberian URL untuk mengakses suatu halaman web dan Alamat e-mail untuk komunikasi antar user.fungsi dari name service ini adalah sebagai pemberi layanan identitas bagi resources yang terdapat dalam sistem.agar posisi resource tersebut terlihat jelas dan tidak membingungkan user dalam proses pencarian.

7.    Pembahasan tentang Time & Coordination dalam sister, bahas lebih detil dari segi:
a.      Pengetahuan 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. Jika dihadapkan pada suatu tekanan, kristal tersebut akan berosilasi pada frekuensi tertentu bergantung pada jenis kristal dan bagaimana kristal tersebut dipotong serta seberapa besar tekanan yang diberikan. Terdapat 2 register yang berasosiasi dengan kristal tersebut. Sebuah counter dan holding register. Setiap interript akan diregenerasi dan counter akan kembali terisi oleh nilai yang terdapat pada holding register. Dengan begini sangat memungkinkan untuk memrogram sebuah timer untuk meregenerasi 60 interrupt tiap detiknya atau sesuai dengan frekuensi yang diinginkan. Setiap interrupt disebut dengan satu clock tick.
Synchronisation
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.

b.      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
Jika kita melihat sistem terdistribusi sebagaikoleksi (mungkin proses multithreaded, maka bagian komputasi dari sistem terdistribusi dibentuk oleh proses, masing-masing terkait dengan aktivitas komputasi spesifik, yang pada prinsipnya, dilakukan secara independen dari kegiatan lainnya proses. Dalam model ini, bagian koordinasi sistem terdistribusi menangani komunikasi kerjasama antara proses. Membentuk perekat yang mengikat kegiatan yang dilakukan oleh proses menjadi keseluruhan.

c.    Perbedaan Model Sinkronisasi dan Asinkronisasi

Sistem basis data terdistribusi dapat menyimpan duplikat dari data yang sama dalam site yang berbeda agar perolehan informasi yang semakin cepat dan toleransi kesalahan. Proses ini disebut replikasi. Replikasi pada relasi bersifat redundan pada dua atau lebih situs. Replikasi pada relasi disebut replikasi penuh bila relasi tersebut disimpan pada semua situs. Basis data disebut redundan penuh jika tiap-tiap site mengandung duplikat dari keseluruhan basis data.
Replikasi dilakukan karena memiliki kelebihan sebagai berikut:
  • jika situs asli yang menyimpan relasi R mengalami kegagalan, relasi R tetap dapat diakses melalui replikanya
  • query pada relasi R dapat berjalan secara paralel di simpul (situs) yang berbeda
  • lebih sedikit transfer data, yaitu tidak perlu lagi mengambil data suatu relasi melalui jaringan karena sudah ada replika dalam situs lokal.
Sementara itu, dalam melakukan replikasi, ada dua strategi, yaitu
  • 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.

8.    Pembahasan tentang bagaimana server mengelola Share Data
a.    Konsep dan operasi Shared Data antara server dan client

Dalam sistem terdistribusi, beberapa komputer yang berbeda saling terhubung satu sama lain melalui jaringan sehingga komputer yang satu dapat mengakses dan menggunakan sumber daya yang terdapat dalam situs lain. Misalnya, user di komputer A dapat menggunakan laser printer yang dimiliki komputer B dan sebaliknya user di situs B dapat mengakses file yang terdapat di komputer A.
Konsep  Sharing Client – Server
Jaringan client atau server adalah     jaringan dimana    komputer client bertugas    melakukan permintaan data dan server bertugas melayani permintaan tersebut.
Client
Ø  User akan membuat permintaan melalui software client. Aplikasi ini berfungsi :
Ø  Memberikan interface bagi user untuk melakukan jobs.
Ø  Format request data ke bentuk yang dapat dimengerti oleh server
Ø  Menampilkan hasil yang diminta pada layar

Server
Jaringan client atau server, server khusus digunakan untuk pemrosesan, penyimpanan dan manajemen data. Server bertugas menerima request dari client, mengolahnya, dan mengirimkan kembali hasilnya ke client.
Untuk itu, server membutuhkan komputer khusus dengan spesifikasi hardware yang jauh lebih baik dan bertenaga dibandingkan hardware untuk client karena komputer harus mampu melayani :
Ø  Request secara simultan dalam jumlah besar
Ø  Aktivitas manajemen jaringan
Ø  Menjamin keamanan pada resource jaringan


b.   Proses Layanan pada Saat Terjadi Crash atau Fault Tolerance & Data Transaction dan Urutan Operasi yang Dijalani Oleh Server
Sebuah kecelakaan (atau sistem crash) dalam komputasi adalah suatu kondisi di mana sebuah komputer atau program, baik aplikasi atau bagian dari sistem operasi, berhenti berfungsi dengan baik, sering keluar setelah menghadapi kesalahan. Seringkali program menyinggung mungkin muncul untuk membekukan atau hang sampai layanan pelaporan kecelakaan dokumen rincian kecelakaan itu. Jika program adalah bagian penting dari kernel sistem operasi, seluruh komputer dapat kecelakaan. Hal ini berbeda dari hang atau membekukan dimana aplikasi atau OS terus berjalan tanpa respon jelas untuk masukan.
Banyak crash adalah hasil dari eksekusi instruksi mesin tunggal, tetapi penyebab ini berlipat ganda. Penyebab khas adalah ketika program counter diatur ke alamat yang salah atau buffer overflow menimpa sebagian kode program karena bug sebelumnya. Dalam kedua kasus, itu cukup umum untuk prosesor untuk mencoba untuk mengeksekusi data atau nilai memori acak. Karena semua nilai data adalah mungkin tetapi hanya beberapa nilai instruksi valid, ini sering mengakibatkan pengecualian instruksi ilegal.

C. Konsep Dasar 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.
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.

6 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. adaa tidak sistem terdistubisinya yg sudah berupa sistem bisa dag kamu share

    ReplyDelete
  3. banyak, ada Logical Clock & Synchronisation, server mengelola Share Data & Transaction antara client-client, dan masi banyak lagi sistem nya. untuk pemahaman detail mohon di pelajari tentang sinkroniasi ya :) semoga bermanfaat

    ReplyDelete
  4. wah lengkap sekali gan pembahasan tentang Sistem Terdistribusi, kebetulan saya ada tugas buat makalah, makasih gan sharing ilmunya ^^

    ReplyDelete
  5. kalau contoh2 gosip protokol kayak apa yah ?

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete