Interrupt Disabling

Dalam sistem uniprocessor, proses konkuren tidak dapat memiliki eksekusi tumpang tindih; mereka hanya dapat disisipkan. Selain itu, proses akan terus berjalan sampai memanggil layanan OS atau sampai terganggu. Oleh karena itu, untuk menjamin saling pengecualian, itu sudah cukup untuk mencegah proses dari diganggu. Kemampuan ini dapat diberikan dalam bentuk primitif didefinisikan oleh kernel OS untuk menonaktifkan dan memungkinkan interupsi. Sebuah proses kemudian dapat menegakkan saling pengecualian dengan cara berikut

(true) {
while
/* disable interrupts */;
/* critical section */;
/* enable interrupts */;
/* remainder */;
}

Karena bagian kritis tidak dapat terganggu, saling pengecualian dijamin. Harga pendekatan ini, bagaimanapun, adalah tinggi. Efisiensi eksekusi bisa
akan tampak rusak karena prosesor terbatas pada kemampuannya untuk interleave proses.

Special Machine Instructions

Pada tingkat perangkat keras, seperti yang disebutkan, akses ke lokasi memori mengecualikan setiap akses lain ke lokasi yang sama. Dengan ini sebagai landasan, prosesor desainer telah mengusulkan beberapa instruksi mesin yang melakukan dua tindakan atomically, 2 seperti membaca dan menulis atau membaca dan pengujian, dengan memori tunggal lokasi dengan satu instruksi mengambil siklus. Selama pelaksanaan instruksi, akses
ke lokasi memori yang diblokir untuk referensi instruksi lainnya yang lokasi.

Compare&Swap Instruction Baca selengkapnya…