os202

OS202

View the Project on GitHub rabialco/os202

HOME


Top 10 List of Week 07

  1. Synchronization
    Hal pertama yang saya pelajari adalah bahwa Synchronization Tools merupakan sebuah cara untuk berbagi sumber daya sistem dengan proses sedemikian rupa sehingga, akses bersamaan ke data bersama ditangani sehingga meminimalkan kemungkinan data yang tidak konsisten. Menjaga konsistensi data menuntut mekanisme untuk memastikan pelaksanaan yang sinkron dari proses kerja sama. Proses Sinkronisasi diperkenalkan untuk menangani masalah yang muncul saat menjalankan beberapa proses. Beberapa masalah dibahas di bawah ini.
    -> Source : Synchronization

  2. Semaphores
    Hal kedua yang saya pelajari adalah bahwa Semaphore merupakan variabel integer yang, selain inisialisasi, diakses hanya melalui dua operasi atom standar: wait () dan signal (). Semaphore diperkenalkan oleh ilmuwan komputer Belanda Edsger Dijkstra, dan operasi wait () awalnya disebut P sedangkan untuk operasi signal () pada awalnya disebut V.
    -> Source : OSC 10, Page 272

  3. Semaphore Advantages
    Hal ketiga yang saya pelajari adalah bahwa dalam penggunaan semaphore adapun keuntungan yang didapatkan yaitu :
    • Semaphore memungkinkan hanya satu proses ke bagian kritis. Mereka mengikuti prinsip saling pengecualian secara ketat dan jauh lebih efisien daripada beberapa metode sinkronisasi lainnya.
    • Tidak ada pemborosan sumber daya karena menunggu sibuk di semaphore karena waktu prosesor tidak terbuang percuma untuk memeriksa apakah kondisi terpenuhi untuk memungkinkan proses mengakses bagian kritis.
    • Semaphore diimplementasikan dalam kode mesin independen dari mikrokernel. Jadi mereka tidak bergantung pada mesin.
      -> Source : Semaphore Advantage
  4. Semaphore Disadvantages
    Hal keempat yang saya pelajari adalah bahwa dalam penggunaan semaphore adapun kekurangan yang didapatkan yaitu :
    • Semaphore rumit sehingga operasi menunggu dan sinyal harus diterapkan dalam urutan yang benar untuk mencegah deadlocks.
    • Semaphore tidak praktis untuk penggunaan skala terakhir karena penggunaannya menyebabkan hilangnya modularitas. Ini terjadi karena operasi menunggu dan sinyal mencegah pembuatan tata letak terstruktur untuk sistem.
    • Semaphore dapat mengarah ke pembalikan prioritas di mana proses dengan prioritas rendah dapat mengakses bagian penting terlebih dahulu dan proses prioritas tinggi nanti.
      -> Source : Semaphore Advantage
  5. Deadlock
    Hal kelima yang saya pelajari adalah bahwa Deadlock merupakan proses yang terjadi ketika sekumpulan proses diblokir karena setiap proses memegang sumber daya dan menunggu sumber daya lain yang diperoleh oleh beberapa proses lain. Pertimbangkan contoh ketika dua kereta datang menuju satu sama lain di jalur yang sama dan hanya ada satu jalur, tidak ada kereta yang bisa bergerak begitu mereka berada di depan satu sama lain. Situasi serupa terjadi dalam sistem operasi ketika ada dua atau lebih proses yang memegang beberapa sumber daya dan menunggu sumber daya yang dipegang oleh (s) lain.
    -> Source : Deadlock

  6. Peterson Solution
    Hal keenam yang saya pelajari adalah bahwa Peterson Solution merupakan algoritma yang digunakan untuk menyinkronkan dua proses. Ini menggunakan dua variabel, bendera array bool ukuran 2 dan variabel int untuk mencapainya. Dalam solusi, i mewakili Konsumen dan j mewakili Produsen. Awalnya benderanya salah. Ketika sebuah proses ingin mengeksekusi bagian kritisnya, proses tersebut menetapkan panji ke true dan berubah sebagai indeks dari proses lainnya. Ini berarti bahwa proses tersebut ingin dijalankan tetapi akan memungkinkan proses lain untuk dijalankan terlebih dahulu. Proses melakukan menunggu sibuk sampai proses lain telah menyelesaikan bagian kritisnya sendiri. Setelah ini, proses saat ini memasuki bagian kritisnya dan menambahkan atau menghapus nomor acak dari buffer bersama. Setelah menyelesaikan bagian kritis, itu menetapkan benderanya sendiri ke false, menandakan tidak ingin dieksekusi lagi. Program ini berjalan selama jangka waktu tertentu sebelum keluar. Kali ini dapat diubah dengan mengubah nilai makro RT.
    -> Source : Peterson Solution

  7. Deadlock Prevention
    Hal ketujuh yang saya pelajari adalah bahwa deadlock dapat dicegah dengan cara berikut yaitu :
    • Mutual Exclusion : Cara pencegahan ini dilakukan dengan melakukan hold. Artinya, setidaknya satu sumber daya harus tidak dapat di share. Sumber daya yang dapat dibagikan tidak membutuhkan akses yang saling eksklusif dan karenanya tidak dapat terlibat dalam kebuntuan. File hanya-baca adalah contoh bagus dari sumber daya yang dapat dibagikan. Jika beberapa utas mencoba membuka file hanya-baca pada saat yang sama, mereka dapat diberikan akses simultan ke file. Sebuah thread tidak perlu menunggu sumber daya yang dapat dibagikan.
    • Hold and wait : Cara pencegahan yang dilakukan dengan memastikan bahwa kondisi hold and wait tidak pernah terjadi dalam sistem, kita harus menjamin bahwa, setiap kali sebuah thread meminta sumber daya, ia tidak memiliki sumber daya lain. Satu protokol yang dapat kita gunakan mengharuskan setiap thread untuk meminta dan mengalokasikan semua sumber dayanya sebelum memulai eksekusi.
    • No Preemption : Cara pencegahan untuk deadlock dengan memastikan tidak adanya preemption sumber daya yang telah dialokasikan. Untuk memastikan bahwa kondisi ini tidak berlaku, kita dapat menggunakan protokol berikut. Jika thread menyimpan beberapa sumber daya dan meminta sumber daya lain yang tidak dapat segera dialokasikan untuk itu (yaitu, utas harus menunggu), maka semua sumber daya yang dipegang thread saat ini akan diawali.
    • Circular Wait : Cara pencegaha yang untuk deadlock dengan memastikan tidak terjadinya kondisi wait melingkar, sehingga menghadirkan peluang untuk solusi praktis dengan membatalkan salah satu kondisi yang diperlukan. Satu cara untuk memastikan bahwa kondisi ini tidak pernah berlaku adalah dengan menerapkan pengurutan total semua jenis sumber daya dan mengharuskan setiap thread meminta sumber daya dalam urutan pencacahan yang meningkat.
      -> Source : OSC10, Page 327, 328
  8. Deadlock Detection
    Hal kedelapan yang saya pelajari adalah bahwa cara untuk mendeteksi deadlock dapat dilakukan oleh sistem dengan cara menyediakan algoritma untuk memeriksa status sistem untuk menentukan apakah telah terjadi deadlock. Cara kedua yang dapat dilakukan oleh sistem adalah dengan menyediakan algoritma untuk recover dari deadlock. Hal ini akan disediakan oleh sistem ketika tidak mempunyai program untuk mencegah dan menghindari adanya deadlock. Jika sistem sudah menyediakan program penghindaran dan pencegahan maka penyediaan algoritma deteksi dan recover deadlock tidak dilakukan.
    -> Source : OSC10, Page 337

  9. Banker’s Algorithm
    Hal kesembilan yang saya pelajari adalah bahwa Banker’s Algorithm merupakan cara sistem untuk menghindari terjadinya deadlock. Algoritma ini berjalan dengan alokasi sumber daya dan penghindaran deadlock yang menguji keamanan dengan mensimulasikan alokasi untuk jumlah maksimum yang mungkin telah ditentukan sebelumnya dari semua sumber daya, kemudian membuat pemeriksaan “status-s” untuk menguji kemungkinan aktivitas, sebelum memutuskan apakah alokasi harus diizinkan untuk melanjutkan.
    -> Source : Banker’s Algorithm

  10. Detection Algorithm
    Hal kesepuluh yang saya pelajari adalah bahwa Detection Algorithm merupakan cara yang dilakukan untuk melakukan deteksi adanya deadlock di dalam suatu sistem. Algoritma ini membantu sistem untuk memutuskan apakah dalam skenario sumber daya multi-instans untuk berbagai proses mengalami kebuntuan atau tidak. Dalam kasus contoh sumber daya tunggal kita dapat membuat grafik tunggu untuk memeriksa keadaan kebuntuan. Namun, ini tidak dapat kami lakukan untuk sistem sumber daya multi-instance.
    -> Source : Detection Algorithm