Critical Section
Apa itu Critical Section?
Critical Section tidak dapat dieksekusi oleh lebih dari satu proses pada saat yang sama; sistem operasi menghadapi tantangan dalam mengizinkan dan mencegah proses memasuki Critical Section.
Masalah Critical Section digunakan untuk membuat satu set protokol yang memastikan bahwa kondisi Race antar proses tidak pernah terjadi.
Tugas utama kami adalah memecahkan masalah Critical Section untuk menyinkronkan proses kooperatif. Kita harus memberikan solusi yang memungkinkan terpenuhinya kondisi berikut.
Persyaratan Mekanisme Sinkronisasi
Primary
1. Mutual ExclusionPengecualian bersama harus menjadi bagian dari solusi kita. Yang dimaksud dengan Mutual Exclusion adalah jika satu proses dieksekusi di dalam critical section, proses lainnya tidak boleh memasukinya.
2. Progress
Kemajuan menyiratkan bahwa jika satu proses tidak perlu dieksekusi ke bagian kritis, itu tidak boleh mencegah proses lain melakukannya.
2. Architectural Neutrality
Kemajuan menyiratkan bahwa jika satu proses tidak perlu dieksekusi ke bagian kritis, itu tidak boleh mencegah proses lain melakukannya.
Secondary
1. Bounded WaitingKita harus dapat memprediksi berapa lama waktu yang dibutuhkan untuk setiap proses untuk mencapai bagian kritis. Proses tidak boleh ditunda tanpa batas waktu sebelum memasuki bagian kritis.
Mekanisme kita harus alami secara struktural. Ini berarti bahwa jika solusi kami bekerja dengan baik pada satu arsitektur, itu juga harus bekerja pada yang lain.
Contoh Masalah Critical Section
Mari kita perhatikan contoh bank klasik, contoh ini sangat mirip dengan contoh yang telah kita lihat di atas.
- Mari kita pertimbangkan skenario di mana uang ditarik dari bank oleh kasir (melalui
cek) dan ATM pada saat yang bersamaan.
- Pertimbangkan akun yang memiliki saldo 10.000. Mari kita pertimbangkan bahwa, ketika
seorang kasir menarik uang, dibutuhkan 2 detik untuk memperbarui saldo di akun.
- Dimungkinkan untuk menarik 7000 dari kasir dan dalam waktu pembaruan saldo 2 detik
juga menarik sejumlah 6000 dari ATM.
- Dengan demikian, jumlah uang yang ditarik menjadi lebih besar dari saldo rekening
bank.
Hal ini terjadi karena dua penarikan terjadi pada saat yang bersamaan. Dalam kasus bagian kritis, hanya satu penarikan yang dapat dilakukan dan dapat menyelesaikan masalah in
Solusi untuk Masalah Critical Section
Solusi yang dikembangkan untuk bagian kritis harus memiliki sifat-sifat berikut, - Jika suatu proses masuk ke critical section, maka tidak ada proses lain yang boleh masuk ke critical section. Ini disebut saling mengesampingkan.
- Jika suatu proses berada di critical section dan proses lain datang, maka proses baru
harus menunggu sampai proses pertama keluar dari critical section. Dalam kasus seperti
itu, proses yang menunggu untuk memasuki bagian kritis tidak boleh menunggu dalam
waktu yang tidak terbatas. Ini disebut kemajuan.
- Jika suatu proses ingin masuk ke dalam critical section, maka harus ada waktu tertentu
agar proses tersebut dapat dibuat menunggu. Properti ini disebut menunggu terbatas.
- Solusinya harus independen dari arsitektur sistem. Ini disebut netralitas
Beberapa solusi berbasis perangkat lunak untuk masalah bagian kritis adalah solusi Peterson, semaphore, monitor. Beberapa solusi berbasis perangkat keras untuk masalah bagian kritis melibatkan instruksi atom seperti TestAndSet, bandingkan dan tukar, Buka Kunci dan Kunci.
Komentar
Posting Komentar