Thread Kelompok 4 NAMA : SRI YANTI MONICA (161041120037) RAMADHANA PUTRI (161041120033)
THREAD Thread adalah unit dasar penggunaan CPU. Komponen Ini terdiri dari ID thread, sebuah program counter, register set, dan stack. Thread ini berbagi dengan Thread lainnya untuk bagian proses kode yang sama, bagian data, dan sistem operasi sumber daya lainnya, seperti file dan sinyal terbuka.
MANFAAT MULTITHREADED Manfaat pemrograman multithread bisa dibagi menjadi empat kategori utama: Responsiveness. Berbagi sumber daya Economy Skalabilitas
PEMROGRAMAN MULTICORE Ada lima area yang menghadirkan tantangan dalam pemograman untuk sistem multicore: Aktivitas yang mendebarkan Saldo Pembelahan data Ketergantungan data Pengujian dan debugging
MODEL MULTITHREADING Terbagi atas 3 bagian yaitu : Model Banyak-ke-Satu(Many-to-One Model) Model Satu-ke-Satu (one-to-one model) Model Banyak-ke-Banyak (Many-to-Many Model)
Model Banyak-ke-Satu(Many-to-One Model) memetakan banyak thread tingkat pengguna menjadi satu thread kernel Manajemen thread dilakukan oleh thread library di ruang, sehingga efisien; tapi seluruh proses akan memblokir jika thread membuat panggilan sistem pemblokiran.
Model Satu-ke-Satu (one-to-one model) memetakan setiap thread pengguna ke thread kernel. Ini memberikan konkurensi lebih dari model banyak-ke-satu dengan membiarkan yang lain thread untuk dijalankan saat sebuah thread membuat sistem pemblokiran; itu juga memungkinkan beberapa thread untuk berjalan secara paralel pada multiprosesor.
Model Banyak-ke-Banyak (Many-to-Many Model) Jumlah thread kernel mungkin spesifik untuk aplikasi tertentu atau mesin tertentu (sebuah Aplikasi dapat dialokasikan lebih banyak thread kernel pada multiprosesor dari pada uniprocessor). Sedangkan model banyak-ke-satu memungkinkan pengembang untuk melakukannya.
PERPUSTAKAAN THREAD Sebuah perpustakaan thread menyediakan programmer dengan API untuk membuat dan mengelola thread. Ada dua cara utama untuk mengimplementasikan sebuah thread Perpustakaan. Pendekatan pertama adalah menyediakan perpustakaan sepenuhnya di ruang pengguna tanpa dukungan kernel. Semua struktur kode dan data untuk perpustakaan ada di ruang pengguna. Ini berarti bahwa memanggil fungsi di perpustakaan menghasilkan fungsi lokal panggilan di ruang pengguna dan bukan panggilan sistem.
Pendekatan kedua adalah mengimplementasikan library level kernel yang didukung langsung oleh sistem operasi. Dalam kasus ini, kode dan struktur data untuk perpustakaan ada di ruang kernel. Meminta fungsi API untuk perpustakaan biasanya menghasilkan panggilan sistem ke kernel.
Pthreads Pthread mengacu pada standar POSIX (IEEE 1003.1c) yang mendefinisikan API untuk thread penciptaan dan sinkronisasi Ini adalah spesifikasi untuk perilaku thread, bukan pelaksanaan. Perancang sistem operasi bisa menerapkan spesifikasi di dalamnya apapun yang mereka inginkan. Sejumlah sistem menerapkan spesifikasi Pthreads, termasuk Solaris, Linux, Mac OS X, danTru64 UNIX.
Thread Win32 Thread dibuat di API theWin32 menggunakan CreateThread () function, dan-sama seperti di Pthreads-satu set atribut untuk thread dilewatkan ke fungsi ini. Atribut ini mencakup informasi keamanan, ukuran tumpukan,dan sebuah bendera yang bisa diatur untuk menunjukkan apakah thread itu akan mulai ditangguhkan negara.
Java Threads Thread adalah model dasar eksekusi program dalam program Java, dan bahasa Java dan API-nya menyediakan seperangkat fitur yang kaya untuk pembuatannya dan pengelolaan thread. Alternatif-dan yang lebih umum digunakan- Tekniknya adalah mendefinisikan kelas yang mengimplementasikan antarmuka Runnable.
Itu Antarmuka Runnable didefinisikan sebagai berikut : public interface Runnable { public abstract void run(); } Ketika kelas menerapkan Runnable, ia harus mendefinisikan metode run (). Kode menerapkan metode run () adalah apa yang berjalan sebagai thread terpisah.
MASALAH THREADING Serat () dan exec () Sistem Pembatalan beberapa masalah yang perlu dipertimbangkan dengan multithreaded program. Serat () dan exec () Sistem Pembatalan Penanganan Sinyal Thread Pools Data Khusus-Thread Aktivasi Penjadwal
1. Serat () dan exec () Sistem Panggilan sistem exec () biasanya bekerja dengan cara yang sama. Artinya, jika sebuah thread memanggil panggilan sistem exec (), program ditentukan dalam parameter untuk exec () akan menggantikan keseluruhan proses-termasuk semua benang Manakah dari dua versi fork () yang digunakan bergantung pada aplikasi. Jika exec () dipanggil segera setelah forking, maka duplikat semua thread adalah tidak perlu, karena program yang ditentukan dalam parameter ke exec () akan menggantikan proses.
2. Pembatalan Pembatalan thread adalah tugas mengakhiri thread sebelum selesai. Misalnya, jika banyak untaian secara bersamaan mencari melalui database dan satu thread mengembalikan hasilnya, benang yang tersisa mungkin dibatalkan. Situasi lain mungkin terjadi saat pengguna menekan tombol onaWeb browser yang menghentikan halaman Web untuk memuat lebih jauh. Seringkali, halaman Web dimuat menggunakan beberapa benang - setiap gambar dimuatkan ke thread terpisah.
3.Penanganan Sinyal Sinyal digunakan dalam sistem UNIX untuk memberi tahu proses yang dimiliki suatu peristiwa tertentu terjadi Sinyal dapat diterima baik serentak atau asinkron, tergantung pada sumber dan alasan kejadian yang ditandai. Semua Sinyal, apakah sinkron atau asinkron
4.Thread Pools Dalam situasi ini, Setiap kali server menerima permintaan, server akan membuat thread terpisah untuk diperbaiki Permintaan itu.
5.Data Khusus-Thread Thread milik sebuah proses berbagi data proses. Memang, ini berbagi data memberikan salah satu manfaat dari pemrograman multithread. Sebagian besar perpustakaan thread-termasuk Win32 dan Pthreads-menyediakan beberapa bentuk dukungan untuk data thread-specific. Java juga memberikan dukungan.
Figur 2.12 lightwelght processor (lwp)
6. Aktivasi Penjadwal Banyak sistem menerapkan baik banyak ke banyak atau dua tingkat Model menempatkan struktur data antara pengguna dan kernel thread Struktur data ini-biasanya dikenal sebagai proses yang ringan, atau LWP-ditunjukkan pada figur 2.12. Untuk perpustakaan pengguna- thread, LWP muncul jadilah prosesor virtual tempat aplikasi bisa menjadwalkan thread pengguna menjalankan.
CONTOH SISTEM OPERASI 1. Windows Threads Windows mengimplementasikan APIWin32 sebagai aplikasi API.AWindows utamanya berjalan sebagai proses terpisah, dan setiap proses mungkin berisi satu atau lebih thread.
Komponen umum thread meliputi: ID thread mengidentifikasi secara unik untaian Register yang mewakili status prosesor User stack, digunakan saat thread berjalan dalam mode pengguna, dan sebuah tumpukan kernel, digunakan saat thread berjalan dalam mode kernel Area penyimpanan pribadi yang digunakan oleh berbagai perpustakaan run-time dan dynamic link perpustakaan (DLL) Set register, tumpukan, dan area penyimpanan pribadi dikenal sebagai konteksnya dari benang Struktur data utama dari sebuah thread ETHREAD-blok thread eksekutif Blok thread kernel KTHREAD blok lingkungan TEB-thread
2. Linux Threads Linux menyediakan sistem fork () system call dengan fungsionalitas tradisional Menduplikasi sebuah proses. Linux juga menyediakan kemampuan untuk membuat thread menggunakan clone () system call. Namun, Linux tidak membedakan antara proses dan thread Padahal, Linux umumnya menggunakan tugas jangka panjang - bukan proses atau benang - bila mengacu pada aliran kontrol dalam sebuah program Saat kloning () dipanggil, ia melewati satu set bendera yang menentukan bagaimana caranya banyak sharing dilakukan antara tugas orang tua dan anak.
RINGKASAN Athread adalah aliran kontrol dalam proses. Proses yang mengandung banyak aliran kontrol yang berbeda di ruang alamat yang sama. Manfaat dari multithreading mencakup peningkatan responsif terhadap pengguna, berbagi sumber daya dalam masalah proses, ekonomi, dan skalabilitas seperti penggunaan yang lebih efisien dari beberapa core.