You are on page 1of 2

Hardware Assisted Mutual Exclusion

1. 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

2. test-and-set adalah instruksi yang digunakan untuk menulis 1 (set) ke lokasi


memori dan mengembalikan nilai lamanya sebagai operasi atom tunggal (yaitu,
non-interruptible). Jika beberapa proses dapat mengakses lokasi memori yang
sama, dan jika suatu proses saat ini sedang menjalankan uji-dan-set, tidak ada
proses lain yang dapat memulai uji-dan-set lainnya sampai proses pertama uji-dan-
set selesai. CPU dapat menggunakan instruksi uji-dan-set yang ditawarkan oleh
komponen elektronik lain, seperti RAM port ganda ; CPU itu sendiri juga dapat
menawarkan instruksi uji-dan-set.

3. Secara konseptual, operasi LDREX melakukan beban, juga menetapkan


beberapa perangkat keras khusus untuk mengamati apakah lokasi yang
dimuat mungkin ditulis oleh sesuatu yang lain. Melakukan STREX ke alamat
yang digunakan oleh LDREX terakhir akan menyebabkan alamat itu
ditulis hanya jika tidak ada yang menulisnya terlebih dahulu . Instruksi
STREX akan memuat register dengan 0 jika toko berlangsung, atau 1 jika
dibatalkan.
Perhatikan bahwa STREX sering pesimistis. Ada berbagai situasi di mana
mungkin memutuskan untuk tidak melakukan toko bahkan jika lokasi yang
dimaksud sebenarnya belum tersentuh. Misalnya, interupsi antara LDREX
dan STREX akan menyebabkan STREX menganggap lokasi yang sedang
ditonton mungkin terkena. Untuk alasan ini, biasanya ide yang baik untuk
meminimalkan jumlah kode antara LDREX dan STRE
4.Saving Energy terhadap Processor

You might also like