π― 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