Professional Documents
Culture Documents
Проблем: замислимо да два процеса хоће да сачувају податке у истој меморијској локацији.
Два процеса користе исти дељени податак и мењају га, и смењују се процеси.
Више процеса захтева ексклузивно коришћење ресурса.
Паралелно извршавање процеса осим предности као што је ефикасност, може имати доста
проблема кад је манипулација са заједничким подацима у питању. Дељени подаци су веома
осетљиво место. Прекидање процеса који им је приступио, и пропуштање другог, може довести
до грешака.
Ситуација у којој крајњи резултат зависи од редоследа извршавања корака различитих процеса
који манипулишу заједничким подацима, назива се трка за ресурсе (енг. race condition).
Нека је X променљива којој могу приступити различити процеси који желе да је увећају за 1,
X=X+1 (као у ФОР пељи)
Операција промене вредности обавља се у три корака,
1) смешта променљиву у регистар
2) увећа регистар за 1
3) премести садржај регистра у променљиву
Уколико два процеса настоје да обаве ову операцију, може се десити да један почне са
извршавањем, и да буде прекинут пре последње инструкције, а други процес почне да увећава
исту променљиву X. Други се процес изврши у потпуности, па први наставља да завршава
увећање. Тад X нема очекивану вредност.
Најбоље би било да се обезбеди да у једном тренутку критичну секцију може да извршава само
један процес. Овакво решење није тривијално поготово у системима где је битна ефикасност. Ако
би се обезбедило да процес који приступа дељеним подацима не буде прекинут док се не изврши,
тад не би имали проблем са дељеним подацима, али би имали умањену ефикасност система, па
се ово ретко примењује.