Pengertian
Thread
Thread
dalam sistem operasi dapat diartikan sebagai sekumpulan perintah (instruksi)
yang dapat dilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan
menggunakan cara time slice (ketika
satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut
dilaksanakan oleh CPU yang berbeda dalam satu sistem).
Ulir
sebenarnya mirip dengan proses, tapi cara berbagi sumber daya antara proses
dengan ulir sangat berbeda. Multiple
Thread dapat dilaksanakan secara sejajar pada sistem komputer. Secara umum Multi Threading melakukan time-slicing (sama dengan time-division multipleks), dimana sebuah
CPU bekerja pada ulir yang berbeda, dimana suatu kasus ditangani tidak
sepenuhnya secara serempak, untuk CPU tunggal pada dasarnya benar-benar
melakukan sebuah pekerjaan pada satu waktu.
Thread saling
berbagi bagian program, bagian data dan sumber daya sistem operasi dengan
thread lain yang mengacu pada proses yang sama. Thread terdiri atas ID Thread,
program counter, himpunan register, dan stack. Dengan banyak kontrol thread
proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.
Thread juga sering
disebut lightweight process. Sebuah proses tradisional atau heavyweight process
mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaannya ialah
proses dengan thread yang banyakmengerjakan lebih dari satu tugas pada satu
satuan waktu.
Pada umumnya,
perangkat lunak yang berjalan pada komputer modern dirancang secara
multithreading. Sebuah aplikasi biasanya diimplementasi sebagai proses yang
terpisah dengan beberapa thread yang berfungsi sebagai pengendali. Contohnya
sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan
sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Terkadang ada sebuah
aplikasi yang perlu menjalankan beberapa tugas yang serupa. Sebagai contohnya
sebuah web server dapat mempunyai ratusan klien yang mengaksesnya secara
concurrent. Kalau web server berjalan sebagai proses yang hanya mempunyai
thread tunggal maka ia hanya dapat melayani satu klien pada pada satu satuan
waktu. Bila ada klien lain yang ingin mengajukan permintaan maka ia harus
menunggu sampai klien sebelumnya selesai dilayani. Solusinya adalah dengan
membuat web server menjadi multi-threading. Dengan ini maka sebuah web server
akan membuat thread yang akan mendengar permintaan klien, ketika permintaan
lain diajukan maka web server akan menciptakan thread lain yang akan melayani
permintaan tersebut.
a.Single thread dan multi thread
· Single thread: process hanya mengeksekusi satu thread saja pada satu waktu.
· Multi thread: process dapat mengeksekusi sejumlah thread dalam sata waktu.
b.Model Multithreading
Dukungan thread
disediakan pada tingkat user yaitu user threads atau tingka kernel untuk kernel threads. User Threads disediakan oleh kernel dan diatur tanpa dukungan kernel,
sedangkan kernel therads didukung dan diatur secara langusng oleh sistem operasi.
Hubungan antara user threads dan kernel threads terdiri dari tiga model relasi,
yaitu:
1. Model Many to One
Model Many-to-One memetakan beberapa thread tingkatan
pengguna ke sebuah thread tingkatan kernel. Pengaturan thread dilakukan dalam
ruang pengguna, sehingga efisien. Hanya satu thread pengguna yang dapat
mengakses thread kernel pada satu saat. Jadi, multiple thread tidak dapat
berjalan secara paralel pada multiprocessor. Thread tingkat pengguna yang
diimplementasi pada sistem operasi yang tidak mendukung thread kernel
menggunakan model Many-to-One.
2. Model One to One
v Model One-to-One memetakan setiap thread tingkatan
pengguna ke thread kernel. Ia menyediakan lebih banyak concurrency dibandingkan
model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel.
Kelemahannya model ini ialah setiap pembuatan thread pengguna memerlukan
pembuatan thread kernel. Karena pembuatan thread dapat menurunkan kinerja dari
sebuah aplikasi maka implmentasi dari model ini jumlah thread dibatasi oleh
sistem. Contoh sistem operasi yang mendukung model One-to-One ialah Windows NT
dan OS/2.
3. Model Many To Many
Model ini me-multipleks banyak thread tingkatan
pengguna ke thread kernel yang jumlahnya lebih sedikit atau sama dengan
tingkatan pengguna. thread. Jumlah thread kernel spesifik untuk sebagian
aplikasi atau sebagian mesin. Many-to-One model mengizinkan developer untuk
membuat user thread sebanyak yang ia mau tetapi concurrency (berjalan bersama)
tidak dapat diperoleh karena hanya satu thread yang dapat dijadwal oleh kernel
pada suatu waktu. One-to-One menghasilkan concurrency yang lebih tetapi
developer harus hati-hati untuk tidak menciptakan terlalu banyak thread dalam
suatu aplikasi (dalam beberapa hal, developer hanya dapat membuat thread dalam
jumlah yang terbatas). Model Many-to-Many tidak mengalami kelemahan dari dua
model di atas. Developer dapat membuat user thread sebanyak yang diperlukan,
dan kernel thread yang bersangkutan dapat bejalan secara paralel pada
multiprocessor. Dan juga ketika suatu thread menjalankan blocking system call
maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi. Contoh
sistem operasi yang mendukung model ini adalah Solaris, IRIX, dan Digital UNIX.
Sumber :
Comments
Post a Comment