THREAD
Oleh:
1.SERDA A. LOLO
2.ADHAR RAHMAN
3.BAMBANG LENGKONG
1. Pengertian Thread
2. Model Multithread
Beberapa terminologi yang akan di bahas , yaitu
User (pengguna) thread
User thread didukung di atas kernel dan diimplementasi oleh thread library pada
user level. Library menyediakan fasilitas untuk pembuatan thread, penjadualan
thread, dan managemen thread tanpa dukungan dari kernel.
Adapun kelemahannya yang dialami yaitu apabila kernelnya merupakan thread
tunggal maka apabila salah satu user-level thread menjalankan blocking system
call maka akan mengakibatkan seluruh proses diblok walau pun ada thread lain
yang dapat jalan dalam aplikasi tersebut
Kernel tread
Kernel thread didukung langsung oleh sistem operasi. Pembuatan, penjadualan,
dan managemen thread dilakukan oleh kernel pada kernel space. Pembuatan dan
pengaturan kernel thread lebih lambat dibandingkan user thread.
Keuntungannya adalah jika sebuah thread menjalankan blocking system call maka
kernel dapat menjadualkan thread lain di aplikasi untuk melakukan eksekusi. Pada
lingkungan multiprocessor, kernel dapat menjadual thread-thread pada processor
yang berbeda.
Contoh sistem operasi yang mendukung kernel thread adalah Windows NT,
Solaris, Digital UNIX.
a. Berdasarkan Pemetaan Thread
Model multithreading berdasarkan dengan pemetaan dibedakan menjadi tiga
bagian, yaitu:
1) Many to One
Model ini memetakan beberapa thread tingkatan user ke sebuah thread
tingkatan kernel. Pengaturan thread dilakukan dalam ruang user
sehingga efisien. Hanya satu thread user yang dapat mengakses thread
kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel
pada multiprosesor. Contoh dari many to one adalah Solaris Green Threads
dan GNU Portable Threads. Model Many to One ditunjukkan pada gambar
2.3.
2) One to One
Model ini memetakan setiap thread tingkatan user ke setiap thread. One to
One menyediakan lebih banyak concurrency dibandingkan model Many to
One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan
model ini ialah setiap pembuatan thread user memerlukan tambahan thread
kernel. Karena itu, jika mengimplementasikan sistem ini maka akan
menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread
dibatasi dalam sistem. Adapun contoh dari one to one, yaitu Windows
NT/XP/2000, Linux, Solaris 9. Gambar 2.4. menunjukkan model One to One.
2. Multithread Process
Merupakan satu atau beberapa thread yang dijalankan secara bersamaan
(multiproses), dimana masing-masing thread tersebut dijalankan pada jalur
masing-masing. Setiap thread pada multithread menjalankan kode atau script
program secara berurutan. Multithread dapat diartikan juga sebagai suatu proses
dengan thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan
waktu.
Multithread sering pula disebut dengan multiproses atau multitasking pada
sistem operasi. Gambar multithread ditunjukkan pada gambar 2.2.
Thread adalah sebuah alur kontrol dari sebuah proses. Thread terbagi menjadi dua jenis
yaitu Single Thread dan Multithread. Dilihat dari kegunaannya multithread adalah thread
yang paling banyak dipakai akhir-akhir ini. 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.
Model many to one: memetakan beberapa user level thread hanya ke satu buah
kernel thread.
Model one to one: memetakan setiap user thread ke dalam satu kernel thread.
berakhir.
Model many to many: mengizinkan pengembang untuk membuat user thread
sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang
dapat dijadualkan oleh kernel dalam satu waktu.