A. Pengertian Thread.
Thread
adalah prinsip yang memperbolehkan sebagian
dari program untuk berjalan secara independent dengan sebagian program lainnya. Dalam Threading anda dapat
menjalankan beberapa pointer (alamat dalam komputer)
sekaligus. Artinya dua atau lebih bagian dari kode
dapat dijalankan secara simultan.
B. Macam-Macam Thread.
01.) Single Threading.
Proses
hanya mengeksekusi satu
thread
dalam satu waktu.
02.) Multi Threading.
Proses
dapat mengeksekusi sejumlah
thread
dalam satu waktu.
C. Model MultiTrading.
01.) One to one.
Memetakan
setiap
user thread ke dalam 1 kernel
threa. Model ini ada pada Windows NT dan OS/2.
Kelebihan.
Model
one-to-one lebih sinkron
daripada model many-to-one karena
mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem
pemanggilan, hal ini juga membuat multiple thread bisa berjalan secara parallel dalam multiprosesor.
Kekurangan.
Dalam pembuatan user thread
diperlukan pembuatan korespondensi thread
pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi, maka kebanyakan
dari implementasi model ini membatasi jumlah
thread
yang didukung oleh sistem.
02.) One to Many.
Memetakan beberapa tingkatan
thread
user hanya ke satu
buah kernel thread. Model ini ada pada Solaris Green dan GNU Portable.
Kelebihan.
Managemen
proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi lebih efisien.
Kekurangan.
Multi thread
tidak dapat berjalan atau bekerja secara paralel
di dalam multiprosesor karena hanya satu thread
saja yang bisa mengakses kernel dalam suatu waktu.
03.) Many to Many.
Membolehkan
setiap tingkatan user
thread
dipetakan ke banyak kernel
thread.
Model ini ada pada Solaris, IRIX, dan Digital UNIX.
Kelebihan.
a.) Developer dapat membuat user
thread
sebanyak yang diperlukan dan kernel thread
yang bersangkutan dapat berjalan secara parallel pada multiprocessor.
b.) Ketika
suatu thread
menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi.
Kekurangan.
Developer
dapat membuat user
thread
sebanyak mungkin, tetapi konkurensi tidak
dapat diperoleh karena hanya satu thread
yang dapat dijadwalkan oleh kernel pada suatu waktu.
D. Thread dalam Sistem Operasi.
01.) Sistem operasi telah mendukung proses multithreading.
02.) Setiap
sistem operasi memiliki konsep tersendiri dalam pengimplementasiannya.
03.) Sistem operasi dapat mendukung thread
pada tingkatan kernel maupun tingkatan pengguna.
E. Keuntungan dan Kerugian
Sistem Thread.
01.) Keuntungan.
a.) Tanggap.
Multi-threading
mengizinkan program untuk terus berjalan
walaupun pada bagian program tersebut diblock atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Contohnya multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload
oleh thread
yang lain.
b.)
Pembagian
sumber daya.
Secara default, thread membagi memori
dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai
perbedaan aktifitas thread dengan alokasi.
c.)
Ekonomis.
Mengalokasikan
memori dan sumber
daya untuk membuat proses itu sangat mahal. Alternatifnya
thread
membagi sumber daya dari proses agar menjadi lebih ekonomis.
d.)
Pemberdayaan
arsitektur multiprosesor.
Keuntungan
dari multithreading
dapat ditingkatkan dengan arsitektur multiprosesor,
dimana setiap thread dapat berjalan secara parallel
pada prosesor yang berbeda. Pada arsitektur prosesor
tunggal, CPU
biasanya berpindah-pindah antara setiap thread
dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap
waktu.
02.) Kerugian.
a.) Multiple thread
bisa mengganggu satu sama lain saat berbagi hardware resource, misalnya chace memory.
b.) Execution time (waktu
proses) dari sebuah single-thread tidak dapat diimprove
(ditambah), tapi malah bisa diturunkan. Ini terjadi karena penurunan frequensi yang dibutuhkan ketika terjadi
pergantian thread yang berjalan.
c.) Harus
ada dukungan dari hardware
ataupun software untuk melakukan multi-Threading.
Referensi.
- http://www.infomugi.com/2013/05/pengertian-thread.html
- https://maungampus.blogspot.com/2013/09/pengertian-thread-dan-macam-macamnya.html
- https://plus.google.com/117209128481703603641/posts/2MJ5n4GN4mV
- http://amazingharry.blogspot.com/2015/01/apa-itu-thread-dan-apa-guna-thread.html
- https://tintakopi.wordpress.com/2011/10/24/thread-multithread/
Tidak ada komentar:
Posting Komentar