Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Механизмы синхронизации. Свойства и классификацияСодержание книги
Поиск на нашем сайте Механизмы синхронизации обеспечивают выполнение синхронных правил. Реализация синхронизирующих правил осуществляется с помощью механизмов синхронизации. Различаются механизмы синхронизации по: 1) выполняемым действиям 2) по степени приближённости к машинным командам Средства, имеющие машинно-ориентированный характер и требующие от пользователя всякий раз составления специальных текстов для программирования решения задачи синхронизации, называются низкоуровневые средства. Высокоуровневые средства представляют собой некую программную систему, доступную пользователю через конкретный интерфейс и предназначенная для решения конкретной задачи синхронизации. При чём особенности решения конкретной задачи как правило скрыты от пользователя. К низкоуровневым относится TS (test & set) — реализует проверку и установку состояния общей переменной в рамках одной машинной операции, что исключает возможность вмешательства других процессов. Такие варианты используются редко, или как базовые средства ОС. Основные свойства. Для осознанного выбора конкретного механизма необходимо зафиксировать требования к синхронизации. Как правило, механизмы сравнивают: 1) простота использования — определяется простотой синтаксиса и семантикой механизма синхронизации. 2) гибкость — определяет способность механизма быть использованным для реализации известных типов отношений между процессами в ясной и недвусмысленной форме. 3) проверяемость и понимаемость — определяет возможность применения формальных методов анализа 4) эффективность — предполагает простоту реализации в базисе средств, которые имеются в составе конкретной машины т е приемлемые механизмы. Синхронизация не должна приводить к чрезмерным задержкам 5) надёжность — определяет вероятность правильной работы механизма как в условиях предусмотренной спецификации, так и в аномальных условиях. Перечисленные свойства во многом взаимно противоречивы, потому необходимо принимать обоснованное решение в каждом случае.
Механизмы синхронизации. Использование механизма прерываний Как правило в составе команд процессора,поддерживающего работу с прерываниями, имеются специальные команды, позволяющие заблокировать или разблокировать реакцию на возможные прерывания. Команда блокировки прерываний запрещает реакцию процессора на сигнал прерывания. Этот сигнал либо игнорируется, либо ставится в очередь для последующей обработки. Такое решение не эффективно, т. к. всё сводится к однозадачному решению. Указанного недостатка лишена двуступенчатая схема.
Механизмы синхронизации. Двухступенчатая схема Критическому ресурсу ставится в соответствие специальная переменная, характеризующая его состояния (занят или свободен). Соответственно предполагается, что перед началом исходный процесс должен проверить состояние переменной. Если ресурс свободен — отметить занятость ресурса, а после использование — его освобождение.. В такой постановке переменная состояния так же является критическим ресурсом и при работе с ним так же нужно обеспечивать режим взаимного исключения. Соответственно перед входом в основную критическую область необходимо войти в критическую область относительно переменной состояния. В этом случае можно эффективно использовать механизм блокировки прерывания. Работа вспомогательной переменной может проходить в режиме с заблокированным прерыванием. Поскольку переменное состояние является универсальным средством не зависящем от вида ресурса, то работа с ним может быть реализована как ф-ция ОС. Использование вспомогательных переменных несколько осложняет логику реализации, поскольку связь между переменной состояния и защищаемым ресурсом существует только в воображении разработчика. При реализации двуступенчатой схемы, необходимо решить как поступать процессам, которые при входе во вспомогательную критическую область обнаруживают занятость основного ресурса. На практике реализуют 2 режима: активное и пассивное ожидания. В случае с активным ожиданием процесс обнаруживает занятость и процесс должен выйти из заданной критической области и повторить попытку через некоторое время. В случае пассивного ожидания процесс попадает в очередь, из которой будет выбран ОС при освобождении ресурса. Пример: блокировка файлов.
Механизмы синхронизации. Семафоры Дейкстры S: semaphore P(s) - close V(s) - open Семафор относится к низкоуровневым средствам синхронизации, работает по двуступенчатой схеме в режиме пассивного ожидания. Семафор — целочисленная переменная в отношении которой выполняется операции двух видов: открытие и закрытие. Операция открытия увеличивает значение семафора на 1, операция закрытия — уменьшает на 1. Если значение семафора больше 0, то он считается открытым, а если равен 0, то закрытым. Если процесс выполняет операцию закрытия для открытого семафора, процесс продолжает свою работу, в противном случае процесс переводится в режим ожидания. Если процесс открывает семафор и в очереди ожидания есть ожидающий процесс, он переходит с состояние готовности. Неделимость операций Примитивы — это неделимые операции. При попытке выполнить примитив над семафором из разных процессов приведет к успеху только одного действия, выполняемого потоком, причем неизвестно каким.
Механизмы синхронизации. Решение задачи реактивации При реализации семафоров необходимо решение задачи реактивации — определение правил поведения процесса, который выбирается из очереди ожидания и переходит в состояние готовности в результате открытия семафора. Возможны 2 варианта: - процесс должен повторно выполнить операцию закрытия (считая попытку неуспешной) - процесс при перемещении в очередь готовности отмечается как успешно выполненный т е его выполнение начнётся со следующей команды. Возможны ситуации тупика. 1)Пусть процесс 2 успешно выполнил операцию закрытия, значение семафора = 0, далее процесс 1 пытается выполнить операцию закрытия (не удается), т.е., 1 процесс останавливается на семафоре. Знач. семафора = -1. При выходе из крит. обл, процесс 2 открывает семафор, знач семафора = 0. Процесс 1 переходит в очередь готовности. Если он повторно выполнит операцию закрытия, значение семафора = -1, а 1-ый процесс остановится. Соответсвтенно, попытка 2-ого процесса войти в крит. область также будет заблокирована. 2) Пусть процесс 2 открывает семафор, т.е. значение семафора =0. Если 2 процесс повторно пытается закрыть семафор, он остановится, а значение семафора станет равным -1. 1-ый процесс при переходе в активное состояние входит в крит. обл. и при выходе устанавливает значение семафора = 0. "Освобожденный" 2-ой процесс также повтороно попадает в крит. обл., открывает семафор, значение семафора =1.
Механизмы синхронизации. Модификации семафоров Множественные — особенностью данного механизма является возможность обрабатывать в рамках одного примитива сразу несколько семафоров. Операция Р приводит к закрытию семафоров и считается выполненной, если оба семафора были открытыми. Счётные — в этой модификации при каждом исполнении примитива допускается изменение счетчика семафора на значение больше еденицы. Начальное значение устанавливается равным количеству читателей. Каждый читатель закрывает семафор на 1, а писатель — на максимальное открывает. В зависимости от логики работы может наблюдаться дискриминация процессов разных видов, например писатель может голодать при высокой активности запросов на чтение. Тест-семафоры — для этой модификации вводится усложненная логика примитива V. В качестве параметров кроме семафора указывается величина R, на которую нужно изменить значение и величина Q, с которой сравнивается новое значение счетчика семафора. Если в результате разность > 0 — продолжается работа процесса, иначе — останавливается.
|
||
|
Последнее изменение этой страницы: 2016-04-19; просмотров: 1249; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |