Session 1 & Season 2 : Thread
Thread adalah sebuah proses yang membuat banyak eksekusi dalam proses di tempat yang sama dan memiliki kendali tunggal
Thread memiliki 3 status eksekusi, yaitu
- Running
- Ready
- Terminated
Ada 2 jenis Threads
- Lightweight Process : Thread yang mempunyai beberapa properti dalam suatu proses
- Multithreading : Melakukan banyak eksekusi pada thread dalam proses tersebut
Kelebihan dari Thread
- Proses pembuatan Thread tidak memakan waktu yang lama
- Proses terminate Thread cepat
- Pertukaran informasi antar thread berlangsung dengan cepat
Thread dapat diimplementasikan kedalam
- User Space
- Kernel Space
- Hybrid
User Space
Keuntungan & Kelemahan User Space
+ Memungkinkan setiap proses untuk mengatur schedulenya sendiri
+ Performa
– Jika Thread pertama berhenti maka Thread lainnya juga ikut berhenti
– Ketika ada proses yang diblock, Thread juga dapat ikut ter-block
Kernel Space
Kelebihan & Kelemahan Kernel Space:
+ Tidak membutuhkan non blocking system call yang baru
– Cost untuk membuat dan mengakhiri thread lebih besar
Hybrid
Semua thread di proses yang sama mempunyai
- Ruang alamat yang sama
- Instruksi proses
- Data terbanyak
- Deskriptor
- Sinyal dan penangan sinyal
- Direktori kerja saat ini
- User ID dan group ID
Setiap thread mempunyai
- Thread ID
- Set register, stack pointer
- Stack untuk variabel lokal, mengembalikan alamat
- Signal mask
- Prioritas
- Nilai kembali
Thread dapat memiliki 4 state, yaitu
- Spawn : Thread dibuat oleh OS
- Block : Thread menunggu event
- Unblock : Event terjadi dan Thread mulai berjalan
- Finish : Thread selesai
Relasi antara Thread & Process
- 1:1 -> Setiap thread dari eksekusi adalah sebuah proses unik yang memiliki address space & resourcenya sendiri
- M:1 -> Sebuah proses mendefinisikan sebuah address space dan kepemilikan dynamic resources
- 1:M -> Suatu thread bisa berpindah dari sebuah proses environment ke proses environment lainnya
- M:M -> Menggabungkan atribut dari M:1 dan 1:M
Tipe-tipe Threading
- Coarse Threading : Modul individu, yang disebut sistem, yang ditugaskan untuk prosesor individu.
- Fine-Grained Threading : Banyak tugas yang sama atau identik dibagi di beberapa prosesor.
- Hybrid Threading : Merupakan gabungan dari Fine-Grained Threading dan Coarse Threading.
POSIX(Portable Operating System Interface)Threads