Anda di halaman 1dari 16

SISTEM OPERASI

PERTEMUAN VI : THREAD
PENGENALAN THREAD

“salah satu mekanisme pemanfaatan CPU”

“cara dari komputer untuk menjalankan dua atau lebih task dalam waktu
bersamaan”

 Proses : Proses tradisional (heavyweight).

 Thread : Proses ringan (lightweight).


Proses VS Thread
Single Thread & Multithread
Multiprocessing, Multitasking, Multithreading

❖ Multiprocessing  penggunaan dua atau lebih CPU dalam sebuah


sistem komputer.

❖ Multitasking  metode untuk menjalankan lebih dari satu proses dimana


terjadi pembagian sumberdaya seperti CPU.

❖ Multithreading  pengeksekusian yang mengizinkan beberapa thread


terjadi dalam sebuah proses, saling berbagi sumber daya tetapi dapat
dijalankan secara independen.
Multiprocessing VS Multithreading

Multiprocessing Multithreading

Respons Pasif Responsif

Resource Shared-Memory atau Data dalam satu proses


Sharing message passing telah terbagi berdasarkan
thread yang ada.

Ekonomi Kurang ekonomis Lebih ekonomis

Multiprocessor Konkuren Paralel


Konkuren VS Paralel

PARALEL
KONKUREN
User Thread vs Kernel Thread

❖ Berdasarkan pengendalinya, thread dibagi :

❖ User thread  dikendalikan oleh program pada level user


tanpa campur tangan kernel

❖ Kenel thread  dikendalikan langsung oleh sistem operasi


Model Many-to-One

❖ Kelebihan
❖ Tidak ada batasan jumlah user-thread yang bisa dibuat
❖ Kelemahan
❖ Satu thread melakukan blocking (misal I/O), seluruh
proses ter-block
❖ Multithread tidak dapat dijalankan secara parallel pada
sistem multicore
❖ Contoh
❖ Solaris Green Threads
❖ GNU Portable Threads
Model One-to-One

❖ Kelebihan
❖ Satu thread blocking tidak akan berpengaruh ke
thread lain
❖ Multithread dapat dijalankan secara parallel
pada sistem multicore

❖ Kelemahan
❖ Jumlah user-thread yang bisa dibuat terbatas
❖ Pembuatan kernel-thread dapat membebani
performa

❖ Contoh : Windows, Linux


Model Many-to-Many

❖ Jumlah kernel-thread yang dibuat


bergantung aplikasi dan spesifikasi mesin

❖ Kelebihan :
❖ Satu thread blocking tidak akan berpengaruh
ke thread lain

❖ Tidak ada batasan jumlah user-thread


Thread Library

“Menyediakan API untuk programmer dalam menciptakan dan memanage thread.“

❖ Mengimplementasikan pustaka thread:

❖ Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga
pemanggilan fungsi tidak melalui system call.

❖ Menyediakan API di level kernel yang didukung secara langsung oleh sistem
operasi. Pemanggilan fungsi call akan melibatkan system call ke kernel.

Ada tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java, dan
Win32.
Thread Cancellation

Pembatalan Thread  Tugas untuk membatalkan Thread sebelum


menyelesaikan tugasnya.

❖ Pembatalan Thread terdiri dari:

❖ Asynchronous cancellation  Pembatalan thread secara sepihak.

❖ Deffered cancellation  Pembatalan thread dengan memberikan ijin


thread untuk membatalkan thread secara berurutan.
Thread Pools

“Menciptakan sejumlah Thread yang ditempatkan di dalam pool dimana Thread


menunggu untuk dipanggil.

❖ Permasalahan dalam multithreading :

❖ Ukuran waktu yang diperlukan untuk menciptakan thread yang melayani


permintaan yang diajukan pada kenyataannya thread dibuang seketika sesudah
ia menyelesaikan tugasnya.

❖ Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa


dari sistem.
Thread Pools

❖ Keuntungan :

❖ (Biasanya) lebih cepat untuk melayani permintaan dengan thread yang ada
dibandingkan menunggu thread baru dibuat.

❖ Thread pool membatasi jumlah thread yang ada pada suatu waktu. Jumlah
thread dalam pool dapat tergantung dari jumlah CPU dalam sistem, jumlah
memori fisik, dan jumlah permintaan klien yang concurrent.
Status Thread

Anda mungkin juga menyukai