Разлика между семафор и монитор в ОС

Автор: Laura McKinney
Дата На Създаване: 1 Април 2021
Дата На Актуализиране: 5 Може 2024
Anonim
05 - Операционные системы. Семафоры. Мониторы.
Видео: 05 - Операционные системы. Семафоры. Мониторы.

Съдържание


И Semaphore и Monitor позволяват на процесите да имат достъп до споделените ресурси при взаимно изключване. И двете са инструментът за синхронизиране на процеса. Вместо това те са много различни един от друг. Където семафор е целочислена променлива, която може да се управлява само чрез операция изчакване () и сигнал () освен инициализацията. От друга страна монитор type е абстрактен тип данни, чиято конструкция позволява един процес да се активира едновременно. В тази статия ще обсъдим разликите между семафор и монитор с помощта на сравнителна диаграма, показана по-долу.

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма

Основа за сравнениесемафор монитор
Основен Семафорите са целочислена променлива S.Мониторът е абстрактен тип данни.
действиеСтойността на Semaphore S показва броя на споделените ресурси, налични в систематаТипът Монитор съдържа споделени променливи и набор от процедури, които работят върху споделената променлива.
достъпКогато някой процес има достъп до споделените ресурси, той извършва операция изчакване () на S и когато освобождава споделените ресурси, той извършва операция сигнал () на S.Когато всеки процес иска достъп до споделените променливи в монитора, той трябва да получи достъп до него чрез процедурите.
Променлива на състояниетоСемафор няма променливи на състоянието.Мониторът има променливи на състоянието.


Определение на Семафор

Като инструмент за синхронизация на процеси, семафор е цяло число променлива S. Тази целочислена променлива S се инициализира с брой ресурси присъства в системата. Стойността на семафор S може да бъде променена само от две функции изчакайте() и сигнал() освен инициализация.

Операцията изчакване () и сигнал () променя неделимо стойността на семафор S. Което означава, че когато даден процес променя стойността на семафора, никой друг процес не може едновременно да променя стойността на семафора. Освен това операционната система разграничава семафора в две категории Преброяване на семафори и Двоичен семафор.

в Преброяване на Семафор, стойността на семафор S се инициализира с броя на ресурсите, присъстващи в системата. Всеки път, когато даден процес иска достъп до споделените ресурси, той се изпълнява изчакайте() операция върху семафор който понижавания стойността на семафор по едно. Когато освобождава споделения ресурс, той изпълнява a сигнал() операция върху семафор който нараствания стойността на семафор по едно. Когато броят на семафорите отива към 0, това означава всички ресурси са заети от процесите. Ако един процес трябва да използва ресурс, когато броят на семафор е 0, той изпълнява изчакайте () и получавайте блокиран докато процес, използващ споделените ресурси, не го освобождава и стойността на семафор става по-голяма от 0.


в Бинарен семафор, стойността на семафора варира между 0 и 1. Тя е подобна на заключване на мутекс, но мутексът е заключващ механизъм, докато семафорът е механизъм за сигнализиране. В двоичен семафор, ако процесът иска достъп до ресурса, той извършва операция изчакване () на семафора и понижавания стойността на семафор от 1 до 0. Когато процесът освобождава ресурса, той изпълнява a сигнал() работа върху семафора и увеличава неговата стойност до 1. Ако стойността на семафора е 0 и процес иска да получи достъп до ресурса, той извършва операция изчакване () и се блокира, докато текущият процес, използващ ресурсите, освобождава ресурса.

Определение за монитор

За да преодолеят грешките във времето, възникващи при използване на семафор за синхронизация на процеса, изследователите въведоха конструкция за синхронизация на високо ниво, т.е. тип монитор, Тип монитор е абстрактен тип данни който се използва за синхронизация на процесите.

Като абстрактен тип монитор тип данни съдържа споделени променливи на данни които трябва да бъдат споделени от всички процеси и дефинирани от някои програмисти операции които позволяват процесите да се изпълняват при взаимно изключване в рамките на монитора. Един процес може няма директен достъп споменната променлива данни в монитора; процесът трябва да има достъп до него чрез процедури дефинирани в монитора, които позволяват само на един процес да има достъп до споделените променливи в даден монитор.

Синтаксисът на монитора е следният:

monitor monitor_name {// процедура за деклариране на променливи променливи P1 (.) {} процедура P2 (..) {} процедура Pn (.) {} код за инициализация (..) {}}

Мониторът е конструкция, като само един процес е активен наведнъж в рамките на монитора. Ако друг процес се опита да получи достъп до споделената променлива в монитора, той се блокира и се очертава в опашката, за да получи достъп до споделени данни, когато преди това процесът на достъп го освобождава.

Условни променливи бяха въведени за допълнителен механизъм за синхронизация. Условната променлива позволява процес да изчака вътре в монитора и позволява процесът на изчакване да се възобнови веднага, когато другият процес освободи ресурсите.

Най- условна променлива може да извика само две операции изчакайте() и сигнал(). Къде, ако процес P извиква изчакване () операцията се спира в монитора до друг процес Q извикване на сигнал () операция, т.е. операция сигнал (), предизвикана от даден процес, възобновява спряния процес.

  1. Основната разлика между семафор и монитор е, че семафор е цяло число променлива S които показват броя на наличните ресурси в системата, докато, монитор е абстрактни тип данни което позволява да се извърши само един процес в критичен раздел наведнъж.
  2. Стойността на семафор може да бъде променена от изчакайте() и сигнал () само операция. От друга страна, мониторът има споделените променливи и процедурите, само чрез които процесите могат да получат достъп до споделените променливи.
  3. В Semaphore, когато даден процес иска достъп до споделени ресурси, процесът изпълнява изчакайте() експлоатация и блокиране на ресурсите и когато освобождава ресурсите, които изпълнява сигнал() операция. В мониторите, когато даден процес трябва да има достъп до споделени ресурси, той трябва да получи достъп до тях чрез процедури в монитора.
  4. Тип монитор има променливи на състоянието който семафор няма.

Заключение:

Мониторите са лесни за изпълнение от семафорните и има малък шанс за грешка в монитора в сравнение със семафорите.