Pengertian Critical Section

Critical Section 

Hasil gambar untuk gambar critical section


Bagaimana menghindari race conditions? Kunci untuk mencegah masalah ini dan di situasi yang lain yang melibatkan shared memori, shared berkas, and shared sumber daya yang lain adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama. Dengan kata lain kita memutuhkan mutual exclusion, sebuah jalan yang menjamin jika sebuah proses sedang menggunakan shared berkas, proses lain dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena proses 2 mulai menggunakan variabel bersama sebelum proses 1 menyelesaikan tugasnya.

Masalah menghindari race conditions dapat juga diformulasikan secara abstrak. Bagian dari waktu, sebuah proses sedang sibuk melakukan perhitungan internal dan hal lain yang tidak enggiring ke kondisi race conditions. Bagaimana pun setiap kali sebuah proses mengakses shared memory atau shared berkas atau melakukan sesuatu yang kitis akan menggiring kepada race conditions. Bagian dari program dimana shaed memory diakses disebut Critical Section atau Critical Region.

Walau pun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerjasama antar proses secara pararel dengan baik dan efisien dalam menggunakan shared data. Kita butuh 4 kondisi agar menghasilkan solusi yang baik:

I. Tidak ada dua proses secara bersamaan masuk ke dalam citical section.
II. Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
III. Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses lain.
IV. Tidak ada proses yang menunggu selamamya untuk masuk critical section.


Pengertian Critical Section


Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya bersama diakses. Terdiri dari: Entry Section: kode yang digunakan untuk masuk ke dalam critical section

Critical Section: Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu

Exit Section: akhir dari critical section, mengizinkan proses lain

Remainder Section: kode istirahat setelah masuk ke critical section
Solusi dari masalah critical section harus memenuhi tiga syarat berikut:



  • Mutual Exclusion. 
Jika suatu proses sedang menjalankan critical section-nya, maka proses-proses lain tidak dapat menjalankan critical section mereka. Dengan kata lain, tidak ada dua proses yang berada dicritical section pada saat yang bersamaan.


  • Terjadi kemajuan (progress). 
Jika tidak ada proses yang sedang menjalankan critical section-nya dan ada proses-proses lain yang ingin masuk ke critical section, maka hanya proses-proses yang yang sedang berada dalamentry section saja yang dapat berkompetisi untuk mengerjakan critical section.
  • Ada batas waktu tunggu (bounded waiting). 
Jika seandainya ada proses yang sedang menjalankan critical section, maka proses lain memiliki waktu tunggu yang ada batasnya untuk menjalankan critical section -nya, sehingga dapat dipastikan bahwa proses tersebut dapat mengakses critical section-nya (tidak mengalamistarvation: proses seolah-olah berhenti, menunggu request akses ke critical sectiondiperbolehkan). 

Sumber :


1. http://pengertian-istilah.blogspot.com/2014/12/pengertian-critical-section.html

2. http://galihsayono.blogspot.com/2015/05/the-critical-section-problem.html

0 komentar:

Posting Komentar