Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack.
Berdasarkan pengendalinya, thread dibagi :
- User thread
- Kernel thread
- User thread dikendalikan oleh program pada level user tanpa campur tangan kernel
- Kernel thread dikendalikan langsung oleh sistem operasi.
KONSEP THREAD (cont.)
Keuntungan Thread :
- Responsif
- Berbagai sumber daya
- Ekonomis
- Utilisasi arsitektur multiprosessor
THREAD KERNEL
- Thread kernel didukung langsung oleh sistem operasi. Pembuatan, penjadwalan, dan manajemen thread dilakukan oleh kernel pada kernel space.
- Thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain di aplikasi untuk melakukan eksekusi.
- Pada lingkungan multiprocessor, kernel dapat menjadwal thread-thread pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread adalah Windows NT, Solaris, Digital UNIX.
THREAD CANCELLATION
Thread cancellation adalah pemberhentian thread sebelum tugasnya selesai. Pemberhentian target thread dapat terjadi melalui dua cara yang berbeda :
- Asynchronous cancellation: Suatu thread seketika itu juga memberhentikan target thread.
- Defered cancellation: Target thread secara periodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.
THREAD KERNEL LINUX
Linus Torvalds mendefinisikan bahwa sebuah thread adalah Context of Execution (COE), yang berarti bahwa hanya ada sebuah Process Control Block (PCB) dan sebuah penjadwal yang diperlukan.
Linux tidak mendukung multithreading, struktur data yang terpisah, atau pun rutin kernel. Linux menyediakan 2 system call yaitu fork dan clone.
THREAD KERNEL LINUX
Fork memiliki fungsi untuk menduplikasi proses dimana proses anak yang dihasilkan bersifat independent.
Clone memiliki sifat yang mirip dengan fork yaitu sama-sama membuat duplikat dari proses induk.
Clone memiliki sifat yang mirip dengan fork yaitu sama-sama membuat duplikat dari proses induk.
Model Multithreading Model Many-to-One
Beberapa user-thread dipetakan ke satu kernel-thread.
- Kelebihan : Tidak ada batasan jumlah user-thread yang bisa dibuat.
- Kelemahan : Satu thread melakukan blocking (misal I/O), seluruh proses ter-block. Dan Multithread tidak dapat dijalankan secara parallel pada sistem multicore.
Model One-to-One
Satu user-thread dipetakan ke satu kernel-thread. Pembuatan satu user-thread = Pembuatan satu kernel-thread.
- Kelebihan : Satu thread blocking tidak akan berpengaruh ke thread lain. Dan multithread dapat dijalankan secara parallel pada sistem multicore.
- Kelemahan : Jumlah user-thread yang bisa dibuat terbatas dan pembuatan kernel-thread dapat membebani performa.
Model Many-to-Many
Beberapa user-thread dipetakan ke beberapa kernel-thread (multiplexing). Jumlah kernel-thread yang dibuat bergantung aplikasi dan spesifikasi mesin
- Kelebihan : Satu thread blocking tidak akan berpengaruh ke thread lain. Dan tidak ada batasan jumlah user-thread
Two Level Model
Mirip M:M, tapi mengizinkan user-level thread dipetakan ke satu kernel thread. Contoh :
- IRIX
- HP-UX
- TRU64-Unix
- Solaris 8 ke bawah
ISU THREADING
- Semantik dari fork () dan exec () system calls.
- Pembatalan thread.
- Penanganan signal.
- Pengelompokan thread.
- Thread untuk data spesifik.
Baca Juga :