Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Дисциплины:
2017-11-16 | 387 |
5.00
из
|
Заказать работу |
|
|
Синхронизация процессов и потоков.
Синхронизация – это согласование скоростей потоков путем приостановки потока до наступления какого-то события и его последующей активизации при наступлении этого события.
IPC (Inter Process Communication)
|
Синхронизация может выполняться как средствами ОС, так и быть встроенной в программу.
Необходимость синхронизации и гонки.
Рассмотрим пример:
2-а процесса борются за один ресурс.
Клиент N
Описание ситуации:
1. Поток А обновляет поле «Заказ» записи о клиенте N. Он выполняет шаг А1. шаг А2 изменяет значение поля «Заказ». Выполнение прерывается из-за завершения кванта.
2. Поток В выполняет операцию внесения данных об оплате клиентом N. Он успевает выполнить шаг В1 и В2 до своего прерывания.
3. Управление передается потоку А, выполняется шаг А3 и запись переносится в файл.
4. Когда управление передается потоку В, он выполняет шаг В3. Данные о «Заказе» потока А заменяются на устаревшие.
Может возникнуть и обратная ситуация, может быть потеряна информация поля «Оплата».
Ситуация, когда два или более процесса обрабатывают разделяемые данные и неконечный результат зависит от соотношения скоростей потоков, называется «Гонкой».
Критическая секция:
Это часть программы, результат выполнения которой может меняться, если переменные относящиеся к этой части программы изменяются другими потоками, пока ее выполнение еще не завершено.
Чтобы исключить эффект «Гонок» по отношению к критическим данным, необходимо чтобы в каждый момент времени в критической секции, связанной с этими данными находился только 1 поток, это метод Взаимного Исключения.
Простейший вариант реализации: это возможность запрета любых прерываний потоков при ее нахождении в критической секции.
|
Блокирующие переменные.
Глобальные переменные - это переменные, к которым все потоки имеют доступ.
Алгоритм использования блокирующих переменных:
Продолжить выполнение
Каждому набору критических данных ставится соответствующая двоичная переменная, которая =0 при нахождении в критической ситуации, и =1, если ресурс свободен.
Проверки значения переменной и занятия ресурса должны быть не делимой операцией.
Недостаток: неэффективность использования процессов времени в цикле проверки значения переменной. Для решения этой проблемы в ОС применяются специальные системные вызовы для работы с критическими секциями.
Семафоры.
Дийкстра (Dykstra) – это переменные, которые могут принимать целые неотрицательные значения. Для работы с семафорами используются 2 примитива, обозначаемые P и V. Сама переменная семафор – S.
С ней выполняются следующие действия:
1. V(S): S: =S+1
Единым неделимым действиям.
2. P(S): S: = S-1
Если это возможно. Если S: =0, то поток ждет пока это уменьшение станет возможным. Операция неделимая.
Пример:
Работа семафора на примере двух потоков при помощи буфера.
потоки-писатели потоки-читатели
Для правильной совместной работы, поток-писатель должен остановиться, когда все записи в буфере заняты, и активироваться при освобождении хотя бы одного буфера.
Напротив, поток-читатель останавливается, когда все буферы пусты, и активируется при появлении хотя бы одной записи.
Буфер состоит из буферов N.
Введем семафоры e и f.
e – свободные;
f – занятые.
В начальный момент времени e = N, f = 0: потоки-писатели выполняют операцию P(e).
Такая схема позволяет эффективно и с минимальными затратами решить сложную задачу.
В частном случае, если переменная S принимает значение 0 и 1: S = {0,1}, то семафор вырождается в блокирующую переменную (двоичный семафор).
|
|
|
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!