🎯 Capaian Pembelajaran
Setelah mempelajari materi ini, mahasiswa diharapkan mampu:
- Memahami konsep thread dalam sistem operasi
- Membedakan proses dan thread
- Menjelaskan arsitektur multithreading
- Memahami model threading (user-level & kernel-level)
- Menganalisis keuntungan dan tantangan multithreading
1. 🧠 Konsep Dasar Thread
1.1 Pengertian Thread
Thread adalah unit eksekusi terkecil dalam suatu proses.
📌 Narasi:
Jika proses adalah “program yang berjalan”, maka thread adalah “jalur eksekusi” di dalam program tersebut.
Contoh:
- Browser → satu proses
- Tab browser → beberapa thread
🖼️ Ilustrasi Thread dalam Proses
10
📌 Penjelasan:
- Thread berbagi memori dalam satu proses
- Setiap thread memiliki:
- Program counter
- Register
- Stack
2. ⚖️ Perbedaan Proses dan Thread
📊 Tabel Perbandingan
| Aspek | Proses | Thread |
|---|---|---|
| Unit eksekusi | Besar | Kecil |
| Memori | Terpisah | Berbagi |
| Komunikasi | Lambat | Cepat |
| Overhead | Tinggi | Rendah |
| Contoh | Aplikasi | Task dalam aplikasi |
🧠 Narasi:
- Proses seperti rumah
- Thread seperti penghuni dalam rumah
3. 🔄 Multithreading
3.1 Pengertian
Multithreading adalah kemampuan sistem untuk menjalankan beberapa thread dalam satu proses secara bersamaan.
🖼️ Diagram Multithreading
8
🧠 Narasi:
Multithreading membuat aplikasi:
- Lebih responsif
- Lebih efisien
- Lebih cepat
4. 🎯 Manfaat Multithreading
4.1 Responsiveness
Aplikasi tetap berjalan meskipun satu thread sibuk
4.2 Resource Sharing
Thread berbagi memori
4.3 Economy
Lebih hemat dibanding proses
4.4 Scalability
Memanfaatkan multi-core CPU
5. 🧵 Model Multithreading
5.1 User-Level Thread (ULT)
🖼️ ULT Diagram
6
🧠 Penjelasan:
- Dikelola oleh user (library)
- OS tidak mengetahui thread
✅ Kelebihan:
- Cepat
- Tidak perlu kernel
❌ Kekurangan:
- Jika satu thread blocking → semua ikut berhenti
5.2 Kernel-Level Thread (KLT)
🖼️ KLT Diagram
7
🧠 Penjelasan:
- Dikelola oleh OS
✅ Kelebihan:
- Lebih stabil
- Bisa berjalan paralel
❌ Kekurangan:
- Overhead tinggi
5.3 Model Hybrid
🖼️ Hybrid Thread Model
6
🧠 Penjelasan:
Gabungan ULT dan KLT
📊 Perbandingan Model Thread
| Model | Kelebihan | Kekurangan |
|---|---|---|
| ULT | Cepat | Tidak paralel |
| KLT | Paralel | Overhead |
| Hybrid | Fleksibel | Kompleks |
6. 🔗 Multithreading vs Multiprocessing
🖼️ Perbandingan
6
📊 Tabel Perbandingan
| Aspek | Multithreading | Multiprocessing |
|---|---|---|
| Memori | Shared | Terpisah |
| Kecepatan | Lebih cepat | Lebih lambat |
| Kompleksitas | Tinggi | Lebih sederhana |
| Skalabilitas | Tinggi | Sangat tinggi |
7. ⚠️ Masalah dalam Multithreading
7.1 Race Condition
Beberapa thread mengakses data yang sama
7.2 Deadlock
Thread saling menunggu
7.3 Starvation
Thread tidak mendapat resource
🧠 Narasi:
Multithreading meningkatkan performa, tetapi juga meningkatkan kompleksitas.
8. 💻 Implementasi Nyata
Contoh:
- Web server (multi-threaded)
- Game
- Aplikasi mobile
Bahasa Pemrograman:
- Java → Thread API
- Python → threading
- C/C++ → pthread
9. 🧠 Studi Kasus
Kasus:
Aplikasi download manager
📌 Analisis:
- Thread 1 → download file 1
- Thread 2 → download file 2
- Thread 3 → update UI
➡ Semua berjalan bersamaan
10. 🧪 Contoh Sederhana (Python)
import threadingdef tugas():
print("Thread berjalan")t1 = threading.Thread(target=tugas)
t1.start()
11. 📝 Latihan
- Apa perbedaan proses dan thread?
- Jelaskan multithreading!
- Apa kelebihan ULT?
- Apa masalah dalam multithreading?
🎯 Kesimpulan
- Thread adalah unit eksekusi terkecil
- Multithreading meningkatkan efisiensi
- Ada berbagai model thread
- Perlu perhatian pada sinkronisasi
🚀 Pengembangan Materi Selanjutnya
➡ Sinkronisasi Proses
➡ Deadlock
➡ Manajemen Memori