Thread & Semaphore

20
M. ARIF RAHMAN : 070411100083 MOH NASIR : 070411100103 MOCH. CHOIRUL R : 070411100101 MALIKUL HAMZAH : 070411100092 MAMANG SETIAWAN : 070411100093 NIKMATUL AKBAR : 070411100117

Transcript of Thread & Semaphore

Page 1: Thread & Semaphore

M. ARIF RAHMAN : 070411100083MOH NASIR : 070411100103MOCH. CHOIRUL R : 070411100101MALIKUL HAMZAH : 070411100092MAMANG SETIAWAN : 070411100093NIKMATUL AKBAR : 070411100117

Page 2: Thread & Semaphore

thread yang merupakan cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan

multithreading adalah cara komputer untuk membagibagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga menimbulkan efek sepertimenjalakan beberapa task secara bersamaan walaupun otaknya hanya satu

Page 3: Thread & Semaphore

Responsif. Berbagi sumber daya. Ekonomis. Utilisasi arsitektur multiprosesor.

Page 4: Thread & Semaphore
Page 5: Thread & Semaphore

Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsitidak melalui system call. Jadi, jika kita memanggil fungsi yang sudah ada di pustaka, maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call.

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

Page 6: Thread & Semaphore

Thread Cancellation ialah pembatalan thread sebelum tugasnya selesai. Umpamanya, jika dalam program Java hendak mematikan Java Virtual Machine (JVM).

Contoh lain adalah di masalah search. Apabila sebuah thread mencari sesuatu dalam database dan menemukan serta mengembalikan hasilnya, thread sisanya akan dibatalkan. Thread yang akan diberhentikan biasa disebut target thread

Page 7: Thread & Semaphore

Pada web server yang multithreading ada dua masalah yang timbul:

a. Ukuran waktu yang diperlukan untuk menciptakan thread yang melayani permintaan yang diajukan pada kenyataannya thread dibuang seketika sesudah ia menyelesaikan tugasnya.

b. Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem.

Page 8: Thread & Semaphore

Keuntungan thread pool adalah:a. Biasanya lebih cepat untuk melayani

permintaan dengan thread yang ada dibandingkan menunggu thread baru dibuat.

b. Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini penting pada sistem yang tidak dapat mendukung banyak thread yang berjalan secara concurrent. Jumlah thread dalam pool dapat tergantung dari jumlah CPU dalam sistem, jumlah memori fisik, dan jumlah permintaan klien yang concurrent.

Page 9: Thread & Semaphore

a. Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP ( lightweight process) yang tersedia.

b. System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread, kemudian menjadwalkannya ke satu thread tertentu(CPU / Kernel).

Page 10: Thread & Semaphore

Kemampuan dari SO untuk mendukung banyak (multiple), concurrent path eksekusi di dalam suatu proses tunggal.

Page 11: Thread & Semaphore

MS-DOS mendukung proses pengguna tunggal & thread tunggal.

• Beberapa UNIX, mendukung banyak proses pengguna (user process) tetapi hanya mendukung satu thread per-proses.

Page 12: Thread & Semaphore

• Java run-time environment (JRE) merupakan proses tunggal dengan banyak thread

• Banyak proses & thread dijumpai di Windows, Solaris, & versi modern dari UNIX (termasuk Linux)

Page 13: Thread & Semaphore

• Semaphore:– Suatu nilai integer (bilangan bulat) yang

digunakan untuk pensinyalan (signalling) antar proses.

• Hanya tiga operasi dapat dikerjakan pada suatu semaphore, semuanya bersifat atomik:

– initialize – Decrement (semWait) – increment (semSignal)

Page 14: Thread & Semaphore

sistem sinyal yang digunakan untuk berkomunikasi secara visual.

Digunakan untuk menyelesaikan masalah sinkronisasi secara umum.

Page 15: Thread & Semaphore

1. Binary semaphore . Semafor ini hanya memiliki nilai 1 atau 0. Sering juga disebut sebagai semafor primitif

2. Counting semaphore . Semafor ini memiliki nilai 0, 1, serta integer lainnya. Banyak sistem operasi yang tidak secara langsung mengimplementasikan semafor ini, tetapi dengan memanfaatkan binary semaphore

Page 16: Thread & Semaphore

• Antrian (queue) digunakan untuk menangani proses yang menunggu (waiting) pada semaphore

– Dalam urutan bagaimana proses dihapus dari antrian?

• Semaphore Kuat menggunakan FIFO• Semaphore Lemah tidak menentukan

urutan penghapusan dari antrian

Page 17: Thread & Semaphore
Page 18: Thread & Semaphore

Operasi standar pada semafor (dalam bahasa pemrograman C):

void kunci(int sem_value) {

while(sem_value <= 0);sem_value--;

}void buka(int sem_value) {

sem_value++;}

Page 19: Thread & Semaphore
Page 20: Thread & Semaphore