Студопедия  
Главная страница | Контакты | Случайная страница

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

Асинхронные параллельные потоки. Проблематика разработки многопоточных приложений.

Читайте также:
  1. IV. Порядок разработки дополнительных противопожарных мероприятий при определении расчетной величины индивидуального пожарного риска
  2. IV. Разработки, представленные на конкурс, подразделяются по
  3. MS Word: автоматизация разработки документов
  4. V-образная модель создания архитектуры ИТС и общие этапы разработки архитектуры ИТС платной дороги.
  5. Асинхронные операции в среде .NET. Асинхронный вызов делегатов.
  6. Билет № 14 Методология и организация разработки управленческих ре­шений.
  7. Вопрос 14. Виды бюджетов и технология их разработки
  8. Вопрос 76 правовой режим земель, предоставленных для разработки и использования недр.
  9. Вопрос № 27 Основные этапы разработки программного обеспечения задач

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

Процессы называются параллельными, если они существуют одновременно.

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

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

Синхронизация – использование специальных неделимых (атомарных) операций для кооперации между асинхронными параллельными процессами.

Параллельная обработка – поле современных исследований и практической деятельности.

Проблемы разработки параллельных алгоритмов: критерий возможности выполнения операций параллельно, надёжное и безопасное взаимодействие процессов, отладка параллельных программ.

Синхронизация «готовность данных».

Задача: вычисление корней уравнения ax 2+ bx+c

Последовательный алгоритм вычисления корней требует 11 шагов.

Алгоритм с параллельными вычислениями требует 6 шагов. Идея:

объединяем то, что может быть выполнено без дополнительных промежуточных действий.

Проблема готовности промежуточных результатов вычислений при распараллеливании

Синхронизация «выполнение одним из многих».(РиС)

Задача о покупке молока: если один из супругов по возвращении с работы обнаруживает, что молоко закончилось, то необходимо сходить в магазин и купить его.

Возможна ситуация, при которой молоко будет куплено обоими супругами. Источник проблемы: субъекты действуют независимо. Решение проблемы: синхронизация действий (кооперация).

Вариант: использование записки. Новая проблема: на написание и оставление записки требуется время.

33. Задача «разделение доступа к ресурсу». Способы ее решения.

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

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

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

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

Обеспечение взаимоисключения – необходимость отслеживать попытки входа процессов в свои критические секции (операция entercritical) и выхода из них (операция leavecritical).

При выполнении entercritical процесс может блокироваться до освобождения ресурса. При выполнении leavecritical, один из процессов ожидающих входа, возобновляет свою работу.

Требование к реализации операций entercritical и leavecritical – их атомарность.

34. Задача «синхронизация по готовности данных». Способы ее решения.

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

помощью семафоров.

Семафор S – защищённая переменная, значение которой можно опрашивать и менять только специальными операциями P и V, а также операцией инициализации. Множество значений семафора: неотрицательные целые числа.

Операция инициализации: определяет начальное значение семафора.

Операция P(S): значение семафора уменьшается на 1, если оно положительно или поток блокируется, если значение семафора нулевое.

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

При входе в критическую секцию поток должен выполнять операцию P(S), а при выходе – V(S).

Расширение операции P (неблокирующий вариант) – P'(S): при нулевом значении семафора немедленно возвращается признак отказа в доступе.




Дата добавления: 2015-01-30; просмотров: 67 | Поможем написать вашу работу | Нарушение авторских прав

1 | 2 | 3 | 4 | <== 5 ==> | 6 |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав