Шта је Семафор?
Семафор је једноставно променљива која није негативна и дели се између нити. Семафор је сигнални механизам, а нит која чека на семафору може бити сигнализирана другом нити. Користи две атомске операције, 1) чекање и 2) сигнал за синхронизацију процеса.
Семафор омогућава или онемогућава приступ ресурсу, што зависи од начина на који је постављен.
У овом упутству ћете научити:
- Шта је Мутек?
- Употреба Семафора
- Употреба Мутека
- Разлика између Семапхора и Мутека
- Уобичајене заблуде о мутексу и семафору
- Предности Семафора
- Предности Мутека
- Недостатак семафора
- Недостаци Мутека
Шта је Мутек?
Пуни облик Мутека је Објекат узајамног искључивања. То је посебна врста бинарног семафора која се користи за контролу приступа дељеном ресурсу. Укључује приоритетни механизам наслеђивања како би се избегли проширени приоритети инверзије. Омогућава задржавање тренутних задатака вишег приоритета у блокираном стању у најкраћем могућем року. Међутим, наслеђивање приоритета не исправља инверзију приоритета, већ само минимализује његов ефекат.
КЉУЧНА РАЗЛИКА
- Мутек је механизам закључавања, док је Семафор сигнални механизам
- Мутек је само објекат, док је Семафор цео број
- Мутек нема подтип, док Семафор има два типа, који рачунају семафор и бинарни семафор.
- Семапхоре подржава модификовање операција чекања и сигнала, док је Мутек модификован само процесом који може затражити или објавити ресурс.
- Вредност семафора се мења помоћу операција ваит () и сигнал (), с друге стране, Мутек операције су закључане или откључане.
Употреба Семафора
У случају једног бафера, можемо раздвојити бафер од 4 КБ на четири бафера од 1 КБ. Семафор се може повезати са ова четири бафера. Ово омогућава корисницима и произвођачима да истовремено раде на различитим баферима.
Употреба Мутека
Мутек пружа узајамно искључивање, који може бити произвођач или потрошач који може имати кључ (мутек) и наставити са својим радом. Све док произвођач пуни ме успремник, корисник треба да сачека и обрнуто. У Мутек брави, све време само једна нит може да ради са целим бафером.
Разлика између Семапхора и Мутека
Параметри | Семафор | Мутек |
---|---|---|
Механизам | То је врста сигналног механизма. | То је механизам за закључавање. |
Тип података | Семафор је целобројна променљива. | Мутек је само објекат. |
Модификација | Операције чекања и сигнала могу изменити семафор. | Измењује га само поступак који може затражити или објавити ресурс. |
Управљање ресурсима | Ако ниједан ресурс није бесплатан, тада је за процес потребан ресурс који треба да изврши операцију чекања. Требало би сачекати док број семафора не буде већи од 0. | Ако је закључан, поступак мора да сачека. Процес треба држати у реду. Овоме треба приступити само када је мутек откључан. |
Навој | Можете имати више програмских нити. | У мутеку можете имати више програмских нити, али не истовремено. |
Власништво | Вредност се може променити било којим поступком пуштања или прибављања ресурса. | Закључавање објекта се ослобађа само процесом, који је закључавање на њему добио. |
Врсте | Врсте семафора броје семафор и бинарни семафор. | Мутек нема подтипове. |
Операција | Вредност семафора се мења помоћу операција ваит () и сигнал (). | Мутек објекат је закључан или откључан. |
Попуњеност ресурса | Заузима се ако се користе сви ресурси, а поступак који захтева ресурс врши операцију ваит () и блокира се док број семафора не постане> 1. | У случају да је објекат већ закључан, процес који захтева ресурсе чека и систем га ставља у ред пре него што се закључавање пусти. |
Уобичајене чињенице о мутексу и семафору
Ево неколико уобичајених чињеница о Мутексу и Семафору:
- Само један задатак може да стекне мутекс. Дакле, постоји власништво повезано са мутексом и само власник може ослободити мутекс.
- Разлози за употребу мутекса и семафора су различити, можда би се због сличности у њиховој примени мутекс називао бинарни семафор.
- Једна врло позната заблуда је да су мутекси и семафори готово исти, с једином разликом што је мутекс способан да броји до 1, док се семафори могу бројати од 0 до Н.
- Између бинарног семафора и мутекса увек постоји несигурност. Можда ћете чути да је мутек бинарни семафор, што није тачно.
Предности Семафора
Ево предности / предности коришћења Семапхоре-а:
- Омогућава више нитима да приступе критичном одељку
- Семафори су независни од машине.
- Семафори су примењени у машински независном коду микроједра.
- Они не дозвољавају да више процеса уђе у критични одељак.
- Како је у семафору заузето чекање, никада се не губи процесно време и ресурси.
- Они су независни од машине, што би требало покренути у машински неовисном коду микроједра.
- Омогућују флексибилно управљање ресурсима.
Предности Мутека
Овде су важне предности / предности Мутека
- Мутекси су само једноставне браве добијене пре него што уђу у његов критични одељак, а затим га пусте.
- С обзиром да је у једном тренутку само једна нит у свом критичном одељку, не постоје услови трке, а подаци увек остају доследни.
Недостатак семафора
Ево слабости / недостатака семафора
- Једно од највећих ограничења семафора је инверзија приоритета.
- Оперативни систем мора пратити све позиве на чекање и сигнализирати семафор.
- Њихова употреба се никада не спроводи, али је само по договору.
- Да би се избегла застоја у семафору, операције чекања и сигнала морају се извршити у правилном редоследу.
- Програмирање семафора је сложена метода, па постоје шансе да се не постигне међусобно искључивање.
- Такође није практична метода за широку употребу, јер њихова употреба доводи до губитка модуларности.
- Семафор је склонији грешкама програмера.
- То може проузроковати застој или кршење међусобног искључивања због грешке програмера.
Недостаци Мутека
Овде су недостаци / недостаци Мутека
- Ако нит добије браву и пређе у стање спавања или је предухитрена, тада се друга нит можда неће моћи померити напред. То може довести до глади.
- Не може се закључати или откључати из другог контекста од оног који га је стекао.
- У критичном одељку истовремено треба да буде дозвољена само једна нит.
- Уобичајена имплементација може довести до заузетог стања чекања, што губи процесорско време.