
- •1 Свойства и классификация процессов
- •2. Управление процессами в ос. Граф существования и трасса процесса
- •3. С войства и классификация ресурсов. Критический ресурс.
- •4. Свойства и классификация ресурсов. Потребляемые и восстанавливаемые ресурсы
- •5. Типовые задачи синхронизации. Взаимное исключение
- •6. Типовые задачи синхронизации. Производитель-потребитель
- •7. Типовые задачи синхронизации. Читатели и писатели
- •8. Типовые задачи синхронизации. Обедающие философы
- •9. Механизмы синхронизации. Свойства и классификация
- •10. Механизмы синхронизации. Использование механизма прерываний
- •11. Механизмы синхронизации. Двухступенчатая схема
- •12. Механизмы синхронизации. Семафоры Дейкстры
- •13. Механизмы синхронизации. Решение задачи реактивации
- •14. Механизмы синхронизации. Модификации семафоров
- •15. Механизмы синхронизации. Семафороподобные средства
- •16. Организация и управление подпроцесами в Java
- •17. Решение задачи взаимного исключения в Java
- •18. Событийные переменные в java.
- •19. Семафоры в java.
- •20. Организация подзадач в Win
- •21. Организация подзадач в Win32. Класс tThread
- •22. Механизмы синхронизации Win32. Мьютексы
- •23. Механизмы синхронизации Win32. События
- •24. Механизмы синхронизации Win32. Семафоры
- •25. Монитороподобные средства синхронизации. Критическая область.
- •26. Критическая область. Основные модификации
- •27. Мониторы Хоара
- •28. Распределенное программирование. Основные понятия
- •Каналы и передача сообщений
- •Распределенное программирование. Фильтры и сети
- •Распределенное программирование. Схемы взаимодействия
- •Распределенное программирование. Сети и сокеты.
Распределенное программирование. Схемы взаимодействия
Клиент-сервер
Архитектура клиент-сервер один из вариантов построения систем, состоящих из наборов серверов, предоставляющих определенные сервисы; наборы клиентов, использующие эти сервисы; и средств связи, обеспечивающих передачу информации
Сопоставление программ смониторами и с передачей сообщений
С мониторами |
С передачей сообщений |
Постоянные переменные |
Локальные переменные сервера |
Идентефикаторы процедур |
Канал запроса |
Вызов процедуры |
SEND request(); recieve replu |
Вход в монитор |
Receive reply() |
Возврат в процедуру |
Сохранение ожидающих запросов |
Операция WAIT |
Получение и обрабокта ожидающего запроса |
Операция SIGNAL |
Ветки оператора выбора по видам переменной |
Тело процедуры |
|
Взаимодействующие равные. Обмен значениями.
Есть n процессов, имеющих переменную V. Требуется найти min и macx среди этих значений
централизованное решение
симметричное решение
Централизованное решение
Выделяется процесс который собирает n чисел, находит max и min и рассылает остальные процессы.
Симметричное решение
В этом случае все процессы работают одинаково каждый процесс отправляет свое значение всем остальным, затем все процессы параллельно вычисляют max и min из полученных значений
Кольцевое решение
Процессы замыкаются в логическое колько, каждый процесс получает сообщение от предшественника и отправляет сообщение приемнику
Вычисление происходит в 2 этапа:
процесс получает 2 числа, определячет min и max из них и своего значения и отправляет результаты дальше
Процесс получает глобальное значение min и max и передает результаты дальше
1 процесс выступает как инициатор процесса.
Симметричное решение является самым коротким и его легко программировать, так как все процессы выполняют одни и теже действия с другими строками в нем используется больше всего сообщений (сократить число сообщений можно с помощью микровещательной рассылки).
Сообщения оправляются и передаются параkлельно => надо учитывать характеристики каналов связи (если необходимо ставить задержки)
Чем больше передаются сообщения, тем меньше скорость.
Централизованное и кольцевое решение используют линейное число сообщений но имеют разные схемы взаимодействия:
в централизованном решении все сообщения передаются управляющему процессу практически одновременно, поэтому существующую задержку выполнения управляющего процесса может выполнить только первый recieve аналог. Результаты от управления процессами осуществляется без задержек.
В кольцевом решении все процессы являются одновременно и производителями и потребителями соединенные в круговой конвенер, т. е. Последний процесс в кольце доолжен рождаться пока кажды процесс получает сообщение выполнит вычисление и отправит результаты другому процессу => оптимизировать это решение путем совмещения передачи сообщений невозможно.
Поэтому это решение непроизвод. Это решение приемлимо в том случае, если каждый процесс выполнит значительное количество вычислений.