Anda di halaman 1dari 2

Jelaskan permasalahan critical section!

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.

Solusi permasalahan critical sectionnya harus memenuhi syarat sebagai berikut :

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.

2. Penggunaan Kunci (Lock)


Kunci akan menjamin bahwa hanya ada satu proses yang dapat berjalan dalam
sebuah critical section. Kunci akan didapatkan oleh sebuah proses dengan
mekanisme tertentu. Sebuah proses yang telah selesai melakukan eksekusi dalam
critical section harus melepaskan kunci dengan segera.

3. Sinkronisasi Perangkat Keras


Banyak sistem komputer yang menyediakan dukungan perangkat keras untuk
kode crtical section. Dalam sistem uniprocessor memungkinkan untuk mematikan
interupt, sehingga kode yang sedang dieksekusi tidak dapat disela. Sedangkan
untuk sistem multiprocessor, pendekatan ini sangat tidak efisien akan tetap mesin
moderen menyediakan interuksi perangkat keras atomic non-interupibble.
4. Solusi dengan instruksi TestAndset
Instruksi-instruksi dirancang untuk menyelesaikan mutual exclusion di sistem
multprosessor. Salah satunya instruksi TestAndSet. Solusi TestAndSet dilakukan
dengan cara membagikan variabel kunci bolean, yang menandakan kesalahan.

Anda mungkin juga menyukai