Что такое критическая область программы

Некоторые задачи для рационального использования процессорного времени, т.е. устранения простоя в процессоре целесообразно разбивать на отдельные процессы которые могут выполняться параллельно на разных процессорах либо на 1-м процессе в квазипараллельном режиме. В последнем случае эффект параллельности достигается за счет предоставления каждому процессу некоторого промежутка процессорного времени.

Состояние состязания это ситуация в которых 2 или более процессов считывают либо записывают данные в разделительный буфер и конечный результат такой записи зависит от того какой процесс был последний.

Для избежания состояния состязания процесов нужно решать задачу синхронизации процессов. Разработка корректных инструментов синхронизации актуальна, тем более ситуации состязания выявить сложно.

Критические области это участки программ кода которые осуществляют доступ к разделяемым с другими процессами данных. Основой пути борьбы состязания процессов это взаимное переключение, т.е. в один момент времени разделяемыми данными может пользоватся только 1 процесс. Длительность этого промежуткавремени совпадает со временем вполнения критической секции. Доказано что для избежания состязаний необходимо выполнение часных условий:

4.2 Проверка гипотез о матожидании. Дисперсия известна.

1. Два процесса разделяющих данные не могут одновременно находиться в критических областях.

2. Текст прогарммы должен исключить предположение о скорости вычисления системы либо количестве процессов.

3. Прочесс не должен блокировать другие процессы, если он не находится в критической области.

4. Процесс не должен вечно ждать попадания в критическую секцию.

Методы синхронизации разделены на 2 направления:

1) Синхронизация с активным ожиданием.

2) Синхронизация с блокировкой процессов (пассивным ожиданием)

Методы активной синхронизации:

1. Зпрет на прерывание состоит в запрете приреваний при входе в критическую секцию и разделении при выходе из нее.

Достоинства: самое простое решение, запрет прирывания исключает доступ к процессору любому процессу.

Недостаток: нарушается 4-ре условия синхронизации. При этом никакой другой процесс его из ожидания не выведет, это приводит к краху системы.

Указанное решение применяется в ядре ОС для обеспечения наивысшего приоритета при работе с переменными. Для пользовательских программ указанный метод не приемлем. Этот метод применяется при программировании контроллеров.

Читайте также:
Как сделать запуск программы без прав администратора

2. Использование переменных блокировки – простейшее програмное решение задач синхронизации состоящее в использовании разделяемой переменной блокировки, как правило логической (0 или 1). Когда процесс должен войти в критическую секцию он изменяет значение переменной блокировки (из 0 в 1) и пока значение переменной блокировки равно 1 другой процесс не может войти в критическую секцию. По выходу из критической секции возвращает.

Достоиства: простота решения.

Недостатки: не соблюдаются условия 1 и 3 т.к. не блокируются другие процессы не находящиеся в критической секции. В следствии этогог снижается вероятность но не исключается возможность двух процессов в критической секции.

Коварный t критерий Стьюдента

В некоторой литературе переменные блокировки называются симафорами. В противовес симафоры деструкторы которые по сути являются счетчиками процесса в очереди.

3. Метод строгого чередования.

turn – распределяемая переменная блокировки.

Алгоритм, когда несколько синхронизирующих процессов получают право на доступ в критическую секцию внеочереди называется алгоритмом строгого чередования.

Достоинства: процессы гарантированно будут выполнены.

Недостатки: если один процесс значительно медленнее другого, работа всего множества процессов замедляется, что может привести к нарунению условий 3 и 4.

4. Алгоритм Деккера.

Деккером был продложен метод взаимного исключения без строгого чередования, что позволяло процессам не задерживать друг друга. В настоящее время метод не используется из-за сложности, вместо его использется метод Петерсона.

5. Алгоритм Петерсона предложен в 1981 г.

void enter_region(int process)

int other; //номер другого процесса.

while(turn==process interessted[other]==true); //ожидание перед входом в критическую секцию.

//вызывается перед выходом из критической секции

void leave_region(int process)

Пусть дано 2 процесса совмесно использующих область, enter_region – перед входом.

Использование команды tsl – это асемблерная программа внедренная в многопроцессорные системы поддерживается на аппаратном уровне, расшифровывается как «проверить и заблокировать», работает следущимобразом: в регистр процессора считывается содержимое ячейки памяти и затем в эту ячейку устанавливается единица.

Команда tsl неделима, во время ее выполнения процессором системная шина блокируется.

tsl register, block; — блокирует ячейку памяти и записует в регистр;

cmp register, #0 – команда сравнить;

jne enter_region; — переход по несовпадению;

Преймущества: использования команды tsl перед методом использования переменной блокировки в том что при использовании tsl модификация блокировки не делима что исключает состязание между процессами.

Недостатки: не все вычисительные программы поддерживают метод tsl;

Все алгоритмы синхронизации с активным ожиданием не ражионально расходуют процессорное время, а кроме того имеют проблему приоритотов, которая состоит в том что процесс с более высоким приоритетом при постоянных попытках войти в критическую сесию во время запросов заберет вс время процесса на себя и не позволит процессу м низким приоритетом выполнить критическую секцию и выйтииз нее в результате чего сам никогда не вейдет в критическую сессию.

Читайте также:
Что стало с программой что где когда

Источник: studopedia.su

Что такое критическая область программы

Евдокимов А.А., Майстренко Н.В., Майстренко А.В.

3.3.2. Критические области

Очевидно, что для того, чтобы избежать возникновения состязательной ситуации при использовании общей памяти, общих файлов и т.д., необходимо определить способ, при котором доступ к общим данным для чтения и записи в каждый конкретный момент времени может получить только один процесс. Другими словами, нужен способ взаимного исключения процессов, при котором при использовании одним процессом общих данных возможность их использования другими процессами исключается.

Часть программы, в которой есть обращение к общей памяти, называется критической областью или критической секцией. Тогда, если никакие процессы не будут находиться одновременно в своих критических областях, то это позволило бы избежать состязаний. Для приемлемого решения возникновения состязательных ситуаций необходимо соблюдение четырех условий:

1. Два процесса не могут одновременно находиться в своих критических областях.

2. Не должны выстраиваться никакие предположения по поводу скорости или количества центральных процессоров.

3. Никакие процессы, выполняемые за пределами своих критических областей, не могут блокироваться любым другим процессом.

4. Процессы не должны находиться в вечном ожидании входа в свои критические области.

В абстрактном смысле необходимое поведение показано на рис. 3.10. Процесс А входит в свою критическую область во время T1. Затем, когда наступает время T2, процесс Б пытается войти в свою критическую область, но терпит неудачу, поскольку другой процесс уже находится в своей критической области.

Следовательно, Б временно приостанавливается до наступления времени T3, когда A покинет свою критическую область, позволяя Б тут же войти в свою критическую область. Со временем Б покидает свою критическую область, и происходит возврат в исходную ситуацию, когда ни один из процессов не находится в своей критической области.

Источник: tstu.ru

Что такое критическая область в процессах?

У нас есть 22 ответов на вопрос Что такое критическая область в процессах? Скорее всего, этого будет достаточно, чтобы вы получили ответ на ваш вопрос.

Читайте также:
Как называется программа в компьютере

Содержание

  • Какие механизмы взаимодействия процессов используются в операционных системах?
  • Что такое планирование процессов?
  • Что такое критическая область Условия избегания состязания для эффективной работы процессов?
  • Что такое процесс взаимодействия?
  • Какие операции можно выполнять над процессами?
  • Как определить критическую область?
  • Что такое состояние состязания?
  • Что такое критическая область в процессах? Ответы пользователей
  • Что такое критическая область в процессах? Видео-ответы

Отвечает Сергей Сергеевич

Критическая область — часть программы, в которой есть обращение к совместно используемым данным. Условия избегания состязания и эффективной работы процессов: Два процесса не должны одновременно находиться в критических областях. Процесс, находящийся вне критической области, не может блокировать другие процессы.Nov 28, 2015

Какие механизмы взаимодействия процессов используются в операционных системах?

Из механизмов, предоставляемых ОС и используемых для IPC, можно выделить:механизмы обмена сообщениями;механизмы синхронизации;механизмы разделения памяти;механизмы удалённых вызовов (RPC).

Что такое планирование процессов?

Планирование процессов в ОС это процесс выбора – кто будет исполняться следующим и как долго это будет исполняться. Не путать с переключением контекста, что является просто механизмом передачи управления. Переключения контекста это не есть операция планирования, это техническая операция.

Что такое критическая область Условия избегания состязания для эффективной работы процессов?

Критическая область — часть программы, в которой есть обращение к совместно используемым данным. Условия избегания состязания и эффективной работы процессов: Два процесса не должны одновременно находиться в критических областях. Процесс, находящийся вне критической области, не может блокировать другие процессы.

Что такое процесс взаимодействия?

Взаимоде́йствие — базовая философская категория, отражающая процессы воздействия объектов (субъектов) друг на друга, их изменения, взаимную обусловленность и порождение одним объектом других.

Какие операции можно выполнять над процессами?

Операционная система может выполнять над процессами следующие операции: создание процесса, завершение процесса, приостановка процесса, запуск процесса, блокирование процесса, разблокирование процесса, изменение приоритета процесса.

Как определить критическую область?

Чтобы найти критическую область нужно отыскать критическое значение . Оно определяется из соотношения – для односторонней области (лево- или право-) и – для двусторонней области, где – выбранный уровень значимости, а – старая знакомая функция Лапласа.

Что такое состояние состязания?

Ситуации, в которых два (и более) процесса считывают или записывают данные одновременно и конечный результат зависит от того, какой из них был первым, называются состояниями состязания.

Источник: querybase.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru