Cara Membedakan Mutex dan Semaphore

Perbedaan yang menonjol antara Mutex dan Semaphore adalah mutex adalah mekanisme penguncian, sedangkan semaphore adalah mekanisme pensinyalan.

Ketika beberapa proses mengakses data bersama secara bersamaan, hal itu dapat menyebabkan inkonsistensi data . Hal ini diperlukan untuk menjaga urutan pelaksanaan proses untuk menjaga konsistensi data. Selanjutnya, bagian kritis adalah segmen kode yang mengakses variabel bersama atau sumber daya bersama. Ketika beberapa proses dijalankan di bagian kritis, itu dapat menyebabkan inkonsistensi data pada variabel bersama. Maka dari itu, ini disebut masalah bagian kritis. Maka dari itu, perlu dilakukan sinkronisasi proses untuk menghindari masalah critical section. Dua solusi perangkat lunak untuk sinkronisasi proses adalah mutex dan semaphore.

Topik bahasan kami tentang:

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

Istilah Utama

Konsistensi Data, Mutex, Semaphore

Yang perlu anda ketahui tentang Mutex?

Mutex atau objek mutual exception adalah mekanisme penguncian. Proses harus mendapatkan kunci sebelum memasuki bagian kritis. Setelah mengeksekusi di bagian kritis, proses melepaskan kunci. Demikian juga, hanya satu proses yang dieksekusi di bagian kritis pada satu waktu. Ketika ada beberapa proses, hanya satu proses yang akan dieksekusi di bagian kritis pada satu waktu; tidak secara bersamaan.

Lihat kode di bawah ini.

melakukan{

mendapatkan kunci

bagian penting

lepaskan kunci

bagian sisa

} sementara (benar)

Pada awal menjalankan program, ia meminta sistem untuk membuat mutex. Ketika proses ingin dieksekusi di bagian kritis, ia menempati kunci. Operasi ini disebut memperoleh(). Setelah menyelesaikan eksekusi bagian kritis, proses melepaskan kunci. Operasi ini disebut rilis(). Kemudian proses lain dapat memperoleh kunci. Ketika suatu proses memiliki kunci, proses lain tidak dapat dijalankan di bagian kritis. Maka dari itu, proses tersebut harus menunggu dalam antrian sampai mutex dibuka.

Yang perlu anda ketahui tentang Semaphore?

Semaphore adalah variabel integer (S). Dua operasi atom, wait() dan signal(), membantu memodifikasi nilai semaphore. Ketika proses tertentu mengubah nilai semaphore, proses lain tidak dapat mengubah nilai semaphore secara bersamaan.

Kode menunggu dan sinyal adalah sebagai berikut.

tunggu(S){

sementara(s<=0);

s-;

}

sinyal{

s++;

}

Selain itu, ada dua jenis semaphore; semaphore biner dan semaphore menghitung. Dalam semaphore biner, nilai integer dapat berubah antara 0 hingga 1. Jika suatu proses ingin mengakses bagian kritis, ia melakukan operasi wait(). Kemudian, ia menurunkan nilai semaphore dari 1 menjadi 0. Saat keluar dari critical section, ia melakukan operasi signal() pada semaphore. Dengan demikian, nilainya akan meningkat menjadi 1.

Dalam menghitung semaphore, nilainya dapat berubah dalam domain yang tidak dibatasi. Jika suatu proses perlu dieksekusi di bagian kritis, itu adalah operasi () dan mengurangi nilai semaphore sebesar 1. Ketika keluar dari bagian kritis, ia melakukan operasi signal() dan menambah nilai semaphore satu per satu.

Dalam kedua situasi, nilai semaphore 0 menunjukkan bahwa semua sumber daya sedang digunakan. Jika suatu proses membutuhkan untuk mendapatkan semaphore dan nilai semaphore adalah 0, maka proses melakukan wait() sampai nilai semaphore menjadi lebih besar dari 0.

Perbedaan Antara Mutex dan Semaphore

Definisi

Mutex adalah objek program yang memungkinkan beberapa proses bergiliran untuk berbagi sumber daya yang sama. Sebaliknya, semaphore adalah variabel yang digunakan untuk mengontrol akses ke sumber daya umum oleh beberapa proses dalam sistem bersamaan seperti sistem operasi multitasking. Jadi, inilah perbedaan mendasar antara mutex dan semaphore.

Mekanisme

Yang penting, Perbedaan yang menonjol antara mutex dan semaphore adalah mutex adalah mekanisme penguncian, sedangkan semaphore adalah mekanisme pensinyalan.

Jenis

Selain itu, mutex adalah objek sedangkan semaphore adalah variabel integer.

Kategorisasi

Selain itu, mutex tidak memiliki kategorisasi, sedangkan semaphore dikategorikan sebagai semaphore biner dan hitung.

Melepaskan

Selanjutnya, jika mutex terkunci, proses yang meminta kunci menunggu hingga sistem melepaskan kunci. Sebaliknya, jika nilai semaphore adalah 0, proses melakukan operasi wait() sampai semaphore menjadi lebih besar dari 0.

Operasi

Selain itu, suatu proses menggunakan acquire() dan release() untuk mengakses dan melepaskan mutex, sedangkan proses menggunakan wait() dan signal() untuk memodifikasi semaphore. Maka dari itu, ini adalah perbedaan lain antara mutex dan semaphore.

Kata terakhir

Singkatnya, mutex dan semaphore adalah dua mekanisme untuk menyinkronkan fungsionalitas beberapa proses. Perbedaan yang menonjol antara mutex dan semaphore adalah mutex adalah mekanisme penguncian, sedangkan semaphore adalah mekanisme pensinyalan. Dengan demikian, semaphore lebih canggih daripada mutex.

Sumber bacaan:
  1. “Proses Sinkronisasi.” Belajar malam ini, Tersedia di sini . 2.“Apa itu Mutex (Objek Pengecualian Bersama)? – Definisi dari WhatIs.com.” SearchNetworking, Tersedia di sini . 3. “Semafor (Pemrograman).” Wikipedia, Wikimedia Foundation, 1 Mei 2019, Tersedia di sini .
Sumber gambar:
  1. “Tiga proses” Oleh M.usman.14 – Karya sendiri ( CC BY-SA 4.0 ) melalui Commons Wikimedia

Related Posts