Laman

Minggu, 01 April 2012

Mengenal Lebih Jauh Thread & Multithread Server



Apa itu Thread?

Thread adalah sebuah pengontrol aliran program pelaksanaan program dengan menggunakan kendali tunggal. Operasi yang paling Modern saat ini adalah sistem yang banyak sekali menyediakan berbagai cara, dan memungkinkan suatu proses terkendali dengan baik. 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.



Keuntungan
  1. Tanggap: Multithreading mengizinkan program untuk berjalan terus walau pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
  2. Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi memori yang sama.
  3. Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
  4. Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara parallel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
Kegunaan Thread
Multithreading berguna untuk multiprocessor dan singleprocessor.
Kegunaan untuk system multiprocessor adalah :
- Sebagai unit pararel atau tingkat granularitas pararelisme.
- Peningkatan kinerja disbanding berbasis proses.

Kegunaan multithreading pada singleprocessor, adalah :
- Kerja foreground dan background sekaligus di satu aplikasi.
-  Penanganan asynchronous proseccing menjadi baik.
-  Mempercepat eksekusi program.
-  Pengorganisasian program menjadi lebih baik.

Manfaat utama banyak thread di satu proses adalah memaksimumkan derajat kongkurensi antara operasi-operasi yang terkait erat. Aplikasi jauh lebih efisien dikerjakan sebagai sekumpulan thread disbanding sekumpulan proses.

Multithread

Program dengan satu alur eksekusi disebut dengan program sekuensial. Program yang demikian hanya memiliki satu titik eksekusi pada tiap saat. Sedangkan program yang memiliki lebih dari satu alur eksekusi pada tiap saat disebut dengan program konkuren. Tiap unit alur eksekusi dari program konkuren disebut dengan thread. Thread dapat menciptakan thread baru lainnya ataupun membunuh thread yang sudah ada. Thread memberikan ilusi adanya sejumlah aktivitas yang berjalan pada saat bersamaan. Namun bedanya dengan sejumlah proses yang berjalan pada sistem operasi, threadthread yang berjalan pada satu aplikasi memiliki ruang alamat yang sama. Artinya threadthread tersebut memiliki akses bersama ke kode program, memori dan data global yang sama seperti pada gambar 2. Selain struktur data bersama yang dapat diakses bersama, thread juga memiliki struktur data private atau khusus (variabel lokal thread) yang disimpan pada stack thread dan hanya dapat diakses oleh thread bersangkutan.


Keuntungan menggunakan sejumlah thread dalam program antara lain:
kemampuan melakukan sejumlah tugas secara simultan dan tak bergantung satu sama lain. Misalkan satu thread melakukan penggambaran animasi secara background, sedangkan thread lain menangani inputan user lewat keyboard. Selain itu thread dapat meningkatkan throughput aplikasi, memperbaiki waktu tanggapan (responsiveness) aplikasi dan kemampuan untuk menggunakan sumber daya sistem secara efisien.

Implementasi multithreading
model many-to-one
one-to-one
many-to-many

Keuntungan MultiThreading
Multiprocessing merupakan penggunaan dua atau lebih CPU dalam sebuah sistem komputer. Multitasking merupakan metode untuk menjalankan lebih dari satu proses dimana terjadi pembagian sumberdaya seperti CPU. Multithreading adalah cara pengeksekusian yang mengizinkan beberapa thread terjadi dalam sebuah proses, saling berbagi sumber daya tetapi dapat dijalankan secara independen.


Tidak ada komentar:

Posting Komentar