Kamis, 02 April 2009

CHAPTER 4 THREADS

- Overview / Tinjauan
- Multithreading Models / Multithreading Models
- Thread Libraries
- Threading Issues / Isu Threading
- Operating System Examples
- Windows XP Threads
- Linux Threads

Objectives / Tujuan
- Untuk memperkenalkan gagasan dari thread - mendasar unit CPU pemanfaatan yang
membentuk dasar dari sistem komputer multithreaded
- Untuk mendiskusikan API untuk Pthreads, Win32, dan Jawa thread perpustakaan
- Untuk meneliti masalah yang berkaitan dengan program multithreaded

Manfaat
- Respon
- Berbagi sumber daya
- Ekonomi
- Pemanfaatan MP arsitektur

Multicore Programming
- sistem meletakkan tekanan pada program, termasuk tantangan
1. Dividing kegiatan
2. Keseimbangan
3. Data splitting
4. Ketergantungan data
5. Testing dan debugging

Pengguna Threads
- Thread dilakukan oleh user level threads perpustakaan
- Tiga Utama threads perpusatakaan
1. POSIX Pthreads
2. Win32 threads
3. Java threads

Kernel Threads
- Didukung Oleh Kenel
- Contoh :
1. Windows XP/2000
2. Solaris
3. Linux
4. Tru64 UNIX
5. Mac OS X

Multithreading Models
- Many-to-One / Banyak-ke-Satu
- One-to-One / Satu-ke-Satu
- Many-to-Many / Banyak-ke-Banyak

Many-to-One / Banyak-ke-Satu
- Banyak pengguna level thread dipetakan ke kernel thread tunggal.
1. Solaris Green Threads
2. GNU Portable Threads

One-to-One / Satu-ke-Satu
- Setiap user-level thread ke kernel thread peta.
- Contoh :
1. Windows NT/XP/2000
2. Linux
3. Solaris 9

Many-to-Many / Banyak-ke-Banyak
- Memungkinkan banyak pengguna tingkat benang yang akan dipetakan ke banyak kernel threads.
- Memungkinkan sistem operasi yang cukup untuk membuat jumlah kernel threads.
- Solaris prior to version 9
- Windows NT/2000 dengan paket ThreadFiber

Two-level Model / Dua Tingkat Model
- Mirip dengan M: M, kecuali yang memungkinkan pengguna untuk terikat thread ke
kernel thread
- Contoh :
1. IRIX
2. HP-UX
3. Tru64 UNIX
4. Solaris 8

Thread Libraries / Thread perpustakaan
- Menyediakan API untuk membuat & mengelola threads
- Dua kunci utama untuk pelaksanaannya
1. Perpustakaan menyediakan Pengguna ruang
2. Kernel perpustakaan didukung oleh Sistem Operasi

Pthreads
- Kemungkinan ini menggunakan user-level atau kernel level
- POSIX sebuah standar (IEEE 1003.1c) API untuk pembuatan thread dan sinkronisasi.
- API menentukan perilaku urutan perpustakaan, pelaksanaan adalah sampai dengan
perkembangan perpustakaan.
- Umum dalam sistem operasi UNIX.

Java Threads
- Java threads dikelola oleh JVM.
- Typical penyesuainnya biasa menggunakan model yang sistem operasi bawaan
- Java threads dapat dibuat oleh:
1. Memperluas kelas Thread
2. Mengimplementasikan interface Runnable

Threading Issues / Isu Threading
- Semantik dari fork () dan exec () system call/ Semantik dari fork () dan exec ()
- Thread Cancellation / Pembatalan thread.
- Signal Handling / Sinyal penanganan.
- Thread pools
- Thread Specific Data / Thread data spesifik
- Scheduler activations / Penjadwal Activations

Semantics of fork() and exec() / Semantik dari fork () dan exec ()
- Apakah fork () sama saja atau semua panggilan thread threads?

Thread Cancellation / Pembatalan thread
- Terminating sebuah thread sebelum selesai
- Dua pendekatan umum:
1. Asynchronous pembatalan terminates target thread segera
2. Ditunda pembatalan memungkinkan untuk target thread secara berkala memeriksa
apakah harus dibatalkan

Signal Handling / Penanganan sinyal
- Sinyal digunakan di sistem UNIX untuk memberitahukan bahwa suatu proses tertentu
telah terjadi
- Penangan sinyal digunakan untuk proses sinyal
1. Sinyal yang dihasilkan oleh peristiwa tertentu
2. Sinyal yang dikirimkan ke proses
3. Sinyal ditangani

- Pilihan:
1. Memberikan sinyal pada urutan ke sinyal yang berlaku
2. Memberikan sinyal ke setiap thread dalam proses
3. Memberikan sinyal ke thread tertentu dalam proses
4. Menetapkan threa khusus untuk menerima semua sinyal untuk proses

Thread Pools
- Buat jumlah Thread dalam sebuah pools di mana mereka bekerja menunggu
- Keuntungan:
1. Biasanya sedikit lebih cepat ke layanan dengan permintaan yang ada daripada
membuat thread baru thread
2. Memungkinkan jumlah Thread dalam aplikasi (s) untuk terikat dengan ukuran pools

Thread Specific Data / Thread Data Spesifik
- Memungkinkan setiap thread untuk memiliki salinan data
- Berguna bila Anda tidak memiliki kontrol atas urutan proses penciptaan (misalnya,
bila menggunakan thread pools)

Scheduler Activations / Penjadwal Activations
- Kedua M: M dan Dua level model memerlukan komunikasi yang sesuai untuk
mempertahankan jumlah kernel threads dialokasikan untuk aplikasi
- Penjadwal activations menyediakan upcalls - sebuah mekanisme komunikasi dari
kernel thread ke perpustakaan
- Komunikasi ini memungkinkan aplikasi yang benar untuk mempertahankan nomor kernel
threads

Contoh Sistem Operasi
- Windows XP Threads
- Linux Thread

Windows XP Threads
- Melaksanakan satu-ke-satu pemetaan.
- Setiap thread berisi :
1. Sebuah thread id
2. Register set
3. Terpisah user dan kernel susunan
4. Tempat penyimpanan data pribadi
- Register set, susunan, dan tempat penyimpanan pribadi yang dikenal sebagai konteks
kehidupan
- Struktur utama data dari thread termasuk:
1. ETHREAD (executive thread block)
2. KTHREAD (kernel thread block)
3. TEB (thread environment block)

Linux Threads
- Linux merujuk kepada mereka sebagai tugas daripada threads.
- Thread dilakukan melalui penciptaan clone () sistem panggilan.
- Clone () memungkinkan seorang anak tugas untuk berbagi ruang alamat orang tua
tugas (proses)

Tidak ada komentar:

Posting Komentar