Semaphore
Semaphore
Fungsi
Semaphor
e
1. Konsep
Dasar
Semaphore
4. Implementasi dan
Kelemahan
2. Macam-
macam
semaphore
1
Nama Kelompok :
1. Salsabilla Indriani Putri (182410102037)
2. Sylvia Rizky A.N (182410102052)
3. Amelia Indriawan (182410102075)
4. Hendra Trias S. (182410102087)
2
1
Konsep Dasar
Semaphore
“ Semaphore termasuk pendekatan yang
diajukan oleh Djikstra, dengan dua proses
atau lebih dapat bekerja sama dengan
menggunakan penanda-penanda sederhana.
4
Semaphore mempunyai dua sifat, yaitu :
5
Semaphore S adalah integer variable untuk menghitung berapa banyak proses yang
aktif atau pasif. Semaphore adalah suatu obyek dengan dua metode Tunggu dan Sinyal.
Semantik dari semaphore adalah sangat sederhana, misalkan S adalah semaphore yang
swasta counter telah diinisialisasi ke integer non-negatif.
6
Semaphore adalah salah satu cara menangani critical section. Semaphore S
merupakan variabel bertipe integer yang diakses dengan 2 standar operasi atomic,
yaitu wait dan signal. Operasi-operasi ini diwakili dengan P (wait) dan V (signal),
sebagai berikut :
Wait(S) : while S 0 do no)op;
S:=S – 1;
Signal : S:=S + 1;
7
Misalkan ada 2 proses yang sedang berjalan secara konkure, yaitu P1
dengan pernyataan S1 dan P2 dengan pernyataan S2. andaikan kita
mengharapkan S2 baru akan dijalankan hanya setelah S1 selesai. Hal ini dapat
dilakukan dengan menggunakan bantuan semaphore synch (dengan nilai awal =
0) yang akan dishare oleh kedua proses.
8
Macam-macam
Semaphore
9
Ada 2 macam semaphore yang cukup umum, yaitu:
`1. Binary semaphore
2. Counting semaphore
Perlu diketahui di sini bahwa, ada beberapa jenis dari counting semaphore. Salah satu
jenisnya adalah semafor yang tidak mencapai nilai negatif. Jenis yang lain adalah semaphore
yang dapat mencapai nilai negatif.
10
listing program dibawah ini diambil dari buku Silberschatz
00 binary-semaphore S1, S2; pada
pada baris
baris 00
00 didefinisikan
didefinisikan dua
dua binary
binary
semaphore.
semaphore. Baris
Baris 01
01 mendefinisikan
mendefinisikan
01 int C; nilai
nilai dari
dari semafor
semafor tersebut
tersebut
Subrutin wait C dapat dilihat dibawah ini:
02 wait (S1);
baris
baris ini
ini memungkinkan
memungkinkan nilai nilai semafor
semafor
03 C--; untuk
untuk menjadi
menjadi negatif.
negatif.
bila
bila nilai
nilai semafor
semafor negatif,
negatif, maka
maka absolut
absolut
04 if ( C < 0 ) { dari
dari nilai
nilai tersebut
tersebut menunjukkan
menunjukkan
banyaknya
banyaknya proses
proses yang
yang sedang
sedang
05 signal (S1); menunggu
menunggu atau
atau wait.
wait.
06 wait (S2);
07 } WaitC adalah waitC untuk counting smaphore dan wait untuk binary
08 signal (S1);
Jika diperhatikan waitC dan signalC pada awal dn akhir berfungsi
subrutin signal C dapat dilihat di bawah ini:
sebagai instruksu wait dan signal dari semaphore atomatic
09 wait (S1);
10 C++;
baris
baris 11
11 menyatakan
menyatakan bahwa
bahwa bila
bila ada
ada
11 if (C <= 0) proses
proses yang
yang menunggu
menunggu maka
maka bangunkan
bangunkan
12 signal (S2); mereka
mereka semua
semua untuk
untuk berkompetisi.
berkompetisi.
13 else
14 signal (S1);
Binari sa2 digunakan sebagai tempat menggu giliran
proses 11
3
Fungsi
Semaphore
Penyelesaian masalah critical section adalah suatu bagian yang berisi sejumlah
variabel yang akan dishare (dipengaruhi dan mempengaruhi) proses yang lain.
Secara umum, penyelesaian critical section harus memenuhi 3 syarat :
● Mutual exclusion
● Progress
● Bounded waiting
13
Implementasi dan
Kelemahan
Semaphore
14
Implementasi semaphore:
● Windows – Fungsi yg dipakai adalah CreateSemaphore – Biasanya
digunakan untuk membatasi jumlah thread yang memakai suatu resource
secara bersamaan
● Java – Semafor di Java™ bersifat transparan oleh programmer
● Java™ menyembunyikan Semafor dibalik konsep monitor
● Reserved Word yang dipakai Java™ adalah synchronized
15
Kelemahan semaphore:
● Termasuk Low Level
● Kesulitan dalam pemeliharaannya, karena tersebar dalam seluruh program.
● Menghapus wait => dapat terjadi nonmutual exclusion. Menghapus
signal => dapat terjadi deadlock
● Error yang terjadi sulit untuk dideteksi
● Lebih baik menggunakan high level
16
Kesimpulan
Semaphore adalah mekanisme efektif yang digunakan baik pada sistem uniprosesor maupun sistem
multiprosesor. Semaphore pada dasarnya adalah counter yang diasosiasikan dengan struktur data.
Semaphore merupakan variable bertipe integer yang diakses oleh 2 operasi atomik standar, yaitu wait
dan signal. Perangkat sinkronisasi yang tidak membutuhkan busy waitingSemaphore S – integer variable.
Dapat dijamin akses ke var. S oleh dua operasi atomik:
17
“
Thanks!
18