- Concurrency adalah kondisi dimana dua pekerjaan dilakukan bersamaan dalam satu proses. Concurrency diselesaikan dengan Synchronization
- Jenis Concurrency :
- Physical ” CPU/hardware; ada lebih dari 2 instruksi
- Logical ” 1 proses 2 instruksi dijalankan sedikit demi sedikit
- Level Concurrency :
- Machine instruction ” terjadi pada bahasa mesin
- High level language statement ” terjadi pada bahasa pemrograman
- Unit/Subprogram ” terjadi pada subprogram
- Program ” terjadi pada program (multitask)
- Tasks :
- Heavyweight ” masing-masing mempunyai address
- Lightweight ” mempunyai satu address
- Disjoint ” tidak terjadi communication
- Critical Region adalah melarang 2 pekerjaan dilakukan bersamaan
- Jenis Critical Region :
- Mutual exclusion ” 1 proses menunggu/tidak interrupt
- Continuously progress ” 1 proses ga boleh di stop
- Bounded waiting ” 1 proses mencapai limit, stop proses
- Parallel somputing ” masing-masing di waktu yang sama
- Concurrency ” dikerjakan 2 pekerjaan sekaligus dalam 1 proses
- Synchronization :
- Cooperation ” jika suatu pekerjaan belum selesai, pekerjaan lainnya tidak bisa dikerjakan
- Competition ” hasil suatu pekerjaan tertimpa oleh pekerjan lain yang keduanya dilakukan bersamaan
- Task Execution States :
New >> Ready >> Running >> Blocked >> Dead
- Race Condition :
- Competition & Cooperation
- Controlling Task Schedule
- Application Influence Task Scheduling
- Task Start & End Execution
- Liveness adalah program yang diyakini selesai dengan baik
- Deadlock adalah program yang diyakini tidak bisa bekerja dengan baik
- Metode Providing Sync :
- Semaphore ” cooperation – competition
- Monitors ” program yang mengawasi program utama
- Message passing ” communication