Cara Membedakan Semaphore dan Monitor

Perbedaan yang menonjol antara Semaphore dan Monitor adalah Semaphore adalah variabel integer yang melakukan operasi wait() dan signal(), sedangkan Monitor adalah tipe data abstrak yang memungkinkan hanya satu proses untuk menggunakan sumber daya bersama pada satu waktu.

Biasanya, beberapa proses berjalan pada sistem operasi. Ketika banyak proses mengakses sumber daya bersama, itu dapat menyebabkan kondisi balapan. Maka dari itu, sangat penting untuk menyinkronkan proses. Semaphore dan Monitor adalah dua metode untuk mengimplementasikan sinkronisasi proses.

Topik bahasan kami tentang:

  1. Apa itu Semaphore -Definisi, Fungsionalitas 2. Apa itu Monitor? -Definisi, Fungsionalitas 3. Perbedaan Antara Semaphore dan Monitor    -Perbandingan perbedaan utama

Istilah Utama

Monitor, Semafor

Yang perlu anda ketahui tentang Semaphore?

Semaphore adalah variabel integer (S). Operasi atom wait () dan signal () membantu memodifikasi nilai semaphore. Ketika satu proses memodifikasi semaphore, yang lain tidak dapat mengubahnya pada saat yang sama.

Ada dua jenis semaphore. Semaphore biner dapat memiliki dua nilai integer: 0 dan 1. Bagian kritis adalah segmen kode yang mengakses variabel bersama atau sumber daya bersama. Ketika suatu proses perlu mengakses bagian kritis, ia melakukan operasi wait() dan menurunkan nilai semaphore dari 1 menjadi 0. Setelah keluar dari critical section, ia melakukan operasi signal() dan nilai semaphore meningkat kembali ke 1.

Sebuah semaphore menghitung dapat memiliki beberapa nilai. Ketika proses perlu memasuki bagian kritis, ia melakukan wait(). Kemudian, nilai semaphore dikurangi 1. Setelah keluar dari critical section, ia melakukan operasi signal(). Kemudian, nilai semaphore bertambah 1.

Dalam kedua skenario, jika nilai semaphore adalah 0, maka semua sumber daya sedang digunakan. Maka dari itu, proses melakukan wait() hingga proses yang sedang berjalan melepaskan sumber daya dan nilai semaphore menjadi lebih besar dari 0.

Yang perlu anda ketahui tentang Monitor?

Monitor adalah tipe data abstrak. Ini berisi variabel data bersama dan seperangkat prosedur yang mengoperasikan variabel bersama.

Suatu proses tidak dapat secara langsung mengakses variabel bersama di monitor. Sebaliknya, proses harus mengaksesnya melalui prosedur yang ditentukan di monitor. Hanya satu proses yang dapat mengakses variabel bersama di monitor pada satu waktu. Dengan kata lain, hanya satu proses yang aktif pada satu waktu. Demikian juga, monitor membantu menjaga konsistensi data. Jika proses lain memerlukan mengakses variabel bersama, itu harus menunggu dalam antrian sampai proses sebelumnya melepaskannya.

Selain itu, ada variabel bersyarat di monitor. Ini memungkinkan proses untuk menunggu di dalam monitor dan melanjutkan ketika proses sebelumnya melepaskan sumber daya.

Perbedaan Antara Semaphore dan Monitor

Definisi

Semaphore adalah variabel yang digunakan untuk mengontrol akses ke sumber daya umum oleh beberapa proses dalam sistem bersamaan seperti sistem operasi multitasking. Sebaliknya, monitor adalah konstruksi sinkronisasi yang memungkinkan utas memiliki pengecualian bersama dan kemampuan untuk menunggu (memblokir) agar kondisi tertentu menjadi kenyataan. Jadi, inilah Perbedaan yang menonjol antara semaphore dan monitor.

Jenis

Perbedaan lain antara semaphore dan monitor adalah Semaphore adalah variabel integer sedangkan Monitor adalah tipe data abstrak.

Variabel kondisi

Selain itu, tidak ada konsep variabel kondisi di semaphores sedangkan monitor memiliki variabel kondisi.

Mengakses

Ketika sebuah proses membutuhkan akses ke semaphore, ia melakukan wait() dan melakukan signal() saat melepaskan sumber daya. Di sisi lain, proses menggunakan prosedur untuk mengakses variabel bersama di monitor. Maka dari itu, ini juga merupakan perbedaan antara semaphore dan monitor.

Kata terakhir

Secara singkat, semaphore dan monitor adalah dua metode proses sinkronisasi. Perbedaan yang menonjol antara semaphore dan monitor adalah semaphore adalah variabel integer yang melakukan operasi wait() dan signal(), sedangkan monitor adalah tipe data abstrak yang memungkinkan hanya satu proses untuk menggunakan sumber daya bersama pada satu waktu.

Referensi
  1. “Semafor (Pemrograman).” Wikipedia, Wikimedia Foundation, 1 Mei 2019, Tersedia di sini . 2. “Memantau (Sinkronisasi).” Wikipedia, Wikimedia Foundation, 19 April 2019, Tersedia di sini .
Sumber gambar:
  1. “Diagram keadaan” Oleh Tidak ada penulis yang dapat dibaca mesin yang disediakan. A3r0 diasumsikan (berdasarkan klaim hak cipta). – Tidak tersedia sumber yang dapat dibaca mesin. Pekerjaan sendiri diasumsikan (berdasarkan klaim hak cipta)., Domain Publik, melalui Commons Wikimedia

Related Posts