Tinjauan
- Overview 
- Multithreading Models 
- Thread Libraries 
- Threading Issues 
- Operating System Examples 
- Windows XP Threads 
- Linux Threads 
- Untuk memperkenalkan suatu thread, suatu satuan dasar pemanfaatan CPU yang membentuk basis dari sistem komputer multithreaded. 
- Untuk mendiskusikan APIS untuk Pthreads, Win32, dan Java thread libraries. 
- Untuk menguji isu yang berhubungan dengan multithreaded program. 
- - Respon 
- - Berbagi sumber daya 
- - Ekonomi 
- - Skalabilitas 
Multicore sistem yang mendesak para programmer, kegiatannya meliputi:
- Pembagian aktivitas 
- Penyesuaian 
- Pemisahan data 
- Ketergantungan data 
- Uji dan debugging 
Thread manajemen yang dilaksanakan oleh user-level thread library
Tiga thread library utama:
- POSIX Pthreads 
- Win32 thread 
- Java Threads4.11 S 
Kernel Threads
Didukung oleh Kernel
Contoh:
- Windows XP/2000
- Solaris
- Linux
- Tru64 UNIX
- Mac OS X
Multithreading Models
- Banyak ke Satu 
- Satu ke Satu 
- Banyak ke Banyak. 
 Banyak ke Satu
Banyak   user-level thread yang dipetakan ke   kernel thread
Contoh:
- Solaris Green Threads 
- GNU Portable Threads 
Model Banyak ke Satu
 Satu ke Satu
Masing-Masing   user-level thread memetakan ke kernel thread
Contoh:
-  Windows NT/XP/2000 
- Linux 
- Solaris 9 and later 
Model Satu ke Satu
Banyak ke Banyak
- Membolehkan banyak tingkatan pemakai thread untuk dipetakan ke banyak kernel thread. 
- Membolehkan sistem operasi untuk menciptakan suatu jumlah cukup kernel thread. 
- Solaris sebelum versi 9. 
- Windows NT/2000 dengan Threadfiber paket. 
Model Banyak ke Banyak
Two-level Model
- Serupa dengan Banyak ke Banyak, jika tidak mengijinkan seorang pemakai thread untuk menjadi yang terikat harus kernel thread. 
- Contoh: 
- IRIX 
- HP-UX 
- Tru64 UNIX 
- Solaris 8 and earlier 
Thread Libraries
- Thread library menyediakan programmer dengan API untuk menciptakan dan memanage thread 
- Dua cara utama dalam menerapkan 
- Library seluruhnya di dalam user space 
- Kernel-Level library yang didukung oleh OS 
Pthreads
- Mungkin disediakan baik sebagai user-level atau kernel-level 
- Suatu POSIX standard ( IEEE 1003.1c) API untuk ciptaan thread dan sinkronisasi 
- API menetapkan perilaku meliputi thread library, implementasi sampai kepada pengembangan library 
- umum Di (dalam) sistem operasi UNIX ( Solaris, Linux, Mac OS X) 
Java Threads
- Java Threads diatur oleh JVM 
- secara khas Diterapkan menggunakan model Thread yang disajikan oleh dasar OS 
- Java Threads mungkin dibuat oleh: 
- Memperpanjang thread Kelas 
- Perapkan alat penghubung Yang Runnable 
Threading Issues
- Ilmu semantik garpu() dan exec() sistem [panggil/hubungi] 
- Susupkan pembatalan thread target 
- Ditunda atau Tak serempak 
- Isyarat [yang] menangani 
- thread Kolam 
- Data Thread-specific 
- Scheduler pengaktifan 
Thread Pembatalan
- Pengakhiran suatu Thread sebelum selesai 
- Dua pendekatan umum: 
- Pembatalan tak serempak dengan mengakhiri target dengan seketika 
- Pembatalan yang ditunda, mengijinkan target untuk menyusup pada waktu tertentu untuk memeriksa jika harus ditunda. 
Penanganan Isyarat
- Isyarat digunakan dalam sistem UNIX untuk memberitahu suatu proses tertentu yang telah terjadi 
- Suatu Penanganan Isyarat digunakan untuk memproses isyarat 
- Isyarat dihasilkan oleh peristiwa tertentu 
- Isyarat dikirimkan untuk suatu proses 
- Isyarat ditangani 
- Pilihan: 
- Isyarat kepada thread untuk mana isyarat [menerapkan/berlaku] 
- Isyarat [bagi/kepada] tiap-tiap thread di (dalam) proses 
- Isyarat ke thread tertentu di (dalam) proses 
- Nugaskan suatu threa spesifik untuk menerima semua isyarat untuk proses 
Thread Pools
- Membuat sejumlah thread di suatu kolam untuk mereka menunggu pekerjaan 
- Keuntungan: 
- Pada umumnya sedikit lebih cepat untuk melayani suatu permintaan dengan suatu thread yang sudah ada dibanding menciptakan suatu thread baru. 
- Mengijinkan banyak thread di dalam aplikasi untuk menjadi yang trikat harus ukuran dari tempatnya. 
Thread data Spesifik
- Mengijinkan masing-masing thread untuk mempunyai salinan sendiri data 
- Bermanfaat Ketika kamu tidak mempunyai kendali atas thread proses 
Scheduler Pengaktifan
- Kedua-Duanya, Banyak ke Banyak dan Two-Level model memerlukan komunikasi untuk memelihara, sesuai jumlah thread inti untuk mengalokasikan kepada aplikasi. 
- Scheduler pengaktifan menyediakan upcalls- suatu mekanisme komunikasi dari inti kepada thread library. 
Contoh Operasi Sistem
Windows XP Thread
- Komunikasi ini mengijinkan suatu aplikasi untuk memelihara nomor yang benar dari kernel thread. 
- Implementasi pemetaan satu ke satu, kernel-level 
- Masing-Masing thread berisi 
- Sebuah Thread id 
- Register Set 
- Pemisah pengguna dan Susunan kernel 
- Area penyimpanan data pribadi 
- Register Set, Susunan, dan kawasan Area penyimpanan data pribadi yang dikenal adalah konteks dari thread 
- Struktur data primer merupakan suatu thread termasuk: 
- ETHREAD ( blok thread eksekutif) 
- KTHREAD ( blok thread inti) 
- TEB ( menyusupkan blok lingkungan) 
Linux Thread
- Linux mengacu sebagai task bukan thread 
- Thread diciptakan sudah melalui clone() system call 
- Clone() mengijinkan turunan tugas untuk berbagi ruang alamat dari tugas induk 
   
 
