Week 10 note (Concurrency) Flashcards
What is Concurrency?
Sebuah proses dimana ada sebuah program yang dieksekusi secara bersamaan oleh prosesor
Concurrency dapat dibagi menjadi 4 level yaitu
· Instruction level is the execution of two or more machine instructions simultaneously
· Statement level is the execution of two or more statements simultaneously
· Unit level is the execution of two or more subprogram units simultaneously
· Program level is the execution of two or more programs simultaneously
2 Kategori dari Concurrency
- Physical Concurrency, terjadi ketika beberapa program units dari satu program dieksekusi secara bersamaan pada lebih dari satu processor
- Logical Concurrency, terjadi ketika eksekusi dari beberapa program secara bersamaan pada sebuah single processor
Manfaat belajar concurrency?
Kebutuhan untuk software agar penggunaannya efektif dari kemampuan hardware yang tersedia
Cooperation synchronization?
Antara dua tasks, dimana task kedua harus menunggu task pertama selesai dieksekusi sebelum melanjutkan ke task kedua
Competition synchronization?
Antara dua tasks, dimana keduanya menggunakan resource yang sama yang tidak dapat digunakan secara bersamaan, sehingga saling berebutan resource.
What is semaphore?
sebuah mekanisme yang paling sederhana yang diguankan untuk menyediakan sinkronisasi tasks.
What is Monitors?
Monitor merupakan cara yang lebih baik untuk menyediakan competition synchronization daripada semaphore
What is Message Passing
untuk mengatur komunikasi thread dan synchronization
2 kategori umum Task?
Heavyweight task = merupakan programs, setiap proses heavyweight memiliki alamat memori sendiri.
Lightweight task = merupakan threads, setiap threads menggunakan alamat memori yang sama.
Starvation?
terjadi pada saat satu atau lebih threads dalam program terblokir untuk mendapatkan akses ke resource dan tidak dapat diselesaikan
Deadlock?
terjadi pada saat dua atau lebih threads saling menunggu dalam suatu kondisi untuk menggunakan resource sehingga tidak dapat diselesaikan.