- Dapatkan link
- X
- Aplikasi Lainnya
A. Konsep Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol
thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada
satu waktu. 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.
B.
Perbedaan antara proses dengan thread tunggal
(single- threaded) dengan proses dengan thread yang banyak
(Multi-threaded) adalah proses dengan thread yang banyak dapat
mengerjakan lebih dari satu tugas pada satu satuan waktu
C.
Keuntungan Thread
1.
Responsi : Membuat aplikasi yang interaktif
menjadi multithreading dapat membuat sebuah program terus berjalan meskipun
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. Keuntungannya
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 threaddalam 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 (satusatuan waktu pada CPU biasa disebut time slice atau
quantum).
D.
Multithreading
1.
Thread pengguna : Thread yang pengaturannya dilakukan
oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan
fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat
dan dikendalikan.
2.
Thread Kernel : Thread yang didukung langsung
oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel
pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya
akan lebih lambat jika dibandingkan dengan thread pengguna.
E.
Model Multithreading
1.
Model Many-to-One.
2.
Model One-to-One.
3.
Model Many-to-Many.
1.
Many-to-One Model
·
Memetakan banyak user-level thread ke satu
kernel thread
·
Pengaturan thread dilakukan di user space
·
Efisien tetapi ia mempunyai kelemahan yang sama dengan
user thread
·
Tidak dapat berjalan secara pararel pada multiprocessor
2.
One-to-One Model
·
Memetakan setiap user thread ke kernel thread
·
Menyediakan lebih banyak concurrency
dibandingkan many-to-one model
·
Keuntungannya sama dengan keuntungan kernel thread
·
Kelemahannya setiap pembuatan user thread membutuhkan
pembuatan kernel thread yang dapat menurunkan performa dari sebuah aplikasi
·
Sistem operasi yang mendukung one-to-one model adalah
windows NT dan OS/2
3.
Many-to-Many Model
·
Multiplexes banyak user-level thread ke kernel
thread yang jumlahnya lebih kecil atau sama banyaknya dengan user-level thread
·
Jumlah kernel thread dapat spesifik untuk Sebagian
aplikasi atau sebagian mesin
·
Developer dapat membuat user thread sebanyak
yang diperlukan, dan kernel thread yang bersangkutan dapat bejalan secara
pararel pada multiprocessor.
·
Ketika suatu thread menjalankan blocking system
call maka kernel dapat menjadualkan thread lain untuk melakukan eksekusi.
·
Sistem operasi yang mendukung model ini adalah solaris,
irix, dan digital unix.

Komentar
Posting Komentar