Thread
Suatu proses didefinisikan oleh resource yang digunakan dan lokasi yang
akan dieksekusi. Namun ada kalanya proses-proses akan menggunakan resource
secara bersama-sama. Suatu unit dasar dari CPU utilization yang berisi program
counter, kumpulan register, dan ruang stack disebut dengan thread atau
lighweight process(LWP). Thread akan bekerja sama dengan thread lainnya dalam
hal penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti
open file dan sinyal secara kolektif yang sering disebut dengan task.
a)
Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh
sistem operasi.
b)
Merupakan sebuah status eksekusi (ready, running, suspend, block, queue,
dll)
c)
Kadang disebut sebagai proses ringan (lightweight).
d)
Unit dasar dari dari sistem utilisasi pada processor (CPU).
e)
Dalam thread terdapat: ID Thread, Program Counter, Register dan Stack.
f)
Sebuah thread berbagi code section, data section dan resource sistem
operasi dengan thread yang lain yang memiliki proses yang sama.
Single-Threading dan Multi-Threading
• Single-Threading
adalah sebuah lightweight process
(proses sederhana) yang mempunyai thread tunggal yang berfungsi sebagai
pengendali/ controller.
• Multi-Threading
adalah proses dengan thread yang banyak
dan mengerjakan lebih dari satu tugas dalam satu waktu.
Dalam gambar tersebut terlihat perbedaan
antara single thread dengan multi thread. Setiap thread dapat melakukan proses
tersendiri, sehingga proses yang semula besar dipecah ke dalam proses kecilkecil,
sedangkan pada single thread hanya ada 1 thread yang menangani proses yang
besar. Tentu multithread akan lebih cepat dari pada single thread, namun dalam
kasus tertentu terlalu banyak multithread justru memperlambat kerja atau
proses.
Keuntungan Multi-Threading
1. Responsive; tanggap : Multi-Threading
mengizinkan program untuk berjalan terus walau-pun pada bagian program tersebut
di block atau sedang dalam keadaan menjalankan operasi yang lama/panjang.
Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi
dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
2. Pembagian sumber daya : Secara
default, thread membagi memori dan sumber daya dari proses. Ketika thread
berjalan pada data yang sama, thread tersebut bisa berbagi cache memory.
3. Ekonomis : Mengalokasikan memori dan
sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena
thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat
threads.
4. Pemberdayaan arsitektur
multiprosesor: Keuntungan dari multi-threading dapat ditingkatkan dengan
arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel 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.
2.4 Thread dalam Sistem Operasi
• Sistem operasi telah mendukung proses
multithreading.
• Setiap sistem operasi memiliki konsep
tersendiri dalam pengimplementasiannya.
• Sistem operasi dapat mendukung thread
pada tingkatan kernel maupun tingkatan pengguna.
Model Multi-Threading
1. Many-to-One
Model manytoone ini
memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel thread.
Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi
efisien, tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem
pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan dari model
ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel di
dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses
kernel dalam suatu waktu.
2. One-to-One
Model onetoone
memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini membuat
model onetoone lebih sinkron daripada model manytoone dengan mengizinkan
thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap
sistem pemanggilan; hal ini juga mengizinkan multiple thread untuk berjalan
secara parallel dalam multiprosesor. Kelemahan model ini adalah dalam pembuatan
thread pengguna dibutuhkan 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. Model onetoone diimplementasikan oleh Windows NT dan
OS/2.
3. Many-to-Many
Sumber :
0 Komentar