Minggu, 22 Oktober 2017
CONTOH THREAD
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 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:
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.
Thread
pada OS Windows dengan task manager:
-Bagian
Proses yang sedang berjalan.
-Bagian Performa
-Bagian Histori pada aplikasi
-Bagian
pada Startup
-Bagian Users
-Bagian Details
Langganan:
Postingan (Atom)