Perbezaan Antara Semaphore Dan Monitor

Perbezaan Antara Semaphore Dan Monitor
Perbezaan Antara Semaphore Dan Monitor

Video: Perbezaan Antara Semaphore Dan Monitor

Video: Perbezaan Antara Semaphore Dan Monitor
Video: Обзор монитора HP Value Line V24 24" | Ситилинк 2024, November
Anonim

Semaphore vs Monitor

Semaphore adalah struktur data yang digunakan untuk memastikan bahawa beberapa proses tidak mengakses sumber umum atau bahagian kritikal pada masa yang sama, dalam lingkungan pengaturcaraan selari. Semaphores digunakan untuk mengelakkan kunci mati dan keadaan perlumbaan. Monitor adalah konstruk bahasa pengaturcaraan yang juga digunakan untuk mengelakkan pelbagai proses mengakses sumber yang sama pada masa yang sama menjamin pengecualian bersama. Monitor menggunakan pemboleh ubah bersyarat untuk mencapai tugas ini.

Apa itu Semaphore?

Semaphore adalah struktur data yang digunakan untuk memberikan pengecualian bersama ke bahagian kritikal. Semaphores terutamanya menyokong dua operasi yang disebut tunggu (secara historis dikenali sebagai P) dan isyarat (secara historis dikenali sebagai V). Operasi tunggu menyekat proses sehingga semaphore terbuka dan operasi isyarat membenarkan proses (utas) lain masuk. Setiap semaphore dikaitkan dengan barisan proses menunggu. Apabila operasi tunggu dipanggil oleh utas, jika semaphore terbuka, utas dapat diteruskan. Sekiranya semaphore ditutup semasa operasi tunggu dipanggil oleh utas, utasnya disekat dan harus menunggu dalam barisan. Operasi isyarat membuka semaphore dan jika ada utas yang sudah menunggu di barisan, proses itu dibenarkan untuk dilanjutkan dan jika tidak ada utas yang menunggu di barisan, isyarat akan diingat untuk utas berikutnya. Terdapat dua jenis semaphores yang disebut mutex semaphores dan menghitung semaphores. Semafora Mutex membenarkan satu akses ke sumber dan semafor pengiraan membolehkan beberapa utas mengakses sumber (yang mempunyai beberapa unit yang tersedia).

Apa itu Monitor?

Monitor adalah konstruk bahasa pengaturcaraan yang digunakan untuk mengawal akses ke data bersama. Monitor merangkumi struktur data bersama, prosedur (yang beroperasi pada struktur data bersama) dan penyegerakan antara pemanggilan prosedur serentak. Monitor memastikan bahawa datanya tidak berhadapan dengan akses yang tidak terstruktur dan menjamin bahawa langkah (yang mengakses data monitor melalui prosedurnya) berinteraksi dengan cara yang sah. Monitor menjamin pengecualian bersama dengan hanya membiarkan satu utas menjalankan prosedur monitor pada waktu tertentu. Sekiranya thread lain cuba menggunakan kaedah dalam monitor, sementara thread sudah menjalankan prosedur di monitor, maka prosedur kedua disekat dan harus menunggu dalam barisan. Terdapat dua jenis monitor bernama monitor Hoare dan monitor Mesa. Mereka sangat berbeza dalam semantik penjadualan mereka.

Apakah perbezaan antara Semaphore dan Monitor?

Walaupun kedua-dua semafora dan monitor digunakan untuk mencapai pengecualian bersama dalam persekitaran pengaturcaraan selari, mereka berbeza dalam teknik yang digunakan untuk mencapai tugas ini. Di monitor, kod yang digunakan untuk mencapai pengecualian bersama ada di satu tempat dan lebih tersusun, sementara kod untuk semaphore diedarkan sebagai panggilan fungsi tunggu dan isyarat. Juga, sangat mudah untuk membuat kesilapan ketika melaksanakan semaphores, sementara ada kemungkinan sangat sedikit untuk membuat kesalahan ketika melaksanakan monitor. Selanjutnya, monitor menggunakan pemboleh ubah keadaan, sementara semafor tidak.

Disyorkan: