Sabtu, 20 Desember 2014

Proses antar client&server dan Sistem Operasi Terdistribusi

Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi. Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread. Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.

  • Model Many to One: Model Many-to-One memetakan beberapa thread tingkatan pengguna ke sebuah thread tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna, sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi, multiple thread tidak dapat berjalan secara paralel pada multiprocessor. Thread tingkat pengguna yang diimplementasi pada sistem operasi yang tidak mendukung thread kernel menggunakan model Many-to-One.
 

            Model Many to One

  • Model One to One: Model One-to-One memetakan setiap thread tingkatan pengguna ke thread kernel. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahannya model ini ialah setiap pembuatan thread pengguna memerlukan pembuatan thread kernel. Karena pembuatan thread dapat menurunkan kinerja dari sebuah aplikasi maka implmentasi dari model ini jumlah thread dibatasi oleh sistem. Contoh sistem operasi yang mendukung model One-to-One ialah Windows NT dan OS/2.


                    Model One to One

Model Many To Many: Model ini me-multipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya lebih sedikit atau sama dengan tingkatan pengguna. thread. Jumlah thread kernel spesifik untuk sebagian aplikasi atau sebagian mesin. Many-to-One model mengizinkan developer untuk membuat user thread sebanyak yang ia mau tetapi concurrency (berjalan bersama) tidak dapat diperoleh karena hanya satu thread yang dapat dijadwal 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). Model Many-to-Many tidak mengalami kelemahan dari dua model di atas. Developer dapat membuat user thread sebanyak yang diperlukan, dan kernel thread yang bersangkutan dapat bejalan secara paralel pada multiprocessor. Dan juga ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi. Contoh sistem operasi yang mendukung model ini adalah Solaris, IRIX, dan Digital UNIX.

Client Server
Client Server adalah suatu bentuk arsitektur, dimana client adalah perangkat yang menerima yang akan menampilkan dan menjalankan aplikasi (software komputer) dan server adalah perangkat yang menyediakan dan bertindak sebagai pengelola aplikasi, data, dan keamanannya.



Kelebihan Client Server :
- Lebih aman
- Semua data dapat dibackup pada satu lokasi sentral
- Kecepatan akses lebih tinggi karena penyediaan fasilitas jaringan dan pengelolaannya dilakukan secara khusus oleh satu komputer (server) yang tidak dibebani dengan tugas lain sebagai workstation


Kekurangan Client Server :
- Membutuhkan administrator yang handal
- Pelaksanannya mahal
- Jika server mati maka komputer clent akan mati juga

Software Agent
entitas perangkat lunak yang didedikasikan untuk tujuan tertentu yang memungkinkan user untuk mendelegasikan tugasnya secara mandiri, selanjutnya software agent nantinya disebut agent saja. Agent bisa memiliki ide sendiri mengenai bagaimana menyelesaikan suatu pekerjaan tertentu atau agenda tersendiri. Agent yang tidak berpindah ke host lain disebut stationary agent.

Sistem Operasi Terdistribusi
Sistem operasi terdistribusi adalah salah satu implementasi dari sistem terdistribusi, dimana sekumpulan komputer dan prosesor yang heterogen terhubung dalam satu jaringan.
Dan fungsi sistem operasi komputer secara umum adalah sebagai berikut:
1. Sistem Operasi Sebagai Kordinator.
2. Sistem Operasi Sebagai Penghubung.
3. Sistem Operasi Sebagai Pelindung.
4. Sistem Operasi Sebagai Interpretasi (penerjemah).
5. Sistem Operasi Sebagai Server (Pelayan).

Komponen sistem operasi terdiri dari
·         manajemen proses
·         manajemen memori utama
·         manajemen berkas
·         manajemen sistem I/O
·         manajemen penyimpanan sekunder
·         sistem proteksi
·         jaringan
·         Command-Interpreter System

Proses dan Thread
Proses dan Thread merupakan dua bagian yang saling berhubungan dan berkaitan. Suatu program yang sedang dieksekusi merupakan pengertian dari sutau proses. Proses membutuhkan sumber daya. Sistem operasi mengeksekusi proses dengan dua cara yaitu batch system  yang mengeksekusi job dan  time-shared system  yang mengatur pengeksekusian program pengguna ( user) atau tasks. Proses berisikan stack yang menyimpan alamat register dan juga alamat dari sebuah instruksi yang berisikan data  – data  yang dibutuhkan untuk instruksi selanjutnya. Program Counter, register set serta stack merupakan bagian dari thread. Thread berbagi code section, data section dan juga sumber daya sistem operasi dengan thread lain yang dalam proses yang  sama. Kelebihan thread antara lain responsif, berbagi sumberdaya, ekonomis serta utilitas arsitektur mikroprosessor.

Model sinkronisasi dan asinkronisasi pada sistem terdistribusi

Sinkronisasi adalah Adalah satu kunci kerja dari komunikasi data. Transmiter mengirimkan pesan 1 bit pada satu saat melalui medium ke receiver. Receiver harus menandai awal dan akhir blok dari bit, juga harus diketahui durasi untuk masing-masing bit sehingga dapat sample lajur dari timing untuk membaca masing-masing bit (merupakan tugas dari timming).
Contoh : jika ada perbedaan misalkan 1 % (clock receiver 1% lebih lambat atau lebih cepat daripada clock transmitter), maka pada pensamplingan pertama akan meleset dari tengah bit dan setelah jumlah waktu tertentu, akan mengalami error.
 
Sedangkan asinkronisasi  adalah untuk mencegah problem timming dengan tidak mengirim aliran bit panjang yang tidak putus putusnya. Bit-bit dikirim per-karakter pada setiap waktu yang mana masing-masing karakter mempunyai panjang 5-8 bit. Timing atau synchronisasi harus dipertahankan antara tiap karakter; receiver mempunyai kesempatan untuk men-synchron-kan awal dari tiap karakter baru.
  • Idle (biasanya =‟1‟) jika tidak ada karakter yang ditransmisikan dan start bit = “0”, sedangkan jumlah karakter yang ditransmisikan antara 5-8 bit.
  •  Bit paritas digunakan untuk mendeteksi error, diatur oleh pengirim agar jumlah total „1‟ termasuk bit paritas adalah genap, dan stop bit = „1‟, yang panjangnya 1; 1,5; 2 kali durasi bit pada umumnya
  • Komunikasi asinkron adalah sederhana dan murah, tetapi memerlukan overhead dari 2 ke 3 bit per karakter, prosentasi overhead dapat dikurangi dengan mengirimkan blok-blok bit besar antara bit start dan bit stop
Contoh : digunakan pada floopy, artinya ketika anda menyalin sebuah file ke floopy, perubahan secara fisik langsung ditulis ke floppy saat anda memberikan perintah copy
Dengan contoh diatas, opsi ini membuat proses penyalinan ke floopy mungkin dilakukan jauh setelah perintah copy anda berikan. Hal ini tidaklah buruk, bahkan terkadang menjadi pilihan, dikarenakan misalnya jika anda memindahkan floopy tanpa melakukan unmounting terlebih dahulu, file-file yang disalin mungkin secara fisik belum masuk ke dalam floopy tersebut.

 

Fault Tolerance, Transaction & skema dari Replication sistem terdistribusi

  • Fault Tolerant
Fault Tolerant adalah feature yang memungkinkan suatu sistem tetap berjalan normal meskipun ada komponen yang rusak pada salah satu komponennya. Fault tolerant juga dipakai dalam transmisi data sehingga meskipun ada bebarapa data yang gagal diterima, pesan dapat diterima secara utuh.

Dalam storage kita mengenail RAID di mana hardisk dikonfigurasi sedemikian rupa sehingga jika ada hardisk yang rusak, maka data dapat diambil dari hardisk yang masih berfungsi normal. Fault-tolerant berhubungan dengan sistem yang mempunyai high-availability yang tinggi. System yang fault-tolerant mempunyai karakteristik
  1. Semua memiliki cadangan, jadi tidak ada komponen yang bergantung kepada satu alat saja
  2. Memiliki kemampuan memisahkan sistem yang gagal/rusak
  3. Bisa mencegah efek kerusakan supaya tidak menjalar ke komponen lain
  4. Kemampuan untuk berpindah ke komponen backup, dan kemudian kembali lagi ke komponen utama setelah sistem utama diperbaiki

  • Transaksi Data

Transaksi pada basis data adalah satu atomic operasi berupa lojik pekerjaan maupun lojik recovery yang bisa terdiri dari beberapa intruksi. Tujuan dari transaksi adalah menjaga database dari kehilangan data dan kerusakan,seperti system crash dan pengaksesan data yang sama secara bersamaan oleh dua aplikasi yang berbeda yang menimbulkan gangguan. Ada empat elemen dalam transaksi yang biasa disingkat ACID, yaitu :

  1. Atomicity,  semua berhasil atau semua gagal
  2. Consistency,  transaksi mempertahankan konsistensi database
  3. Isolation,  transaksi terisolasi satu dengan yang lain
  4. Durability,  setelah commit update harus survive di database

Dan ada dua jenis transaksi yang paling penting dalam sistem basis data adalah :

  1. Commit, memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system)
  2. Rollback, memberi tanda bahwa transaksi gagal. Semua update harus di-undo

Untuk lojik recovery atau system recovery database dilakukan ketika terjadi kegagalan media, kegagalan system atau kesalahan pada transaksi. Sistem recovery menggunakan fungsi rollback dan checkpoint. Checkpoint adalah interval tertentu pada perjalanan transaksi basis data yang menyimpan keadaan basis data saat itu. Checkpoint dapat dilakukan untuk merecovery database secara backward (undo) maupun forward (redo).

Sedangkan concurrency adalah sebuah mekanisme pada system basis data yang mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama tanpa adanya gangguan. Pada umumnya terdapat 3 masalah utama pada concurrency :

  1. Lost update problem, ketika dua user mengupdate dua buah data yang sama
  2. Uncommited dependency problem, ketika user yang satu meretrieve data dan user yang lain merollback data tersebut
  3. Inconsistent analysis problem, ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut

Untuk menangani masalah tersebut, dilakukan proses locking, jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia meminta lock. Ada dua jenis lock yaitu 

  1. Exclusive Lock (Xlock) à write lock
  2. Shared Lock (Slock) à read lock



Jadi cara kerjanya :

  1. Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock (X,S) pada record yang sama harus diabaikan.
  2. Jika transaksi A memegang Slock pada record R maka :

o   Permintaan Xlock transaksi lain pada R ditolak
o   Permintaan Slock transaksi lain pada R diterima

Tapi, ada satu masalah yang dapat terjadi ketika melakukan proses locking ini, yaitu deadlock. Yaitu, situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai. Cara penanganannya adalah :

  1. Deteksi dan pecahkan deadlock
  2. Deteksi deadlock à wait-for-graph
  3. Pecahkan deadlock à salah satu dirollback paksa
  4. Ostrich Algorithm  à diabaikan
  • Replikasi

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.

Keuntungan replikasi tergantung dari jenis replikasi tetapi pada umumnya replikasi mendukung ketersediaan data setiap waktu dan dimanapun diperlukan. Adapun keuntungan lainnya adalah :

  1. Memungkinkan beberapa lokasi menyimpan data yang sama. Hal ini sangat berguna pada saat lokasi-lokasi tersebut membutuhkan data yang sama atau memerlukan server yang terpisah dalam pembuatan aplikasi laporan.
  2. Aplikasi transaksi online terpisah dari aplikasi pembacaan seperti proses analisis database secara online, data smarts atau data warehouse.
  3. Memungkinkan otonomi yang besar. Pengguna dapat bekerja dengan meng-copy data pada saat tidak terkoneksi kemudian melakukan perubahan untuk dibuat database baru pada saat terkoneksi
  4. Data dapat ditampilkan seperti layaknya melihat data tersebut dengan menggunakan aplikasi berbasis Web
  5. Meningkatkan kinerja pembacaan
  6. Membawa data mendekati lokasi individu atau kelompok pengguna. Hal ini akan membantu mengurangi masalah karena modifikasi data dan pemrosesan query yang dilakukan oleh banyak pengguna karena data dapat didistribusikan melalui jaringan dan data dapat dibagi berdasarkan kebutuhan masing-masing unit atau pengguna.
  7. Penggunaan replikasi sebagai bagian dari strategi standby server.

Replikasi dapat digunakan apabila sebuah organisasi atau perusahaan didukung oleh hardware dan aplikasi sofware dalam sebuah sistem yang terdistribusi. Aplikasi yang berbeda mempunyai kebutuhan yang berbeda untuk otonomi dan konsistensi data. Replikasi diperlukan dalam sistem terdistibusi apabila berikut ini:

  1. Mengcopy dan mendistribusikan data dari satu atau lebih lokasi
  2. Mendistribusikan hasil copy data berdasarkan jadwal
  3. Mendistribusikan perubahan data ke server lain
  4. Memungkinkan beberapa pengguna di beberapa lokasi untuk melakukan perubahan dan kemudian menggabungkan data yang telah dimodifikasi
  5. Membangun aplikasi data yang menggunakan perlengkapan online maupun offline
  6. Membangun aplikasi Web sehingga pengguna dapat melihat volume data yang besar.



SUMBER:
http://www.proweb.co.id/articles/support/fault_tolerant.html
http://simbuda.blogspot.sg/2013/05/integritas-data.html
http://yurisagung.wordpress.com/2011/10/04/database-terdistribusi/

Skema dan Proses Time and Coordination Pada Sistem Terdistribusi, Share Data dan Sistem Database

1. Proses 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. Perpindahan antar job terjadi sangat sering sehingga user dapat berinteraksi dengan setiap programpada saat dijalankan. Suatu job akan dipindahkan dari memori ke disk dan sebaliknya. Sedangkan Coordination adalah 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.
contoh alur dalam sebuah database dan server yang menghubungkan yang terdapat di skema dibawah ini.
bacot
  1. Berdasarkan distribusi sumber informasi/data, jaringan komputer dapat dibedakan menjadi dua, yaitu jaringan terpusat (host based network) dan jaringan terdistribusi (distributed network).

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


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.

Minggu, 16 November 2014

File Service dan Name Service


A. Skema dan contoh proses File Service pada sistem terdistribusi antara client dan server

Skemanya adalah sebagai berikut: 



 
Dan didalam skema tersebut terdapat layanan File Service Terdistribusi, yaitu:

1.      Layanan Dasar
·  Tempat penyimpanan tetap untuk data dan program
·  Operasi terhadap file (create, open, read,…)
·  Multiple remote clients (dalam intranet)
·  File sharing                                             
·  Menggunakan semantic one-copy update umum, melalui RPC  
2.      Perkembangan baru
·  Persistent object stores (storage of objects)
3.      Persistent Java, Corba, …
·  Replikasi, caching keseluruhan file
·  Multimedia terdistribusi (contoh: file server Tiger video)

Contoh Prosesnya adalah:

Ketika mencoba mengunduh file dari Internet menggunakan Windows Internet Explorer pada sistem operasi Windows, proses pengunduhan berhenti merespon dan terputus. Masalah terjadi ketika menggunakan modem USB yang mempunyai kecepatan transfer data lebih cepat atau sama dengan 240 kilobits per detik (Kbps), file service akan berfungsi sebagai penyedia layanan untuk file yang diunduh tersebut. 

B. Skema dan contoh proses Name Service pada sebuah sistem terdistribusi
 
 Skemanya adalah:
 
·      Penamaan URL / nama domain: 
 

·      Proses integrasi sistem nama service: 
 

 
Dimana prosesnya adalah diproses dan dimulainya 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:

Nama resource (untuk pangilan)
Alamat (lokasi resource tsb),
Rute (Bagaimana mencapai lokasi tersebut).

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.

Contohnya pada alamat IP atau domain sebuah situs website