Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ч4_Поясните суть и необходимость синхронизации процессов и потоков.

Читайте также:
  1. II. Некоторые из реалий тех процессов, которые привели к образованию «зрелого монодического стиля».
  2. II. Цели, принципы и задачи регулирования миграционных процессов в Российской Федерации
  3. III. Основные направления деятельности по регулированию миграционных процессов в Российской Федерации
  4. V Методы исследования процессов запоминания
  5. АНАЛИЗ И ОЦЕНКА КОНЦЕПЦИЙ ЗАЩИТЫ ПРОЦЕССОВ ПЕРЕРАБОТКИ ИНФОРМАЦИИ
  6. Анализ эффективности денежных потоков.
  7. Библиотека Microsoft Foundation Classes. Необходимость библиотеки MFC. Принципы построения библиотеки MFC. Основные возможности библиотеки MFC.

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

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

30. Ч4_Когда возникают гонки при выполнении потоков?

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

 

31. Ч4_Что такое «критическая секция», «критические данные», «взаимное исключение» потоков.

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

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

 

32. Ч4_Поясните суть использования блокирующих переменных.

Блокирующие переменные. Для синхронизации потоков одного процесса прикладной программист может использовать глобальные блокирующие переменные, доступные всем его потокам. Каждому набору критических данных D ставится в соответствие двоичная переменная F, которой поток присваивает значение F(D)=0 при вхождении в критическую секцию или F(D)=1 – при выходе из нее. Пока F(D)=0, другой поток, циклически проверяя это, не может войти в критическую секцию. Блокирующие переменные могут использоваться при доступе к разделяемым ресурсам любого вида. При этом механизм прерываний ОС работает и в критических секциях, но с одним ограничением. Нельзя прерывать поток между выполнением операций проверки и установки значения блокирующей переменной (это обеспечивается аппаратными или системными средствами).

33. Ч4_Поясните суть использования семафоров.

Семафоры. Обобщением (двоичных) блокирующих переменных являются семафоры Д. Дийкстры – переменные, принимающие целые неотрицательные значения. Для работы с семафорами (S) вводятся два примитива, традиционно обозначаемых P и V, и операции

· V(S): S:=S+1 (здесь ‘:=‘ – знак «присвоить»);

· P(S): если S>0, то S:=S–1

Никакие прерывания и доступ к S во время выполнения примитивов V(S) и P(S) недопустимы. Частным случаем рассмотренного является двоичный семафор (блокирующая переменная). Операция P(S) способствует переходу вызывающего его потока в состояние ожидания, операция V(S) – активизации приостановленного операцией P(S) потока.

34. Ч4_Опишите пример использования семафоров при работе с буферным пулом записи/чтения.

 


Буферный пул здесь является критическим ресурсом. Использование блокирующей переменной вместо семафора не позволяет организовать доступ к критическому ресурсу более чем одному потоку. А это актуально, если требуется сделать запись и чтение данных критическими секциями и обеспечить взаимное исключение. Семафор же решает задачу более гибко, допуская к разделяемому пулу ресурсов заданное число потоков. В нашем примере с пулом могут работать до N потоков, часть из которых – «писатели», остальные – «читатели».

35. Ч4_Поясните суть взаимных блокировок (тупиков).

Существует и другая проблема синхронизации – взаимные блокировки или так называемые дедлоки (deadlocks), клинчи (clinches) или тупики, когда два и более потоков из-за занятости, запретов или ограничений доступа к ресурсам (памяти, УВВ) могут взаимно и неразрешимо мешать развитию друг друга [2-5]. Необходимым условием возникновения тупика является потребность потока сразу в нескольких ресурсах.

36. Ч4_Чем тупики отличаются от очередей?

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

37. Ч4_Опишите идеи и средства выявления и устранения тупиков.

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

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

38. Ч4_Поясните сложность синхронизации потоков разных процессов.

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

39. Ч4_Какие методы используются в ОС для разделения синхронизирующих объектов?

 

Некоторые ОС возвращают указатель на объект (Метод 1). Этот указатель может быть доступен всем родственным процессам, наследующим характеристики общего родительского процесса. В других ОС процессы в запросах на создание объектов синхронизации указывают имена, которые должны быть им присвоены (Метод 2). Далее эти имена используются разными процессами для манипуляций объектами синхронизации, и работа с ними подобна работе с файлами. Их можно создавать, открывать, уничтожать.

Кроме того, для синхронизации могут быть использованы обычные объекты ОС: файлы, процессы, потоки (Метод 3). Все они могут находиться в двух состояниях: сигнальном (оповещающем) и несигнальном (свободном).

40. Ч4_Какие обычные объекты ОС могут использоваться как синхронизирующие и какие события переводят их в сигнальное состояние?

Кроме того, для синхронизации могут быть использованы обычные объекты ОС: файлы, процессы, потоки (Метод 3). Все они могут находиться в двух состояниях: сигнальном (оповещающем) и несигнальном (свободном). Смысл сигнального состояния зависит от типа объекта. Например, поток переходит в сигнальное состояние, когда он завершается, процесс - когда завершаются все его потоки, файл - когда завершается операция его ввода-вывода, остальные объекты - в результате выполнения специальных системных вызовов. Тогда приостановка и активизация потоков осуществляется в зависимости от состояния синхронизирующих объектов ОС.

41. Ч4_В чем состоит суть сигнального состояния синхронизирующего объекта ОС?

 

Смысл сигнального состояния зависит от типа объекта. Например, поток переходит в сигнальное состояние, когда он завершается, процесс – когда завершаются все его потоки, файл – когда завершается операция его ввода-вывода, остальные объекты – в результате выполнения специальных системных вызовов. Тогда приостановка и активизация потоков осуществляется в зависимости от состояния синхронизирующих объектов ОС.

 

42. Ч4_Приведите примеры сигнальных состояний для следующих синхронизирующих объектов: поток, процесс, файл.

Сигнальное состояние объекта (т.е. состояние "установлен") соответствует моменту времени, когда объект не принадлежит ни одному потоку и его можно "захватить". И наоборот, состояние "сброшен" (не сигнальное) соответствует моменту, когда какой-нибудь поток уже владеет этим объектом. Доступ к объекту разрешается, когда поток, владеющий объектом, освободит его.

 

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

 

43. Ч4_Что такое мьютекс и объект-событие?

Мьютекс (от английского mut ually ex clusive access – взаимно исключающий доступ, когда одновременный доступ к общему ресурсу исключается) или взаимоисключение, как и семафор, обычно используется для управления доступом к данным. Мьютекс устанавливается в особое сигнальное состояние, когда он не занят каким-либо потоком. Только один поток может владеть мьютексом. Объект-событие обычно используется для того, чтобы оповестить другие потоки о том, что некоторые действия завершены.

44. Ч4_Поясните роль сигналов как синхронизирующих объектов.

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

 


Дата добавления: 2015-12-08; просмотров: 137 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.008 сек.)