Синхронизация процессов

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 21.03.2024
Размер файла 83,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

План работы на тему: «Синхронизация процессов»

Содержание

Введение

1. Как работает синхронизация процессов

2. Разделы программы

3. Что такое проблема критической секции

4. Правила для критического раздела

5. Решения для критического раздела

6. Решения синхронизации

7. Резюме

Список литературы

Введение

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

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

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

1. Как работает синхронизация процессов

Например, процесс A изменяет данные в ячейке памяти, в то время как другой процесс B пытается прочитать данные из той же ячейки памяти. Существует высокая вероятность того, что данные, прочитанные вторым процессом, будут ошибочными.

2. Разделы программы

Вот четыре основных элемента критического раздела:

Секция ввода: это часть процесса, которая решает вступление в конкретный процесс.

Критическая секция: эта часть позволяет одному процессу вводить и изменять общую переменную.

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

Секция «Остаток»: все остальные части Кода, которые не входят в секции «Критический», «Вход и выход», называются Секцией (или Разделом) «Остаток».

3. Что такое проблема критической секции

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

Запись в критическую секцию обрабатывается функцией wait (ожидание) и представляется как P ().

Выход из критической секции контролируется функцией signal (сигнал), представленной как V ().

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

4. Правила для критического раздела

В критическом разделе должны соблюдаться все три правила:

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

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

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

5. Решения для критического раздела

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

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

Peterson Solution (Алгоритм Петерсона)

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

Рассмотрим работу алгоритма. Изначально ни один из процессов не находится в критической области. Затем процесс Р1 вызывает функцию enter_region. Он демонстрирует свою заинтересованность, устанавливая свой элемент массива и присваивая переменной turn значение Р1. Поскольку процесс Р2 заинтересованности во входе в критическую область не проявил, функция enter_region тотчас же возвращает управление. Теперь, если процесс Р2 вызовет функцию enter_region, он зависнет до тех пор, пока процесс Р2 не получит значение FALSE, а это произойдет только в том случае, если процесс Р1 вызовет функцию leave_region, чтобы выйти из критической области.

Пример

Предположим, что существует N процессов (P1, P2, … PN), и каждый процесс в какой-то момент времени требует входа в критический раздел

Поддерживается массив FLAG [] размера N, который по умолчанию равен false (ложь). Поэтому, когда процессу требуется войти в критическую секцию, он должен установить свой флаг как true. Например, если P хочет войти, он установит FLAG = TRUE.

Другая переменная с именем TURN указывает номер процесса, который в настоящее время ожидает ввода в критическую секцию.

Процесс, который входит в критическую секцию при выходе, изменит ОБОРОТ на другой номер из списка готовых процессов.

Пример: поворот равен 2, затем P2 входит в критическую секцию и при выходе из хода = 3, и, следовательно, P3 выходит из цикла ожидания.

6. Решения синхронизации

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

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

Mutex Locks (Мьютекс)

Мьютекс -- это совместно используемая переменная, которая может находиться в одном из двух состояний: заблокированном или незаблокированном. Следовательно, для их представления нужен только один бит, но на практике зачастую используется целое число, при этом ноль означает незаблокированное, а все остальные значения -- заблокированное состояние. Для работы с мьютексами используются две процедуры. Когда потоку (или процессу) необходим доступ к критической области, он вызывает процедуру mutex_lock. Если мьютекс находится в незаблокированном состоянии (означающем доступность входа в критическую область), вызов проходит удачно и вызывающий поток может свободно войти в критическую область.

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

Семафорное Решение

Семафор - это просто переменная, которая неотрицательна и разделена между потоками. Это еще один алгоритм или решение проблемы критического сечения. Это механизм сигнализации и поток, ожидающий семафор, который может быть передан другим потоком.

Он использует две атомарные операции: 1) ожидание и 2) сигнал для синхронизации процесса.

Пример:

7. Резюме

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

В качестве решения синхронизации процессов успешно используются различные методы: семафоры, мьютексы и критические секции с алгоритмом Петерсона.

Список литературы

1. Статья «Основы операционных систем. Синхронизация процессов», источник

2. Учебное пособие ТГТУ «Системное программирование», авторы Евдокимов А.А., Майстренко Н.В., Майстренко А.В.

Размещено на Allbest.ru


Подобные документы

  • Взаимодействие процессов и потоков в операционной системе, основные алгоритмы и механизмы синхронизации. Разработка школьного курса по изучению процессов в операционной системе Windows для 10-11 классов. Методические рекомендации по курсу для учителей.

    дипломная работа [3,2 M], добавлен 29.06.2012

  • Поддержание целостности общих данных, используемые методы и приемы. Проблема критической секции и направления ее разрешения. Аппаратная поддержка синхронизации, классические проблемы и разрешение. Критические области. Синхронизация в Solaris и в Windows.

    презентация [1,5 M], добавлен 24.01.2014

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

    доклад [26,7 K], добавлен 27.12.2013

  • Классификация компьютерной памяти. Использование оперативной, статической и динамической оперативной памяти. Принцип работы DDR SDRAM. Форматирование магнитных дисков. Основная проблема синхронизации. Теория вычислительных процессов. Адресация памяти.

    курсовая работа [1,5 M], добавлен 28.05.2016

  • Управление процессами - часть операционной системы, влияющая на функционирование вычислительной машины. Контекст дескриптор процесса и алгоритм его планирования. Средства синхронизации и взаимодействия процессов. Критическая секция, тупики и нити.

    лекция [166,6 K], добавлен 05.02.2009

  • Исследование принципа действия поэлементной синхронизации с добавлением и вычитанием импульсов. Характеристика кодирования в системах ПДС, классификации кодов, построения кодера и декодера циклического кода. Расчет параметров системы с ОС и ожиданием.

    курсовая работа [2,8 M], добавлен 08.12.2011

  • Понятие процесса и потока, характеристика их свойств и особенности создания. Требования к алгоритмам синхронизации, суть взаимного исключения на примере монитора и семафора. Методика изучения элективного курса "Процессы в операционной системе Windows".

    дипломная работа [1,7 M], добавлен 03.06.2012

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

    курсовая работа [167,0 K], добавлен 05.12.2012

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

    курсовая работа [858,7 K], добавлен 24.03.2015

  • Разработка приложения, автоматизирующего процесс синхронизации файлов между сменным носителем и каталогом на другом диске. Классы для работы с файловой системой. Интерфейс программы и способы взаимодействия пользователя с ним. Создание новой синхропары.

    курсовая работа [632,0 K], добавлен 21.10.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.