Sabtu, 15 Januari 2011

BAB IV

BAB IV
SISTEM OPERASI TERDISTRIBUSI
1. Definisi Sistem Operasi Terdistribusi

Sistem operasi terdistribusi adalah salah satu implementasi dari sistem terdistribusi, di mana sekumpulan komputer dan prosesor yang heterogen terhubung dalam suatu jaringan. Koleksi-koleksi dari objek-objek ini secara tertutup bekerja secara bersama-sama untuk melakukan suatu tugas atau pekerjaan tertentu.

2. Fungsi Sistem Operasi terdistribusi

a. Shared resource
Walaupun perangkat sekarang sudahmemiliki kemampuan yang cepat dalam proses-proses komputasi, atau misal dalam mengakses data, tetapi pengguna masih saja menginginkan sistem berjalan dengan lebih cepat. Apabila hardware terbatas, kecepatan yang diinginkan user dapat diatasi dengan menggabung perangkat yang ada dengan sistem DOS (Distributed Operating System).
b. Manfaat komputasi
Salah satu keunggulan sistem operasi terdistribusi ini adalah bahwa komputasi berjalan dalam keadaan pararel. Proses komputasi ini dipecah dalam banyak titik (nodes), yangmungkin berupa komputer pribadi, prosesor tersendiri, dan kemungkinan perangkat prosesor-prosesor yang lain. Sistem operasi terdistribusi ini bekerja baik dalammemecah komputasi ini dan baik pula dalam mengambil kembali hasil komputasi dari titik-titik cluster untuk ditampilkan hasilnya.
c. Reliabilitas
Fitur unik yang dimiliki oleh DOS ini adalah reliabilitas. Berdasarkan design dan implementasi dari design sistem ini, maka hilangnya suatu node tidak akan berdampak terhadap integritas system. Hal ini berbeda dengan computer personal, apabila ada salah satu hardware yang mengalami kerusakan, maka system akan berjalan tidak seimbang, bahkan sistem bisa tidak dapat berjalan atau mati. Dalam sistem operasi terdistribusi tadi sebenarnya cara kerjanya mirip dengan personal computer, tetapi bedanya apabila ada node yangmati, maka akan terjadi proses halt terhadap node tersebut dan proses komputasi dapat dialihkan. Hal ini akan membuat sistem DOS selalu memiliki reliabilitas yang tinggi.
d. Komunikasi
Sistem operasi terdistribusi biasanya berjalan dalam jaringan, dan biasanya melayani koneksi jaringan. Sistem ini biasanya digunakan user untuk proses networking. User dapat saling bertukar data, atau saling berkomunikasi antar titik baik secara LAN maupun WAN.

BAB VI

BAB VI
NAME SERVICE
1. Pengenalan
Pengaksesan resource pd sistem terdistribusi memerlukan:
a. Nama resource (untuk pemanggilan).
b. Alamat (lokasi resource tsb).
c. Rute (bagaimana mencapai lokasi tsb).
Konsentrasi pada aspek penamaan, dan pemetaan antara nama & alamat, bukan pada masalah rute, yg dibahas di Jaringan Komputer. Yang dimaksud dengan resource adalah : komputer, layanan, remote object, berkas, pemakai.
Berikut contoh naming pd aplikasi sistem terdistribusi:
• URL utk mengakses suatu halaman web.
• Alamat e-mail utk komunikasi antar pemakai.
Naming sering dianggap remeh, tapi mendasar dlm sistem terdistribusi. Karena dalam hal ini name berfungsi sebagai identifier (pengenal) pada system.

2. Tujuan penamaan
• Identifikasi:
Seorang pemakai menginginkan obyek/layanan A, bukan obyek/layanan B.
• Memungkinkan terjadinya sharing
Lebih dari satu pemakai dapat mengindentifikasikan resource dengan nama yang sesuai (tidak harus nama yang sama).
• Memungkinkan location independence:
Perubahan lokasi tidak menuntut perubahan nama, asalkan lokasi tidak menjadi bagian dari nama resource tsb.
• Memberikan kemampuan keamanan (security)
 Jika sebuah nama dipilih secara acak dari himpunan besar interger, maka nama tsb hanya bisa diketahui dari legitimate source, bukan dari menebak.
 Jadi jika seseorang mengetahui nama obyek tsb, maka dia memang diberitahu, karena sulit sekali menebak nama tsb.

3. Jenis nama
User names:
• Dibuat oleh pemakai (user).
• Merujuk pada suatu obyek atau layanan.
• Terdiri dari strings of characters.
Contoh: hp201 untuk pencetak, ~bettyp/tmp/test.c untuk berkas.
System names:
 Terdiri dari bit string.
 Internal untuk sistem, tidak ditujukan untuk manusia.
 Lebih compact dari user names, shg dapat dibandingkan dengan lebih efisien.

4. Struktur nama
Primitive/‡at names (Unique Identi…ers = UIDs)
a. Tanpa struktur internal, hanya string of bits.
b. Digunakan utk perbandingan dengan UID lain.
c. Tidak membawa informasi lain -> pure names.
d. Sangat berguna & banyak digunakan karena:
• Location & application independent, shg tidak menjadi masalah bagi mobilitas obyek.
• Seragam, fixed size.
• Compact: mudah disimpan, di-pass, & jika cukup besar menjadi sulit ditebak.
a) Partitioned Names (PN)
 Komposisi dari beberapa nama primitif, biasanya disusun secara hirarkis. Contoh: www.gunadarma.ac.id/cs/docs/akademik/SisDis/naming.ppt.
 Membawa informasi -> impure names.
 Biasanya tidak secara unik mengidenti…kasikan obyek, beberapa nama bisa dipetakan ke satu obyek (e.g. UNIX file links).
b) Descriptive names (DN)
 Daftar atribut yang secara bersama-sama mengidentifikasikan obyek secara unik.
 Membawa informasi -> impure names.
 DN adalah superset dari PN.
5. Tujuan fasilitas Penamaan
a. Efisien, karena fasilitas penamaan merupakan dasar pada sisdis & digunakan secara terus menerus.
b. Terdistribusi. Renungkan jika UIDs dibangkitkan oleh centralized generator.
• Bottleneck.
• Node tempat generator tsb mengalami kegagalan.
c. Tampak seperti global space, tidak tergantung konekti…tas, topologi, dan lokasi obyek.
d. Mendukung pemetaan 1:many antara nama & obyek, untuk memungkinkan multicast.
e. Mendukung dynamic relocation of objects, jika obyek/proses potensial untuk mobile (berpindah-pindah). Jadi diperlukan dynamic binding antara nama & alamat, juga antara alamat & rute.
f. Memungkinkan local aliases, shg pemakai dapat mengekspresikan interpretasi semantik mereka thdp suatu obyek. Tentu saja diperlukan pemetaan antara aliases dan full names.

Jumat, 14 Januari 2011

BAB V

File  Sistem Terdistribusi  ( Distributed  File  System  ,  disingkat DFS  -   penulis  akan
menggunakan  kata  ini  selanjutnya)  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). 


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

data.  Kelebihan  lain  dari  DFS  adalah  peningkatan  performa.  Yang  menjadi  tolak  ukur
pengukuran performa DFS adalah waktu yang dibutuhkan untuk merespon request layanan.
Saling berbagi media penyimpanan informasi sudah menjadi sesuatu hal yang penting
dalam resource sharing. Desain service file terdistribusi yang baik adalah menyediakan akses
distribusi file dengan performansi dan realibilitas yang sama atau lebih baik dari penyimpanan
file-file dalam disk local dalam bentuk transparent.
Desain  skala  besar  dari  proses  sistem  penyimpanan  baca  tulis  file  pada  wide  area
menimbulkan masalah  pada  load  balancing,  reliabilitas,  avaibility  dan  security.  File  sistem
yang  terdistribusi  mengemulasikan  fungsionalitas  dari  file  sistem  tak  terdistribusi  untuk
program  client  yang  berjalan  pada  komputer  remote.  File  sistem  terdistribusi  juga
menyediakan  hal-hal  pokok  untuk  pengorganisasian  komputer  yang  berbasiskan  jaringan
intranet. 


Pengenalan File Service
File  service  adalah  suatu  perincian  atau  pelayanan  dari  file  system  yang  ditawarka
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. 
Karakteristik dari File System
File  Sistem  adalah  bertanggung  jawab  untuk  pengorganisasian,  penyimpanan,
pencarian  keterangan,  penamaan,  sharing  atau  pembagian  dan  protection  atau  perlindungan
dari  file-file. File berisi dari dua bagian penting yaitu data dan  atribut. File  sistem didesain
untuk  menyimpan  dan  mengatur  banyak  dan  besar  file  dengan  fasilitas  untuk  membuat,
memberi nama dan menghapus file. File system juga bertanggung  jawab untuk pengontrolan
dari  akses  file,  akses  terbatas  ke  file  oleh  user  yang  berhak  dan  tipe-tipe  dari  akses  yang
diminta.
- Operasi pada file (=data + atribut)
Create / delete
Query / Modifikasi Atribut 


Open / Close
Read / Write
Akses Kontrol
- Organisasi penyimpanan
Struktur direktori (hirarki, pathname)
Metadata (pengaturan informasi file) : atribut file, informasi struktur direktori,
dll 
Atribut File
File  adalah  kumpulan  informasi  berkait  yang  diberi  nama  dan  direkam  pada
penyimpanan sekunder. Atribut file terdir dari :
1.  Nama 
Merupakan  satu-satunya  informasi  yang  tetap  dalam  bentuk  yang  bisa  dibaca  oleh
manusia (human readable form)
2.  Type
Dibutuhkan untuk sistem yang mendukung beberapa tipe berbeda
3.  Lokasi
Merupakan pointer atau penunjuk ke device dan lokasi file pada device tersebut berada

Kamis, 13 Januari 2011

BAB III

Proses


3.1 Konsep Proses
Jika kita berdiskusi mengenai sistem operasi, maka akan timbul sebuah
pertanyaan yaitu mengenai istilah apa yang tepat untuk menyebut semua
kegiatan yang dilakukan oleh CPU. Sistem batch mengeksekusi jobs sebagaimana
suatu sistem time-share menggunakan program pengguna (user programs)
atau tasks. Bahkan pada sistem dengan pengguna tunggal pun,
seperti padaMicrosoftWindows dan Macintosh OS, seorang pengguna mampu
menjalankan beberapa program pada saat yang sama, contohnya Word Processor,
Web Browser, dan paket e-mail. Bahkan jika pengguna hanya dapat
menjalankan satu program pada satu waktu, sistem operasi perlu untuk mendukung
aktivitas program internalnya sendiri, seperti managemen memori.
Dalam banyak hal, seluruh aktivitas ini adalah serupa, maka kita menyebut
seluruh program itu proses-proses.
Istilah job dan proses digunakan hampir dapat dipertukarkan pada tulisan
ini. Walau kami sendiri lebih menyukai istilah proses, banyak teori dan terminologi
sistem operasi dikembangkan selama suatu waktu ketika aktivitas
utama sistem operasi adalah job processing. Akan membingungkan jika kita
menghindari penggunaan istilah yang telah diterima oleh masyarakat yang
memasukkan kata job hanya karena proses memiliki istilah job sebagai pengganti
atau pendahulunya.

PROSES 31
3.1.1 De…nisi Proses
Secara tidak langsung, proses merupakan program yang sedang dieksekusi.
Menurut Silberschatz, suatu proses adalah lebih dari sebuah kode program,
yang terkadang disebut text section. Proses jugamencakup program counter,
yaitu sebuah stack untuk menyimpan alamat dari instruksi yang akan dieksekusi
selanjutnya dan register. Sebuah proses pada umumnya juga memiliki
sebuah stack yang berisikan data-data yang dibutuhkan selama proses
dieksekusi seperti parameter metoda, alamat return dan variabel lokal, dan
sebuah data section yang menyimpan variabel global.
Sama halnya dengan Silberschatz, Tanenbaum juga berpendapat bahwa
proses adalah sebuah program yang dieksekusi yangmencakup program counter,
register, dan variabel di dalamnya.
Kami tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu
program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan
didalam disket. Sedangkan sebuah proses dalam suatu entitas aktif,
dengan sebuah program counter yang menyimpan alamat instruksi selanjut
yang akan dieksekusi dan seperangkat sumber daya (resource) yang dibutuhkan
agar sebuah proses dapat dieksekusi.
Untuk mempermudah kita membedakan program dengan proses, kita
akan menggunakan analogi yang diberikan oleh Tanenbaum. Misalnya ada
seorang tukang kue yang ingin membuat kue ulang tahun untuk anaknya.
Tukang kue tersebut memiliki resep kue ulang tahun dan bahan-bahan yang
dibutuhkan untuk membuat kue ulang tahun di dapurnya seperti: tepung
terigu, telur, gula, bubuk vanila dan bahan-bahan lainnya. Dalam analogi
ini, resep kue ulang tahun adalah sebuah program, si tukang kue tersebut
adala prosesor (CPU), dan bahan-bahan untuk membuat kue tersebut adalah
data input. Sedangkan proses-nya adalah kegiatan sang tukang kue untuk
membaca resep, mengolah bahan, dan memanggang kue tersebut.
Walau dua proses dapat dihubungkan dengan program yang sama, program
tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh,
beberapa pengguna dapat menjalankan salinan yang berbeda pada mail program,
atau pengguna yang sama dapat meminta banyak salinan dari program
editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian
text-section adalah sama, data section-nya bervariasi. Adalah umum untuk
memiliki proses yang menghasilkan banyak proses begitu ia bekerja.
BAB 3. PROSES 32
3.1.2 Status Proses
Bila sebuah proses dieksekusi, maka statusnya akan berubah-ubah. Status
dari sebuah proses mencerminkan aktivitas atau keadaan dari proses itu
sendiri. Berikut ini adalah status-status yangmungkin dimiliki sebuah proses
menurut Tanenbaum:
² Running: pada saat menggunakan CPU pada suatu waktu.
² Ready: proses diberhentikan sementara karena menunggu proses lain
untuk dieksekusi.
² Blocked: tidak dijalankan sampai event dari luar, yang berhubungan
dengan proses tersebut terjadi.
Sedangkan menurut Silberschatz, terdapat lima macam jenis status yang
mungkin dimiliki oleh suatu proses:
² New: status yang dimiliki pada saat proses baru saja dibuat.
² Running: status yang dimiliki pada saat instruksi-instruksi dari sebuah
proses dieksekusi.
² Waiting: status yang dimiliki pada saat proses menunggu suatu event
(contohnya: proses I/O).
² Ready: status yang dimiliki pada saat proses siap untuk dieksekusi oleh
prosesor.
² Terminated: status yang dimiliki pada saat proses telah selesai dieksekusi.
Nama-nama tersebut adalah berdasar opini, istilah tersebut bervariasi di
sepanjang sistem operasi. Keadaan yang mereka gambarkan ditemukan pada
seluruh sistem. Namun, pada sistem operasi tertentu lebih baik menggambarkan
keadaan/status proses. Penting untuk diketahui bahwa hanya satu
proses yang dapat berjalan pada prosesor mana pun pada satu waktu. Namun,
banyak proses yang dapat berstatus ready atau waiting. Keadaan
diagram yang berkaitan dengan keadaan tersebut dijelaskan pada gambar
3.1
Ada tiga kemungkinan bila sebuah proses memiliki status running:


² Jika program telah selesai dieksekusi maka status dari proses tersebut
akan berubah menjadi Terminated.
² Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis
maka akan terjadi interrupt dan proses tersebut kini berstatus Ready.
² Jika suatu event terjadi pada saat proses dieksekusi (seperti ada request
I/O) maka proses tersebut akan menunggu event tersebut selesai dan
proses berstatus Waiting.
3.1.3 Proses Control Block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control
block (PCB) - juga disebut sebuah control block. Sebuah PCB ditunjukkan
dalam Gambar 3.2. PCB berisikan banyak bagian dari informasi yang
berhubungan dengan sebuah proses yang spesi…k, termasuk hal-hal di bawah
ini:
² Status proses: status mungkin, new, ready, running, waiting, halted,
dan juga banyak lagi.
² Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya
untuk dieksekusi untuk proses ini.
BAB 3. PROSES 34
² CPU register: Register bervariasi dalam jumlah dan jenis, tergantung
pada rancangan komputer. Register tersebut termasuk accumulator,
register indeks, stack pointer, general-purposes register, ditambah code
information pada kondisi apa pun. Beserta dengan program counter,
keadaan/status informasi harus disimpan ketika gangguan terjadi, untukmemungkinkan
proses tersebut berjalan/bekerja dengan benar setelahnya
(lihat Gambar 3.3Tiap proses digambarkan dalamsistem operasi
oleh sebuah process control block (PCB) - juga disebut sebuah control
block. Sebuah PCB ditunjukkan dalam Gambar 3-2. PCB berisikan
banyak bagian dari informasi yang berhubungan dengan sebuah proses
yang spesi…k, termasuk hal-hal di bawah ini:
² Status proses: status mungkin, new, ready, running, waiting, halted,
dan juga banyak lagi.
² Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya
untuk dieksekusi untuk proses ini.
² CPU register: Register bervariasi dalam jumlah dan jenis, tergantung
pada rancangan komputer. Register tersebut termasuk accumulator,
register indeks, stack pointer, general-purposes register, ditambah code
information pada kondisi apa pun. Beserta dengan program counter,
keadaan/status informasi harus disimpan ketika gangguan terjadi, untukmemungkinkan
proses tersebut berjalan/bekerja dengan benar setelahnya
(lihat Gambar 3.3).
² Informasi managemen memori: Informasi ini dapat termasuk suatu informasi
sebagai nilai dari dasar dan batas register, tabel page/halaman,
atau tabel segmen tergantung pada sistem memori yang digunakan oleh
sistem operasi (lihat Bab 5).
² Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan
waktu riil yang digunakan, batas waktu, jumlah akun jumlah job atau
proses, dan banyak lagi.
² Informasi status I/O: Informasi termasuk daftar dari perangkat I/O
yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang
diakses dan banyak lagi.
² PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat
bervariasi dari proses yang satu dengan yang lain.

Thread
3.2.1 Apa itu thread ?
Threadmerupakan 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. 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 dengan proses dengan thread yang banyak adalah proses dengan
thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu
satuan waktu.
Banyak perangkat lunak yang berjalan pada PC modern dirancang secara
multi-threading. Sebuah aplikasi biasanya diimplementasi sebagai proses
yang terpisah dengan beberapa thread yang berfungsi sebagai pengendali.
Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar


atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data
dari network.
Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk menjalankan
beberapa tugas yang serupa. Sebagai contohnya sebuah web server
dapatmempunyai ratusan klien yangmengaksesnya secara concurrent. Kalau
web server berjalan sebagai proses yang hanya mempunyai thread tunggal
maka ia hanya dapat melayani satu klien pada pada satu satuan waktu. Bila
ada klien lain yang ingin mengajukan permintaan maka ia harus menunggu
sampai klien sebelumnya selesai dilayani. Solusinya adalah dengan membuat
web server menjadi multi-threading. Dengan ini maka sebuah web server
akan membuat thread yang akan mendengar permintaan klien, ketika permintaan
lain diajukan maka web server akan menciptakan thread lain yang
akan melayani permintaan tersebut.
Java mempunyai pengunaan lain dari thread. Perlu diketahui bahwa
Java tidak mempunyai konsep asynchronous. Sebagai contohnya kalau program
java mencoba untuk melakukan koneksi ke server maka ia akan berada
dalam keadaan block state sampai koneksinya jadi (dapat dibayangkan apa
yang terjadi apabila servernya mati). Karena Java tidak memiliki konsep
asynchronous maka solusinya adalah dengan membuat thread yang mencoba



BAB II

Komunikasi


2.1 Sistem Komunikasi
Pada bab ini akan dibahas bagaimana komunikasi antara object2 dalam sistem
terdistribusi, khusus nya dengan menggunakan RMI (Remod Method
Invokation) dan RPC (Remote Procedure Call). RMI dan RPC berbasiskan
metode request dan reply.
                Gambar~2.1: Model komunikasi dan implementasi layer pada sistem terdistribusi
                      Request dan repy diimplementasikan pada protokol jaringan.

KOMUNIKASI

2.2 Network Protocol
Middleware dan aplikasi terdistribusi di implementasikan diatas protokol network.
Protocol diimplementasikan dalam beberapa lapisan (layer).

TCP dan UDP
TCP
TCP ( Transport Control Protocol) dan UDP (User Datagram Protocol)
adalah protokol transport yang berada di atas lapisan Internet Protocol (IP).
TCP adalah protocol yang handal, TCP dapat memastikan data yang
dikirimkan sampai ke tujuan begitu juga sebaliknya.
TCP menambahkan beberapa prosedur diatas layer internet protocol untuk
memastikan reliabilitas transport data :
² Sequencing
Pada setiap transmisi data (paket) diberi nomor urut. Sehingga pada
titik tujuan tidak ada segmen yang diterima sampai semua segmen
pada urutan bawah belum di terima.
² Flow Control
Pengirim tidak akanmembanjiri penerima.Karena pengiriman didasarkan
pada periode acknowledgment yang di terima oleh pengirim yang berasal
dari penerima.
² Retrasnmission dan duplicate handling

KOMUNIKASI
Apabila segmen tidak mendapatkan acknowledge dari penerima sampai
waktu timeout yang ditentukan terlampaui maka pengirim akan mengirim
ulang. Berdasarkan nomor urut penerima data dapat mendeteksi
dan menolak kalau terjadi duplikasi.
² Bu¤ering
Bu¤ering digunakan untuk menyeimbangkan antara pengirim dan penerima.
Kalau bu¤er pada penerima penuh, maka segmen yang datang
akan putus, sehingga menyebabkan tidak ada acknowledge ke pengirim
dan pengirim akan melakukan transmot ulang.
² Checksum
Setiap segment membawa checksum. Apabila checksum segmen yang
di terima tidak sesuai maka paket data tersebut akan di drop (dan
kemudian akan di transmit ulang)
UDP
UDP tidak memberikan garansi seperti halnya yang di berikan oleh TCP.
² UDP tidak memberikan garansi terhadap pengiriman data
Pada Internet Protocol paket data dapat drop karena suatu hal contohnya
jaringan yang rusak, UDP tidak mempunyai mekanisme untuk
menanggulangi hal tersebut.
² Kalau ingin menggunakan UDP sebagai protocol pengiriman yang handal,
makamekanisme kehandalan yang diinginkan di lakukan pada layer
aplikasi.
2.2.2 Komunikasi Request - Reply
Komunikasi antara proses dan objek pada sistem terdistribusi dilakukan
melalui message passing.

KOMUNIKASI 
 
Client melakukan :
1. Mengirim (request) pesan ke server
2. Menerima hasil (reply dari server)
Server melakukan :
1. Penerimaan pesan (request) dari client
2. Mengeksekusi permintaan dari client
3. Mengirim hasil (reply) ke client.
2.3 RPC dan RMI
Tujuan dari RPC dan RMI dibuat bagi programmer, agar computer yang
terdistribusi terlihat seperti computer yang terpusat. Dan berguna untuk
melihat sistem terdistribusi dari sisi pemrogramman.
RPC dan RMI berada pada Middleware
2.3.1 RMI (Remote Method Invocation)
Berikut ilustrasi


BAB I

Pendahuluan
1.1 Apakah yang dimaksud dengan SistemTerdistribusi?
Sistem Terdistribusi adalah Sekumpulan komputer otonom yang terhubung
ke suatu jaringan, dimana bagi pengguna sistem terlihat sebagai satu komputer.
Maksud komputer otonomi adalah walaupun komputer tidak terhubung
ke jaringan, komputer tersebut tetap data berjalan.
Dengan menjalankan sistem terdistribusi, komputer dapat melakukan :
² Koordinasi Aktivitas
² Berbagi sumber daya : hardware, software dan data
Dengan de…nisi tersebut diatas maka internet sesungguhnya bukanlah suatu
sistem terdistribusi, melainkan infrastruktur dimana sistem terdistribusi
dapat di aplikasikan pada jaringan tersebut.
1.2 Contoh Sistem Terdistribusi
² Sistem Telepon
- ISDN, PSTN
² Manajemen Jaringan
- Adminstrasi sesumber jaringan






Gambar~1.1: Contoh sistem terdistribusi, Automatic Banking (teller machine)
System
² Network File System (NFS)
- Arsitektur untuk mengakses siste file melalui jaringan
² WWW
- Arsitektur client/server yang diterapkan di atas infrastruktur internet
- Shared Resource (melalui URL)
² dll...
BAB 1. PENDAHULUAN 8
1.3 Keuntungan dan Permasalahan SistemTerditribusi
1.3.1 Keuntungan Sistem Terdistribusi
Keuntungan yang didapatkan dalam menerapkan sistem terdistribusi, antara
lain :
² Performance
Kumpulan dari beberapa prosesor akan memberikan kinerja yang lebih
baik dari pada komputer yang terpusat. Begitu juga kalau dilihat dari
sisi biaya.
² Distribution
² Reliability (Fault tolerance)
apabila salah satu komponen terjadi kerusakan, system tetap dapat
berjalan
² Incremental Growth
Mudah dalam melakukan penambahan komputer/komponen
² Sharing Data/Resources
Berbagi data adalah salah satu hal yang pokok pada kebanyakan aplikasi.
1.3.2 Permasalahan dalam Sistem Terdistribusi
Kelemahan pada sistem terdistribusi adalah :
² Kesulitan dalam membangun perangkat lunak .
Kesulitan yang akan dihadapi antara lain : bahasa pemrogramman yang
harus dipakai, sistem operasi dll.
² Masalah Jaringan
Karena sistem terdistribusi di implementasikan dalam jaringan komputer,
maka isu2 yang berkaitan dengan jaringan komputer akan menjadi
pertimbangan utama dalam merancang dan mengimplementasikan
sistem.

² Masalah Keamanan
Karena pada sistem terdistribusi berbagi data/sumber daya merupakan
hal yang mutlak maka muncul masalah2 yang berkaitan dengan keamanan
data dll.
1.4 Karakteristik Sistem Terdistribusi
Ada beberapa hal yang harus diperhatikan dalam membangun sistem terdistribusi,
yaitu :
² Transparency (Kejelasan)
² Communication (Komunikasi)
² Performance & Scalability (Kinerja dan Ruang Lingkup)
² Heterogeneity (Keanekaragaman)
² Opennes (Keterbukaan)
² Reliability & Fault Tolerancy (Kehandalan dan Toleransi Kegagalan)
² Security (Kemanan)
1.4.1 Transparency
Access transparency
Sumber daya lokal dan remote di akses dengan menggunakan operasi yang
sama.
Location transparency
Pengguna sistem tidak tahu mengetahui keberadaan hardware dan software
(CPU,…le dan data).
Migration (Mobility) transparency
Sumber daya (baik berupa Hardware dan/atau software) dapat bebas berpindah
tanpa mengubah sistem penamaan.

Replication transparency
Sistem bebas untuk menambah file atau sumber daya tanpa diketahui oleh
user (dalam rangkan meningkatkan kinerja)
Concurency transparency
User tidak akan mengetahui keberadaan user lain dalam sistem, walaupun
user tersebut menggunakan sumber daya yang sama.
Failure transparency
Aplikasi harus dapat menyelesaikan proses nya walaupun terdapat kegagalan
pada beberapa pada komponen sistem.
Performance transparency
Beban kerja yang bervariasi tidak akan menyebabkan turunnya kinerja sistem,
hal ini dapat di capai dengan melakukan automatisasi kon…gurasi terhadap
perubahan beban.
1.4.2 Communication
Komponen2 pada sistem terdistribusi harus melakukan komunikasi dalam
suatu urutan. Sebagai berikut :
² Infrastruktur jaringan (interkoneksi dan software jaringan)
² Metode dan Model komunikasi yang cocok
Metode komunikasi :
- Send
- Receive
- Remote Procedure Call
Model Komunikasi
- client - server communication : pertukaran pesan antara dua proses
: dimana satu proses (client) menggunakan / meminta layanan
pada server dan server menyediakan hasil dari proses tersebut

- groupmulitcast : target dari pesan yang dikirimkan adalah gabungan
dari proses, yang berasal dari suatu grup.
1.4.3 Performance and Scalability
Ada beberapa faktor yang mempengaruhi kinerja (performance) dari pada
sistem terdistribusi :
² Kinerja dari pada personal workstations
² Kecepatan infrastruktur komunikasi
² Fleksibilitas dalam membagi beban kerja : contoh, apabila terdapat
prosesor (workstation) yang idle maka dapat di alokasikan secara otomatis
untuk mengerjakan tugas2 user.
Scalability
Sistem tetap harus memperhatikan efesiensi walaupun terdapat penambahan
secara signi…kan user atau sumber daya yang terhubung :
² Cost (biaya) penambahan sumber daya (resources) harus reasonable.
² Penurunan kinerja (performance) diakibatkan oleh penambahan user
atau sumber daya harus terkontrol.
1.4.4 Heterogeneity
Aplikasi yang terdistribusi biasa berjalan dalam keberagaman :
² Hardware : mainframes, workstations, PC’s, server dll.
² Software : UNIX, MS Windows, IMB OS/2, LINUX dll.
² Devices : teller machine, robot, sistem manufacturing dll.
² Network dan Protocol : Ethernet, FDDI, ATM, TCP/IP dll
Melihat keaneka ragaman di atas maka salah satu solusi yang bisa di
terapkan adalah Middleware : berfungsi sebagai jembatan untuk komunikasi
dan proses.

Gambar~1.2: Arsitektur sofware pada sistem




1.4.5 Opennes
Salah satu hal terpenting yang harus dimiliki oleh sistem terdistribusi adalah
opennes (keterbukaan) dan ‡exibility (‡eksibilitas) :
² Setiap layanan (services) harus dapat di akses oleh semua user.
² Mudah dalam implementasi, install dan debug services;
² User dapat membuat dan menginstall service yang telah dibuat oleh si
user tersebut.
Aspek kunci pada opennes :
² Interface dan Protocol yang standard (seperti protokol komunikasi di
internet)
² Support terhadap keanekaragaman. ( denganmembuatmidleware seperti
CORBA)




1.4.6 Reliability dan Fault Tolerance
Salah satu tujuan dalam membangun sistemterdistribusi adalahmemunkinkan
untuk melakukan improvisasi terhadap kehandalan sistem.
Availability : kalau mesin mati (down), sistem tetap harus berjalan
dengan jumlah layananan yang tersisa.
² Dalam sistem terdistribusi componen yang sangat vital (critical resources)
berjumlah se minimal mungkin. Yang dimaksud dengan critical
resources adalah komponen yang harus ada untuk menjalankan
sistem terdistribusi.
² Masing - masing Software dan Hardware harus di replikasi : kalau terjadi
kegagalan / error maka yang lain akan menangani.
Data dalam sistem tidak boleh hilang, copy dari …le tersebut disimpan
pada secara redundan pada server lain, tapi tetap harus dijaga konsistensi
datanya.
Fault Tolerance : Sistemharus bisa mendeteksi kegagalan danmelakukan
tindakan dengan dasar sebagai berikut :
² Mask the fault (menutupi kegagalan) : tugas harus dapat dilanjutkan
dengan menurunkan kinerja tapi tanpa terjadi kehilangan data atau
informasi.


² 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.
1.4.7 Security
² Con…dentiality :
keamanan terhadap data yang di akses oleh user yang tidak di perbolehkan
(unauthorizes user)
² Integrty:
keamanan terhadap kelengkapan dan autentikasi data.
² Availability
Menjaga agar resource dapat selalu di akses.
Sistem terdistribusi harus memperbolehkan komunikasi antara program/user/resources
pada computer yang berbeda, maka resiko keamanan akan muncul apabila
memberlakukan free access. Dan ada hal lain juga yang harus dijamin dalam
sistem terdistribusi, yaitu : penggunaan rerources yang tepat oleh user yang
berlainan.
1.5 Model dalam Sistem Terdistribusi
Model dalam sistem terdistribusi :
² Model Arsitektur (Architectural Models)
² Model Interaksi (Interaction Models)
² Model Kegagalan (Failure Models)
Resources dalam sistem terdistribusi dipakai secara bersama oleh users.
Biasa nya di bungkus (encapsulated) dalam suatu komputer dan dapat di
akses oleh komputer lain dengan komunikasi.

Setiap resource di atur oleh program yang disebut dengan resource manager.
Resource manager memberikan kemungkinan komunikasi interface antar
resource.
Resource Managers dapat digeneralisasi sebagai proses, kalau sistem di
design dengan sudut pandang object (Object Oriented), resource dibungkus
dalam suatu objek.
1.5.1 Architectural Models
Bagaimana cara kerja sistem terdisribusi antara komponen - komponen sistem
dan bagaimana komponen tersebu berada pada sistem terdistribusi :
² Client - Server Model
² Proxy Server
² Peer processes ( peer to peer )
Client - Server Model
Sistem yang terdiri dari kumpulan2 proses disebut dengan server, dan memberikan
layanan kepada user yang disebut dengan client.
Model client-server biasanya berbasiskan protokol request/reply. Contoh
implementasi nya, atara lain: RPC (Remote Procedure Calling) dan RMI
(Remote Method Invocation) :
² client mengirimkan request berupa pesan ke server untuk mengakses
suatu service.
² server menerima pesan tersebut dan mengeksekusi request client dan
mereply hasil ke client
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 dimita 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 denganmencegah
frekwensi akses ke server.
Peer Process
Semua proses (object) mempunyai peran yang sama.
² Proses berinteraksi tanpa ada nya perbedaan antara client dan server.
² Pola komunikasi yang digunakan berdasarkan aplikasi yang digunakan.
² Merupakan model yang paling general dan ‡eksible.
1.5.2 Interaction Models
Untuk interaksi nya sistem terdistribusi dibagi menjadi dua bagian :
² Synchrounous distributed system
² Asynchronous distributed system
Synchronous Distributed System
Batas atas dan batas bawah waktu pengeksekusian dapat di set.
² Pesan yang dikirim di terima dalam waktu yang sudah di tentukan
² Fluktuasi ukuran antara waktu local berada dalam suatu batasan.
Beberapa hal yang penting untuk di perhatikan :
² Dalam synchronous distributed system terdapat satu waktu global.
² Hanya synchronous distributed system dapat memprediksi perilaku
(waktu).
² Dalam synchornous distributed system dimungkinkan dan aman untuk
menggunakan mekanisme timeout dalam mendekteksi error atau
kegagalan dalam proses atau komunikasi.
Asynchronous Distributed System
Banyak sistem terdistribusi yangmenggunakan model interaksi ini (termasuk
Internet)
² Tidak ada batasan dalam waktu pengkeksekusian.
² Tidak ada batasan dalam delay transmission (penundaan pengiriman)
² Tidak ada batasan terhadap ‡uktuasi waktu local.
Asynchronous system secara parktek lebih banyak digunakan.
1.5.3 Failure Models
Kegagalan apa saja yang dapat terjadi dan bagaimana efek yang ditimbulkan
?
² Omission Faluires
² Arbitary Failures
² Timing Failures
Kegagalan dapat terjadi pada proses atau kanal komunikasi. Dan penyebabnya
bisa berasal dari hardware ataupun software.
Model Kegagalan (Failure Models) dibutuhkan dalam membangun suatu
sistem dengan prediksi terhadap kagagalan2 yang mungkin terjadi.





Ommision Failures
Yang dimaksud dengan Ommision Failures adalah ketika prosesor dan kanal
komunikasi mengalami kegagalan untuk melakukan hal yang seharusnya dilakukan.
Dikatakan tidak mempunyai ommision failures apabila :
² Terjadi keterlambatan (delayed) tetapi akhirnya tetap tereksekusi.
² Sebuah aksi di eksekusi walaupun terdapat kesalahan pada hasil.
Dengan synchronous system, ommision failures dapat dideteksi dengan
timeouts. Kalau kita yakin bahwa pesan yang dikirim sampai, timeout akan
mengindikasikan bahwa proses pengiriman rusak, seperti fail-stop behavior
pada sistem.
Arbitary Failures
Ini adalah kegagalan yang paling buruk dalam sistem. Tahapan proses atau
komunikasi diabaikan atau yang tidak diharapkan terjadi dieksekusi. Sehingga
hasil yang diharapkan tidak terjadi ataumegeluarkan hasil yang salah.
Timing Failures
Timing Failures dapat terjadi pada synchronous system, dimana batas waktu
di atur untuk eksekusi proses, komunikasi dan ‡uktuasi waktu. Timing Failures
terjadi apabila waktu yang telah ditentukan terlampaui.