Моделирование взаимодействия процессов презентация

Содержание

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

Слайд 1Моделирование взаимодействия процессов.
Лекция 10


Слайд 2Параллельное программирование
В настоящее время производительность процессоров (точнее, их отдельных ядер) приблизилась

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

Слайд 3Способы реализации параллельных вычислений
Каждый вычислительный процесс может быть реализован:
в виде отдельного процесса

операционной системы,
 в виде отдельного потока выполнения внутри одного процесса ОС


Слайд 4Способы реализации параллельных вычислений
Параллельные программы могут физически исполняться:
последовательно на единственном процессоре — перемежая

по очереди шаги выполнения каждого вычислительного процесса;
параллельно с выделением каждому вычислительному процессу одного или нескольких процессорных ядер

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

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


Слайд 6Моделирование сетями Петри
Сети Петри, изначально созданные для моделирования динамических дискретных систем,

являются одним из наиболее удобных способов описания асинхронного выполнения параллельных вычислительных процессов

Слайд 7Система с одним процессом
Вырожденным случаем параллельной системы вычислительных процессов является система

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


Слайд 8
//программа, вычисляющая Y! и //произведение всех чётных чисел Y!!
cin >> Y;


X1=1;
X2=1;
while (Y>0)
{
if (Y % 2 ==0)
X1 *= Y;
X2 *= Y--;
}
cout << X1 << “\t” << X2;


Слайд 9
cin >> Y; X1=1; X2=1;
Y>0
Y % 2 ==0
X1 *=

Y;
X2 *= Y--;
cout << X1 << “\t” << X2;

Слайд 10
В сети Петри, моделирующей блок-схему, узлы блок-схемы представляются переходами сети Петри,

а дуги блок-схемы – позициями сети Петри
Фишка в сети Петри представляет счетчик команд блок-схемы


Слайд 11
Параллельная система может строиться несколькими способами
Один из способов состоит в простом

объединении процессов, без взаимодействия во время их одновременного выполнения
Однако, такой способ введения параллелизма имеет низкое практическое значение

Слайд 12Моделирование взаимодействия процессов
Поэтому далее будем рассматривать системы процессов, допускающие взаимодействие процессов

во время их параллельного выполнения
Существуют различные виды взаимодействия (синхронизации) процессов, в том числе: взаимодействие посредством общей памяти; посредством передачи сообщения различных видов
Необходимо уметь моделировать различные механизмы синхронизации процессов

Слайд 13Задача о взаимном исключении
Пусть несколько процессов разделяют общую переменную, запись, файл

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

Слайд 14
Например, возможна следующая последовательность:
Процесс P1 считывает значение x из разделяемого объекта;


Процесс P2 считывает значение х из разделяемого объекта;
Процесс P1 вычисляет новое значение x’ = f(x);
Процесс P2 вычисляет новое значение x’’ = g(x);
Процесс P1 записывает x’ в разделяемый объект;
Процесс P2 записывает x’’ в разделяемый объект, уничтожая значение x’
Результат вычисления процесса P1 потерян


Слайд 15Критическая секция
Для решения подобных проблем используется метод взаимного исключения, основанный

на понятии критическая секция
Критическая секция – это участок кода процесса, на котором он осуществляет доступ к разделяемому объекту данных

Слайд 16
Прежде, чем выполнить свою критическую секцию, процесс ждёт, пока другой процесс

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

Слайд 17Моделирование взаимного исключения


Слайд 18Задача о производителе/потребителе
В задаче о производителе/потребителе также присутствует разделяемый объект –

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

Слайд 19Моделирование буфера обмена


Слайд 20Задача об обедающих философах
В некоем пансионе нашли пристанище пять философов. У

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

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

философ возьмет вилку слева, а затем будет ждать, когда освободится вилка с правой стороны
Так они будут ждать, пока не умрут от голода
Тем самым, это состояние системы «обедающие философы» является тупиковым

Слайд 22Решение проблемы тупика
Проблема тупика в этой системе может быть решена путем

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

Слайд 23Моделирование разрешения тупиковой ситуации


Слайд 24Свойства сетей Петри
Моделирование систем сетями Петри, прежде всего, обусловлено необходимостью проведения

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

Слайд 25Свойство ограниченности
 


Слайд 26Свойство безопасности
 


Слайд 27Свойство консервативности
 


Слайд 28Уровни активности переходов
 


Слайд 29Уровни активности переходов
 


Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика