By : Kelompok 3 Muhamad Shofri Maulidani ( ) Agung Satrio Buwono ( ) Devi Shinta Rahayu ( ) THREAD
Thread Definisi : sebuah alur kontrol dari sebuah proses Bisa disebut unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter,register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama Cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan, Multithreading adalah cara komputer untuk membagi- bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga menimbulkan efek seperti menjalankan beberapa task secara bersamaan walaupun otaknya hanya satu.
Thread K euntungan Thread : Responsif Berbagai sumber daya Ekonomis Utilisasi arsitektur multiprosessor Single Threaded Process MultiThreaded Process
Thread User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel Kernel level thread didukung dan dikelola oleh kernel sistem operasi Perbedaan tipe dari model yang berhubungan dengan user dan kernel thread, terbagi menjadi : - Model many to one - Model one to one - Model many to many
Model Multithreading
Pustaka Thread (Thread Libraries) bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread. Cara pengimplikasiannya: Menyediakan API dalam level pengguna tanpa dukungan dari kernel Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi
Pustaka Thread (Thread Libraries) tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads Java Win32
THREAD CANCELLATION Thread cancellation adalah pemberhentian thread sebelum tugasnya selesai. Pemberhentian target thread dapat terjadi melalui dua cara yang berbeda: Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread. Semua thread Java mempunyai prioritas dan thread dengan proritas tertinggi dijadualkan untuk dieksekusi oleh Java Virtual Machine. Defered cancellation: target thread secara perodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.
THREAD POOLS Pada web server yang multithreading ada dua masalah yang timbul: 1.Ukuran waktu yang diperlukan untuk menciptakan thread untuk melayani permintaan yang diajukan terlebih pada kenyataannya thread dibuang ketika ia seketika sesudah ia menyelesaikan tugasnya. 2.Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem.
THREAD POOLS Solusinya adalah dengan penggunaan Thread Pools : Membuat beberapa thread pada proses startup dan menempatkan mereka ke pools, dimana mereka duduk diam dan menunggu untuk bekerja Ketika server menerima permintaan maka ia akan membangunkan thread dari pool dan jika thread tersedia maka permintaan tersebut akan dilayani Ketika thread sudah selesai mengerjakan tugasnya maka ia kembali ke pool dan menunggu pekerjaan lainnya
Windows Threads tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads Java Win32
Linux Threads tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads Java Win32
Java Thread dan Algoritmanya Keunggulan : Java Virtual Machine menggunakan prioritas preemtive berdasarkan algoritma penjadualan. Semua thread Java mempunyai prioritas dan thread dengan proritas tertinggi dijadualkan untuk dieksekusi oleh Java Virtual Machine. Jika terjadi dua thread dengan prioritas sama maka digunakan algoritma First In First Out.