Jumat, 24 April 2015

Keamanan Pada Sistem Terdistribusi

Ada empat bidang keamanan dalam sistem terdistribusi yaitu:

1. Ancaman Keamanan.
        Beberapa ancama yang dapat mengancam suatu sistem adalah leakcage(pengambilan informasi oleh penerima yang tidak berhak), Tampering(pengubahan informasi yang tidak legal), Vandalism(gangguan operasi sistem tertentu, dimana pelaku tidak mengharapkan keuntungan apapun)
Ada beberapa kemungkinan serangan yang dapat dilakukan oleh pihak lain diantaranya adalah :

Intrusion : penyerangan jenis ini seseorang penyerang akan dapat menggunakan sistem komputer yang kita miliki.
Denail of services : penyerangan ini mengakibatkan pengguna yang sah tidak dapat mengakses sistem.
Joyrider : penyerangan jenis ini disebabkan oleh orang yang merasa iseng dan ingin memperoleh kesenangan dengan cara menyerang suatu sistem.
Vandal : jenis serangan ini bertujuan untuk merusak sistem yang sering dituju untuk site-site besar.
Scorekeeper: jenis serangan ini hanyalah bertujuan untuk mendapatkan reputasi dengan cara mengacak-acak system sebanyak mungkin.
Mata-mata : jenis serangan ini bertujuan untuk memperoleh data atau informsi rahasia dari pihak pesaing. Tujuan utama adanya sistem keamanan adalah untuk membatasi akses informasi dan resources hanya untuk pemakai yang memiliki hak.

2. Akses Control.
Aspek ini berhubungan dengan cara pengaturan akses kepada informasi. Dalam interaksi sederhana client-server ,server membatasi akses ke sumber daya. Teknik-teknik standar untuk melakukan hal ini adalah Access Control Matrix, Capabilities, dan Labels

3. Otentikasi.
Otentikasi berhubungan dengan metode untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betul-betul server yang asli.



Otentikasi server penting tidak hanya karena ancaman terhadap penyadapan aktif atau lebih dikenal dengan trojan horse tetapi juga karena banyak pengikat RPC hanya menawarkan petunjuk dimana layanan ini berada. Jika crash dapat digantikan oleh yang lain,server yang sama sekali berbeda, tetapi client perlu mengetahui ketidaksesuaian ini sehingga pengikat RPC bisa memeriksa kembali.


4. Non repudiation.
Aspek ini menjaga agar seseorang tidak dapat menyangkal telah melakukan sebuah transaksi. Sebagai contoh, seseorang yang mengirimkan e-mail untuk memesan barang tidak dapat menyangkal bahwa dia telah mengirimkan e-mail tersebut. Aspek ini sangat penting dalam hal electronic commerce Penggunaan digital signature, certifiates, dan teknologi kriptografi secara umum dapat menjaga aspek ini.

Karena kemungkinan serangan-serangan yang dapat terjadi seperti pada penjelasan diatas ada baiknya untuk mengetahui bentuk perancangan sistem yang aman untuk mencegah dari serangan-serangan yang mungkin terjadi

Adapun bentuk perancangan sistem yang aman adalah :

  • Rancangan harus mengikuti standard yang ada
  • Mendemokan validasi melawan ancaman yang diketahui
  • Melakukan audit terhadap kegagalan yang terdeteksi
  • Adanya keseimbangan antara biaya terhadap serangan yang ada

Tiga dasar mekanisme keamanan yang dibangun :

  • Enkripsi : digunakan untuk menyediakan kerahasiaan, dapat menyediakan authentication dan perlindungan integritas
  • Digital signature : digunakan untuk menyediakan authentication, perlindungan integritas
  • Algoritma checksum/hash : digunakan untuk menyediakan perlindungan integritas dan dapat menyediakan authentication.
  • Teknik keamanan adalah hal penting dalam menjaga kerahasiaan data. Proses enkripsi di dalam teknik keamanan merupakan proses pengkodean pesan untuk menyembunyikan isi file. Sedangkan algoritma enkripsi modern menggunakan kunci kriptografi dimana hasil enkripsi tidak dapat di dekripsi tanpa kunci yang sesuai.

Kriptografi adalah suatu ilmu yang mempelajari bagaimana membuat suatu pesan menjadi aman selama pengiriman dari pengirim sampai ke penerima. Pesan yang akan di enkripsi disebut plaintext sedngkan pesan yang telah di enkripsi disebut chipertext.


Serangan pada sistem terdistribusi tergantung pada pengaksesan saluran komunikasi yang ada atau membuat saluran baru yang menyamarkan sebagai koneksi legal. Penyerangan yang ada yaitu penyerangan pasif dan aktif.


Sumber : http://www.jejaring.web.id/keamanan-pada-sistem-terdistribusi/

Parallel Processing Sistem Terdistribusi






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.

TUJUAN PARALLEL PROCESSING
Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.

PARALLEL PROCESSING
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan.
Biasanya diperlukan 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 sendiri adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam satu jaringan komputer, biasanya disebut sistem terdistribusi. Bahasa pemrograman yang populer digunakan dalam pemrograman paralel adalah MPI (Message Passing Interface) dan PVM (Parallel Virtual Machine).

Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.

Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:



  1. SIMD 
  2. SIMD 
  3. MISD 
  4. MIMD 
SISD 
Yang merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.

SIMD 
Yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).

MISD
Yang merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.

MIMD
Yang merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkan pada gambar di bawah ini:







Penyelesaian Sebuah Masalah pada Komputasi Tunggal 



Penyelesaian Sebuah Masalah pada Komputasi Paralel
Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.
Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan kapan kita perlu menggunakan komputasi paralel. Jawabannya adalah karena komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang ketika kita hanya mengolah data dalam jumlah yang kecil, karena data dengan jumlah kecil atau sedikit lebih efektif jika kita menggunakan komputasi tunggal.


Komputasi paralel membutuhkan :
· algoritma
· bahasa pemrograman
· compiler


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.


* Message Passing Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. 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 paralel.


* Message Passing Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. 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 paralel.


Hubungan antara Komputasi Modern dengan Paralel Processing
Hubungan antara komputasi modern dan parallel processing sangat berkaitan, karena penggunaan komputer saat ini atau komputasi dianggap lebih cepat dibandingkan dengan penyelesaian masalah secara manual. Dengan begitu peningkatan kinerja atau proses komputasi semakin diterapkan, dan salah satu caranya adalah dengan meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat keras komputer adalah processor. Sedangkan parallel processing adalah penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan banyak processor) agar kinerja computer semakin cepat.


Kinerja komputasi dengan menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yang ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer saja. Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan membagi-bagi tugas untuk masing-masing CPU tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk masalah yang besar saja, komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja.


Sumber:
http://id.shvoong.com/internet-and-technologies/universities-research-institutions/2159327-parallel-processing/#ixzz1qmtgdvwh
http://coretanmuvi.blogspot.com/2012/03/paralel-processing.html

Basis Data Terdistribusi


Basis data terdistribusi (distributed database) merupakan suatu basis data yang di bawah sistem manajemen basis data atau (DBMS) yang terpusat dengan peranti penyimpanan (storage devices) dan terpisah-pisah satu dari yang lainnya. Dan tempat penyimpanan dapat berada di satu lokasi yang secara fisik berdekatan contohnya: dalam satu bangunan atau terpisah oleh jarak yang jauh walaupun banyak bangunannya dan terhubung melalui jaringan internet. Dalam penggunaan basis data terdistribusi bisa dilakukan di server internet, ekstranet kantor atau intranet, maupun di jaringan perusahaan.

Pengguna atau disebut (user) dalam sebuah basis data terdistribusi bisa mengakses basis data melalui dua jenis aplikasi yaitu :
• Aplikasi lokal adalah aplikasi yang tidak memerlukan data dari tempat lain
• Aplikasi global adalah aplikasi dengan kebutuhan akan data dari tempat lain

Pada proses perancangan basis data terdistribusi memiliki aspek transparansi yaitu interaksi user terhadap basis data yang merupakan interaksi dengan satu sistem secara utuh maupun lengkap. Transparansi itu dua hal yaitu :

1. Distribusi merupakan para pengguna harus bisa berinteraksi atau berhubungan dengan sistem secara keseluruhan sebagai satu sistem yang utuh. Dan kesatuan ini ada pada kinerja sistem dan metode pengaksesan.
2. Perubahan (transaksi) yaitu Setiap transaksi baik itu penghapusan, penambahan, atau peng-update-an selain itu mempertahankan integritas antara basis data yang berbeda-beda dalam satu sistem. Pada setiap transaksi dapat dibagi ke dalam sejumlah subtransaksi pada tiap-tiap transaksi dapat memberikan pengaruh pada keseluruhan sistem basis data.




Pada semua perusahaan atau organisasi yang menggunakan relational database management system atau yang disebut (RDBMS) biasanya memiliki database yang banyak ataupun tidak hanya satu. Dan kenapa mereka biasanya menggunakan konsep sistem terdistribusi dalam implementasinya. Beberapa faktor penyebabnya diantaranya :
1. Perbedaan database biasanya didasarkan pada fungsionalitas dalam database itu sendiri, contohnya dalam bagian keuangan, baik pemasaran atau sumberdaya manusia.
2. Perbedaan database didasarkan pada letak geografis yang ada contohnya dalam satu kota.
3. Perbedaan database dapat didasarkan pada cara mengaksesnya contoh untuk database transaksi ataupun untuk penggudangan data atau (data warehouse).
4. Database pada internet Commerce diduplikasi sebagai dalam cadangan dengan skala kemampuan yang sama.
5. Database juga dibedakan untuk sistem yang sedang berjalan dan untuk yang sedang dikembangkan.

Dalam mengakomodasi kebutuhan maka oracle membentuk suatu skema yang dapat memungkinkan semuanya dapat terjadi dengan konsep atau cara sistem terdisribusi.
Teknologi sistem database terdistribusi merupakan kuncinya yaitu integrasi bukan sentralisasi serta teknologi ini untuk mencoba dalam mencapai integrasi tanpa sentralisasi.

Dalam Database terdistribusi sangat berbeda dengan database terdesentralisasi karena database terdistribusi adalah suatu database tunggal atau satu logik yang secara fisik disebarkan atau terhubung secara menyeluruh kepada komputer-komputer pada banyak lokasi yang kemudian saling dikoneksikan oleh link data komunikasi. Dan sedangkan database terdesentralisasi yaitu koleksi database independen dalam komputer yang tidak terhubung dalam suatu jaringan. Sistem database terdistribusi terdiri atas situs-situs yang saling berpasangan yang tidak saling membagi komponen fisik ataupun Sistem database akan berjalan pada situs yang independen.

Untu menyusun suatu data terdistribusi dapat diperhatikan sebagai berikut :
1. Replikasi datay : data-data harus tetap up-to-date tanpa kompromisasi pada performansi
2. Akses yang terjadi secara bersamaan harus dapat menghindari terjadinya kesalahan pada suatu data.
3. Masalah dalam keamanan
4. Masalah dalam reliabilitas

Dalam Sistem database terdistribusi pada Oracle membolehkan aplikasi-aplikasi tersebut untuk mengakses data dari database yang jauh. Pada sebuah sistem database terdistribusi homogen dalam setiap database adalah Oracle Database dan sedangkan pada sistem database terdistribusi heterogeneous paling sedikit satu dibeberapa sekumpulan database bukan merupakan Oracle Database. Selain itu Distribusi basis data menggunakan arsitektur client (server ) untuk memproses dalam permintaan informasi.

sumber : http://2009061-if-unsika.blogspot.com/2012/01/basis-data-terdistribusi-distributed.html

Share Data & Transaction





Dalam sistem terdistribusi, shared data dapat di artikan sebagai beberapa komputer yang berbeda saling terhubung satu sama lain melalui jaringan sehingga komputer yang satu dapat mengakses dan menggunakan sumber daya yang terdapat dalam situs lain.


Pengaksesan resource pada sistem terdistribusi yang memerlukan:
Nama resource (untuk pemanggilan)
Alamat (lokasi resource tersebut)
Rute (bagaimana mencapai lokasi tersebut)

Keuntungan Shared Data :

Mengurangi biaya duplikasi usaha pengumpulan data
Aman-menjaga data dalam lingkungan yang aman
Back-up data
Transaksi (Transaction)


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.

Merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.


Jenis –Jenis Transaksi :

  • Flat Transaction. 
  • Nasted Transaction. 

Share data
Merupakan pemakaian file data tunggal oleh ebih dari satu orang atau komputer, atau suatu akses yang diberikan kepada orang lain untuk mengkases data tersebut, mempunyai tujuan untuk berbagi akses kepada user lain pada suatu folder atau drive yang diinginkan, dimana kita bisa memilih kepada user mana saja yang bisa atau boleh mengakses folder kita dan juga bisa memberikan akses kepada semua orang yang ada pada jaringan/network.


Transaksi terdistribusi

merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.


Fault Tolerance

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.

Time & Coordination Sistem Terdistribusi



1. Time And Coordinaton
           Time and Coordination adalah mengkordinasikan waktu dalam transfer data, agar tidak terjadi ketimpangan pada proses transfer data. Selain itu juga, berguna untuk mengukur penundaan antara komponen terdistribusi, menyinkronkan aliran data misalnya: suara dan video, dan sebagai penanda keakuratan waktu untuk mengidentifikasi atau mengotentikasi transaksi bisnis dan serializability dalam database terdistribusi dan keamanan protocol.


1.1 Time
                Time adalah pengembangan dari sistem multiprogram.Beberapa job yang berada pada memory utama dieksekusi oleh CPU secara bergantian.CPU hanya bisa menjalankan program yang berada pada memory utama. Perpindahanantar job terjadi sangat sering sehingga user dapat berinteraksi dengan setiap programpada saat dijalankan. Suatu job akan dipindahkan dari memori ke disk dan sebaliknya.
              Time juga disebut dengan sistem komputasi interaktif, dimanasistem komputer menyediakan komunikasi on-line antara user dengan sistem. Usermemberikan instruksi pada sistem operasi atau program secara langsung dan menerimarespon segera. Perangkat input berupa keyboard dan perangkat output berupa displayscreen, seperti cathode-ray tube (CRT) atau monitor. Bila sistem operasi selesaimengeksekusi satu perintah, makan sistem akan mencari pernyataan berikutnya dariuser melalui keyboard. Sistem menyediakan editor interaktif untuk menulis programdan sistem debug untuk membantu melakukan debugging program.


1.2 Coordination
          Coordnaion Sekumpulan algoritma yang tujuannya bermacam-macam namun men-share tujuannya, sebagai dasar dalam sistem terdistribusi : berupa sekumpulan proses untuk mengkoordinasikan tindakan atau menyetujui satu atau beberapa nilai. Contohnya pada kasus mesin seperti pesawat ruang angkasa. Hal itu perlu dilakukan, komputer mengendalikannya agar setuju pada kondisi tertentu seperti apakah misi dari pesawat luar angkasa dilanjutkan atau telah selesai.
           Komputer tersebut harus mengkoordinasikan tindakannya secara tepat untuk berbagi hal yang penting dalam Coordination and Agreement adalah apakah system terdistribusi asinkron atau sinkron. Algoritma –algoritma yang digunakan juga harus mempertimbangkan kegagalan yang terjadi, dan bagaimana caranya untuk berhubungan satu sama lain ketika sedang mendesaian algoritma. Selanjutnya di makalah ini juga akan dijelaskan mengenai masalah dalam mendistribusikan mutual exclusion, election, multicast communication, dan mengenai masalah dalam persetujuan(agreement).


1.3 Contoh Time And Coordination Protokol Waktu Jaringan (Network Time Protocol)
            Metode Cristian dan algoritma Berkeley pada dasarnya digunakan untuk komunikasi intranet. Protokol Waktu Jaringan (NTP) mendefinisikan arsitektur untuk pelayanan waktu dan protocol untuk distribusi informasi waktu lewat internet. 
Tujuan dan fitur NTP, antara lain:
• To provide a service enabling clients across the Internet to be synchronized accurately to UTC: NTP menyediakan layanan agar klien di internet dapat bersinkronisasi dengan UTC.
• To provide a reliable service that can survive lengthy losses of connectivity: NTP menyediakan layanan yang bisa bertahan di jaringan mengalami loss karena jarak.
• To enable clients to resynchronize sufficiently frequently to offset the rates of drift found in most computers: NTP memungkinkan klien untuk sinkronisasi ulang secara berkala.
• To provide protection against interference with the time service, whether malicious or accidental: NTP menyediakan perlindungan terhadap interferensi dari layanan waktu, baik galat maupun ketidaksengajaan.


Gambar 1 Contoh sinkronisasi subnet di NTP

              Layanan NTP tersebar pada banyak server di internet. Server utama tersambung langsung ke sumber waktu, seperti penerima sinyal radio UTC. Server sekunder disinkronisasi dengan server primer. Server-servernya tersambung dalam hierarkikal logika yang disebut synchronization subnet seperti Gambar 3. Semakin atas levelnya akan semakin akurat clock-nya. Galat terjadi setiap melewati satu level.
Server-server NTP bersinkronasi satu sama lain dengan tiga cara, antara lain multicast, procedure-call, dan symmetric.
1. Multicast
      Multicast ditujukan untuk LAN berkecepatan tinggi. Satu atau lebih server secara periodik menyebar waktu clock ke server di komputer lain yang tersambung di LAN. Mode ini akurasinya rendah tetapi cocok untuk berbagai kepentingan. 
2. Procedure-call
           Procedure-call hamper sama dengan algoritma Cristian. Server menerima request dari komputer lain dan membalasnya dengan pembacaan clock saat pengiriman. Mode ini cocok ketika keakurasian tinggi dibutuhkan atau ketika multicast tidak dappat dilakukan.
3. Symmetric
        Mode symmetric ditujukan untuk server yang mensuplai waktu dalam LAN atau pada level tertinggi dari sebuah synchronization subnet.
Gambar 2. Message Exchange between a pair NTP peers

                 Pada mode procedure-call dan symmetric mode, memroses pertukaran bagian-bagian pesan. Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi, yaitu waktu local ketika pesan tersebut dikirimkan. Seperti pada Gambar 3, pesan m menyimpan catatan waktu setiap akan ditransmisikan, yaitu Ti-3 dan Ti-1, dan ketika diterima, yaitu Ti-2 dan Ti. Kemudian NTP menghitung jeda waktu antara dua clock komputer. 


2. Share Data

2.1. Konsep dan operasi Shared Data antara server dan client

                Dalam sistem terdistribusi, beberapa komputer yang berbeda saling terhubung satu sama lain melalui jaringan sehingga komputer yang satu dapat mengakses dan menggunakan sumber daya yang terdapat dalam situs lain. Misalnya, user di komputer A dapat menggunakan laser printer yang dimiliki komputer B dan sebaliknya user di situs B dapat mengakses file yang terdapat di komputerA.

Konsep Sharing Client – Server
Jaringan client atau server adalah jaringan dimana komputer client bertugas melakukan permintaan data dan server bertugas melayani permintaan tersebut.
Client
  •  User akan membuat permintaan melalui software client. Aplikasi ini berfungsi :
  •  Memberikan interface bagi user untuk melakukan jobs.
  •  Format request data ke bentuk yang dapat dimengerti oleh server
  •  Menampilkan hasil yang diminta pada layar
Server
Jaringan client atau server, server khusus digunakan untuk pemrosesan, penyimpanan dan manajemen data. Server bertugas menerima request dari client, mengolahnya, dan mengirimkan kembali hasilnya ke client.
Untuk itu, server membutuhkan komputer khusus dengan spesifikasi hardware yang jauh lebih baik dan bertenaga dibandingkan hardware untuk client karena komputer harus mampu melayani :
Ø Request secara simultan dalam jumlah besar
Ø Aktivitas manajemen jaringan
Ø Menjamin keamanan pada resource jaringan


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


2.3. Konsep Dasar Replication
Replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objek database dari satu database ke database lain dan melaksanakan sinkronisasi antara database sehingga konsistensi data dapat terjamin. Dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringan lokal maupun internet. Replikasi juga memungkinkan untuk mendukung kinerja aplikasi, penyebaran data fisik sesuai dengan penggunaannya, seperti pemrosesan transaksi online dan DSS (Desiscion Support System) atau pemrosessan database terdistribusi melalui beberapa server.
Replikasi adalah proses menyalin dan memelihara objek database dalam beberapa database yang membentuk suatu sistem database terdistribusi. Replikasi dapat meningkatkan kinerja dan melindungi ketersediaan aplikasi karena data pilihan alternatif akses ada. Sebagai contoh, sebuah aplikasi biasanya dapat mengakses database lokal daripada server jauh untuk meminimalkan lalu lintas jaringan dan mencapai kinerja maksimum. Selanjutnya, aplikasi dapat terus berfungsi jika server lokal mengalami kegagalan, tetapi server lain dengan data direplikasi tetap dapat diakses.Gambar 2. Message Exchange between a pair NTP peers
Pada mode procedure-call dan symmetric mode, memroses pertukaran bagian-bagian pesan. Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi, yaitu waktu local ketika pesan tersebut dikirimkan. Seperti pada Gambar 3, pesan m menyimpan catatan waktu setiap akan ditransmisikan, yaitu Ti-3 dan Ti-1, dan ketika diterima, yaitu Ti-2 dan Ti. Kemudian NTP menghitung jeda waktu antara dua clock komputer.


Refresing:
http://luthfiadriansyah07.blogspot.com/2013/04/time-and-coordination.html
http://muhammad-diak-huddin.blogspot.com/2013/05/time-and-coordination-sistem.html
http://buddymilanisti.blogspot.com/2013/04/time-and-coordination_7678.html

Name Service Pada Sistem Terdistribusi

Name Service dalam Sistem Terdistribusi merupakan layanan penamaan yang berfungsi untuk menyimpan naming context, yakni kumpulan binding nama dengan objek, tugasnya untuk me-resolve nama.
Pengaksesan resource pada sistem terdistribusi yang memerlukan:


  1. Nama resource (untuk pemanggilan),
  2. Alamat (lokasi resource tsb),
  3. Rute (bagaimana mencapai lokasi tsb).

Name Service memiliki konsentrasi pada aspek penamaan dan pemetaan antara nama & alamat, bukan pada masalah rute, yang dibahas di Jaringan Komputer. Resource yang dipakai dalam Name Service adalah: komputer, layanan, remote object, berkas, pemakai.

Contoh penamaan pada aplikasi sistem terdistribusi:
– URL untuk mengakses suatu halaman web.

– Alamat e-mail utk komunikasi antar pemakai.

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 dr suatu obyek.

– Address: atribut kunci dari sebuah entitas dalam sistem terdistribusi.

– Attribute: nilai suatu object property.

Penguraian Naming Domains untuk mengakses resource dari URL



Tujuan Penamaan

Mengidentifikasi
Memungkinkan terjadinya sharing
Memungkinkan location independence
Memberikan kemampuan keamanan (security)
Jenis Nama

User names: 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.
Struktur Nama


Primitive/flat names (Unique Identifiers = UIDs)
Partitioned Names (PN)
Descriptive names (DN)
Name Context


Nama selalu diasosiasikan dengan konteks, yang mendefinisikan di mana nama tsb valid. Ada 2 macam konteks:
– Universal context
– Relative context


Name List
Name Lists terdiri dari 2 komponen yaitu:

Name agents
Name servers

Bentuk Name List
Name List Tersentralisasi : Adalah Name list yang berada pada satu mesin.
Name List Tereplikasi Penuh : Digunakan untuk mengatasi kekurangan name list tersentralisasi.
Name List Tereplikasi Sebagian : Sebagian name lists disimpan dalam cache setiap mesin dan memerlukan mekanisme petunjuk (hint), yang biasanya benar.


Contoh Name Service
DNS (Domain Name Service) – memetakan nama domain ke alamat
GNS (Global Name Service) – memetakan global name ke atribut-atribut dan skalabilitas, dapat menangani perubahan
X500 directory service – memetakan nama orang ke dalam alamat suatu e-mail dan nomor telepon
Jini discovery service – mencari objek sesuai dengan atribut yang ada

File Service Pada Sistem Terdistribusi

File Sistem Terdistribusi ( Distributed File System , disingkat) 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).


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


II. 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 :

File dapat dipindahkan tanpa penggantian nama
– Hal yang umum untuk penamaan file dan directori :
Mesin + nama path e.g / machine / path atau machine : path
Mounting File sistem secara remote kedalam hirarki local file.
Single name space yang sama pada semua mesin.
– Dua level penamaan :
Nama simbolik yang dilihat user dan nama binary yang dilihat oleh sistem.


III. Contoh File Service

NFS (Network File System)
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.
Tujuan dari NFS adalah untuk memungkinkan terjadinya pertukaran sistem berkas secara transparan antara mesin-mesin bebas tersebut.

Protokol NFS
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.


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)


AFS (Andrew File System)
Ada persamaan dan perbedaan antara AFS dan NFS.


Persamaan:
AFS sama seperti NFS menyediakan akses menuju shared files secara transaparant. Akses menuju ke file AFS adalah melalui normal unix file primitives (tanpa modifikasi atau rekompilasi). AFS kompatibel dengan NFS.


Perbedaan:
Secara desain dan implementasi, AFS berbeda dengan NFS, perbedaan utama, NFS didesain untuk dapat menangani active users dengan jumlah yang lebih banyak daripada distributed file systems yang lain. Kunci AFS untuk menangani jumlah active users yang besar terletak pada kemampuan caching seluruh files pada client node.


Karakter AFS
AFS mempunyai dua karakter desain yang unik :
• Whole file serving
Seluruh konten dari direktori dan file dikirim kepada komputer client oleh AFS servers (di AFS3, file yang ukurannya lebih dari 64kbytes ditransfer dalam 64kbyte chunks).
• Whole file caching
Copy dari sebuah file chunk yang telah ditransfer di komputer client disimpan dalam cache pada local disk.Cache disini mengandung ratusan file yang sering dipakai di dalam sebuah komputer.


Sumber: https://ku2harlis.wordpress.com/file-service/

Sistem Operasi Terdistribusi

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

File system
Name space
Waktu pengolahan
Keamanan
Akses ke seluruh resources, seperti prosesor, memori, penyimpanan sekunder, dan perangkat keras.
Sistem operasi terdistribusi bertindak sebagai sebuah infrastruktur/rangka dasar untuk network-transparent resource management. Infrastruktur mengatur low-level resources (seperti Processor, memory, network interface dan peripheral device yang lain) untuk menyediakan sebuah platform untuk pembentukan/penyusunan higher-level resources(seperti Spreadsheet, electronic mail messages, windows).


JENIS SISTEM OPERASI TERDISTRIBUSI


A. Amoeba (Virlie Universiteit)
Amoeba adalah sistem berbasis mikro-kernel yang tanggug yang menjadikan banyak workstation personal menjadi satu sistem terdistribusi secara transparan. Sistem ini sudah banyak digunakan di kalangan akademik,industri dan pemerintah selama 5 tahun


B. MOSIX
Terdapat sebuah solusi untuk masalah pada multicomputer yang disebut MOSIX . Mosix adalag pengembangan dari UNIX yang mengijinkan user untuk menggunakan resource yang ada tanpa ada perubahan level apliasi. Dengan penggunaan yang transparan ,algoritma proses migrasi dinamis,MOSIX melayani servis jaringan seperti NFS, TCP/IP,dari UNIX. Untuk level proses ,dengan menggunakan penyeimbangan load dan distribusi dinamis pada cluster cluster yang homogen.


C. BEOWULF (Hebrew University, Jerusalem, Israel)
Konsep Beowulf ini mulai dikembangkan dengan menggunakan perangkat komputer yang sangat sederhana untuk ukuran sekarang, 16 motherboard 486 DX 100 MHz, ethernet 10baseT (Sterling et al., 1995). Tetapi telah mampu menghasilkan kinerja yang cukup menjanjikan. Beowulf menggunakan protokol komunikasi standard Unix, sehingga kemampuannya menjadi terbatasi oleh protokol ini, akan tetapi dalam pengembangannya Beowulf telah melakukan modifikasi implementasi TCP/IP yang hasilnya sangat membantu kualitas implementasi dari Linux pada umumnya. Dari sisi pemrograman Beowulf memanfaatkan library Parallel Virtual Machine (PVM) untuk menyusun aplikasinya. Sebagian besar aplikasi yang dijalankan pada model Beowulf ini memang aplikasi jenis komputasi matematis. Beowalf merupakan free-software seperti Linux ataupun FreeBSD yang berjalan pada komputer yang disusun secara pararel yang terhubung dengan jaringan privat berkecepatan tinggi untuk menjalankan tugas perhitungan dengan kemampuan tinggi. Yang dipentingkan dalam Beowulf adalah kecepatan bukan reliabilitas seperti pada komputer cluster Linux. Untuk aplikasi yang berjalan diatasnya dibutuhkan development yang berbeda supaya dapat berjalan. Alasan mengapa orang-orang menggunakan Beowulf karena Beowulf menginginkan super komputer yang murah daripada superkomputer tradisional.


D. Angel (City University of London)
Angel didesain sebagai sistem operasi terdistribusi yang paralel, walaupun sekarang ditargetkan untuk PC dengan jaringan berkecepatan tinggi. Model komputasi ini memiliki manfaal ganda, yaitu memiliki biaya awal yang cukup murah dan juga biaya incremental yang rendah. Dengan memproses titik-titik di jaringan sebagai mesin single yang bersifat shared memory, menggunakan teknik distributed virtual shared memory (DVSM), sistem ini ditujukan baik bagi yang ingin meningkatkan performa dan menyediakan sistem yang portabel dan memiliki kegunaan yang tinggi pada setiap platform aplikasi.


E. CHORUS (Sun Microsystems)
CHORUS merupakan keluarga dari sistem operasi berbasis mikro-kernel untuk mengatasi kebutuhan komputasi terdistribusi tingkat tinggi di dalam bidang telekomunikasi, internetworking, sistem tambahan, realtime, sistem UNIX, supercomputing, dan kegunaan yang tinggi. Multiserver CHORUS/MiX merupakan implementasi dari UNIX yang memberi kebebasan untuk secara dinamis mengintegrasikan bagian-bagian dari fungsi standar di UNIX dan juga service dan aplikasi-aplikasi di dalamnya.


F. GLUnix (University of California, Berkeley)
Sampai saat ini, workstation dengan modem tidak memberikan hasil yang baik untuk membuat eksekusi suatu sistem operasi terdistribusi dalam lingkungan yang shared dengan aplikasi yang berurutan. Hasil dari penelitian ini adalah untuk menempatkan resource untuk performa yang lebih baik baik untuk aplikasi paralel maupun yang seri / berurutan. Untuk merealisasikan hal ini, maka sistem operasi harus menjadwalkan pencabangan dari program pararel, mengidentifikasi idle resource di jaringan, mengijinkan migrasi proses untuk mendukung keseimbangan loading, dan menghasilkan tumpuan untuk antar proses komunikasi.


MANFAAT SISTEM OPERASI TERDISTRIBUSI
Sistem operasi terdistribusi memiliki manfaat dalam banyak sistem dan dunia komputasi yang luas. Manfaat-manfaat ini termasuk dalam sharing resource, waktu komputasi dan komunikasi.


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


2. Manfaat Komputasi
Salah satu keunggulan sistem operasi terdistribusi ini adalah bahwa komputasi berjalan dalam keadaan paralel. Proses komputasi ini dipecah dalam banyak titik, yang mungkin berupa komputer pribadi, prosesor tersendiri, dan kemungkinan perangkat prosesor – prosesor yang lain. Sistem operasi terdistribusi ini bekerja baik dalam memecah komputasi ini dan baik pula dalam mengambil kembali hasil komputasi dari titik-titik cluster untuk ditampilkan hasilnya.


3. Reliabilitas
Fitur unik yang dimiliki oleh DOS ini adalah reliabilitas. Berdasarkan design dan implementasi dari design sistem ini, maka hilangnya satu node tidak akan berdampak terhadap integritas sistem. Hal ini berbeda dengan PC, apabila ada salah satu hardware yang mengalami kerusakan, maka sistem akan berjalan tidak seimbang, bahkan sistem bisa tidak dapat berjalan atau mati.


4. Komunikasi
Sistem operasi terdistribusi berjalan dalam jaringan dan biasanya melayani koneksi jaringan. Sistem ini umumnya digunakan user untuk proses networking. User dapat saling bertukar data, atau saling berkomunikasi antar titik baik secara LAN maupun WAN.


KELEBIHAN SISTEM OPERASI TERDISTRIBUSI

Pembagian sumber daya antar komputer dibuat lebih mudah.
Sistem terdistribusi menyediakan kinerja yang baik dengan mendistribusikan beban kerja ke komputer-komputer dan mengerjakan bagian dari pekerjaan itu secara bersamaan pada beberapa processor.
Menjadikan sistem keseluruhan lebih handal, karena kegagalan yang terjadi pada salah satu komponen dapat ditangani oleh komputer setingkat lainnya.



KEKURANGAN SISTEM OPERASI TERDISTRIBUSI

Dari sisi penggunaan energi yang digunakan untuk ‘menghidupkan’ komputer-komputer yang digunakan sebagai cluster. Dan peralatan pendukung lainnya misal piranti jaringan yang digunakan untuk menghubungkan antar komputer.
Dari sisi teknis yang melibatkan banyak komponen, tentu saja delay komunikasi tidak dapat diprediksikan dan tidak ada referensi clock yang universal yang dapat dijadikan system clock.
Komputer saling terhubung dengan ethernet card. Tentu saja untuk mendukung komputasi yang cepat diperlukan koneksi jaringan yang cepat pula. Kebutuhan ethernet card untuk tiap PC tidak hanya satu tergantung jenis konfigurasi apa yang digunakan.



Sumber :http://www.jejaring.web.id/sistem-operasi-terdistribusi/

Proses Dalam Sistem Terdistribusi


Proses
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 pada MicrosoftWindows 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. 


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

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:

  1. Running: pada saat menggunakan CPU pada suatu waktu. 
  2. Ready: proses diberhentikan sementara karena menunggu proses lain untuk dieksekusi. 
  3. 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: 
  4. New: status yang dimiliki pada saat proses baru saja dibuat. 
  5. Running: status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi. 
  6. Waiting: status yang dimiliki pada saat proses menunggu suatu event (contohnya: proses I/O). 
  7. Ready: status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor. 
  8. 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:





Gambar~3.1: Status proses

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


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 spesifik, 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.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 spesifik, 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. 


Gambar~3.2: Proses Control Block

Thread
Apa itu thread ?

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






Gambar~3.3: Status proses




Gambar~3.4: Thread


bar 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 yang mengaksesnya 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 untuk melakukan koneksi ke server dan thread lain yang pertamanya tidur selamabeberap waktu (misalnya 60 detik) kemudian bangun. Ketika waktu tidurnya habis maka ia akan bangun dan memeriksa apakah thread yang melakukan koneksi ke server masih mencoba untuk melakukan koneksi ke server, kalau thread tersebutmasih dalam keadaan mencoba untuk melakukan koneksi ke server maka ia akan melakukan interrupt dan mencegah thread tersebut untuk mencoba melakukan koneksi ke server.


Keuntungan Thread

Keuntungan dari program yang multithreading dapat dipisah menjadi empat

kategori:


1. Responsi: Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meskipun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada pengguna. Sebagai contohnya dalam web browser yang multithreading, sebuah thread dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan image. 


2. Berbagi sumber daya: thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.


3. Ekonomi: dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. Akan susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan context switch proses 5 kali lebih lama dibandingkan context switch thread. 


4. Utilisasi arsitektur multiprocessor: Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu (satu-satuan waktu pada CPU biasa disebut time slice atau quantum). 


User dan Kernel Thread User Thread


              User thread didukung di atas kernel dan diimplementasi oleh thread library pada user level. Library menyediakan fasilitas untuk pembuatan thread, penjadualan thread, dan managemen thread tanpa dukungan dari kernel. Karena kernel tidak menyadari user-level thread maka semua pembuatan dan penjadualan thread dilakukan di user space tanpa intervensi dari kernel. Oleh karena itu, user-level thread biasanya cepat untuk dibuat dan diatur. Tetapi user threadmempunyai kelemahan yaitu apabila kernelnyamerupakan thread tunggal maka apabila salah satu user-level thread menjalankan blocking system call maka akan mengakibatkan seluruh proses diblok walau pun ada thread lain yang dapat jalan dalam aplikasi tersebut. Contoh user-thread libraries adalah POSIX Pthreads, Mach C-threads, dan Solaris threads. 

Kernel Thread

           Kernel thread didukung langsung oleh sistem operasi. Pembuatan, penjadualan, dan managemen thread dilakukan oleh kernel pada kernel space. Karena pengaturan thread dilakukan oleh sistem operasi maka pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread. Keuntungannya adalah thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking system call maka kernel dapat menjadualkan thread lain di aplikasi untuk melakukan eksekusi. Keuntungan lainnya adalah pada lingkunganmultiprocessor, kernel dapatmenjadual thread-thread pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread adalah Windows NT, Solaris, Digital UNIX. 








Gambar~3.5: Many to one


Multithreading Model


Many to one Model


Many-to-One model memetakan banyak user-level thread ke satu kernel thread. Pengaturan thread dilakukan di user space, oleh karena itu ia e…sien tetapi


ia mempunyai kelemahan yang sama dengan user thread. Selain itu karena hanya satu thread yang dapat mengakses thread pada suatu waktu makamultiple thread tidak dapat berjalan secara pararel pada multiprocessor. Userlevel thread yang diimplementasi pada sistem operasi yang tidak mendukung kernel thread menggunakan Many-to-One model.



One to one Model


     One-to-Onemodel memetakan setiap user thread ke kernel thread. Ia menyediakan lebih banyak concurrency dibandingkan Many-to-One model. Keuntungannya sama dengan keuntungan kernel thread. Kelemahannya model ini adalah setiap pembuatan user thread membutuhkan pembuatan kernel thread. Karena pembuatan thread dapat menurunkan performa dari sebuah 






Gambar~3.6: One to one

aplikasi maka implmentasi dari model ini membatasi jumlah thread yang dibatasi oleh sistem. Contoh sistem operasi yang mendukung One-to-One model adalah Windows NT dan OS/2.


Many to many Model
            Many-to-many model multiplexes banyak user-level thread ke kernel thread yang jumlahnya lebih kecil atau sama banyaknya dengan user-level thread. Jumlah kernel thread dapat spesi…k untuk sebagian aplikasi atau sebagian mesin. Many-to-One model mengizinkan developer ntuk membuat user thread sebanyak yang iamau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadual oleh kernel pada suatu waktu. One-to-One menghasilkan concurrency yang lebih tetapi developer harus hati-hati untuk tidak menciptakan terlalu banyak thread dalam suatu aplikasi (dalam beberapa hal, developer hanya dapat membuat thread dalam jumlah yang terbatas). Many-to-Many model tidak menderita kelemahan dari 2 model di atas. Developer dapat membuat user thread sebanyak yang diperlukan, dan kernel thread yang bersangkutan dapat bejalan secara pararel pada multiprocessor. Dan juga ketika suatu thread menjalankan blocking system 





Gambar~3.7: Many to many

call maka kernel dapat menjadualkan thread lain untuk melakukan eksekusi. Contoh sistem operasi yang mendukung model ini adalah Solaris, IRIX, dan Digital UNIX.


Fork dan Exec System Call

Ada dua kemungkinan dalam system UNIX jika fork dipanggil oleh salah satu thread dalam proses:

  • Semua thread diduplikasi. 
  • Hanya thread yang memanggil fork. 

           Kalau thread memanggil exec System Call maka program yang dispesi fikasi di parameter exec akan mengganti keseluruhan proses termasuk thread dan LWP. Penggunaan dua versi dari fork di atas tergantung dari aplikasi. Kalau exec dipanggil seketika sesudah fork, maka duplikasi seluruh thread tidak dibutuhkan, karena program yang dispesi…kasi di parameter exec akan mengganti seluruh proses. Pada kasus ini cukup hanya mengganti thread yang memanggil fork. Tetapi jika proses yang terpisah tidak memanggil exec sesudah fork maka proses yang terpisah tersebut hendaknya menduplikasi seluruh thread.


Cancellation

           Thread cancellation adalah tugas untuk memberhentikan thread sebelum ia menyelesaikan tugasnya. Sebagi contohnya jika dalam program java kita hendak mematikan Java Virtual Machine (JVM) maka sebelum JVM-nya dimatikan maka seluruh thread yang berjalan dihentikan terlebuh dahulu. Thread yang akan diberhentikan biasa disebut target thread. Pemberhentian target thread dapat terjadi melalui dua cara yang berbeda: 


  • Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread. 
  • Defered cancellation: target thread secara perodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut. 

Hal yang sulit dari pemberhentian thread ini adalah ketika terjadi situasi dimana sumber daya sudah dialokasikan untuk thread yang akan diberhentikan. Selain itu kesulitan lain adalah ketika thread yang diberhentikan sedang meng-update data yang ia bagi dengan thread lain. Hal ini akan menjadi masalah yang sulit apabila digunakan asynchronous cancellation. Sistem operasi akanmengambil kembali sumber daya dari thread yang diberhentikan tetapi seringkali sistem operasi tidak mengambil kembali semua sumber daya dari thread yang diberhentikan. Alternatifnya adalah dengan menggunakan de¤ered cancellation. Cara kerja dari de¤ered cancellation adalah dengan menggunakan satu thread yang berfungsi sebagai pengindikasi bahwa target thread hendak diberhentikan. Tetapi pemberhentian hanya akan terjadi jika target threadmemeriksa apakah ia harus berhenti atau tidak. Hal ini memperbolehkan thread untuk memeriksa apakah ia harus berhenti pada waktu dimana ia dapat diberhentikan secara aman yang aman. Pthreadmerujuk tersebut sebagai cancellation points. Pada umumnya sistem operasi memperbolehkan proses atau thread untuk diberhentikan secara asynchronous. Tetapi Pthread API menyediakan deferred cancellation. Hal ini berarti sistem operasi yang mengimplementasikan Pthread API akan mengizinkan deferred cancellation.


Penanganan Sinyal
         Sebuah sinyal digunakan di sistem UNIX untuk notify sebuah proses kalau suatu peristiwa telah terjadi. Sebuah sinyal dapat diterima secara synchronous atau asynchronous tergantung dari sumber dan alasan kenapa peristiwa itu memberi sinyal. 
  • Semua sinyal (asynchronous dan synchronous) mengikuti pola yang sama: 
  • Sebuah sinyal dimunculkan oleh kejadian dari suatu persitiwa. 
  • Sinyal yang dimunculkan tersebut dikirim ke proses. 
  • Sesudah dikirim, sinyal tersebut harus ditangani. 

Contoh dari sinyal synchronous adalah ketika suatu proses melakukan pengaksesan memori secarai ilegal atau pembagian dengan nol, sinyal dimunculkan dan dikirim ke proses yang melakukan operasi tersebut. Contoh dari sinyal asynchronous misalnya kitamengirimkan sinyal untuk mematikan proses dengan keyboard (ALT-F4)maka sinyal asynchronous dikirim ke proses tersebut. Jadi ketika suatu sinyal dimunculkan oleh peristiwa diluar proses yang sedang berjalanmaka proses tersebut menerima sinyal tersebut secara asynchronous.
Setiap sinyal dapat ditangani oleh salah satu dari dua penerima sinyal:
  • Penerima sinyal yang merupakan set awal dari sistem operasi. 
  • Penerima sinyal yang dide…nisikan sendiri ole user. 

Penanganan sinyal pada program yang hanya memakai thread tunggal cukup mudah yaitu hanya dengan mengirimkan sinyal ke prosesnya. Tetapi mengirimkan sinyal lebih rumit pada program yang multithreading, karena sebuah proses dapat memiliki beberapa thread.

Secara umum ada empat pilihan kemana sinyal harus dikirim:

  • Mengirimkan sinyal ke thread yang dituju oleh sinyal
  • Mengirimkan sinyal ke setiap thread pada proses tersebut. 
  • Mengirimkan sinyal ke thread tertentu dalam proses. 
  • Menugaskan thread khusus untuk menerima semua sinyal yang ditujukan pada proses. 

Cara untuk mengirimkan sebuah sinyal tergantung dari jenis sinyal yang dimunculkan. Sebagai contoh sinyal synchronous perlu dikirimkan ke thread yang memunculkan sinyal tersebut bukan thread lain pada proses tersebut. Tetapi situasi dengan sinyal asynchronous menjadi tidak jelas. Beberapa sinyal asynchronous seperti sinyal yang berfungsi untuk mematikan proses (contoh: alt-f4) harus dikirim ke semua thread. Beberapa versi UNIX yang multithreading mengizinkan thread menerima sinyal yang akan ia terima dan menolak sinyal yang akan ia tolak. Karena itu sinyal asynchronouns hanya dikirimkan ke thread yang tidak memblok sinyal tersebut. Solaris 2 mengimplementasikan pilihan ke-4 untuk menangani sinyal. Windows 2000 tidak menyediakan fasilitas untuk mendukung sinyal, sebagai gantinya Windows 2000 menggunakan asynchronous procedure calls (APCs). Fasilitas APC memperbolehkan user thread untuk memanggil fungsi tertentu ketika user thread menerima notifikasi peristiwa tertentu.


Thread Pools

Pada web server yang multithreading ada dua masalah yang timbul:


  • Ukuran waktu yang diperlukan untuk menciptakan thread untuk melayani permintaan yang diajukan terlebih pada kenyataannya thread dibuang ketika ia seketika sesudah ia menyelesaikan tugasnya. 
  • Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem. 

Solusinya adalah dengan penggunaan Thread Pools, cara kerjanya adalah dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools, dimana mereka duduk diam dan menunggu untuk bekerja. Jadi ketika server menerima permintaan maka maka ia akan membangunkan thread dari pool dan jika thread tersedia maka permintaan tersebut akan dilayani. Ketika thread sudah selesai mengerjakan tugasnya maka ia kembali ke pool dan menunggu pekerjaan lainnya. Bila tidak thread yang tersedia
pada saat dibutuhkan maka server menunggu sampai ada satu thread yang bebas. Keuntungan thread pool:

  • Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibanding dengan menunggu thread baru dibuat. 
  • Thread pool membatasi jumlah thread yang ada pada suatu waktu. 
Hal ini penting pada sistemyang tidak dapatmendukung banyak thread yang berjalan secara concurrent. Jumlah thread dalam pool dapat tergantung dari jumlah CPU dalam sistem, jumlah memori fisik, dan jumlah permintaan klien yang concurrent.


Sistem client - server

Merupakan bagian dari model sistem terdistribusi yang membagi jaringan berdasarkan pemberi dan penerima jasa layanan. Pada sebuah jaringan akan didapatkan: file server, time server, directory server, printer server, dan seterusnya.



2. Sistem point to point
Merupakan bagian dari model sistem terdistribusi dimana system dapat sekaligus berfungsi sebagai client maupun server.


3. Sistem terkluster
Adalah gabungan dari beberapa sistem individual (komputer) yang dikumpulkan pada suatu lokasi, saling berbagi tempat penyimpanan data (storage), dan saling terhubung dalam jaringan lokal (Local Area Network). Sistem kluster memiliki persamaan dengan sistem paralel dalam hal menggabungkan beberapa CPU untuk meningkatkan kinerja komputasi. Jika salah satu mesin mengalami masalah dalam menjalankan tugas maka mesin lain dapat mengambil alih pelaksanaan tugas itu. Dengan demikian, sistem akan lebih handal dan fault tolerant dalam melakukan komputasi.


E. Alasan Membangun Sistem Terdistribusi
Ada empat alasan utama untuk membangun sistem terdistribusi, yaitu:


1. Resource Sharing
Dalam sistem terdistribusi, situs-situs yang berbeda saling terhubung satu sama lain melalui jaringan sehingga situs yang satu dapat mengakses dan menggunakan sumber daya yang terdapat dalam situs lain. Misalnya, user di situs A dapat menggunakan laser printer yang dimiliki situs B dan sebaliknya user di situs B dapat mengakses file yang terdapat di situs A


2. Computation Speedup
Apabila sebuah komputasi dapat dipartisi menjadi beberapa subkomputasi yang berjalan bersamaan, maka sistem terdistribusi akan mendistribusikan subkomputasi tersebut ke situs-situs dalam sistem. Dengan demikian, hal ini meningkatkan kecepatan komputasi (computation speedup)


3. Reliability
Dalam sistem terdistribusi, apabila sebuah situs mengalami kegagalan, maka situs yang tersisa dapat melanjutkan operasi yang sedang berjalan. Hal ini menyebabkan reliabilitas sistem menjadi lebih baik


4. Communication
Ketika banyak situs saling terhubung melalui jaringan komunikasi, user dari situs-situs yang berbeda mempunyai kesempatan untuk dapat bertukar informasi.


Selain itu ada beberapa alasan lain membangun sistem terdistribusi, yakni :

Distribusi fungsi : Komputer memiliki kemampuan fungsi yang berbeda-beda (client/server, Host/terminal, Data gathering / data processing)
Distribusi beban/keseimbangan : Pemberian tugas ke prosesor secukupnya sehingga unjuk kerja seluruh sistem teroptimasi
Replika Kekuatan : Kumpulan PC memiliki kekuatan yang lebih besar dari super komputer
Pemisahan Fisik : Untuk kehandalan atau redundansi sistem
Ekonomis : Kumpulan mikroprosesor memberikan harga/unjuk kerja yang lebih baik dibandingkan dengan mainframe.



F. Permasalahan Sistem Terdistribusi


Masalah dengan sistem terdistribusi yang dapat dimunculkan antara lain berkaitan dengan :

Software - bagaimana merancang dan mengatur software dalam Distribusi Sistem
Ketergantungan pada infrastruktur jaringan
Kemudahan akses ke data yang di share, memunculkan masalah keamanan

Dalam setiap penggunaan suatu sistem, banyak sekali ditemui permasalahan -permasalahan yang muncul, begitu juga dengan sistem terdistribusi. Selain permasalahan-permasalahan yang akan dihadapi terdapat tantangan- tantangan dalam sistem terdistribusi.


G. Contoh dari sistem terdistribusi


1. Internet

Merupakan suatu bentuk jaringan global yang menghubungkan komputer denga satu sama lainnya, yang dapat berkomunikasi dengan media IP sebagai protokol.



2. Intranet

Jaringan yang teradministrasi secara lokal
Biasanya proprietary
Terhubung ke internet (melalui firewall)
Menyediakan layanan internal dan eksternal




3. Mobile dan sistem komputasi ubiquitous


Sistem telepon Cellular (e.g., GSM) Resources dishare : frekuensi radio, waktu transmisi dalam satu frekuensi, bergerak
Komputer laptop, ubiquitous computing
Handheld devices, PDA, etc



4. World wide web

Arsitektur client/server tebuka yang diterapkan di atas infrastruktur internet
Shared resources (melalui URL)



Sumber : http://www.blogsitaufik.web.id/2013/12/mengenal-sistem-terdistribusi.html