BAB 4
URUTAN
Tinjauan
- Multithreading Models
- Perpustakaan thread
- Isu Threading
- Contoh Sistem Operasi
- Windows XP Threads
- Linux Threads
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
- Skalabilitas
Multicore Pemrograman
Multicoresystems meletakkan tekanan pada program, termasuk tantangan
- Dividing kegiatan
- Keseimbangan
- Data menggelikan
- Ketergantungan data
- Testing dan debugging
Pengguna Threads
Manajemen thread dilakukan oleh user level threads perpustakaan
Tiga utama perpustakaan thread:
- POSIX Pthreads
- Win32 threads
- Java threads
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 pengguna level thread dipetakan ke kernel thread tunggal
Contoh:
- Solaris Green Threads
- GNU Portable Threads
Satu-ke-Satu
Setiap user-level thread ke kernel thread peta
Contoh:
- Windows NT/XP/2000
- Linux
- Solaris 9 dan kemudian
Banyak-ke-Banyak Model
- Memungkinkan banyak pengguna tingkat benang yang akan dipetakan ke banyak kernel threads
- Memungkinkan sistem operasi yang cukup untuk membuat jumlah kernel threads
- Solaris sebelum versi 9
- Windows NT/2000 dengan ThreadFiberpackage
Model dua-tingkat
Mirip dengan M: M, kecuali yang memungkinkan pengguna untuk boundto thread kernel thread
Contoh
- IRIX
- HP-UX
- Tru64 UNIX
- Solaris 8 dan sebelumnya
Perpustakaan thread
Thread perpustakaan programmer dengan menyediakan API untuk membuat dan mengelola threads
Dua cara utama pelaksanaan
- Perpustakaan pengguna sepenuhnya dalam ruang
- Kernel level perpustakaan didukung oleh OS
Pthreads
- Dapat diberikan sebagai salah satu pengguna atau kernel-tingkat-tingkat
- J POSIX standard (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 (Solaris, Linux, Mac OS X)
Java Threads
- Java threads dikelola oleh JVM
- Biasanya dilaksanakan dengan menggunakan benang model yang disediakan oleh OS
- Java threads dapat dibuat oleh:
- Memperluas kelas Thread
- Pelaksanaan Runnableinterface
Isu Threading
- Semantik dari fork () dan exec () system calls
- Thread pembatalan target thread
Asynchronous atau ditunda - Sinyal penanganan
- Thread renang
- Thread-data spesifik
- Penjadwal activations
Semantik dari fork () dan exec ()
Apakah fork () sama saja atau semua panggilan thread threads?
Pembatalan thread
- Terminating sebuah thread sebelum selesai
- Dua pendekatan umum:
- Asynchronous cancellation terminates target thread segera
- Differed cancellation mengikuti target secara berkala memeriksa apakah harus dibatalkan
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:
Memberikan sinyal pada urutan ke sinyal yang berlaku
Memberikan sinyal ke setiap thread dalam proses
Memberikan sinyal ke thread tertentu dalam proses
Menetapkan tertentu threato menerima sinyal untuk semua proses
Thread Pools
- Buat jumlah benang dalam sebuah kolam 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 benang dalam aplikasi (s) untuk terikat dengan ukuran renang
Thread Data Spesifik
- memungkinkan setiap thread untuk memiliki salinan data
- berguna bila anda tidak memiliki kontrol atas urutan proses penciptaan (misalnya bila menggunakan thread renang)
Penjadwal Activations
- Kedua M: M dan Dua level model memerlukan komunikasi yang sesuai untuk mempertahankan jumlah kernel threads dialokasikan untuk aplikasi
- Penjadwal upcalls-activations menyediakan sebuah mekanisme komunikasi dari kernel thread ke perpustakaan
- Komunikasi ini memungkinkan aplikasi untuk mempertahankan correctnumber kernel threads
Contoh Sistem Operasi
- Windows XP Threads
- Thread Linux
Windows XP Threads
- Melaksanakan satu-ke-satu pemetaan, kernel-tingkat
Setiap thread berisi:
1. J thread id
2. Daftar menetapkan
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 (eksekutif thread blok)
2. KTHREAD (kernel thread blok)
3. TEB (thread lingkungan blok)
Linux Threads
- Linux merujuk kepada mereka sebagai tasksrather dari benang
- Thread dilakukan melalui penciptaan clone () sistem panggilan
- clone () memungkinkan seorang anak tugas untuk berbagi ruang alamat orang tua tugas (proses)
0 komentar:
Posting Komentar