Top 10 List of Week 07

  1. Process Synchronization
    Process Synchronization digunakan untuk menangani masalah yang muncul ketika adanya eksekusi multiple process. Process dibagi menjadi dua yaitu Independent Process dan Cooperative Process. Web ini juga menjelaskan lebih lanjut mengenai race condition, masalah pada critical section serta solusi dari masalah tersebut. Menurut saya web ini nyaman dibaca juga sih karena kata-katanya juga tidak panjang2 dan mudah dimengerti.

  2. Semaphores in Operating System
    Semaphores adalah variabel integer yang dipakai untuk menangani masalah Critical Section dengan menggunakan 2 operasi atomic yaitu wait dan signal yang digunakan untuk process synchronization. Kedua operasi tersebut dijelaskan juga dalam bentuk code. Web ini juga menjelaskan type dari semaphores beserta penjelasannya beserta kelebihan dan kekurangan semaphores

  3. Deadlock in Operating System
    Deadlock adalah situasi dimana kumpulan proses diblokir karena tiap proses memiliki suatu resource dan menunggu resource lain yang diperoleh dari beberapa proses lain. Di web ini terdapat suatu diagram dan analogi yang kira-kira bisa menggambarkan deadlock. Dia juga menjelaskan metode untuk menangani deadlock. Terdapat exercise mini quiz juga dalam bentuk hyperlink disitu yang tiap soal memiliki pembahasannya juga.

  4. Deadlock Handling Techniques in Operating System
    Setelah kita tahu mengenai deadlock dan dapat gambarannya, lalu bagaimana cara menghandle nya? Sebelumnya di web GFG diatas disinggung sedikit mengenai mutual exclusion, hold and wait, no preemption, dan circular wait, itu merupakan 4 kondisi dari deadlock. Di web ini dijelaskan lebih lengkapnya walaupun agak sedikit panjang, namun menurut saya ini sumber terlengkap dibanding yang lain sih.

  5. Bounded Buffer Problem
    Bounded Buffer Problem biasanya dikenali juga dengan producer consumer problem dimana ini adalah salah satu classic problem dari sinkronisasi. Problem yang terjadi disini adalah produsen dan konsumen di satu buffer yang sama namun keduanya harus melakukan operasi secara bersamaan. Solusi dari problem disini adalah semaphore, mengenai mana semaphore yang harus digunakan silahkan baca lebih lanjut disana. Mereka juga menyediakan pseudocode dari operasi si produsen dan konsumen agar kita lebih kebayang juga bagaimana solusinya.

  6. Readers-Writers Problem
    Gambaran situasinya adalah ketika kita memiliki file shared bersama banyak orang. Kondisi yang dijadikan masalah adalah ketika readers dan writers access object di waktu yang sama. Yang diharapkan adalah seperti kalau ada process writing, maka tidak ada process read begitu juga sebaliknya apabila minimal terdapat suatu reader yang sedang membaca maka tidak boleh ada proses write, dan readers juga tidak boleh menulis (hanya membaca). Solusinya disediakan di web ini (seperti pseudocode, kegunaan suatu method, dan variable) dan layaknya seperti yang kita tahu bahwa web GFG adalah sumber terpercaya nya programmer.

  7. The Dining Philosophers Problem
    Dari link-link sebelumnya, menurut saya web ini lah yang paling lengkap dalam membahas salah satu classic problem dari sinkronisasi. Menurut saya web ini menggambarkan sekali masalah yang dipermasalahnya dengan adanya suatu ilustrasi gambar dan juga pseudocodenya. Pseudocodenya juga dijelaskan dibagian terpisah sehingga sangat menguntungkan bagi kita yang belum mengerti maksud dari pseudocode tersebut. Disini juga disertakan solusi yang bisa diberikan dalam pseudocode juga dan dijelaskan lebih lanjut juga mengenai pseudocodenya bahkan web ini sampai menjelaskan drawback dari solusi tersebut.

  8. Transactional Memory
    Transcational Memory adalah suatu model untuk mengontrol akses dari memori secara bersamaan di dalam pemrograman parallel. Suatu Transcational Memory System harus memiliki semacam properti yaitu atomicity dimana tiap adanya pembaruan memori spekulatif harus dilakukan atau dibuang sebagai satu unit, consistency dimana operasi memori dari sebuah transaksi berlangsung berurutan, isolation yaitu pembaruan memori tidak terlihat diluar transaksi hingga transaksi commit data. Penjelasan lebih lanjutnya ada di dalam web ini dan banyak materi-materi terkait juga yang dijelaskan di web ini.

  9. Bankers Algorithm in Operating System
    Menurut saya banker’s algorithm agak susah dimengerti sih. Disini dijelaskan secara singkat mengenai apa itu banker’s algorithm dan hal-hal yang perlu kita mengerti tentang algoritma ini. Salah satu kelebihannya web GFG ini adalah dia menyediakan code dari berbagai bahasa pemrograman terkenal seperti C, Java, C++, Python3, dan C#

  10. Deadlock Detection Algorithm in Operating System
    Jika suatu system tidak memiliki algoritma pencegahan atau penghindaran deadlock, maka deadlock lebih memungkinkan untuk terjadi. Adanya penerapan algoritma ini untuk memeriksa system apakah terjadi deadlock atau tidak. Algoritma nya disini dijelaskan per step dan disertai contoh agar kita lebih terbayang.