top of page
Search

Materi Sistem Operasi, Critical Section

  • MDA14
  • Oct 19, 2022
  • 2 min read

Updated: May 14, 2023


Critical Section

Bagian Kritis adalah bagian dari program yang mencoba mengakses sumber daya bersama. Sumber daya itu dapat berupa sumber daya apa pun di komputer seperti lokasi memori, struktur data, CPU, atau perangkat IO apa pun.

Bagian kritis tidak dapat dieksekusi oleh lebih dari satu proses pada saat yang sama; sistem operasi menghadapi kesulitan dalam mengizinkan dan melarang proses memasuki bagian kritis.

Masalah bagian kritis digunakan untuk merancang seperangkat protokol yang dapat memastikan bahwa kondisi Race di antara proses tidak akan pernah muncul.

Untuk menyinkronkan proses kooperatif, tugas utama kami adalah menyelesaikan masalah bagian kritis. Kita perlu memberikan solusi sedemikian rupa sehingga kondisi berikut dapat dipenuhi.


Persyaratan mekanisme Sinkronisasi


Utama
  • Mutual Exclusion

Solusi kami harus memberikan pengecualian bersama. Yang dimaksud dengan Mutual Exclusion adalah jika satu proses dieksekusi di dalam critical section maka proses lainnya tidak boleh masuk ke dalam critical section.

  • Progress

Progress artinya jika satu proses tidak perlu dieksekusi ke critical section maka tidak boleh menghentikan proses lain untuk masuk ke critical section.


Sekunder
  • Bounded Waiting

Kita harus bisa memprediksi waktu tunggu setiap proses untuk masuk ke critical section. Prosesnya tidak boleh terus-menerus menunggu untuk masuk ke critical section.

  • Architectural Neutrality

Mekanisme kita harus arsitektural alami. Ini berarti bahwa jika solusi kami bekerja dengan baik pada satu arsitektur, maka solusi tersebut juga harus berjalan pada arsitektur lainnya.

Sebagian besar solusi untuk masalah bagian kritis menggunakan kunci yang diterapkan pada perangkat lunak. Solusinya meliputi:

  • test_and_set: Menggunakan kunci variabel boolean bersama dan instruksi test_and_set yang dijalankan secara atomik dan menetapkan nilai parameter yang diteruskan ke true.

  • compare_and_swap: Sama seperti test_and_set, kecuali bahwa nilai parameter yang diteruskan disetel ke true jika sama dengan yang diharapkan dalam parameter instruksi compare_and_swap.

  • Mutex locks: Metode perangkat lunak yang menyediakan fungsi akuisisi() dan rilis() yang dijalankan secara atomik.

  • Semaphores: Metode yang lebih canggih yang memanfaatkan operasi wait() dan signal() yang dijalankan secara atom pada Semaphore S, yang merupakan variabel integer.

  • Condition variables: Memanfaatkan antrian proses yang menunggu untuk memasuki bagian kritis.

Itu dapat divisualisasikan menggunakan pseudo-code di bawah ini:

Solusi sederhana untuk bagian kritis dapat dipikirkan seperti yang ditunjukkan di bawah ini,



Sumber Refferensi yang ditranslasikan dari:


 
 
 

Comments


Diraff

©2022 by M. Dimas Arianda. Proudly created with Wix.com

bottom of page