Selasa, 03 April 2012

Implementasi Thread dan Multithread

Apa sih thread dan Multithread ?


Berdasarkan pengertian yang didapat dari wikipedia didapat pengertian mengenai ekskusi thread, dan ekseskusi thread  itu merupakan unit terkecil dari proses yang dapat dijadwalkan oleh sistem operasi. Sehingga implementasi dari thread dan proses berbeda antar sistem operasi yang ada, namun dalam banyak kasus threads terkandung dalam sebuah proses.

Setelah dicari lagi, ada ni karakteristik dari thread itu sendiri. Adapun karakteristikny seperti ini :


Proses merupakan lingkungan eksekusi bagi thread-thread yang dimilikinya. Thread-thread di satu proses memakai bersama sumber daya yang dimiliki proses, yaitu :
· Ruang alamat.
· Himpunan berkas yang dibuka.
· Proses-proses anak.
· Timer-timer.
· Snyal-sinyal.
· Sumber daya-sumber daya lain milik proses.
Tiap thread mempunyai property independen berikut seperti :
· Keadaan (state) eksekusi thread (running, ready dan sebagainya).
· Konteks pemroses. Thread dapat dipandang sebagai satu PC (program counter) tersendiri independen di satu proses.
· Beberapa penyimpan static per-thread untuk variable-variabel local.

lalu apabedanya thread dan multi thread,

yang sangat jelas adalah jika thread berarti hanya ada satu thread dalam satu proses, dan jika multithread ya ada lebih dari satu thread dalam sebuah proses. Namun walau di katakan multithread eksekusi tidak dilakukan dalam waktu yang bersamaan. Setiap thread memiliki antrian sehingga mereka memiliki timer kapan mereka akan di eksekusi. 

Untuk apa thread dan multi thread

tidak mungkin suatu ide tanpa guna, semua pasti memiliki guna, begitu juga thread, adapun thread berguna untuk

  • 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
namun dari semua itu 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.

langsung saja apa si implementasinya, implementasi dari sebuah thread dan multithread pada sebuah server adalah sebagai berikut :

Implementasi paket thread :
1. Thread level kernel.
> Keunggulan :
· Memudahkan koordinasi multithread seperti proses server.
· Tidak seboros kumpulan proses tradisional.
> Kelemahan :
· Operasi manajemen thread sangat lebih boros.
· Kernel harus menyediakan semua feature.
2. Thread level pemakai.
> Keunggulan :
Kinerja luar biasa bagus disbanding thread level kernel.
· Tidak diperlukan modifikasi kernel.
· Fleksibelitas tinggi.
> Kelemahan :
· Tidak manfaatkan multiprocessor.
· Untuk aplikasi dengan keterlibatan kernel yang kecil.
· Mengharuskan nonblocking system call.

Tidak ada komentar:

Posting Komentar