Pengertian atau definisi Thread dalam sistem operasi
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.
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.
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. Sebuah proses
tradisional atau heavyweight process
mempunyai thread tunggal yang
berfungsi sebagai pengendali.
Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan
lebih dari satu tugas pada satu satuan waktu.
Keuntungan
1
Tanggap: Multithreading
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. Keuntungan dari
pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi memori yang sama.
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:
Keuntungann dari multithreading 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. User thread didukung
oleh kernel dan diimplementasikan oleh thread
library ditingkat pengguna. Library mendukung
untuk pembentukan thread,
penjadualan, dan manajemen yang tidak didukung oleh kernel.