process synchronization with semaphores
DESCRIPTION
Fandhi AkhmadTRANSCRIPT
-
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
FAKULTAS TEKNOLOGI INFORMASI
JURUSAN SISTEM INFORMASI
PENGANTAR SISTEM OPERASI
Synchronization With Semaphores
Dosen : Arif Wibisono, S.Kom, M.Sc
Kelompok :
1. Fandhi Akhmad 5214100171
2. Fachrur Zaffrinda P 5214100173
3. Fata Hirzi Abi Karami 5214100180
4. Adityo Gizwanda 5214100501
Kelas : E
-
Synchronization With Semaphores
Implementasi Semaphores (1) :
1. Dilakukan modifikasi pada operasi wait dan signal 2. Jika proses mengeksekusi operasi wait,maka nilai semaphore menjadi tidak positif, pada
saat itu proses memblok dirinya sendiri dan terjadi waiting queue
3. Proses yang sedang diblok akan menunggu hingga semaphore S di restart, yaitu pada saat beberapa proses yang lain mengeksekusi operasi signal. Suatu proses akan direstart
dengan operasi wakeup dan akan mengubah proses dari keadaan waiting ke ready
Implementasi Semaphores (2) :
-
Implementasi Semaphores (3) :
Akan tetapi implementasi di atas menyebabkan situasi deadlock, contohnya :
Kode Semaphores untuk Wait
-
Kode Semaphores untuk Signal
-
Semaphores bisa di gunakan untuk mengatur urutan proses yang sedang berlangsung.
Pada contoh ini ada beberapa syarat yaitu:
1. Proses A harus berjalan pertama
2. Proses D tidak bisa berjalan sampai proses C selesai
3. Proses E tidak akan berjalan sampai semua proses selesai
Semaphores A disini sebagai semaphore utama yang di gunakan untuk memulai dua proses
dari proses B dan C.
Pada ilustrasi nanti, jika lampu merah semaphore akan mem-blok proses dan jika lampu
berwarna hijau semaphore akan membolehkan proses tersebut untuk lanjut.
-
Synchronization Proccess With Semaphores
1. Proses pertama dalam sinkronisasi menggunakan semaphores
2. Kemudian proses akan masuk ke bagian untuk menunggu semaphore dari proses B
-
3. Kemudian proses akan di blok sementara karena proses semaphore B belum
mendapatkan signal atau dalam hal ini semB
4. Ketika proses tersebut di blok kemudian akan terjadi pergantian proses ke proses B
yang tujuan nantinya untuk mendapatkan signal
-
5. Ketika sudah masuk di proses B , dalam proses tersebut akan menunggu semaphore
dari proses A
6. Dikarenakan masih process B belum mendapatkan signal/semA maka process di
block lalu di switch ke proses A.
-
7. Process A memancarkan Signal(semA) kepada process B dan Process C karena
process B dan C menerima semA
8. Process B dam Process C memperbolehkan process untuk dijalankan karena sudah
mendapatkan signal semA
-
9. Process A memancarkan signal(semA) kembali untuk d\kemudian ditangkap oleh
process B dan C
10. Lalu process pindah/switch ke process C.
-
11. Process B dan C sama-sama memiliki 2 semaphore A
12. Masing-masing semA dari tiap proses diambil satu yang bertujuan untuk diberikan
ke Process yang lain (Process B ke Process E, lalu Process C ke Process D)
-
13. Process C memancarkan signal(semC) yang akan diterima oleh Process D yang
menunggu semC
14. Process D setelah mendapatkan signal dari process C mengizinkan process D untuk
dijalankan.
-
15. Lalu process Switch ke Process D
16. Process D mengambil semC yang ada untuk di proses.
-
17. Seteloah itu semC diberhentikan lalu masuk ke tahap process
18. Setelah semC di proses di Process D maka akan menghasilkan signal (semD) yang
akan di pancarkan dan ditangkap oleh process E yang sudah menunggu semD
-
19. Signal(semD) yang telah ditangkap oleh process E diizinkan untuk diproses.
20. Process berganti/switch dari process D ke Process B.
-
21. semA yang ada di process B dan C diambil untuk di proses kemudian.
22. Lalu proses menunggu untuk semA dihentikan.
-
23. Setelah semA di proses oleh Process B maka akan menghasilkan Signal(semB) yang
akan dipancarkan dan ditangkap oleh Proces E sehingga jumlah semB yang diterima
oleh process E = 1
24. Setelah semB diterima oleh process E, diizinkan untuk diproses.
-
25. Setelah pemancaran signal(semB) oleh process B, lalu process berganti/switch ke
Process E.
26. semB yang ada pada Process E diambil untuk diprosees kemudian.
-
27. Proses menunggu semB yang dilakukan oleh process E dihentikan.
28. semD yang ada pada process E yang berasal dari process D diambil juga untuk
diproses kemudian.
-
29. Proses menunggu semD di Process E dihentikan.
30. Setelah mengambil semB dan semB lalu masuk ke tahap Process di process E lalu
selesai(Finish).
Sumber : http://williamstallings.com/OS/Animation/Animations.html
http://williamstallings.com/OS/Animation/Queensland/SYNC.SWF
http://www.academia.edu/7571327/Sinkronisasi_Proses_Sistem_Operasi_