Critical Section adalah sebuah segmen kode dari sebuah proses yang mana sumber daya
diakses bersamaan. Jika terdapat beberapa proses menjalankan critical sectionnya pada
suatu are ayang sama secara bersamaan maka akan terjadi race condition dan nantinya akan
berakibat pada ketidakkonsistenan data. Permasalahan critical section digunakan untuk
mendesaian sebuah protokol dimana proses-proses dapat bekerja sama. Masing-masing
proses harus meminta ijin untuk memenuhi critical sectionnya.
1. Multi Exclusion
Jika proses Pi sedang dieksekusi pada bagian crtical section, maka tidak ada proses
lain yang dapat dieksekusi pada bagian critical sectionnya.
2. Progress
Jika tidak ada proses yang dieksekusi pada critical sectionnya dan terdapat beberapa
proses lain yang ingin masuk ke critical section, maka pemilihan siapa yang masuk ke
critical section tidak dapat ditunda tanpa terbatas.
3. Bounded Waiting
Terdapat batasan berapa lama suatu proses harus menunggu giliran untuk
mengakses critical section seandainya proses lain yang diberikan hak akses ke critical
section . hal ini digunakan untuk menjamin proses dapat mengakses critical section.
Berikut metode untuk mengatasi masalah critical section dapat dilakukan dengan :
1. Solusi Peterson
Terdapat dua proses yang terbagi dua variabel, yaitu : int turn dan Boolean.
Variabel turn berisi tanda yang menunjukan giliran siapa yang akan memasuki
critical section. Variabel larik flag menunjukan bahwa proses tersebut telah siap
untuk memasuki critical section.