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
- 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
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
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.
- 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.
2. Manajemen Proses.
3. Database.
Model ini memisahkan peranan user
interface dan database dengan jelas, sehingga terbentuk dua lapisan.
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.
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:
- Object-Orientedness: Karena agent adalah berhubungan dengan obyek, maka bagaimanapun juga agent harus diimplementasikan kedalam pemograman yang berorientasi obyek (object-oriented programming language).
- 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).
- 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.
- 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.
- 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.
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.
This comment has been removed by the author.
ReplyDeleteadaa tidak sistem terdistubisinya yg sudah berupa sistem bisa dag kamu share
ReplyDeletebanyak, 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
ReplyDeletewah lengkap sekali gan pembahasan tentang Sistem Terdistribusi, kebetulan saya ada tugas buat makalah, makasih gan sharing ilmunya ^^
ReplyDeletekalau contoh2 gosip protokol kayak apa yah ?
ReplyDeleteThis comment has been removed by the author.
ReplyDelete