Nah kali ini mari kita diskusi tentang concurrency, apa itu?
Jadi gini Concurrency merupakan 2 hal (dalam hal ini adalah proses) yang
berjalan secara bersamaan. Kira2 apa yang terjadi? Nah kemungkinan kesalahan
pastinya akan muncul, berikut adalah beberapa kesalahan yang dapat terjadi:
- Bahaya global resource
- Sulit alokasi resource secara optimal
- Sulit debugging
Beberapa istilah yang terdapat di concurrency:
- Atomic operation, sebuah action yang tampaknya tidak dapat dibagi. Atomic operation bersifat tidak bisa di interrupt
- Critical section,bagian tertentu dari code yang butuh akses ke resource. jika sedang berjalan maka proses lain tidak boleh ikut jalan.
- Race condition, Hasil dari proses tergantung dari siapa proses yang berjalan terlebih dahulu
- Mutual exclution, sesuatu yang digunakan untuk mengunci bagian pada critical section, ketika proses dijalankan. Biasanya menggunakan perintah mutex_lock.
Nah, penggunaan pada bagian yang dijelaskan diatas dapat
terjadi kesalahan yang biasanya dari user. Berikut beberapa kesalahan yang
sering terjadi :
- Starvation, bagian dari proses yang tidak pernah dijalankan
- Deadlock, saling tunggu antar proses sehingga tidak ada yang berjalan
No comments:
Post a Comment