04.latihan 4
04.latihan 4
LATIHAN 4
KONKURENSI
1305220006
Sem.Wait()
x = x +1
Sem.Signal()
Sem.Wait()
Print x
Sem.Signal()
Blocked adalah antrian untuk blocked thread misal: dapat diisi thread a diblock, tidak ada yang diblock.
Thread A Thread B Semaphore Var x Blocked
… … 1 3 Tidak ada
Sem.Wait() 0 3 Tidak Ada
Sem.Wait() -1 3 B
x=x+1 -1 4 B
x=x+1 -1 5 B
Sem.Signal() 0 5 Tidak Ada
x=x+1 0 6 Tidak Ada
Sem.Signal() 1 6 Tidak Ada
Sem.Wait() 0 6 Tidak Ada
Print x 0 6 Tidak Ada
Sem.Wait() -1 6 A
Print x -1 6 A
Sem.Signal() 0 6 Tidak Ada
Print x 1 6 Tidak Ada
Sem.Signal() 0 6 Tidak Ada
Thread A: Thread B
Sem.wait() Sem.signal()
Print x Print y
3. Isilah kolom Sem_x dan Sem_y berikut ini jika sem_x dan sem_y diinisiasi dengan nilai 0:
Jelaskan hasil apa yang diingin dicapai menggunakan konfigurasi semaphore di atas?