Selasa, 24 April 2012

PENGERTIAN CRITICAL SECTION


critical section adalah sebuah protokol yang di disain supaya proses-proses dapat menggunakannya secara bersama-sama. Setiap proses harus memesan waktu untuk memasuki critical section-nya. Yang disebut entry section. dan Akhir dari critical section itu disebut exit section. Dan setelah itu ada remainder section.
  
Solusi dari masalah critical section harus memenuhi tiga syarat berikut:
1.       Mutual Exclusion.
Jika suatu proses sedang menjalankan critical section-nya, maka proses-proses lain tidak dapat menjalankan critical section mereka. Tidak ada dua proses yang berada di critical section pada saat yang bersamaan.
2.       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 dalam entry section saja yang dapat berkompetisi untuk mengerjakan critical section.
3.       Ada batas waktu tunggu (bounded waiting).
Jika ada suatu 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 mengalami starvation: proses seolah-olah berhenti, menunggu request akses ke critical section diperbolehkan).

Ada dua jenis solusi masalah critical section, yaitu:
1.       Solusi perangkat lunak.
Dengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain, selain bahwa setiap proses berjalan pada kecepatan yang bukan nol.
2.       Solusi perangkat keras.
Tergantung pada beberapa instruksi mesin tertentu, misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu.