Kamis, 18 Oktober 2018

Critical Section

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.

Sebuah proses memiliki bagian dimana bagian ini akan melakukan akses dan manipulasi data. Bagian ini disebut dengan critical section. Ketika sebuah proses sedang dijalankan dalam critical section nya, tidak ada proses lain yang boleh dijalankan dalam critical section nya. Karena hal ini dapat memungkinkan terjadinya akses ke resources yang sama dalam waktu yang sama. Keadaan seperti ini disebut proses  mutually exclusive. Oleh karena itu, diperlukan suatu mekanisme atau aturan agar proses sifat mutually exclusive dapat terpenuhi.

Dengan mengontrol variabel mana yang diubah baik didalam maupun diluar critical section, concurrent access dapat dicegah. Critical section biasanya digunakan saat program multithreading, dimana program tersebut terdiri dari banyak thread, akan mengubah nilai dari variabel. Dalam hal ini critical section diperlukan untuk melindungi variabel dari concurrent access yang dapat membuat nilai dari variabel tersebut menjadi tidak konsisten.

bagaimana critical section tersebut diimplementasikan didalam sistem operasi ?
 Metode yang paling sederhana adalah dengan mencegah adanya thread lain yang mengubah variabel yang sedang digunakan dalam critical section. Selain itu, system call yang dapat menyebabkan context switch juga dihindari. Jika scheduler meng- interrupt proses yang sedang mengakses critical section nya, maka scheduler akan membiarkan proses tersebut menyelesaikan critical section nya atau menghentikannya sementara untuk memberi kesempatan bagi proses lain untuk menjalankan critical section nya. Proses yang sedang berada dalam critical section nya dijalankan secara mutually exclusive.

Contoh 22.1. Critical section

       
do{

   critical section
  
}while(1)




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 yang diberikan harus memuaskan permintaaan berikut:

· Mutual exclution
· Deadlock free
· Starvation free

Pendekatan yang mungkin untuk solusi proses sinkronisasi
. Solusi Piranti lunak (Software solution)
· Tanpa Sinkronisasi.
· Dengan Sinkronisasi.
· Low-level primitives: semaphore
· High-level primitives: monitors



Tidak ada komentar:

Posting Komentar

TUGAS 5

TEKNIK  PENGUMPULAN DATA MENGGUNAKAN METODE WAWANCARA   Wawancara adalah tanya jawab antara dua pihak yaitu pewawancara dan narasu...