04 Thread.pdf
Transcript of 04 Thread.pdf
1
Bab 4: Thread
� Pendahuluan� Model Multithreading� Model Multithreading� PermasalahanThreading� Pthreads� Solaris 2 Threads� Windows 2000 Threads� Linux Threads� Java Threads
5.1
� Java Threads
Single Process dan MultithreadProcess
5.2
2
Kelebihan
� Tingkat responsif
� Penggunaan Resource bersama-sama
� Ekonomi
� Utilitas arsitektur mikroprosessor
5.3
User Threads
� Adalah pengelolaan thread yang dilakukan oleh user-level threads librarylevel threads library
� Contoh- POSIX Pthreads- Mach C-threads- Solaris threads
5.4
3
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
4
Many-to-One
� Beberapa user-level threads dipetakan ke satu kernel thread.thread.
� Digunakan pada sistem yang tidak didukung kernel threads.
5.7
Model Many-to-One
5.8
5
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
6
Many-to-Many
� Memungkinkan beberapa user level thread dipetakan ke beberapa kernel thread.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
7
Permasalahan Threading
� Semantik system call fork() dan exec().� Pembatalan Thread.� 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.pembuatan dan sinkronisasi thread.
� API menentukan perilaku thread library, implementasi sesuai perkembangan library.
� Umum pada sistem operasi UNIX.
5.14
9
Windows 2000 Threads
� Mengimplementasikan pemetaan one-to-one.� Setiap thread terdiri dari � 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 daripadathread.thread.
� Pembuatan thread dilakuka dengan system call clone().� Clone() memungkinkan task child menggunakan ruang
alamat yang sama dengan task parent (process).
5.18