Шта је синхронизација процеса?
Синхронизација процеса је задатак координације извршавања процеса на начин да ниједна два процеса не могу имати приступ истим дељеним подацима и ресурсима.
То је посебно потребно у вишепроцесном систему када се више процеса изводи заједно, а више процеса истовремено покушава да приступи истом дељеном ресурсу или подацима.
То може довести до недоследности дељених података. Дакле, промена коју је извршио један процес није се нужно одразила када су други процеси приступили истим дељеним подацима. Да би се избегла ова врста неусклађености података, процеси морају бити међусобно синхронизовани.
У овом упутству за оперативни систем научићете:
- Шта је синхронизација процеса?
- Како функционише синхронизација процеса?
- Делови програма
- Шта је проблем критичног одељка?
- Правила за критички одељак
- Решења за критички одељак
Како функционише синхронизација процеса?
На пример, процес А мења податке на меморијској локацији, док други процес Б покушава да прочита податке са исте меморијске локације. Постоји велика вероватноћа да ће подаци прочитани у другом процесу бити погрешни.
Делови програма
Ево четири битна елемента критичног одељка:
- Одељак за улазак: То је део процеса који одлучује о уласку у одређени процес.
- Критични одељак: Овај део омогућава једном процесу да уђе и измени дељену променљиву.
- Излазни одељак: Излазни одељак омогућава осталим процесима који чекају у Одељку за улазак да уђу у Критичне одељке. Такође проверава да процес који је завршио своје извршење треба уклонити кроз овај одељак.
- Преостали одељак: Сви остали делови Кодекса, који нису у одељку Критични, Улаз и Излазак, познати су као Одељак остатка.
Шта је проблем критичног одељка?
Критични одељак је сегмент кода којем може приступити сигнални процес у одређеном тренутку. Одељак се састоји од дељених ресурса података којима је требало да приступе други процеси.
- Уносом у критични одељак управља функција ваит () и представља се као П ().
- Излазом из критичне секције управља функција сигнал (), представљена као В ().
У критичном одељку може се извршити само један процес. Остали процеси, који чекају да изврше свој критични одељак, морају да сачекају док тренутни процес не заврши своје извршавање.
Правила за критички одељак
Критични одељак мора да спроводи сва три правила:
- Међусобно искључивање: Међусобно искључивање је посебна врста бинарног семафора која се користи за контролу приступа дељеном ресурсу. Укључује приоритетни механизам наслеђивања како би се избегли проширени приоритети инверзије. У једном критичном одељку истовремено не може да се изврши више од једног процеса.
- Напредак: Ово решење се користи када нико није у критичном одељку, а неко жели да уђе. Тада би ти процеси који нису у одељку за подсетнике требало да одлуче ко треба да уђе за одређено време.
- Ограничено чекање: Када процес поднесе захтев за улазак у критични одељак, постоји одређено ограничење броја процеса који могу ући у њихов критични одељак. Дакле, када се достигне ограничење, систем мора да дозволи захтеву да процес уђе у свој критични одељак.
Решења за критички одељак
У синхронизацији процеса, критични одељак игра главну улогу тако да се проблем мора решити.
Ево неколико широко коришћених метода за решавање проблема критичног одељка.
Петерсон Солутион
Петерсоново решење се широко користи за решавање проблема критичних пресека. Овај алгоритам је развио информатичар Петерсон, због чега је и именован као Петерсоново решење.
У овом решењу, када се процес извршава у критичном стању, други процес извршава само остатак кода, а може се догодити и супротно. Овај метод такође помаже да се осигура да само један процес тече у критичном одељку у одређено време.
Пример
PROCESS PiFLAG[i] = truewhile( (turn != i) AND (CS is !free) ){ wait;}CRITICAL SECTION FLAG[i] = falseturn = j; //choose another process to go to CS
- Претпоставимо да постоји Н процеса (П1, П2, ... ПН) и сваки процес у неком тренутку захтева улазак у критични одељак
- Одржава се низ ФЛАГ [] величине Н који је подразумевано нетачан. Дакле, кад год процес захтева улазак у критични одељак, он мора поставити своју заставицу као истиниту. На пример, ако Пи жели да уђе, поставиће ФЛАГ [и] = ТРУЕ.
- Друга променљива која се зове ТУРН означава процесни број који тренутно жели да уђе у ЦС.
- Процес који улази у критични одељак приликом изласка променио би ТУРН у други број са листе спремних процеса.
- Пример: скретање је 2, а затим П2 улази у критични одељак и при изласку из скретања = 3, па П3 излази из петље чекања.
Синхронизациони хардвер
Некада се проблеми Критичног одељења такође решавају хардверским путем. Неки оперативни систем нуди функцију закључавања када Процес добије закључавање приликом уласка у одељак Критика и отпушта закључавање након што га напусти.
Дакле, када други процес покушава да уђе у критични одељак, неће моћи да уђе јер је закључан. То може учинити само ако је бесплатно преузимањем саме браве.
Мутек браве
Хардвер за синхронизацију није једноставан метод за примену за све, па је тако уведена и строга софтверска метода позната као Мутек Лоцкс.
У овом приступу, у одељку за унос кода, добија се ЛОЦК над критичним ресурсима који се користе унутар критичног одељка. У излазном одељку се закључава.
Семапхоре Солутион
Семафор је једноставно променљива која није негативна и дели се између нити. То је још један алгоритам или решење проблема критичног одељка. То је сигнални механизам и нит која чека на семафору, а коју може сигнализирати друга нит.
Користи две атомске операције, 1) чекање и 2) сигнал за синхронизацију процеса.
Пример
WAIT ( S ):while ( S <= 0 );S = S - 1;SIGNAL ( S ):S = S + 1;
Резиме:
- Синхронизација процеса је задатак координације извршења процеса на начин да ниједна два процеса не могу имати приступ истим дељеним подацима и ресурсима.
- Четири елемента критичног одељка су 1) Одељак за улазак 2) Одељак за критику 3) Одељак за излаз 4) Одељак за подсећање
- Критични одељак је сегмент кода којем може приступити сигнални процес у одређеном тренутку.
- Три правила која се морају применити у критичним одељцима су: 1) Међусобно искључивање 2) Процесно решење 3) Ограничено чекање
- Међусобно изузеће је посебна врста бинарног семафора која се користи за контролу приступа дељеном ресурсу.
- Процесно решење се користи када нико није у критичном одељку, а неко жели.
- У решењу са ограниченим чекањем, након што процес поднесе захтев за улазак у свој критични одељак, постоји ограничење броја других процеса који могу ући у свој критични одељак.
- Петерсоново решење се широко користи за решавање проблема критичних пресека.
- Проблеми критичног одељења такође се решавају синхронизацијом хардвера
- Хардвер за синхронизацију није једноставан метод за примену за све, па је такође уведена строга софтверска метода позната као Мутек Лоцкс.
- Семафор је још један алгоритам или решење проблема критичног одељка.