Operating Systems 2021-1 (OS211)

Home

TOP 10 LIST WEEK 07

  1. Synchronization
    Sinkronisasi adalah mengkoordinasi proses sehingga tidak ada dua proses yang dapat memiliki akses ke data dan resource yang sama dalam waktu bersamaan. Sinkronisasi dibutuhkan untuk multi-process system ketika beberapa proses sedang berjalan bersamaan.
  2. Race condition vs critical section
    Race condition adalah kondisi dimana dua atau lebih proses mengakses sumber daya secara bersamaan, sedangkan critical section adalah segmen kode dari proses yang memungkinkan terjadinya race condition.
  3. what is Peterson solution?
    Peterson solution memprovide algoritmic description yang baik untuk menyelesaikan masalah ctitical section dan mengilustrasi sebagian dari kompleksitas yang terlibat dalam mendesign software yang membahas requirements dari mutual exclusion, progress, dan bounded waiting.
  4. Mutex Locks vs Semaphore
    Mutex menggunakan locking mechanism dimana jika suatu proses ingin menggunakan resource, maka resource yang sedang digunakan akan di lock, dan nantinya jika sudah selesai digunakan, resource akan di unlock, sedangkan pada semaphore, semaphore menggunakan signalling mechanism dengan menggunakan wait() dan signal() method. Perbedaan lainnya adalah mutex adalah sebuah object sedangkan semaphore sebuah integer variable.
  5. Categories of Semaphore
    Category untuk semaphore ada 2, yaitu counting semaphore dan binary semaphore. Dimana counting semaphore adalah suatu integer value semaphore yang tidak memiliki batasan untuk domainnya. Sedangkan dalam binary semaphore hanya memiliki 2 value layaknya binary yaitu 0 dan 1, 1 untuk wait operation dan 0 untuk signal ketika operasi telah sukses.
  6. Difference between Deadlock and Starvation
    Deadlock terjadi ketika salah satu proses terblock, sedangkan starvation adalah suatu situasi dimana seluruh proses low priority di block dan proses dengan high priority di jalankan lebih dahulu. Selain itu deadlock selalu memiliki starvation, sedangkan starvation tidak selalu memiliki deadlock.
  7. What is Circular Wait?
    Circular wait terjadi ketika satu process menunggu untuk suatu resource yang sedang di-held oleh process kedua, dimana process kedua juga sedang menunggu resouce yang di-held oleh process ketiga, dan begitu seterusnya hingga process terakhir sedang menunggu resource yang di-held oleh process pertama.
  8. How to Detect a Deadlock?
    Kita dapat mendetect adanya deadlock dengan menggunakan bantuan dari resource allocation graph. Dimana jika resourcenya adalah tipe single instanced, kita dapat mengetahui adanya deadlock jika terdapat sebuah cycle pada sistem. Jika resource yang kita miliki adalah multiple instance resouce, kita tidak cukup hanya mendeteksi cycle yang ada, tetapi, kita harus menggunakan safety algorithm.
  9. How to Handle Deadlock?
    Deadlock dapat di handle dengan menggunakan beberapa cara, cara yang paling sering digunakan dalam OS untuk menghandle deadlock adalah dengan deadlock ignorance yaitu dimana kita mengabaikan adanya deadlock. Lalu, ada juga deadlock prevention, deadlock avoidance, dan deadlock detection and recovery.
  10. Banker’s Algorithm
    Banker’s algorithm adalah sebuah resource allocation dan deadlock avoidance algoritm dimana dia akan melakukan test untuk safety dengan mensimulasikan alokasi dah predetermined maximum possible amount dari seluruh resourcen dan akan membuat ‘s-state’ check untuk test possible activities, sebelum meemutuskan jika alokasi dapat dilanjutkan.