OS'de Semafor ve Monitör Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 1 Nisan 2021
Güncelleme Tarihi: 5 Mayıs Ayı 2024
Anonim
OS'de Semafor ve Monitör Arasındaki Fark - Teknoloji
OS'de Semafor ve Monitör Arasındaki Fark - Teknoloji

İçerik


Semafor ve Monitör, işlemlerin ortak dışlamada paylaşılan kaynaklara erişmesine izin verir. Her ikisi de süreç senkronizasyon aracıdır. Bunun yerine, birbirlerinden çok farklılar. Nerede Semafor yalnızca başlatma (dışında) wait () ve signal () işlemi ile çalıştırılabilen bir tamsayı değişkenidir. Öte yandan, monitor type, yapısının bir işlemin aynı anda etkinleşmesine izin veren soyut veri türüdür. Bu yazıda semafor ile monitör arasındaki farkları, aşağıda gösterilen karşılaştırma tablosunun yardımıyla tartışacağız.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temelSemafor monitor
Temel Semaforlar, bir tamsayı değişkeni S'dir.Monitör soyut bir veri türüdür.
AksiyonSemaphore S'nin değeri sistemde bulunan paylaşılan kaynakların sayısını gösterir.Monitör türü, paylaşılan değişkenleri ve paylaşılan değişkende işlem yapan prosedürleri içerir.
ErişimHerhangi bir işlem paylaşılan kaynaklara eriştiğinde, S üzerinde wait () işlemi gerçekleştirilir ve paylaşılan kaynakları serbest bıraktığında, S'de signal () işlemi gerçekleştirir.Herhangi bir işlem monitördeki paylaşılan değişkenlere erişmek istediğinde, prosedürler aracılığıyla buna erişmesi gerekir.
Koşul değişkeniSemafor koşul değişkenleri yoktur.Monitörde durum değişkenleri var.


Semafor'un tanımı

Bir süreç senkronizasyon aracı olmak, Semafor bir tamsayı değişkeni S. Bu tamsayı değişkeni S ile başlatılır. kaynak sayısı sistemde mevcut. Semafor S'nin değeri sadece iki fonksiyon tarafından değiştirilebilir Bekleyin() ve işaret() başlatma dışında.

Wait () ve signal () işlemi, semafor S değerini ayrı ayrı değiştirir. Bu, bir işlem semaforun değerini değiştirdiğinde, başka hiçbir işlem semaforun değerini aynı anda değiştiremez. Dahası, işletim sistemi semaforu iki kategoride semafor ve İkili semafor sayar.

İçinde Semafor SaymaSemafor S değeri sistemde mevcut olan kaynakların sayısına göre başlatılır. Bir işlem paylaşılan kaynaklara erişmek istediğinde, gerçekleştirir. Bekleyin() semafor üzerindeki operasyon bir azalır semaforun değeri birdir. Paylaşılan kaynağı serbest bıraktığında, bir işaret() semafor üzerindeki operasyon artışlarla semaforun değeri birdir. Semafor sayımı ne zaman 0, anlamı tüm kaynaklar meşgul süreçlerle. Bir işlem semafor sayısı 0 olduğunda bir kaynak kullanmaya ihtiyaç duyarsa, wait () komutunu çalıştırır ve bloke edilmiş paylaşılan kaynakları kullanan bir süreç yayınlanıncaya ve semaforun değeri 0'dan büyük olana kadar.


İçinde İkili semaforsemaforun değeri 0 ile 1 arasındadır. Mutex kilidine benzer, ancak mutex bir kilitleme mekanizmasıdır, semafor ise bir sinyal mekanizmasıdır. İkili semaforda, bir işlem kaynağa erişmek istiyorsa, semafor üzerinde wait () işlemini gerçekleştirir ve bir azalır semafor değeri 1 - 0 arasındadır. İşlem kaynağı serbest bıraktığında, bir işaret() semafor üzerinde işlem yapar ve değerini 1'e yükseltir. Semaforun değeri 0 ise ve bir işlem kaynağa erişmek isterse, wait () işlemini gerçekleştirir ve kaynakları kullanan mevcut işlem kaynağı serbest bırakana kadar kendini engeller.

Monitor'un tanımı

Proses senkronizasyonu için semafor kullanırken meydana gelen zamanlama hatalarının üstesinden gelmek için, araştırmacılar yüksek düzeyde bir senkronizasyon yapısı, yani monitör tipi. Bir monitör tipi soyut bir veri türü işlem senkronizasyonu için kullanılır.

Soyut bir veri tipi olan monitör tipi olmak, paylaşılan veri değişkenleri tüm süreçler ve programcı tarafından tanımlanan bazı kişiler tarafından paylaşılacak olan operasyonlar Bu, monitörde karşılıklı dışlamada işlemlerin yürütülmesine izin verir. Bir işlem olabilir doğrudan erişim yok monitördeki paylaşılan veri değişkeni; süreç erişmek zorunda prosedürler yoluyla Bir seferde bir monitörde yalnızca bir işlemin paylaşılan değişkenlere erişmesine izin veren ekranda tanımlanır.

Monitörün sözdizimi aşağıdaki gibidir:

monitör monitör_adı {// paylaşılan değişken bildirimleri prosedürü P1 (..) {} prosedürü P2 (..) {} prosedürü Pn (..) {} başlangıç ​​kodu (..) {}}

Monitör, monitör içindeki bir zamanda etkin olan tek bir işlem gibi bir yapıdır. Başka bir işlem izleyicideki paylaşılan değişkene erişmeye çalışırsa, engellenir ve daha önce işlem yayınlandığında paylaşılan verilere erişim sağlamak için sıraya dizilir.

Koşullu değişkenler ek senkronizasyon mekanizması için tanıtıldı. Koşullu değişken bir işlemin monitörün içinde beklemesini sağlar ve diğer işlem kaynakları serbest bıraktığında bekleme sürecinin derhal devam etmesini sağlar.

koşullu değişken sadece iki işlemi çağırabilir Bekleyin() ve işaret(). Nerede bir işlem P bir bekleme çağrısı () operasyon diğer sürece kadar monitörde askıya alınır Q sinyal çağrısı () işlem, yani bir işlem tarafından başlatılan bir sinyal () işlemi, askıya alınmış işlemi sürdürür.

  1. Semafor ve monitör arasındaki temel fark, semafor bir tamsayı değişkeni S sistemde mevcut kaynakların sayısını belirtirken, izlemek o soyut veri türü Bu, bir kerede yalnızca bir işlemin kritik bölümde yürütülmesine izin verir.
  2. Semafor değeri tarafından değiştirilebilir Bekleyin() ve Sinyal () sadece operasyon. Öte yandan, bir monitörde paylaşılan değişkenler ve sadece paylaşılan değişkenlere süreçlerle erişilebilen prosedürler bulunur.
  3. Semafor'da bir işlem paylaşılan kaynaklara erişmek istediğinde işlem gerçekleştirir Bekleyin() kaynakları işletmek ve engellemek ve kaynakları serbest bıraktığı zaman gerçekleştirir. işaret() operasyon. Bir işlemin paylaşılan kaynaklara erişmesi gerektiğinde, monitörlerde bunlara monitördeki prosedürlerle erişmesi gerekir.
  4. Monitör türü koşul değişkenleri hangi semafor sahip değil.

Sonuç:

Monitörler, semafordan daha kolaydır ve semaforlara kıyasla monitörde küçük bir hata olasılığı vardır.