Bab 4: Thread Pendahuluan Model Multithreading PermasalahanThreading Pthreads Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads 5.1 Single Process dan Multithread Process 5.2 1 Kelebihan Tingkat responsif Penggunaan Resource bersama-sama Ekonomi Utilitas arsitektur mikroprosessor 5.3 User Threads Adalah pengelolaan thread yang dilakukan oleh userlevel threads library Contoh - POSIX Pthreads - Mach C-threads - Solaris threads 5.4 2 Kernel Threads Didukung dengan Kernel Contoh - Windows 95/98/NT/2000 - Solaris - Tru64 UNIX - BeOS - Linux 5.5 Model Multithreading Many-to-One One-to-One Many-to-Many 5.6 3 Many-to-One Beberapa user-level threads dipetakan ke satu kernel thread. Digunakan pada sistem yang tidak didukung kernel threads. 5.7 Model Many-to-One 5.8 4 One-to-One Setiap user-level thread dipetakan ke kernel thread. Contoh - Windows 95/98/NT/2000 - OS/2 5.9 Model One-to-one 5.10 5 Many-to-Many Memungkinkan beberapa user level thread dipetakan ke beberapa kernel thread. Memungkinkan sistem operasi membuat sejumlah kernel thread. Solaris 2 Windows NT/2000 dengan ThreadFiber package 5.11 Model Many-to-Many 5.12 6 Permasalahan Threading Semantik system call fork() dan exec(). Pembatalan Thread. Penanganan sinyal (signal handling) Thread pools Thread specific data 5.13 Pthreads Adalah API standar POSIX (IEEE 1003.1c) untuk pembuatan dan sinkronisasi thread. API menentukan perilaku thread library, implementasi sesuai perkembangan library. Umum pada sistem operasi UNIX. 5.14 7 Solaris 2 Threads 5.15 Solaris Process 5.16 8 Windows 2000 Threads Mengimplementasikan pemetaan one-to-one. Setiap thread terdiri dari - thread id - sekumpulan register - memisahkan stack user dan kernel - area penyimpan data privat 5.17 Linux Threads Linux menggunakan istilah thread sebagai tasks daripada thread. Pembuatan thread dilakuka dengan system call clone(). Clone() memungkinkan task child menggunakan ruang alamat yang sama dengan task parent (process). 5.18 9 Java Threads Java threads dibuat dengan : Class Thread Mengimplementasikan antar muka yang Runnable Java thread dikelola oleh JVM. 5.19 State pada Java Thread 5.20 10