Anda di halaman 1dari 48

BAB I

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.

Openness (Keterbukaan)
Sebuah keterbukaan dalam system 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 sedangdigunakan 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


Gambar 1.2 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.

• 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
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 integrase berbagai komponen yang dibuat oleh programmer atau vendor yang
berbeda.

Keamanan
 Shared resources & transmisi informasi rahasia perlu dilengkapi dengan enkripsi. Cegah
denial of service.

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

Penanganan Kegagalan
 Setiap proses (computer atau jaringan) dpt mengalami kegagalan secara independen.
Komponen lain harus tetap berjalan dengan baik.

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 sebagai satu sistem
saja.
Accesstransparency : Local & remote resources dapat diakses dengan operasi yang sama.
BAB II
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 computer 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,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
}
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.
 Penanganan asynchronous proseccing menjadi baik.
 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).

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
6. Communication and Coordination Capability3.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).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
• Tcl/Tk, Safe-Tcl, Agent-Tcl
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 computer 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 :
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.

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-cardinterpreter, 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
c. Waiting : proses sedang menunggu suatu kondisi tertentu untuk bisa berjalan.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.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.

Keuntungan Thread
Gambar 4.3 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)


Pemberhentian target Thread dapat dilakukan dengan 2 cara :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).
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.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.– 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 mount terlebih dahulu agar remote directory
dapat diakses secara transparan.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
– Congestion (Traffic yang tinggi bisa menyebabkan akses lambat)
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.
Penguraian Naming Domains untuk mengakses resource dari URL

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).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.
✓ Proxy dapat menyimpan pointer migrasi suatu obyek.
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.
2. Non-recursive and Recursive server-controlled navigation

26
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
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)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)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)
Tiap situs menyimpan log untuk tujuan recovery4. 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 proseselection 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.
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.
Manfaat Share DataWalaupun 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-Host tersebut dengan harapan Server-
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 ).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.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.
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 :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.
Pengoperasian yang terpisah dan kontrol yang terpusatMengijinkan pengoperasian pengolahan
data yang terdistribusi yang ditingkatkan dengan pelayanan dan database yang terpusat,
dengan berbagai tingkat kontrol yang terpusat.
Produktivitas Pemakai
Menyediakan teknik dan bahasa sehingga pemakai dapat memberi hasil yang maksimum dalam
menggunakan sistem komputer.
Pengembangan aplikasi oleh kelompok pemakai
Menyediakan infrastruktur bagi kelompok pemakai untuk mengembangkan aplikasinya secara
mudah dan fleksibel dengan pengontrolan untuk mencegah masalah kompabilitas.
Dialog Terminal
Membuat terminal mudah digunakan dengan struktur dialog yang menghasilkan intelegensia yang
terdistribusi.
Akses untuk sumber daya dan data yang jaraknya jauh
Memudahkan user lokal untuk mengakses berbagai sumber daya yang berguna dari lokasi yang
berbeda, termasuk program dan data.
Jarak menjadi tidak nyata
Membuat jarak menjadi tidak nyata dengan menggunakan jaringan yang sesuai rancangannya.
Ketersediaan (availability)
Menghindari kegagalan sistem yang dapat dilihat oleh pemakai dan memaksimumkan
ketersediaan interface sistem bagi pemakai.
Privacy dan Keamanan
Mencegah pengaksesan data dan sumber daya tanpa ijin dan melindungi data dari kegagalan
maupun tindak kejahatan.
Audit
Menjamin peng-update-an record yang penting, seperti data keuangan, yang dapat di audit
dengan penuh.
Ketepatan dan Konsistensi
Menggunakan kontrol ketepatan pada semua input, dan mencegah terjadinya banyak versi
dari data yang sama yang tersedia bagi pemakai dalam tingkat peng- update-an yang berbeda.
Kemudahan pengubahan
Menyadari bahwa sistem terdistribusi akan berkembang dan berubah dengan konstan, dan
mendukung perubahan ini tanpa perusakan dan pengeluaran. Proteksi
Program dan struktur data logik yang ada tidak perlu dikerjakan kembali ketika perubahan
sistem atau program lain dibuat.
Penyembunyian kerumitan
Sistem sedapat mungkin menyembunyikan kerumitan dari user.
BAB 10
PARALLEL PROCESSING

10.1. Konsep Parallel


Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk
menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan
lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit
membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di
antaranya.
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan
memanfaatkan beberapa komputer secara bersamaan. Biasanyadiperlukan saat kapasitas yang
diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena
tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini
diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan
jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan
aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk
mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus
membuat pemrograman paralel untuk merealisasikan komputasi.
Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi
perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun
banyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel adalah
untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan
(dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
Komputasi paralel membutuhkan:
algoritma
bahasa pemrograman
compiler
Sebagian besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai
lebih dari satu. Bahkan juga ada komputer dengan ribuan CPU. Komputer dengan satu CPU dapat
melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan.
Namun, parallel processing ini memerlukan software canggih yang disebut distributed processing
software. Parallel processing berbeda denganmultitasking, yaitu satu CPU mengeksekusi
beberapa program sekaligus. Parallel processing disebut juga parallel computing.

10.2. Arsitektur Parallel


Sesuai taksonomi Flynn, seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4
:
A. SISD (Single Instruction Single Data Stream) Arus Instruksi Tunggal dan Data Tunggal
B. SIMD (Single Instruction Multiple Data Stream) Arus Instruksi Tunggal dan Multiple Data
C. MISD (Multiple Instruction Single Data Stream) Arus Multiple Instruksi dan Data Tunggal
D. MIMD (Multiple Instruction Multiple Data Stream) Arus Multiple Instruksi dan Multiple Data
1. Organisasi Prosesor SISD
Prosesor tunggal
Aliran instruksi tunggal
Data disimpan dalam memori tunggal
Uni-processor

Keterangan:
CU : Control Unit
IS : Instruction Stream (Arus Instruksi)
PU : Processing Unit (Unit Pengolah yang biasa disebut ALU) DS : Data Stream (Arus Data)
MU : Memory Unit (Unit Memori)
2. Single Instruction, Multiple Data Stream – SIMD
Single machine instruction
Mengontrol eksekusi secara simultan sejumlah elemen-elemen pengolahan Berdasarkan Lock-
step
Setiap pengolahan elemen memiliki hubungan dengan memori data
Setiap instruksi dieksekusi pada kumpulan data yang berbeda oleh prosesor yang berbeda
Prosesor Vector and array

Multiple Instruction, Single Data Stream – MISD Rangkaian dari data


3.

Dikirimkan ke kumpulan prosesor


Setiap prosesor mengeksekusi urutan instruksi yang berbeda
Belum pernah diimplementasikan (komesial)
Multiple Instruction, Multiple Data Stream- MIMD Kumpulan/sejumlah prosesor
4.

Mengeksekusi secara simultan urutan instruksi yang berbeda


Kumpulan data yang berbeda
SMP, Cluster and sistem NUMA

10.3. PVM dan MPI


PVM
PVM (Parallel Virtual Machine) adalah paket software yang mendukung pengiriman pesan
untuk komputasi parallel antar komputer. PVM dapat berjalan diberbagai macam variasi UNIX atau pun
windows dan telah portable untuk banyak arsitektur seperti PC, workstation, multiprocessor dan
superkomputer.Sistem PVM terbagi menjadi dua. Pertama adalah daemon, pvmd, yang berjalan
pada mesin virtual masing-masing komputer. Mesin virtual akan dibuat, ketika User mengeksekusi
aplikasi PVM. PVM dapat dieksekusi melalui prompt UNIX disemua host. Bagian kedua adalah library
interface rutin yang mempunyai banyak fungsi untuk komunikasi antar task . Library ini berisikan
rutin yang dapat dipanggil untuk pengiriman pesan, membuat proses baru, koordinasi task dan
konfigurasi mesin virtual.
Salah aturan main yang penting dalam PVM adalah adanya mekanisme program master dan
slave/worker. Programmer harus membuat Kode master yang menjadi koordinator proses dan Kode
slave yang menerima, menjalankan, dan mengembalikan hasil proses ke komputer master. Kode master
dieksekusi paling awal dan kemudian melahirkan proses lain dari kode master. Masing-masing program
ditulis menggunakan C atau Fortran dan dikompilasi dimasing-masing komputer. Jika arsitektur
komputer untuk komputasi paralel semua sama, (misalnya pentium 4 semua), maka program cukup
dikompilasi pada satu komputer saja. Selanjutnya hasil kompilasi didistribusikan kekomputer lain yang
akan menjadi node komputasi parallel. Program master hanya berada pada satu node sedangkan
program slave berada pada semua node.
Komunikasi dapat berlangsung bila masing-masing komputer mempunyai hak akses ke
filesystem semua komputer. Akses kefile system dilakukan melalui protokol rsh yang berjalan di unix
atau windows. Berikut adalah langkah pengaturan pada masing-masing komputer :
1. Buat file hostfile yang berisi daftar node komputer dan nama user yang akan dipakai untuk
komputasi parallel. Bila nama user pada semua komputer sama misalnya nama user riset
pada komputer C1, C2,C3 dan C4, maka hostfile ini boleh tidak ada. Hostfile ini dapat digunakan
bila nama user di masing-masing komputer berbeda.
2. Daftarkan IP masing-masing komputer pada file /etc/hosts/hosts.allow dan
/etc/hosts/hosts.equiv.
3. Penambahan dan penghapusan host secara dinamis dapat dilakukan melalui konsole PVM.
Bila IP tidak didefinisikan pada hostfile¸ cara ini dapat digunakan.

Program PVM terdiri dari master dan slave, dimana program master dieksekusi paling
awal dan kemudian melahirkan proses lain. PVM memanggil rutin pvm_spawn() untuk melahirkan satu
atau dua proses lebih yang sama. Fungsi-fungsi untuk PVM versi bahasa C mempunyai rutin awalan
pvm. Pengiriman dan penerimaan task diidentifikasi dengan TID (Task Identifier). TID ini bersifat unik
dan digenerate oleh pvmd lokal. PVM berisi beberapa rutine yang mengembalikan nilai TID sehingga
aplikasi user dapat mengidentifikasi task lain disistem.

PI

Message Passing Interface (MPI) adalah sebuah standard pemrograman yang


memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara parallel
dengan spesifikasi library pemrograman untuk meneruskan pesan (message- passing), yang diajukan
sebagai standar oleh berbagai komite dari vendor, pelaksana dan Pemakai. MPI menyediakan fungsi-
fungsi untuk menukarkan antar pesan.
Message Passing Interface bertugas untuk mengirim data antar komputer di dalam sistem
paralel (biasanya disebut sebagai node atau host). Job scheduler seperti yang tersirat dari namanya
bertugas menerima tugas dari user dan menjadwalkan tugas tersebut pada beberapa node didalam
sistem parallel sesuai kebutuhan.
MPI digunakan secara luas mengingat:
a. telah memiliki standar;
b. dirancang berkinerja tinggi pada mesin-mesin paralel;
c. tersedia secara bebas maupun komersial;
d. dikembangkan banyak pihak;
e. informasi penerapan dan pengujian dalam berbagai bahasa pemrograman dan sistem telah
tersedia.

Kegunaan MPI yang lain adalah :


1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak
begitu cocok dengan model data parallel.
Kemampuan MPI digunakan untuk menginterpretasikan bahasa pemrograman matrik
kemampuan dynamic linking dari bahasa tersebut. Fungsi library dari paket MPI dapatdigabungkan
dengan dynamic extension dengan cara menghubungkan bahasa pemrograman tersebut dengan
bahasa C, C++, atau FORTRAN. Hal ini telah dilakukan untuk menciptakan toolbox MPI (MPITB) untuk
kebutuhan MATLAB, dan bahasa pemrograman GNU Octave oleh Fernandez Baldomero.
Penggunaan MPITB dengan pertimbangan fungsionalitas dan kelengkapannya disamping fakta
bahwa MPITB dan GNU Octave adalah bebas digunakan bahkan untuk keperluan komersial.
Dalam pemodelan menggunakan message-passing, suatu proses (process) adalah sebuah
pencacah program dan ruang alamat. Proses dapat memiliki banyak thread (pencacah program dan
memory lokal) yang saling berbagi ruang alamat. MPI dalam hal ini berfungsi sebagai alat komunikasi di
antara proses, yang saling memiliki ruang terpisah. Komunikasi ini terutama berupa sinkronisasi dan
perpindahan data antar proses. Informasi dari domain komunikasi seluruh proses disimpan di sebuah
variabel yang disebut commun- cators, misalnya MPI_COMM_WOLRD yang mencakup keseluruhan
proses. Paralelisme dalam MPI bersifat Multiple Instruction Multiple Data (MIMD).
Pemrograman paralel menggunakan MPI bersifat eksplisit, yaitu ditentukan dalam program
secara jelas. Dalam melakukan komunikasi data antar proses, pembuat program perlu menentukan
mekanisme apa yang digunakan dari fungsi-fungsi yang tersedia. Disediakan beberapa fungsi dasar
untuk keperluan ini, yaitu MPI_Send (mengirim), MPI_Recv (menerima), dan MPI_Sendrecv (mengirim
dan menerima sekali-gus). Fungsi- fungsi ini masuk dalam kelompok ko-munikasi titik-ke-titik (point-to-
point).
Komunikasi dalam MPI bersifat kooperatif, yaitu tiap-tiap proses saling bekerjasama. Parameter
data atau message dalam fungsi-fungsi komunikasi memiliki struktur dasar, yaitu:
- Alamat buffer data untuk mengirim atau menerima.
- Ukuran dari buffer data.
- Jenis data pada buffer, berupa konstanta tertentu misalnya MPI_INTEGER,
MPI_CHAR dan MPI_DOUBLE.
- Proses tujuan, berupa suatu integer rank dari proses.
- Tag dari message, dapat digunakan sebagai penanda oleh proses.
Operasi dari fungsi-fungsi komunikasi titik-ke-titik memiliki 2 mode, yaitu blocking dan non-
blocking. Pada bentuk blocking maka proses akan menunggu operasi kirim dan terima data selesai,
sedangkan non- blocking menggunakan event untuk memberitahu proses ketika terjadi kirim atau
terima data. Dalam tiap mode adalah penting untuk menjaga agar setiap proses yang berkomunikasi
tidak mengalami deadlock, yaitu saling tunggu yang tidak berkesudahan. MPI telah memiliki
mekanisme agar deadlock tidak terjadi, tetapi dalamkondisi tertentu ini tidak terhindarkan,
misalnya ketika buffer tujuan penuh atau tidak tersedia.
BAB 11
SECURITY

11.1. DEFINISI SECURITY


11.1.1. DEFINISI DARI SECURITY
Security (keamanan) secara umum adalah serangkaian langkah – langkah untuk menjamin
privasi, integritas dan ketersediaan sumber daya seperti obyek, database, server, proses, saluran, dan
lain – lain yang melibatkan perlindungan benda dan mengamankan proses dan saluran komunikasi.
Tujuan utamanya adalah untuk membatasi akses informasi dan sumber hanya untuk pemakai yang
memiliki hak akses.
Pada sistem terdistribusi juga membutuhkan keamanan (security) fungsinya untuk melindungi
dari kebocoran data (Kerahasiaan data), melindungi dari pengubahan dan interfrensi (Integritas) mis.
Data keuangan yang membutuhkan teknologi ekripsi dan informasi identitas dan mempertahankan
sistem tetap tersedia setiap saat dibutuhkan (Ketersediaan).
Pada sistem terdistribusi ancaman keamanannya antara lain adalah kebocoran (leakage) yaitu
pengambilan informasi oleh penerima yang tidak berhak, pengubahan (tampering) yaitu pengubahan
informasi yang tidak legal, dan perusakan (vandalism) yaitu gangguan operasi sistem tertentu misalnya
Si pelaku tidak mengharap keuntungan apapun. Serangan pada sistem terdistribudi tergantung pada
pengaksesan ke saluran komunikasi yang ada atau membuat saluran baru yang menyamarkan
(masquerade) sebagai koneksi legal.
Penyerangan pada system terdistribusi terbagi menjadi 2, yaitu:
- Penyerangan Pasive, Hanya mengamati komunikasi atau data
- Penyerangan Aktif, Secara aktif memodifikasi komunikasi atau data Pemalsuan atau
pengubahan Email
Metode penyerangannya adalah sebagai berikut :
- Eavesdropping, yaitu mandapatkan duplikasi pesan tanpa ijin
- Masquerading, yaitu mengirim atau menerima pesan menggunakan identitas lain tanpa ijin
mereka
- Message Tampering, yaitu mencegat atau menangkap pesan dan mengubah isinya sebelum
dilanjutkan ke penerima sebenarnya
- Replaying, yaitu menyimpan pesan yang ditangkap untuk pemakaian berikutnya
- Denial of servive, yaitu membanjiri saluran atau sumber lain dengan pesan yang bertujuan
untuk menggagalkan pengaksesan pemakai lainPenyerangan tadi juga sering terjadi pada
transaksi elektronik, maka dari itu keamanan sangat dibutuhkan untuk banyak transsaksi e-
commerce, banking, dan e-mail. Transaksi elektronik dapat aman jika dilindungi dengan
kebijakan dan mekanisme keamanan, Misalnya pembeli harus dilindungi terhadap
penyingkapan kode credit number selama pengiriman dan juga terhadap penjual yang tidak
bersedia mengirim barang setelah menerima pembayaran. Vendor harus mendapatkan
pembayaran sebelum barang dikirim, sehingga perlu dapat memvalidasi calon pembeli sebelum
member mereka hak akses.
Hal – hal di atas akan akan berjalan baik jika dibangun perancangan system yang aman yang
bertujuan untuk mencegah semua serangan yang saat ini diketahui ataupun yang akan datang.
Adapula kriteria rancangan system keamanan yang buruk, yaitu:
· Antarmuka dibuka
· Jaringan tidak aman
· Membatasi waktu dan ruang lingkup setiap kunci rahasia
· Algoritma dan kode program tersedia bagi penyerang
· Penyerang memiliki akses ke sumber
· Meminimalkan computer yang menjadi inti implementasi sistem

11.1.2. TEKNIK KEAMANAN


Enkripsi adalah proses pengkodean pesan untuk menyembunyikan isi. Algoritma enkripsi
modern menggunakan kunci (key). Kunci Kriptografi adalah parameter yang digunakan dalam algoritma
enkripsi dimana hasil enkripsi tidak dapat dideskripsi jika tanpa kunci yang sesuai.
Ada dua tipe Algoritma Enkripsi :
- Shared Secret Key
Pengirim dan penerima harus berbagi kunci dan tidak diberikan kepada orang lain.
- Public/privat key pair
Pengirim pesan menggunakan public key ( kunci yang dipublikasikan ke penerima ) untuk mengenkrip
pesan. Penerima menggunakan privat key yang cocok (miliknya) untuk mendeskrip pesan.

11.1.3. ENKRIPSI DAN DEKRIPSI


- Enkripsi: plaintext ® ciphertext
- Dekripsi: ciphertext ® plaintext
- Komponen sistem kriptografi
algoritma kriptografi: fungsi matematis
kunci + algoritma kriptografi = enkripsi / dekripsi- Keamanan data terenkripsi tergantung pada
algoritma kriptografi: seberapa besar usaha yg hrs dikeluarkan untuk menguraikan ciphertext
kunci: seberapa jauh kerahasiaan kunci dapat dijaga
Kunci yg panjang ® lebih sulit memecahkan algoritma, tapi juga lebih lama waktu
pemrosesannya

11.1.4. LAYANAN AUTENTIKASI


Autentikasi yaitu meyakinkan bahwa seseorang itu benar dia adanya. Tujuan autentikasi:
meyakinkan sebuah layanan hanya digunakan oleh orang-orang yang berhak. Contoh: autentikasi
dengan SIM/KTP untuk membuktikan kebenaran si pembawa
- SIM/KTP digunakan untuk mengakses berbagai layanan
- SIM/KTP sbg alat bukti
- Institusi yg mengeluarkan SIM/KTP
- Sebuah identitas ® nama pemegang SIM/KTP
- Deskripsi (fisis) tentang identitas ybs ® foto
- Lingkup ® KTP hanya berlaku di Indonesia
- Masa berlaku
- Pemakaian SIM/KTP disertai asumsi-asumsi
- Kepercayaan thdp institusi yg mengeluarkan SIM/KTP
- Tidak terjadi pemalsuan-pemalsuan
- Tidak terjadi perubahan data pemegang

11.1.5. TANDA TANGAN DIGITAL


Fungsi mirip dengan tanda tangan biasa
- Menjaga autentikasi (keaslian)
- Menjaga integritas informasi
- Memberikan layanan non-repudiation (atas klaim yg tidak benar)
Implementasi: didasari konsep matematis
- Checksum
checksum = total % (maxval + 1)
Checksum yg cocok belum tentu menjamin bhw data tidak berubah
- Cyclic Redundancy Checks (CRC)
Berbasis pembagian polinomial ® tiap bit pd data merepresentasikan sebuah koefisien
dr polinomial yg sangat besar
Nilai CRC = poli_data % poli_acuan Lebih akurat drpd metode checksum
- Algoritma hash (fungsi searah)
Nilai yg dihasilkan bersifat unik dan sangat sulit diduplikasi
- Sistem kriptografi publik + hash

11.1.6. KRIPTOGRAFI KUNCI SIMETRIS


Satu kunci digunakan dalam proses enkripsi dan dekripsi
Algoritma:
- DES (Data Encryption Standard)
- DEA (Int’l Data Encryption Algorithm)
- RC5
Prinsip kerja
- Pengirim & penerima sepakat menggunakan sistem kriptografi
- Pengirim & penerima sepakat menggunakan satu kunci tertentu
- Dilakukan enkripsi sbl pengiriman teks dan dekripsi stl diterima
- Contoh: Caesar’s Key
Keuntungan
- Mekanisme sederhana
- Kecepatan proses tinggi
Kelemahan
- Keamanan kunci
- Distribusi kunci

11.1.7. KRIPTOGRAFI KUNCI ASIMETRIS


Enkripsi dan dekripsi tidak menggunakan kunci yang sama
Kriptografi kunci publik
o Kunci publik
- Untuk enkripsi
- Didistribusikan kepada publik
o Kunci privat
- Untuk dekripsi
- Bersifat rahasia
Keuntungan
- Keamanan kunci terjaga
Contoh algoritma
- RSA (Rivest-Shamir-Adleman)- Elgamal
- Diffie-Hellman

11.1.8. KRIPTOGRAFI HIBRID


PGP (Pretty Good Privacy)
- Menggabungkan keuntungan sistem kriptografi simetris dan asimetris. Kunci sesi,
kunci privat, dan kunci publik
Cara kerja PGP
- Plaintext dimampatkan (kompresi)
- Pengirim membuat kunci sesi yg bersifat one-time-only dng algoritma
konvensional
- Plaintext terkompresi dienkripsi dng kunci sesi
- Kunci sesi dienkripsi dengan kunci publik
- Ciphertext + kunci dikirimkan
- Kunci sesi didekripsi dng kunci privat
- Kunci sesi digunakan untuk mendekripsi ciphertext
- Hasil deskripsi didekompresi utk mendapatkan plaintext kembali
Keuntungan
- Distribusi kunci terjaga
- Keamanan cukup tinggi krn enkripsi berlapis
- Kecepatan enkripsi & dekripsi tinggi

11.2. MEKANISME DAN TEKNIK SECURITY


11.2.1. MEKANISME KEAMANAN
Untuk dapat mewujudkan layanan keamanan jaringan pengembang system, dapat
menggunakan mekanisme keamanan jaringan. Rekomendasi ITU-T (X.800) juga mendefinisikan
beberapa mekanisme keamanan jaringan. Berikut ini adalah beberapa jenis mekanisme keamanan
jaringan.
· Encipherment (Penyandian)
Encipherment merupakan mekanisme keamanan jaringan yang digunakan untuk
menyembunyikan data. Mekanisme encipherment dapat menyediakan layanan
kerahasiaan data(Confidentiality) meskipun dapat juga digunakan untuk layanan lainnya.
Untuk mewujudkan mekanisme encipherment, teknik Kriptografi dan Steganografi dapat
digunakan. Perlu diketahui, Kriptografi merupakan kumpulan teknik untuk menyembunyikan
pesan itu menjadi pesan tersembunyi. SedangkanSteganografi merupakan kumpulan teknik
untuk menyembunyikan pesan pada media lain, misalnya pada gambar, suara, atau video.
· Keutuhan Data
Mekanisme keutuhan data digunakan untuk memastikan keutuhan data pada unit data
atau pada suatu aliran (stream) data unit. Cara yang digunakan adalah dengan menambahkan
nilai penguji (check value) pada data asli. Jadi ketika sebuah data akan dikirim nilai penguji
dihitung terlebih dahulu dan kemudian data dan penguji dikirim bersamaan. Penerima dapat
menguji apakah ada perubahan data atau tidak dengan cara menghitung nilai penguji data yang
terkirim dan membandingkan nilai penguji yang dihitung dengan nilai penguji yang dikirim
bersamaan dengan data asli. Bila sama penerima dapat menyimpulkan data tidak berubah.
· Digital Signature
Digital Signature merupakan mekanisme keamanan jaringan yang menyediakan cara bagi
pengirim data untuk “menandatangani” secara elektronik sebuah data dan penerima dapat
memverifikasi “tanda tangan” itu secara elektronik. Digital Signature ditambahkan pada
data unit dan digunakan sebagai bukti sumber pengirim dan menghindari pemalsuan (forgery)
tanda tangan.
· Authentication Exchange
Mekanisme ini memberikan cara agar dua entitas dapat saling mengotentikasi dengan cara
bertukar pesan untuk saling membuktikan identitas.
· Traffic Padding
Traffic Padding menyediakan cara untuk pencegahan analisis lalu lintas data pada jaringan
yaitu dengan menambah data palsu pada lalu lintas data.
· Routing Control
Routing Control menyediakan cara untuk memilih dan secara terus menerus mengubah alur
(Route) pada jaringan computer antara pengirim dan penerima. Mekanisme ini
menghindarkan komunikasi dari penguping (eavedropper).
· Notarisasi
Notarisasi (notarization) menyediakan cara untuk memilih pihak ketiga yang terpercaya
sebagai pengendali komunikasi antara pengirim dan penerima.
· Mekanisme kendali akses
Mekanisme kendali akses memberikan cara bagi pengguna untuk memperoleh hak akses
sebuah data. Misalnya dengan table relasi pengguna dan otoritasnya (kemampuan aksesnya).
Sebelumnya kita telah membahas tentang . Maka pada gambar diatas telah dijelaskan
bahwa untuk mewujudkan sebuah layanan keamanan jaringan dibutuhkanmekanisme yang tepat
dan tidak semua mekanisme keamanan jaringan digunakan untuk mewujudkan sebuah layanan
keamanan jaringan. Misalnya Otentikasi diperlukan beberapa mekanisme keamanan jaringan
yaituencipherment, Digital Signature dan Authentication Exchange. Ketika melakukan analisis
kebutuhan terhadap keamanan jaringan, pengembang harus cermat memilih layanan keamanan
jaringan yang tepat untuk memenuhi kebutuhan itu.

11.2.2. MEKANISME SECURITY


Mekanisme Security :
- Mengatur apa yang diijinkan dan tidak diijinkan dlm operasi normal
- Mengatur bgmn subyek dapat mengakses obyek
- Sering bersifat “politis” drpd teknis
- Harus mencerminkan proteksi thdp sistem secara seimbang, komprehen-sif, dan cost- effective
mekanisme pengamananà kebijakan keamanan à- Proses: analisis ancaman
- Analisis ancaman: memperkirakan jenis ancaman dan potensi merusaknya
- Mekanisme pengamanan: implementasi kebijakan keamanan
- Kebijakan keamanan harus berfungsi dengan baik sekaligus mudah dipakai
- Dapat mencegah penyusup pada umumnya
- Mampu menarik pemakai untuk menggunakannya.
Karena sebuah sistem terdistribusi erat kaitannya dengan penggunaan jaringan, tentunya
hal tersebut menjadi sebuah masalah yang penting. Mengapa? Tentunya dalam sebuah sistem
terdistribusi dilakukan berbagi pakai data, dan kita tidak tahu seberapa penting data tersebut dan
kegunaannya bagi masing-masing pemakai.
Masalah tersebut dapat diatasi jika data dapat terjamin keamanannya, karena tujuan utama dari
adanya kemanan adalah untuk membatasi akses informasi untuk pemilik data yang memiliki hak akses.
Ancaman keamanan tersebut dapat berupa:
1. Kebocoran; adanya pengambilan informasi oleh pihak yang tidak berhak
2. Pengubahan informasi yang tidak legal/sah
3. Perusakan informasiSekarang bagaimana kita dapat melindungi transaksi dalam suatu
sistem terdistribusi?
1. Perancangan sistem yang aman.
Hal ini merupakan tujuan yang sulit, namun memiliki tujuan yang pasti, yaitu mencegah semua
serangan-serangan yang saat ini terjadi ataupun yang akan datang.
2. Adanya kebijakan dan mekanisme.
Kebijakan/layanan yang dimaksud adalah seperti: adanya aturan yang mengatur pengaksesan
dan berbagi pakai data dan apa saja prosedur yang diterapkan.Sedangkankebijakan tersebut akan
dapat dijalankan dengan bantuan mekanisme yang dilakukan. Maksudnya adalah prosedur bagaimana
kebijakan tersebut dapat dilakukan. Misalnya: untuk mengakses suatu dokuumen dikontrol dengan
distribusi yang terbatas dan tersembunyi. Kebijakan lebih kearah menspesifikasikan kebutuhan, dan
mekanisme menerapkan spesifikasi kebijakan yang dilakukan.
3. Menggunakan teknik keamanan.
Teknik keamanan yang dimaksud merupakan hal-hal teknis yang harus dilakukan dalam
implementasi pengamanan data. Antara lain:
a. Enkripsi; pengkodean pesan untuk menyembunyikan isi.
b. Certificate; dokumen yang berisi pernyataan yang ditandatangani oleh
pemegangnya.

11.2.3. TEKNIK SECURITY


Keamanan sering dipandang hanyalah merupakan masalah teknis yang melibatkan dapat atau
tidaknya tertembusnya suatu sistem. Keamanan ini sendiri memiliki suatu konsep yang lebih luas yang
berkaitan dengan ketergantungan suatu institusi terhadap institusi lainnya. Di dalam aplikasi, suatu
pembentukan sistem yang aman akan mencoba melndungi adanya beberapa kemungkinan serangan
yang dapat dilakukan pihak lainTeknik Security :
- Dibuatnya Sistem Pendeteksi Intrusi
- Adanya Sniffing (Penyadapan)
- Adanya Scanning (Pemindaian)
- Adanya IP Spoofing
- Anti-Virus
- Firewal
Security atau Keamanan merupakan suatu sistem keamanan yang terdistribusi untuk
melindungi data-data yang penting yang berhubungan dengan komunikasi digital, aktifitas digital, dan
konflik digital. Security diperlukan karena Internet itu rentan terhadap gangguan keamanan karena sifat
Internet yang terbuka, sikap dan pandangan pemakai, dan tidak adanya solusi yang komprehensif.

Solusi Keamanan adalah sebagai berikut :


- Didirikannya Pusat-pusat informasi tentang keamanan, seperti CERT, SecurityFocus, Symantec.
- Adanya milis-milis tentang keamanan sistem. Adanya penggunaan mekanisme deteksi global.
- Adanya pembentukan jaringan tim penanggap insiden di seluruh dunia.- Adanya peningkatan
kesadaran terhadap masalah keamanan.
- Adanya pendidikan bagi pengguna umum. Adanya pelatihan bagi personil teknis
(administrator sistem dan jaringan, CIO, CTO).
Mengapa sistem informasi rentan terhadap gangguan keamanan
- Sistem yg dirancang untuk bersifat “terbuka” (mis: Internet) tidak ada batas fisik dan
kontrol terpusat perkembangan jaringan (internetworking) yang amat cepat.
- Sikap dan pandangan pemakai aspek keamanan belum banyak dimengerti
menempatkan keamanan sistem pada prioritas rendah tidak ada solusi yang komprehensif
Relevansi keamanan sistem informasi obyek kepemilikan yang harus dijaga®o Informasi
sebagai komoditi ekonomi membawa beragam®o Informasi menciptakan “dunia” baru (mis:
Internet) Komunikasi digital (e-mail, e-news, …) dinamika dari dunia nyata Aktifitas digital
(e-commerce, e-learning, …) Konflik digital (cyber war,
…) Konsep-konsep Keamanan
Kebijakan keamanan
- Mengatur apa yang diijinkan dan tidak diijinkan dlm operasi normal
- Mengatur bgmn subyek dapat mengakses obyek
- Sering bersifat “politis” daripada teknis
- Harus mencerminkan proteksi terhadap sistem secara seimbang, komprehen-sif, dan cost-
effective mekanisme pengamanan® kebijakan keamanan ®o Proses: analisis ancaman,
- Analisis ancaman: memperkirakan jenis ancaman dan potensi merusaknya mekanisme
pengamanan: implementasi kebijakan keamanan
- Kebijakan keamanan harus berfungsi dengan baik sekaligus mudah dipakai
- Dapat mencegah penyusup pada umumnya Mampu menarik pemakai untuk mengguna-
kannya Aspek-aspek dalam Masalah Keamanan
Kerahasiaan
- Melindungi obyek informasi dari pelepasan (release) yg tidak sah
- Melindungi obyek resource dari akses yg tidak sah
Integritas
- Menjaga obyek agar tetap dapat dipercaya (trustworthy)
- Melindungi obyek dari modifikasi yang tidak sah
- Untuk menjamin terlaksananya sistem sekuriti yang baik, maka perlu dilakukan tindakan
yang menyeluruh. Baik secara preventif, detektif maupun reaktif.
- Tindakan tersebut dijabarkan sebagai berikut.1. Tindakan Preventif
Melakukan tindakan preventif atau juga lazin disebut dengan interdiction adalah lebih baik dari
pada menyembuhkan lobang sekuriti dalam sistem. Beberapa hal yang dapat dilakukan untuk
mencegah terjadinya security incidents antara lain adalah :
- Membentuk dan menerapkan security policy yang tepat
- Menanamkan pemahaman sekuriti kepada seluruh pengguna
- Mendefinisikan proses otentikasi
- Mendefinisikan aturan-aturan pada firewall dan akses kontrol
- Pelatihan dan penerapan hukum bagi terjadinya pelanggaran sekuriti
- Disain jaringan dan protokol yang aman
- Deteksi kemungkinan terjadinya vulnerability dan dilakukannya perbaikan sebelum timbul
kejadian.
2. Tindakan Detektif
Dengan melakukan deteksi terhadap setiap akses maka tindakan yang tidak diinginkan dapat
dicegah sedini mungkin. Tindakan ini pada dasrnya meliputi kegiatan intelligence dan threat assesment.
Tindakan detektif meliputi :
- Memasang Intrusion Detection System di dalam sistem internal. Pada sistem ini juga dapat
diterapkan teknik data-mining. Penerapan distributed intruder detection sangat disarankan
untuk sistem yang besar.
- Memasang network scanner dan system scanner untuk mendeteksi adanya anomali di dalam
network atau sistem. Analasis jaringan secara real time, untuk mengetahui kemungkinan
serangan melalui packet-packet yang membebani secara berlebihan.
- Memasang content screening system dan antivirus software.
- Memasang audit program untuk menganalisa semua log
- Pengumpulan informasi secara social engineering. Hal ini untuk mendengar issue- issue
tentang kelemahan sistem yang dikelola.
- Perangkat monitor web dan newsgroup secara otomatis. Dapat juga dilakukan proses
monitoring pada channel IRC yang sering digunakan sebagai tempat tukar- menukar infomrasi
kelemahan sistem.
- Membentuk tim khusus untuk menangani kejadian sekuriti
- Melakukan simulasi terhadap serangan dan beban sistem serta melakukan analisis
vulnerabilitas. Membuat laporan analisis kejadian sekuriti.
- Melakukan pelaporan dengan cara mencari korelasi kejadian secara otomatis
3. Tindakan Responsif
Jika alarm tanda bahaya berbunyi, sederetan tindakan responsif harus dilakukan segera
mungkin. Dalam kegiatan ini termasuk pemanfaatan teknik forensik digital.Mekanisme ini
dapat meresponse dan mengembalikan sistem pada state dimana security incidents belum terjadi.
Tindakan responsif meliputi :
- Prosedur standar dalam menghadapi security incidents.
- Mekanisme respon yang cepat ketika terjadi incidents
- Disaster Recovery Plan (DRP), termasuk juga dilakukannya proses auditing.
- Prosedur untuk melakukan forensik dan audit terhadap bukti security incidents.
Untuk informasi sensitif (misal log file, password file dan sebagainya), diterapkan mekanisme
two-person rule yaitu harus minimum 2 orang yang terpisah dan berkualifikasi dapat melakukan
perubahan.
- Prosedur hukum jika security incidents menimbulkan adanya konflik/dispute
- Penjejakan paket ke arah jaringan di atas (upstream).

Anda mungkin juga menyukai