process synchronization with semaphores

20
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

Upload: fandhi-akhmad

Post on 17-Dec-2015

77 views

Category:

Documents


2 download

DESCRIPTION

Fandhi Akhmad

TRANSCRIPT

  • 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_