Tuesday 3 January 2012

THREAD pada SISTEM TERDISTRIBUSI

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

No comments: