 |
| Ilustrasi Thread |
Thread merupakan unit dasar dari penggunaan CPU, yang
terdiri dari Thread_ID, program counter, register set, dan stack.
Perbedaan antara proses thread tunggal dengan proses thread yang banyak (Multi thread) adalah proses thread yang banyak dapat mengerjakan lebih dari satu tugas pada
satu satuan waktu.
Banyak sistem operasi modern telah memiliki konsep yang
dikembangkan agar memungkinkan sebuah proses untuk memiliki
eksekusi multithreads, agar dapat secara terus menerus mengetik
dan menjalankan pemeriksaan ejaan didalam proses yang sama,
maka sistem operasi tersebut memungkinkan proses untuk
menjalankan lebih dari satu tugas pada satu waktu.
A. Definisi Thread
Proses adalah program yang sedang
dieksekusi. Ada dua jenis proses, proses berat
(heavyweight) atau biasa dikenal dengan proses tradisional,
dan proses ringan atau kadang disebut thread.
Thread terdiri atas ID thread, program counter, himpunan register, dan stack
sehingga dengan banyaknya kontrol thread, proses dapat
melakukan lebih dari satu pekerjaan pada waktu yang sama.
Sebuah thread dalam sistem operasi memberikan
keuntungan sebagai berikut:
- Tanggap, artinya ketika Multithreading mengizinkan
program untuk berjalan terus walaupun 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.
- Pembagian sumber daya, artinya thread mampu
membagi memori dan sumber daya dari proses.
- Ekonomis, artinya ketika Sistem Operasi
mengalokasikan memori dan sumber daya untuk
membuat proses adalah sangat mahal. Alternatifnya,
thread mampu membagi sumber daya dari proses
sehingga lebih ekonomis untuk membuat proses.
- Pemberdayaan arsitektur multiprosesor, maksudnya
adalah dengan multithreading dapat ditingkatkan
dengan menggunakan arsitektur multiprosesor, di
mana setiap thread dapat jalan secara parallel pada
prosesor yang berbeda.
B. Model Multithreading
Implementasi Multithreading dalam sistem operasi terdiri
dari:
1. Model Many to One
Model many to one ini memetakan beberapa
tingkatan pengguna thread hanya kesatu 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. Model One to One
Model one to one memetakan setiap thread
pengguna ke dalam satu kernel thread. Hal ini
membuat model one-to-one lebih sinkron daripada
model many-to-one 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
one-to-one diimplementasikan oleh Windows NT
dan OS/2.
3. Model Many to Many
Beberapa tingkatan thread pengguna dapat
menggunakan jumlah kernel thread yang lebih kecil
atau sama dengan jumlah thread pengguna. Jumlah
dari kernel thread dapat dispesifikasikan untuk
beberapa aplikasi dan beberapa mesin (suatu
aplikasi dapat dialokasikan lebih dari beberapa
kernel thread dalam multiprosesor daripada dalam
uniprosesor) dimana model many-to-one
mengizinkan pengembang untuk membuat thread
pengguna sebanyak mungkin, konkurensi tidak
dapat tercapai karena hanya satu thread yang dapat
dijadualkan oleh kernel dalam satu waktu.
Model one-to-one mempunyai konkurensi yang lebih
tinggi, tetapi pengembang harus hati-hati untuk tidak
membuat terlalu banyak thread tanpa aplikasi dan
dalam kasus tertentu mungkin jumlah thread yang
dapat dibuat dibatasi.
Komentar
Posting Komentar