• Tidak ada hasil yang ditemukan

SISTEM OPERASI PERTEMUAN VI : THREAD

N/A
N/A
Gemilang Makmur .P

Academic year: 2023

Membagikan "SISTEM OPERASI PERTEMUAN VI : THREAD"

Copied!
16
0
0

Teks penuh

(1)

SISTEM OPERASI

PERTEMUAN VI : THREAD

(2)

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).

(3)

Proses VS Thread

(4)

Single Thread & Multithread

(5)

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.

(6)

Multiprocessing VS Multithreading

Multiprocessing Multithreading

Respons Pasif Responsif

Resource Sharing

Shared-Memory atau message passing

Data dalam satu proses telah terbagi berdasarkan thread yang ada.

Ekonomi Kurang ekonomis Lebih ekonomis

Multiprocessor Konkuren Paralel

(7)

Konkuren VS Paralel

KONKUREN PARALEL

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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.

(13)

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.

(14)

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.

(15)

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.

(16)

Status Thread

Referensi

Dokumen terkait