Selasa, 25 Maret 2014

MultiThread Server

 Pengertian Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multi-threads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.

Keuntungan dari multithreaded meliputi peningkatan respon dari pengguna, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. 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 dan proses dengan thread yang banyak adalah proses dengan thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.

Banyak perangkat lunak yang berjalan pada PC modern dirancang secara multi-threading. Sebuah aplikasi biasanya diimplementasi sebagai proses yang terpisah dengan beberapa thread yang berfungsi sebagai pengendali. Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.

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.

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 meski pun 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


Model-model Multithreading:

a. Model Many-to-One. 
Model ini 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 multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads.

b. Model One-to-One. 
Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.

c. Model Many-to-Many. 
Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.


Referensi :

  1. Bheta Staff Gunadarma ac id 
  2. Hofidatur Sistem Terdistribusi 
  3. Komputasi _ Sistem Terdistribusi 
 
Link Terkait :




Pengaruh Mobile Computing Terhadap Media Sosial




  
The implication of mobile phones in our modern world is getting clearer and with the impact that these devices have had on social media networking sites, mobile computing just got better and attention from hardware and software developers and vendors. Mobile computing innovations have seen the rise of Android and iPhone platforms where third-party developers have developed hundreds of thousands of apps that run on these devices, some right in the cloud. The real drivers of mobile computing however are not the hardware and software manufacturers but rather the many users that interact and are always connected on these social networks and using these devices. It can therefore be assumed that the future of these devices and where they are used will largely determine future innovations surrounding the proliferation of mobile devices.

Mobile users spend more time on networking sites than their desktop counterparts. This means that network systems will require more dynamic connectivity patterns if this trend is expected to continue and if social networking sites expect to reap more revenue in the future. Mobile advertisers will also reap a huge chunk of that revenue as innovation in the field of geo-location, user activity sensing and social profiling is expected to lead to more targeted and therefore better advertising. It is also highly likely that mobile computing developments will largely revolve around social networks like Facebook and Twitter. Already, the launch of Facebook places and the ability to add longitude and latitude to tweets are evidence that the future of mobile computing is in social media.



All the above sounds interesting, however it also means that things like customer experience with low latency, high responsiveness and ease of interaction will need major improvements if customers are expected to have the same kind of experience on mobile platforms as desktop users. It is also interesting to see that the current limitations on mobile devices have induced new behavior in users. This includes skimming through content rather than reading and writing short answers. While solutions to these challenges can be built around these emerging behaviors, one this is clear, users? expectations cannot be met unless these challenges can be solved.

Energy concerns for mobile computing are another challenge. Smartphones rarely store charge for more than 8 hours in continuous use and bigger and more colorful screens means that power usage just went up. These are challenges that can be resolved by having more efficient hardware and software. We can only reflect on the current developments in mobile computing and its impact on social media and hope that it will tangibly shape the unpredictable path into the future of human interaction.

The conclusion is the development of technologies that exist today people have started to leave the desktop computer to access the websites and social media , today more and more people are using their mobile devices to access social media , because of its practicality and mobile to be in access anytime, anywhere . With the number of people who started using mobile devices and the time spent by the users more likely to use mobile devices to access the site . certainly requires a more dynamic network system . If these trends continue to occur , it is also what makes that social media is the right place for advertising . Due to the development of social media very rapidly when compared with previous years . wherein when it only contained friendster and myspace as a popular social media , but now many more ranging from facebook , twitter , path , and others . But the greatest challenges in mobile devices is battery life itself, where the average smart phone available today can not be used more than 8 hours of continuous use . would be very bad if we have to close to a power source continuously just to charge our mobile devices .

Senin, 17 Maret 2014

RPC (Remote Prosedur Call) Pada Sistem Terdistribusi




Pada RPC (Remote Procedure Call) Proses nya kurang lebih sama dengan RMI. Kalau RMI kita mengenal Proxy dan Skeleton, pada RPC dikenal dengan Stub (Client Stub dan Server Stub). 

RPC sendiri adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh (remote system). RPC mengasumsi keberadaan dari low-level protokol transportasi seperti TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal Data Representation (XDR), yang merupakan standar dari representasi data dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan.

Berikut adalah ilustrasi implementasi RPC :


Dalam RPC, klien yang memanggil sebuah prosedur tidak dapat mengatakan apakah prosedur berjalan dalam proses yang sama atau dalam proses yang berbeda, mungkin yang berbeda komputer. Klien juga tidak perlu mengetahui lokasi dari server. objek-objek dapat menghasilkan Events dan objek-objek yang menerima pemberitahuan tentang peristiwaperistiwa itu perlu tidak menyadari satu lokasi lainnya.


Communication Protocol : 
Protokol-protokol komunikasi yang mendukung protokol middleware abstraksi yang independen dari protokol transportasi yang mendasarinya. Sebagai contoh, permintaan-reply protokol dapat diimplementasikan di UDP atau TCP.

Computer Hardware :
Dua standar yang disetujui untuk representasi data eksternal dijelaskan dalam Bagian 4.3. Ini digunakan ketika marshalling dan unmarshalling pesan. Mereka menyembunyikan perbedaan karena arsitektur perangkat keras, seperti byte pemesanan. 

Sistem operasi : 
Semakin tinggi tingkat abstraksi yang disediakan oleh lapisan middleware yang independen dari sistem operasi yang mendasarinya. 

Penggunaan beberapa bahasa pemrograman : 
Beberapa middleware dirancang untuk memungkinkan aplikasi didistribusikan menggunakan lebih dari satu bahasa pemrograman. Secara khusus, CORBA yang memungkinkan klien menulis dalam satu bahasa untuk memohon method berada di server program yang ditulis dalam bahasa lain. Hal ini dicapai dengan menggunakan Interface Definition Language atau IDL untuk mendefinisikan antarmuka. IDL ini dibahas dalam bagian berikutnya.


 Referensi :

1. Sistem Terdistribusi - Risanuri UGM ac id
2. Sistem Terdistribusi Ruddy J. Suhatril, SKom - OpenStorage Gunadarma
3. Pengelanan Sistem Terdistribusi - Gunadarma 

Link Terkait :
1.Layer Protokol Dalam Sistem - Dias Nurul Arifin
2.Prinsip Dasar RPC - Rizky Novianto
3.Konsep Objek Terdistribusi - Bagus Firmansyah K
4.Metode Komunikasi Pada Sistem Terdistribusi - Muhammad Reza C 

Selasa, 11 Maret 2014

Karakteristik Sistem Terdistribusi



Sistem Terdistribusi adalah Sekumpulan komputer otonom yang terhubungn ke suatu jaringan, dimana bagi pengguna sistem terlihat sebagai satu komputer. Maksud komputer otonomi adalah walaupun komputer tidak terhubung ke jaringan, komputer tersebut tetap data berjalan.


Adapun Karakteristik Sistem Terdistribusi adalah sebagai berikut :


Karakteristik Sistem Terdistribusi.



1. No Global Clock.


Pada No global clock terdapat batasan pada kecepatan proses sinkronasi clock pada sistem terdistribusi, oleh karena asynchronous message passing hal ini yang menyebabkan kesulitan dalam mensinkronkan waktu seluruh komputer/perangkat yang terlibat. Dapat berpengaruh pada pengiriman pesan/data, seperti saat beberapa proses berebut ingin masuk ke critical session. Oleh karena itu pada No global lock pada sistem terdistribusi tidak ada satu proses tunggal yang mengetahui global state sistem saat ini karena tidak adanya clock global, hal ini juga di sebabkan oleh concurrency dan message passing. selanjutnya dalam pemakaian bersama atas suatu sumber daya diperlukan beberapa hal, yaitu:

  • Dibutuhkan hardware dan software yang mendukung.
  • Memerlukan resource manager.
  • Perlunya suatu hubungan antara resource dengan pihak yang menggunakannya.
  • Terdapat client-server, remote evolution, code on demand, dan mobile agent.

2. Independent Failure.

Setiap sistem yang di buat pasti menghasilkan suatu error atau kesalahan , jika pada sistem terdistribusi hal itu dinamakan independent failure. yang termasuk independent failure yaitu :
  • Kemungkinan adanya kegagalan proses tunggal yang tidak diketahui
  • Proses tunggal mungkin tidak peduli pada kegagalan sistem keseluruhan





3. Concurrency of Components.

Pengaksesan suatu komponen/sumber daya (segala hal yang dapat digunakan bersama dalam jaringan komputer) secara bersamaan.
Contoh: Beberapa pemakai browser mengakses halaman web secara bersamaan.

  • Setiap komponen Hardware atau Software bersifat otonom.
  • Sinkronisasi dan koordinasi dengan message passing.
  • Sharing resource

• Masalah umum dalam system concurrent:

- Deadlock
  • Deadlock adalah keadaan dimana 2 atau lebih proses saling menunggu meminta resources untuk waktu yang tidak terbatas lamanya. Analoginya seperti pada kondisi jalan raya dimana terjadi kemacetan parah
- Lifelock
  •  Kebalikan dari deadlock jika di deadlock.
- Komunitas yang tidak handal


 Referensi :

1. Sistem Terdistribusi - Anton Pres
2. Sistem Terdistribusi Ruddy J. Suhatril, SKom - OpenStorage Gunadarma
3. Pengelanan Sistem Terdistribusi - Gunadarma 

Link Terkait :
1.Permasalahan Sistem Terdistribusi - Dias Nurul Arifin
2.Tantangan Sistem Terdistribusi - Rizky Novianto 
3.Definisi Sistem Terdistribusi - Bagus Firmansyah K
4.Model Sistem Terdistribusi - Muhammad Reza C