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.
Gambar 3.1. Thread
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 dapat mempunyai ratusan klien yang
mengaksesnya secara concurrent. Kalau web server berjalan sebagai
proses yang hanya mempunyai thread tunggal maka ia hanya dapat melayani
Proses Hal. 1 Sistem Terdistribusi
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.
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). source:
http://naeli.staff.gunadarma.ac.id/Downloads/folder/0.1
http://www.itinfopoint.com/contentsimages/20130603-multithread.png
http://dee-x-cisadane.webs.com/apps/blog/show/10299581-perbedaan-proses-dan-thread-perbedaan-file-service-file-system-dan-file-server-beserta-contohnya-
link terkait:
1
2
3
4
Link referral
BalasHapushttp://VisitsToMoney.com/index.php?refId=1026986
Gunakan link di atas untuk menghasilkan lalu lintas dan mendapatkan uang 0,5 $ untuk setiap pengunjung unik yang mengklik link Anda.
Tempat yang baik untuk mulai posting link yang Anda situs sosial seperti Facebook, Twitter, Google+, YouTube, forum, chat room, blog, dll .