Thread

Apa itu thread ? thread merupakan intruksi yang dijalankan. Lalu, apa bedanya dengan proses ?


Gambar di atas menunjukkan tingkatan kombinasi proses dan thread yang dimiliki oleh sebuah komputer dari masa ke masa, contoh dari masing masing kombinasi adalah:
1. One Process One Thread -> MS DOS
2. One Process Multi Threads -> Java Virtual Machine
3. Multi Processes One Thread -> UNIX Family
4. Multi Processes Multi threads -> Hampir seluruh OS saat ini


PROSES VS THREAD
Proses:
- Memiliki ruang/space sendiri di memori untuk menampung process image
- Tidak dapat mengakses ruang lain di memori yang menjadi milik proses lain

Thread:
Dalam sebuah thread pada sebuah proses terdapat :
- Thread state
- Saved Thread Context saat tidak berjalan (Individual Program Counter)
- Execution Stack
- Local Variables
- Akses ke memory dan resource yang dimiliki oleh prosesnya
 
KEUNTUNGAN THREAD
1. Waktu pembuatan yang lebih cepat
2. Waktu pemberhentian yang lebih cepat
3. Waktu pergantian antar thread lebih cepat daripada antar proses
4. Komunikasi antar thread lebih efisien

PENGGUNAAN THREAD
a. Foreground & Background Work
b. Asynchronous Processing
c. Speed of Execution

THREAD STATE
Spawn - Thread muncul/dibuat oleh proses/OS
Block
 - Thread menunggu sebuah event
Unblock
 - Ketika event yang ditunggu oleh thread muncul
Finish
 - Thread selesai
 - Register context dan stack yang digunakan dibebaskan.

Jenis Implementasi Thread





USER LEVEL THREAD
Ciri-ciri :
- Kernel tidak mengetahui keberadaan thread
- Thread management dilakukan oleh aplikasi user level/library
Keuntungan :
- Thread switching tidak membutuhkan kernel mode privileges
- Dapat berjalan di berbagai OS
Kerugian :
- Satu  thread blocked, thread lain pada proses yang sama juga blocked
- Dua thread pada proses yang sama tidak dapat berjalan bersamaan pada dua prosesor

KERNEL LEVEL THREAD
Ciri-ciri :
 - Thread management dilakukan oleh kernel
Keuntungan :
- Thread pada proses yang sama dapat dijalankan pada prosesor yang berbeda
- Kernel routines juga dapat multithreaded
Kerugian :
- Thread switching antar proses yang sama tetap melibatkan kernel
- Dapat memperlambat

HYBRID LEVEL THREAD
Ciri-ciri :
- Ada sejumlah kernel level thread yang dipetakan ke sejumlah user level thread
- Pembuatan thread, scheduling, sinkronisasi dilakukan di user space.

Fakta menarik menengai thread :

  • Sebenarnya, yang berjalan pada prosesor adalah thread
  • Program mempunyai baris instruksi yang sangat banyak dijalankan secara sekuensial.
  • 1 proses merupakan sekumpulan thread, minimal 1 thread
  • 1 thread sekumpulan instruksi
  • Mozzila Firefox merupakan contoh multithread
  • Google Chrome merupakan contoh multiproses
  • Multi Process dan multi thread -> Apache
Mozzilla firefox dan google chrome merupakan salah satu web browser terbesar, tapi yang satu mengguna muultithread, yang satunya multi proses, apa dampaknya ?

Thread lebih cepat dibanding dengan proses. Tapi dalam beberapa thread pada satu proses, ada kemungkinan mereka saling berinteraksi, dan inilah yang membuat sistem keamanannya tidak seperti multiproses.

Ada juga beberapa aplikasi yang menggunakan multiproses dan multithread sekaligus, sehingga kecepatannya ramah, dan aman pada level tertentu 

0 komentar: