THREAD
Proses merupakan sebuah program yang mengeksekusi thread
tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk menjalankan
satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep
yang dikembangkan agar memungkinkan sebuah proses untuk mengeksekusi
multi-threads. Misalnya user melakukan pekerjaan secara bersamaan yaitu
mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama. Thread
merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread ID, program
counter, register set, dan stack. Sebuah threadberbagi 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. 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.
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
[MDGR2006].
a. Single thread dan multi
thread
1. Single thread: process hanya mengeksekusi satu thread
saja pada satu waktu.
2.
Multi thread: process dapat mengeksekusi sejumlah thread dalam satu 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:
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.
Model Many to One
Model One to One: 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.
Gambar 5. Model One to One
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.
-Bagian Performa
-Bagian Histori pada aplikasi
Thread pada OS Windows dengan task manager:
-Bagian Proses yang sedang berjalan.
-Bagian Performa
-Bagian pada Startup
-Bagian Users-Bagian Details
Tidak ada komentar:
Posting Komentar