Содержание
- 2. IV. Программирование взаимодействующих процессов Ниже приведены несколько примеров программирования взаимодействия параллельно исполняющихся процессов. Все они определяют
- 3. Асинхронное программирование Асинхронная модель вычислений наиболее пригодна для описания вычислений на мультипроцессоре и/или мультикомпьютере. Асинхронная программа
- 4. Асинхронная программа (А-программа) - это конечное множество А-блоков {Ak |k∈{1,2,...,т}} определенных над информационной IM и управляющей
- 5. Управляющий оператор c(ak) - оператор присваивания или процедура, меняющая значения ячеек управляющей памяти CM (например, чтобы
- 6. Таким образом, исполняющая система в зависимости от имеющихся в наличии свободных на этот момент ресурсов имеет
- 7. Выполнение А-блока Ak состоит в исполнении: процедуры ak с теми значениями, которые имеют переменные из in(ak)
- 8. П1
- 9. Программа примера П1 позволяет в некотором порядке уравнять значения переменных x, y, z, доведя их с
- 10. П2.Большая непроцедурность часто мешает эффективно выполнить программу и в таких случаях требуется уменьшать непроцедурность программы (представления
- 11. П3.Программа нижеследующего примера отличается от программы примера П2 тем, что в спусковые функции добавлены новые конъюнктивные
- 12. П4.В примерах П1 - П3 А-блоки не имели управляющего оператора (более точно, был пустой управляющий оператор).
- 13. Асинхронная программа, реализующая этот конвейер (в программе не показаны переменные, обрабатываемые этой программой, демонстрируется только конструирование
- 14. В этой программе операторы присваивания x:=1; y:=z:=0; значений управляющим переменным разрешают инициировать операцию f1 и запрещают
- 15. Некорректное вычисление данных Возникновение некорректных данных иллюстрирует следующий простой пример. Пусть необходимо начислить зарплату и вычислить
- 16. Пусть процессы P0, P1, P2, ... , Pn, Pn+1 выполняют эти операции. Для вычисления корректного результата
- 17. Следующий пример иллюстрирует этот тип ошибки. Пусть в банке А есть счет acc1, на котором находится
- 18. Первоначально А.acc1=500 тыс.руб. В.acc2=300 тыс.руб. Процесс P1 Процесс P2 А.acc1:=А.acc1 - 100; receive (x,A,y); x :=
- 19. В процессе P1 счет А.acc1 вначале уменьшается на 100 тыс. руб., а затем 100 тыс. руб.
- 20. Широко известным примером реализации модели асинхронного программирования является message passing interface (MPI). Этот метод программирования определяет
- 21. Предполагается, что программа определяется как система независимых, параллельно протекающих взаимодействующих процессов. Как обычно, здесь процесс -
- 22. В программе для использования MPI прежде всего следует описать каналы, например: ch queue ( ) Описание
- 23. Выражение должно вырабатывать значение переменной, описанной в определении канала. Например: send data (d+1, m, y); Переменные
- 24. Если канал предполагается неограниченным (асинхронный MPI), то оператор send может быть выполнен неограниченно много раз (не
- 25. П1.Одно из типичных межпроцессных взаимодействий определяет взаимодействия клиента и производителя. Производитель создает продукт и продает его
- 26. Producer :: var index, ...; do true → receive request (index, ... ); % ожидание запроса
- 27. В программе определены n+1 независимых параллельно протекающих процессов: один процесс-производитель Producer и n процессов-клиентов Client. Именно
- 28. Реализация управления взаимодействующими процессами Сети Петри описывали поведение процессов, но не определяли, как это поведение реализовать
- 29. Семафоры Семафоры являются тем базовым средством, с помощью которого можно реализовать в программе управление параллельно протекающими
- 30. Каждая из операций P и V является неделимой, т.е. если семафорная переменная изменяется одной из операций,
- 31. Понятно, что при доступе к семафору тоже возможна ситуация вечного ожидания - один из процессов постоянно
- 32. Задача взаимного исключения Взаимное исключение может быть реализовано с помощью семафоров следующим образом. Пусть для n
- 33. var mutex=1: semaphore; /* семафорная переменная mutex инициируется со значением 1 */ Proc(i) : repeat .
- 34. Программу процесса составляют операторы языка программирования, заключенные между операторами repeat и until. Логически программа процесса делится
- 35. Завершив выполнение критического интервала, процесс выполнит оператор V(mutex) и увеличит значение семафорной переменной mutex на единицу.
- 36. Задача производитель/потребитель с ограниченным буфером Накопительный буфер имеет два пограничных состояния, ограничивающих активность процессов-потребителей и процессов-производителей:
- 37. Заведем соответственно два семафора для описания этих состояний: b_empty - содержит количество свободных позиций для размещения
- 38. Producer: {repeat ... производится очередной элемент данных ... P(b_empty); /*число работающих процессов- производителей не должно превышать
- 39. Consumer: { repeat P(b_full); /*число работающих процессов-потребителей не должно превышать числа произведенных элементов в буфере*/ P(mutex);
- 40. Задача читатели-писатели Рассмотрим более сложный пример решения задачи программирования взаимодействия множества процессов с использованием семафоров. Пусть
- 41. Далее, процессы-писатели должны иметь преимущество при доступе к разделяемому объекту, поскольку они готовы записать новые данные.
- 42. Эта модельная задача может реально интерпретироваться. Такая схема взаимодействий должна быть реализована, если нужно, к примеру,
- 46. В программе не рассматриваются случаи аварийного завершения. Например, если последний процесс-читатель или последний процесс-писатель завершится аварийно
- 47. Критические интервалы Программируя межпроцессные взаимодействия с использованием семафоров легко допустить разнообразные неочевидные ошибки, в первую очередь
- 48. Только один процесс может исполнять оператор region с переменной x в качестве параметра. Таким образом, пока
- 49. Параллельная программа разделения множеств Определения MPI очевидны и просты. Так же просты и очевидны средства программирования
- 50. И это при том, что программа совершенно тривиальна, в ней попросту не на что смотреть! Это
- 51. На практике следует комбинировать и тестирование и формальное доказательство правильности. Следует также обратить внимание на опасную
- 52. Для параллельного асинхронного решения задачи используется следующий алгоритм. -1.Определяются два параллельно протекающих процесса Small и Large.
- 53. По завершении программы каждый элемент множества S должен оказаться не больше любого элемента множества Т, а
- 54. Программа состоит из двух параллельных процессов, P=[Small||Large].
- 55. Программу можно прокомментировать следующим образом. Определены два процесса Small и Large. Символ || разрешает параллельное исполнение
- 56. Оператор ! задает передачу данных (аналог оператора send), а оператор ? - их прием (аналог оператора
- 57. Обозначим S0 и T0 – начальные множества, а STerm и TTerm – заключительные их значения. При
- 58. Частичная корректность этой программы состоит в том, что если множества S0 и T0 конечны и непусты,
- 59. 4.2.3.Коммуникационно-замкнутые слои параллельной программы Это понятие вводится для упрощения верификации (доказательства правильности) параллельных программ. Основная идея
- 60. Каждая i-я строка изображает процесс Pi как последовательность операторов: Pi=Qi,1;Qi,2;...Qi,k. Параллельная программа Lj=[Q1,j||Q2,j||...||Qn,j] называется j-м слоем
- 61. Слой Lj называется коммуникационно-замкнутым, если при всех вычислениях Р взаимодействие процессов P1|| ...||Pn происходит только внутри
- 62. Если программа Р* безопасна, то вместо верификацию всей параллельной программы Р можно проводить ее послойную верификацию,
- 63. Рис. 4.4.
- 64. Процессы Small и Large разбиваются на коммуникационно-замкнутые слои совершенно естественно. Разбиение приведено на рис. 4.4. На
- 65. 4.2.4.Когерентность параллельных программ Для упрощения верификации параллельной программы уже при ее проектировании на нее можно наложить
- 66. В когерентной программе невозможна ситуация, когда в одном процессе выполняется оператор α! mx, а процесс-партнер не
- 67. Очевидно, что требование когерентности для этой программы выполняется тогда и только тогда, когда условия прекращения циклов
- 68. Рис. 4.5.
- 69. Таким образом, условие BS ≡ BL≡ И, или, что то же, mx ≤ x ≡ mn
- 70. 4.2.5.Анализ программы разделения множеств Для анализа программы используем “истории” взаимодействий. Вводятся вспомогательные переменные, которые хранят истории
- 71. Проведем анализ первого слоя :
- 72. Для того, чтобы процессы QSmall,1 и QLarge,1 завершились, необходимо и достаточно, чтобы множество S содержало хотя
- 73. Рассмотрим теперь второй слой: Перед i-м выполнением каждого цикла для процессов QSmall,2 и QLarge,2 истинны следующие
- 74. Как уже говорилось, требование когерентности в этой программе соответствует требованию общезначимости формулы mxi ≤ xi ≡
- 75. Учитывая, что min(Ti) ≥ min(Ti-1) и max(Si) ≤ max(Si-1), условия некорректного поведения параллельной программы разделения множеств
- 76. Поясним полученный результат. Исследуемая параллельная программа разделения множеств имеет целью собрать все минимальные элементы объединения двух
- 77. Рис. 4.6. Полученные выше условия некорректного поведения программы определены для (i-1)-го и i-го максимальных значений множества
- 78. Иными словами, если между упорядоченными по убыванию элементами множества S и упорядоченными по возрастанию элементами множества
- 80. Скачать презентацию




















































![Программа состоит из двух параллельных процессов, P=[Small||Large].](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1126960/slide-53.jpg)
























Справочная литература
04_Pravovye_norm_otnosyaschiesya_k_informatsii_pravonarushenia_v (2)
Текстовая информация и компьютер
Чтобы вас читали. Этапы создания контента
л2_сетевые приложения
Человек в виртуальной реальности
Копирование текста в документе Microsoft Word. Урок 7
Dates. Round
Запоминающие устройства
Java. Многомерные массивы
Аппаратное обеспечение персональных компьютеров
История вычислительной техники
Вычисление суммы элементов массива
Службы, отправка СМС. Лекция 15
Функции ВПР(), ГПР(), ПОИСКПОЗ()
HTML
Презентация на тему Интернет и его возможности
Мир компьютерной графики и дизайна. Пингвин, нарисованный в программе Adobe Photoshop
Человек и информация. Источники и приемники информации.
Методы борьбы с дезинформацией
Ведение баз данных, сбор данных и заполнение типовых таблиц
урок 3
Распознавание и воспроизведение речи
Коллекции Set&Map. Асинхронность (микрос/макрос). Ajax
Ветвление
Объединение компьютеров в локальную сеть
2_Prakticheskaya_rabota
Архитектура вычислительных систем. Раздел 2. Информация, кодирование и обработка в ЭВМ