Cricital Section
Criticial section sendiri pada dasarnya adalah segmen kode dalam proses yang membutuhkan akses ke shared resources tanpa memperbolehkan proses lainnya untuk mengakses/menggunakan resource tersebut dalam satu waktu.
Gambar Diagram dan Potongan Kode Critical Section.
Pada gambar diagram diatas proses 1 dan proses 2 mengakses resource yang sama, yaitu pada circle berwarna merah dan merupakan critical section yang dapat dilihat pada segmen kode setiap proses dapat merubah nilai variabel A melalui fungsi Write(A), serta proses-proses tersebut dapat menyebabkan race condition.
Solusi masalah critical section dapat ditangani jika memenuhi tiga persayaratan berikut yaitu.
- Menggunakan mutual exclusion - Menjamin hanya ada satu proses yang dapat mengakses share resource.
- Adanya kemajuan (progress) – Jika tidak ada proses yang menjalankan critical section-nya dan ada beberapa proses yang ingin masuk ke critical section-nya, maka hanya proses-proses yang tidak sedang menjalankan remainder section-nya yang berhak berpartisipasi dalam memutuskan proses mana yang berhak masuk ke critical section, dan pemilihan ini tidak dapat ditunda secara tak terbatas untuk menghindari terjadinya deadlock
- Adanya batas waktu tunggu (bounded waitting) – jika terdapat proses yang sedang menjalankan critical section-nya, maka terdapat batasan waktu dalam mengerjakannya, sehingga proses lain dipastikan mendapatkan giliran untuk mengakses critical section-nya, atau dengan kata lain tidak mengalami starvation.
Artikel Terkait
Karna pembahasan sistem operasi sangat kompleks, maka kita akan membaginya menjadi beberapa bagian, untuk sementara berikut beberapa artikel lainnya yang terkait atau berhubungan dengan pembahasan ini.
- 1 Gambaran Sistem Operasi - Komponen & Fungsi
- 1.1 Apa Yang Dikerjakan Sistem Operasi
- 1.2 Organisasi Sistem Komputer
- 1.3 Arsitektur Sistem Komputer
- 1.4 Struktur Sistem Operasi
- 1.5 Operasi Sistem Operasi - Trap Exception
- 2 Proses & Thread
- 3 Konkurensi: Mutual Exclusion dan Sinkronisasi
Referensi
- Operating Systems: Internals and Design Principles (8th Edition), William Stallings, 2014.
- Operating System Concepts (9th Edition in Chinese) by Abraham Silberschatz et al.
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook, Michael Kerrisk.
Warning!
We are not responsible for any loss whatsoever due to this site, also if you want to take this article please read terms of use or touch us via contact page.
If there is question, please discuss below. Very welcome and expected to provide corrections, criticisms, and suggestions.
Be the first :D