os211

Top 10 List of Week 07

1. Process Synchronization in Linux

Sebelum memulai top 10 link, kita lebih baik mempelajari pengertian synchronization. Menurut link yang diberikan, synchronization adalah kegiatan dimana pada suatu process kita hanya memberikan satu thread saja untuk mengerjakan suatu task. Hal ini dilakukan untuk mencegah beberapa hal salah satunya race condition. Link tersebut juga memberikan penjelasan bagaimana process bisa dibuat menggunakan perintah fork().

2. Process Deadlocks in Operating System

Deadlock adalah kondisi pada komputer dimana adanya tunggu menunggu antara resource atau process yang menyebabkan suatu rangkaian task tidak berjalan. Biasanya hal ini terjadi ketika dua proses saling menunggu satu sama lain sehingga tidak akan ada proses yang selesai. Deadlock merupakan hal yang buruk pada sistem operasi karena berdampak pada performance dan output program yang salah. Link tersebut juga memberikan jenis jenis deadlock yang dapat terjadi seperti mutual exclusion, hold and wait, dan circular wait.

3. Difference between Deadlock and Starvation in OS

Deadlock dan Starvation adalah dua hal berbahaya yang dapat terjadi pada operasi sistem sehingga dapat menggangu performa komputer. Menurut artikel ini, starvation adalah kejadian dimana proses yang memiliki prioritas tinggi terus menerus dieksekusi dan menggunakan CPU sehingga menutup proses prioritas rendah untuk dijalankan. Starvation dapat mengakibatkan kegagalan program karena proses yang gagal dieksukusi. Starvation dikenal juga dengan istilah lived lock.

4. Shared memory: Where it belongs in the computer space

Adanya materi synchronization adalah untuk mengatur penggunaan shared memory agar tidak terjadi bentrok. Menurut artikel ini, shared memory berguna untuk dapat memberikan thread mengakses memory yang terpusat dan tercepat untuk dapat mengeksekusi program tanpa hambatan. Teknologi Shared memory adalah bagian dari interprocess communication yang powerful di sistem UNIX.

5. Critical Section in OS

Critical section adalah bagian masalah dari suatu program dimana bagian kode dapat diakses dan dieksekusi pada satu waktu tertentu. Critical section mengimplementasi mekanisme execute and await yaitu process lain mengantri untuk mengeksekusi program tersebut menuggu suatu signal atau instruksi, contohnya semaphore. Critical section adalah contoh synchronization pada sistem untuk mencegah bentrok pada penggunaan shared memory.

6. Semaphore in Depth

Menurut artikel ini, semaphore adalah variabel integer yang digunakan untuk menyelesaikan masalah critical section menggunakan dua operasi yaitu, wait dan signal. Semaphore merupakan teknik umum yang digunakan pada synchronization. Artikel ini juga menjelaskan dua macam semaphore yaitu counting semaphore dan binary semaphore. Beberapa kekurangan dari semaphore adalah kompleksitas dari programnya karena semaphore dapat mengakibatkan deadlock.

7. Monitors in Semaphore Disadvantage

Semaphore merupakan langkah yang baik untuk melakukan synchronization, walaupun demikian semaphore memiliki kekurangan lagi, yaitu timing error. Monitor hadir untuk melengkapi kekurangan timing error tersebut. Pada monitor, hanya ada satu proses yang aktif pada satu waktu. Pada monitor, terdapat prosedur agar suatu proses untuk mengakses shared data pada suatu waktu. Lebih lengkap pada artikel.

8. Race Conditions and Critical Sections

Setelah penjelasan panjang mengenai race condition, kita lanjut ke pengertiannya. Race condition adalah keadaaan dimana adanya thread yang berlomba untuk mengakses data pada shared memory pada waktu yang bersamaan. Hal tersebut dapat mengakibatkan data yang teroverwrite (data yang salah) ketika diambil thread yang kalah pada race tersebut. Artikel tersebut juga menjelaskan 2 tipe pada race condition, yaitu read-modify-write dan check-then-act.

9. Handling Deadlocks

Kembali lagi ke laman favorit kita bersama, yaitu geeksforgeek. Setelah penjelasan mengenai deadlock pada artikel diatas, terdapat beberapa langkah untuk mencegah dan mengatasi deadlock pada os. Menurut artikel, terdapat 3 metode yang dapat digunakan, yaitu deadlock prevention, deadlock avoidance, dan deadlock detection. Pada deadlock prevention, metode yang diimplementasi adalah mutual exclusition, hold and wait, dan no pre-emption.

10. Message Broker

Salah satu teknik untuk mencegah race condition di dunia software engineering adalah penggunaan message broker dan tracsaction. Kali ini artikel yang dipilih menjelaskan message broker. Penggunaannya biasanya terletak di depan database sehingga ketika ada thread yang ingin mengakses atau mengubah data pada database, message broker hadir sebagai instance single threaded yang mencegah terjadinya race condition.