Anda di halaman 1dari 18

3.

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 :

● Semaphore dapat diinisialisasi dengan nilai non-negatif.


● Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli
yang disampaikan Djikstra adalah operasi P dan V.
Semaphore adalah salah satu teknik sinyal sederhana, dan merupakan
konsep penting dalam OS desain, dimana sebuah nilai integer digunakan untuk
pensinyalan antara proses.

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.

Ketika Tunggu dijalankan oleh thread, kita memiliki dua kemungkinan:

1. Penghitung S adalah positif


2. Perhitungan S adalah nol

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.

Untuk Proses P1 : S2;


S1 ; Karena nilai awal untuk synch
adalah nol, maka P2 akan
Signal(synch);
mengeksekusi S2 hanya setelah P1
Untuk proses P2: mengerjakan signal(synch) setelah
Wait(synch); S1 .

8
Macam-macam
Semaphore

9
Ada 2 macam semaphore yang cukup umum, yaitu:
`1. Binary semaphore
2. Counting semaphore

Binary semaphore Counting semaphore


adalah semaphore yang bernilai adalah semaphore yang dapat
hanya 1 dan 0. Banyak sistem bernilai 1 dan 0 dan nilai
operasi yang hanya integer yang lainnya. Dan
mengimpementasikan binary counting dibuat dengan
smaphore sebagai prifitif menggunakan primitif ini

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:

wait (S): while S ≤ 0 do no-op;


S := S – 1;
signal (S): S := S + 1;

17

Thanks!

18

Anda mungkin juga menyukai