Рецоммендед, 2024

Избор Уредника

Разлика између семафора и Мутека

Синхронизација процеса игра важну улогу у одржавању конзистентности заједничких података. И софтверска и хардверска рјешења су присутна за рјешавање проблема критичних дијелова. Али хардверска решења за проблем критичне секције су веома тешко применити. У данашњем чланку ћемо размотрити два решења заснована на софтверу за решавање проблема критичне секције, нпр. Семапхоре и Мутек.

Основна разлика између семафора и мутек-а је да је семафор механизам за сигнализацију, тј. Процеси који изводе чекање () и сигнал () операцију да би се показало да ли добијају или ослобађају ресурс, док је Мутек механизам закључавања, процес мора да добије закључавање мутек објекат ако жели да добије ресурс. Постоји још неколико разлика између семафора и мутека, да их размотримо помоћу табеле за упоређивање приказане испод.

Цомпарисон Цхарт

Основа за поређењеСемапхореМутек
БасицСемафор је сигнални механизам.Мутек је механизам за закључавање.
ЕкистенцеСемапхоре је целобројна варијабла.Мутек је објекат.
ФунцтионСемапхоре дозвољава вишеструким програмским нитима приступ коначном инстанцу ресурса.Мутек омогућава вишеструким програмским нитима да приступе једном ресурсу, али не истовремено.
ВласништвоВредност семафора може да се промени било којим процесом који доноси или ослобађа ресурс.Мутек закључавање објекта се ослобађа само процесом који је добио закључавање на њему.
ЦатегоризеСемапхоре се може категоризовати у семафор и бинарни семафор.Мутек није даље категоризован.
ОперацијаВредност семафора се мења коришћењем операције чекања () и сигнала ().Мутек објекат је закључан или откључан процесом који захтева или ослобађа ресурс.
Ресоурцес ОццупиедАко се користе сви ресурси, процес који тражи ресурс извршава операцију ваит () и блокира се док број семафора постане већи од један.Ако је мутек објекат већ закључан, процес који тражи ресурсе чека на чекање и чекање у реду од система док се не откључа.

Дефинитион оф Семапхоре

Семапхоре је алатка за синхронизацију процеса. Семапхоре је типично целобројна варијабла С која је иницијализована бројем ресурса присутних у систему и вредност семафора може да се мења само помоћу две функције ваит () и сигнала () осим иницијализације.

Операција ваит () и сигнал () модифицирају вриједност семафора недељиво . То значи да када процес мења вредност семафора, ниједан други процес не може истовремено да модификује вредност семафора. Семапхоре се разликују по оперативном систему у две категорије: Бројање семафора и Бинарни семафор .

У Цоунтинг Семапхоре, семафор С вредност се иницијализује на број ресурса присутних у систему. Кад год процес жели приступити ресурсу, он извршава операцију чекања () на семафору и смањује вриједност семафора за један. Када ослободи ресурс, он извршава сигнал () операцију на семафору и повећава вредност семафора за један. Када бројање семафора иде на 0, то значи да су сви ресурси заузети процесима. Ако процес треба да користи ресурс када је број семафора 0, он извршава ваит () и блокира се док вредност семафора не постане већа од 0.

У бинарном семафору, вредност семафора креће се између 0 и 1 . Он је сличан мутек брави, али мутек је механизам за закључавање, док је семафор механизам за сигнализацију. У бинарном семафору, ако процес жели да приступи ресурсу, он извршава операцију чекања () на семафору и смањује вредност семафора са 1 на 0. Када ослободи ресурс, он извршава операцију сигнала () на семафору и повећава. његова вредност на 1. Ако је вредност семафора 0 и процес жели да приступи ресурсу, он извршава операцију ваит () и блокира се док тренутни процес који користи ресурсе не ослободи ресурс.

Дефиниција Мутека

Објекат узајамног искључивања кратко се назива Мутек. Из термина узајамног искључивања можемо разумети да само један процес може приступити датом ресурсу. Мутек објект дозвољава вишеструким програмским нитима да користе исти ресурс, али не истовремено.

Када програм покрене, захтева систем да креира мутек објекат за дати ресурс. Систем креира мутек објекат са јединственим именом или ИД-ом. Кад год програмска нит жели да користи ресурс који заузима закључавањем на мутек објекту, користи ресурс и након употребе, ослобађа закључавање на мутек објекту. Затим је наредном процесу дозвољено да стекне закључавање на мутек објекту.

У међувремену, процес је стекао закључавање на мутек објекту који ниједан други нит / процес не може приступити том ресурсу. Ако је мутек објекат већ закључан, процес који жели да стекне закључавање на мутек објекту мора да сачека и да га систем стави у ред чекања док се мутек објекат не откључа.

Кључне разлике између семафора и мутекса

  1. Семапхоре је механизам сигнализације као операција чекања () и сигнала () која се изводи на варијабли семафора и показује да ли процес добија ресурс или ослобађа ресурс. Са друге стране, мутек је механизам за закључавање, како би се добио ресурс, процес треба да закључа мутек објекат и приликом ослобађања ресурсног процеса мора да откључа мутек објекат.
  2. Семапхоре је типична варијабла, док је мутек објект .
  3. Семапхоре омогућава вишеструким програмским нитима приступ коначном инстанцу ресурса . С друге стране, Мутек дозвољава вишеструким програмским нитима да приступе једном заједничком ресурсу, али један по један.
  4. Вредност променљиве семафора може да се модификује било којим процесом који прикупља или ослобађа ресурсе извођењем операције чекања () и сигнала (). Са друге стране, закључавање стечено на мутек објекту може бити ослобођено само процесом који је добио блокаду на мутек објекту.
  5. Семапхоре су два типа, бројећи семафор и бинарни семафор који је прилично сличан мутексу.
  6. Вредност променљиве семафора се мења помоћу функције чекања () и сигнала () осим иницијализације. Међутим, објекат за утишавање је закључан или откључан процесом који прикупља или ослобађа ресурс.
  7. Ако су сви ресурси набављени од стране процеса, а ниједан ресурс није слободан, процес који жели да добије операцију чекања () на оператеру семафора и блокира се док број семафора не постане већи од 0. Али ако је мутек објекат већ закључан онда процес који жели да добије ресурс чека и да га систем стави у ред чекања док се ресурс не ослободи и мутек објекат се откључа.

Закључак:

Семапхоре је боља опција у случају да постоји више инстанци доступних ресурса. У случају једног заједничког ресурса мутек је бољи избор.

Top