Arsip untuk April, 2009

03
Apr
09

THREADS

*    Overview
*    Multithreading Models
*    Thread Libraries
*    Threading Issues
*    Operating System Examples
*    Windows XP Threads
*    Linux Threads

Objek
*    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.

Manfaat
*    Responsiveness
*    Berbagi sumber daya
*    Ekonomi
*    Scalability

Multicore Programming
*    Multicore sistem yang mendesak para programmer, meliputi tantangan :
–    Pembagian aktivitas
–    Penyesuaian
–    Pemisahan data
–    Ketergantungan data
–    Uji dan debugging

User Threads
*    Thread manajemen yang dilaksanakan oleh user-level thread library
*    Tiga thread library utama:
–    POSIX Pthreads
–    Win32 thread
–    Java Threads4.11 S

Kernel Threads
*    Dukungan dari 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

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.

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
1.    Isyarat dihasilkan oleh peristiwa tertentu
2.    Isyarat dikirimkan untuk suatu proses
3.    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.
*    Komunikasi ini mengijinkan suatu aplikasi untuk memelihara nomor yang benar dari kernel thread.

Contoh Operasi Sistem
Windows XP 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




April 2009
S S R K J S M
 12345
6789101112
13141516171819
20212223242526
27282930