Thread: sekumpulan instruksi (proses) yang dieksekusi secara independen.
Multithreading: suatu kemampuan yang memungkinkan beberapa kumpulan
instruksi (proses) dijalankan secara bersamaan dalam
sebuah program.
Sebuah thread memungkinkan untuk memiliki beberapa state:
1. Running
Sebuah thread yang pada saat ini sedang dieksekusi dan didalam control dari CPU.
2. Ready to run
Thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untuk
melakukannya.
3. Resumed
Setelah sebelumnya di block atau diberhentikan sementara, state ini kemudian siap
untuk dijalankan.
4. Suspended
Sebuah thread yang berhenti sementara, dan kemudian memperbolehkan CPU untuk
menjalankan thread lain bekerja.
5. Blocked
Sebuah thread yang di-block merupakan sebuah thread yang tidak mampu berjalan,
karena ia akan menunggu sebuah resource tersedia atau sebuah event terjadi.
Model-Model MultiThreading:
1. Model Many-to-One
Model ini 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 multiprosesor. Contoh: Solaris Green
Threads dan GNU Portable Threads.
2. Model One-to-One
Model ini memetakan setiap thread tingkatan
pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency
dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan
thread kernel. Kelemahan model ini ialah setiap pembuatan thread
pengguna memerlukan tambahan thread kernel. Karena itu, jika
mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah
aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh:
Windows NT/XP/2000 , Linux, Solaris 9.
3. Model Many-to-Many
Model ini memultipleks banyak thread tingkatan
pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan
tingkatan pengguna. Model ini mengizinkan developer membuat thread
sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena
hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu.
Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat
berjalan secara paralel pada multiprosessor.
Keuntungan menggunakan Multithreading:
1. Meningkatkan respon dari pengguna.
2. Pembagian sumber daya.
3. Ekonomis.
4. Mengambil keuntungan dari arsitektur multiprosessor.
Multithreading bermanfaat untuk membuat proses yang interaktif, misalnya
pada program permainan (game). Contohnya pada game Counter Strike. Pengguna dapat bergarak sambil melakukan penembakkan. Bayangkan saja apabila game tersebut tidak ada proses multithreading.
Tidak ada komentar:
Posting Komentar