THREAD
Thread adalah sebuah alur kontrol dari sebuah proses.
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.
Ada tiga perbedaan tipe dari model
yang berhubungan dengan user dan kernel thread atau yang biasa disebut Multithreading Models yaitu :
yang berhubungan dengan user dan kernel thread atau yang biasa disebut Multithreading Models yaitu :
¨ 1)Model
many to one: memetakan beberapa user level thread hanya ke satu buah kernel
thread.
¨ 2)Model
one to one: memetakan setiap user thread ke dalam satu kernel thread. Berakhir.
¨ 3)Model
many to many: mengizinkan pengembang untuk membuat user thread sebanyak
mungkin,
JENIS THREAD
1)User thread
¨ Selalu
berasosiasi dengan kernel thread
¨ Pustaka
di level user ! cepat
¨ Salah
satu thread yang melakukan blocking akan mencegah seluruh
¨ proses
di mana thread tersebut berasal untuk ditunda (single thread
kernel)
! SC: read , sleep
¨ Pthread
(POSIX), Win32, Java
2)Kernel
thread
¨ Pengelolaan
di level kernel
¨ lambat
¨ dianggap
seperti proses
¨ Salah
satu thread yang melakukan blocking, tidak mencegah seluruh
proses
tertunda
MODEL THREAD
¨ Model many to one : memetakan beberapa user level thread hanya ke satu buah kernel thread
¨ Model
one to one : memetakan setiap user thread kedalam satu kernel thread, berakhir.
¨ Model
many to many : mengizinkan pengembang untuk membuat user thread sebanyak
mungkin, konkurensi tidak dapat tercapay karena hanya satu thread yang dapat
diajukan oleh kernel dalam suatu waktu.
JENIS THREAD
BERDASARKAN WAKTU PENCIPTANYA
¨ 1.
Static threads
Jumlah thread yang akan dibuat ditentukan saat penulisan dan kompilasi program.
Jumlah thread yang akan dibuat ditentukan saat penulisan dan kompilasi program.
Tiap
thread langsung dialokasikan stack tetap.
Keunggulannya : sederhana.
Kelemahannya : tidak fleksibel.
Keunggulannya : sederhana.
Kelemahannya : tidak fleksibel.
¨ 2.
Dynamic threads
Penciptaan dan penghancuran thread “on-the-fly” saat eksekusi. Penciptaan thread
Penciptaan dan penghancuran thread “on-the-fly” saat eksekusi. Penciptaan thread
¨ biasanya
menspesifikasikan fungsi utama thread (seperti pointer ke procedure) dan ukuran
stack,
dapat juga ditambah parameter-parameter lan seperti
prioritas panjadwalan.
Keunggulannya : fleksibel.
Kelemahannya : lebih rumit.
Keunggulannya : fleksibel.
Kelemahannya : lebih rumit.