Maksud Dari Critical Section

 

Pengertian dan Maksud dari Critical Section dalam Komputasi

Dalam dunia pemrograman dan sistem operasi, terutama pada sistem yang mendukung multithreading atau multiprocessing, istilah critical section (bagian kritis) sangat sering digunakan. Istilah ini merujuk pada bagian program yang sangat penting dan harus dikelola dengan hati-hati untuk menghindari terjadinya konflik data saat beberapa proses berjalan secara bersamaan.

1. Pengertian Critical Section

Critical section adalah bagian dari program di mana suatu proses atau thread mengakses sumber daya bersama (shared resource), seperti variabel global, file, atau perangkat keras. Karena sumber daya ini digunakan bersama oleh beberapa proses, maka hanya satu proses saja yang boleh berada dalam critical section pada satu waktu.

Jika dua atau lebih proses mengakses critical section secara bersamaan tanpa pengaturan yang benar, maka dapat terjadi kondisi yang disebut race condition — yaitu situasi di mana hasil akhir program menjadi tidak dapat diprediksi atau salah.

2. Maksud dan Tujuan Critical Section

Maksud utama dari konsep critical section adalah untuk menjamin integritas data dan mencegah konflik antar proses atau thread. Secara lebih spesifik, tujuannya adalah:

  • Menjaga konsistensi data: Saat satu proses mengubah data bersama, proses lain harus menunggu agar tidak terjadi perubahan ganda secara bersamaan.

  • Mencegah race condition: Dengan membatasi akses ke sumber daya, hasil perhitungan atau operasi menjadi lebih stabil dan dapat diprediksi.

  • Meningkatkan keamanan sistem: Pengaturan yang baik pada critical section mencegah kerusakan atau kehilangan data akibat tabrakan akses.

  • Mengatur sinkronisasi antar proses: Critical section membantu memastikan bahwa proses berjalan sesuai urutan yang tepat.

3. Cara Kerja Critical Section

Agar critical section berjalan dengan benar, sistem menggunakan mekanisme sinkronisasi. Proses atau thread harus:

  1. Meminta izin (entry section) untuk masuk ke critical section.

  2. Melakukan operasi penting di dalam critical section tanpa gangguan dari proses lain.

  3. Keluar (exit section) setelah selesai, sehingga proses lain dapat masuk.

  4. Remainder section, bagian lain dari program yang tidak membutuhkan sinkronisasi khusus.

Untuk mengatur ini, biasanya digunakan teknik seperti mutex (mutual exclusion), semaphore, atau monitor.

4. Contoh Sederhana Critical Section

Misalnya, ada dua thread yang sama-sama ingin menambahkan nilai pada sebuah variabel global total.
Jika keduanya melakukan operasi penambahan secara bersamaan tanpa pengaturan critical section, maka hasil akhirnya bisa salah atau tidak sesuai harapan.
Dengan critical section, hanya satu thread yang diizinkan menambahkan nilai pada satu waktu, sehingga hasilnya tetap konsisten.

5. Syarat-Syarat Critical Section yang Baik

Menurut teori sinkronisasi, mekanisme critical section yang baik harus memenuhi:

  • Mutual exclusion: Hanya satu proses dapat masuk ke critical section pada satu waktu.

  • Progress: Jika tidak ada proses di critical section, maka salah satu proses yang ingin masuk harus dapat melanjutkan.

  • Bounded waiting: Setiap proses yang ingin masuk critical section tidak boleh menunggu selamanya (tidak terjadi deadlock).

6. Contoh Penggunaan dalam Dunia Nyata

  • Sistem perbankan saat beberapa transaksi terjadi bersamaan.

  • Aplikasi e-commerce saat pengguna membeli produk dengan stok terbatas.

  • Sistem operasi saat beberapa proses ingin mengakses memori atau file yang sama.

  • Game online saat banyak pemain melakukan aksi pada objek yang sama.

Komentar

Postingan populer dari blog ini

History of Computer Beserta Perbandingan Dari Generasi 1 Sampai 5

Maksud dari Batch System