- •Методичні вказівки до лабораторних робіт по курсу "інтерфейси паралельного програмування "
- •Методичні вказівки до лабораторних робіт по курсу "інтерфейси паралельного програмування "
- •7091502 “Системне програмування”;
- •Общие положения
- •1. Управление процессами и потоками
- •1.3.2. Создание и завершение процесса
- •1.3.3. Создание и завершение потока Поток создается вызовом функции
- •1.3.4. Приостановка и возобновление потоков
- •1.3.5. Переключение потоков
- •1.3.6. Определение периодов выполнения потоков
- •1.3.7. Приоритеты потоков
- •1.4. Задание на лабораторную работу
- •1.5. Контрольные вопросы и задания
- •2. Объекты синхронизации потоков и процессов
- •2.3.2. Мьютексы
- •2.3.3. Семафоры
- •Программа завершает работу с семафором вызовом функции
- •2.3.4.События
- •2.3.5. Wait -функции
- •2.4. Задание на лабораторную работу
- •2.5. Контрольные вопросы и задания
- •3. Обмен данными между программами на основе объекта winsock
- •3.1. Цель работы
- •3.2. Указания по подготовке к выполнению лабораторной работы
- •3.3. Сущность работы
- •3.3.1. Сторона клиента.
- •3.3.2 Сторона сервера
- •3.4. Задание на лабораторную работу
- •4.5. Контрольные вопросы и задания
- •4. Интерфейс параллельного программирования
- •4.1. Цель работы
- •4.2. Указания по подготовке к выполнению лабораторной работы
- •4.3. Обзор темы работы
- •4.3.1. Mpi. Терминология и обозначения
- •4.3.2. Общие процедуры mpi
- •4.3.3. Прием/передача сообщений между отдельными процессами
- •4.3.4. Прием/передача сообщений без блокировки
- •4.3.5. Объединение запросов на взаимодействие
- •4.3.6. Совмещенные прием/передача сообщений
- •4.3.7. Коллективные взаимодействия процессов
- •4.3.8. Синхронизация процессов
- •4.3.9. Работа с группами процессов
- •4.4. Задание на лабораторную работу
- •Вариант 2
- •4.5. Контрольные вопросы и задания
- •5.4. Задание на лабораторную работу
- •5.5. Контрольные вопросы и задания
- •Список литературы
- •Содержание
5.4. Задание на лабораторную работу
Вариант 1.
Установить ловушку на сообщения, поступающие от клавиатуры для программы «Блокнот». Ловушка должна преобразовывать символьные сообщения, подменяя кода нажимаемых клавиш таким образом: «a->b», «b->c», «d->f», … , «z->a». Предусмотреть возможность снятия ловушки.
Вариант 2.
Установить ловушку на сообщения, поступающие от мыши для программы «Paint». Ловушка должна преобразовывать сообщения, подменяя кода сообщений таким образом: «WM_LBUTTONDOWN<-> WM_RBUTTONDOWN», «WM_LBUTTONUP<-> WM_RBUTTONUP». Во время прихода сообщения WM_MOUSEMOVE выводить координаты мыши на экран. Предусмотреть возможность снятия ловушки.
Вариант 3.
Установить ловушку на сообщения, поступающие во все программы. В отдельном окне выводить информацию о поступающих сообщениях: имя окна, в которое поступает сообщение, тип сообщения (в виде цифрового идентификатора и в виде символьного для нескольких наиболее распространенных сообщений, например, WM_PAINT, WM_LBUTTONDOWN, … ). Предусмотреть возможность снятия ловушки.
Вариант 4.
Установить ловушку на сообщения, поступающие от клавиатуры для программы «Блокнот». Ловушка должна преобразовывать аппаратные сообщения, подменяя виртуальные кода нажимаемых клавиш таким образом: «left<->right», «up<->down», «backspace<->del». Предусмотреть возможность снятия ловушки.
Вариант 5.
Написать программу, рисующую прямоугольник в клиентской области окна. Написать другую программу, устанавливающую ловушку на сообщения, поступающие первой программе. Организовать перехват сообщения WM_PAINT, подменяя рисование прямоугольника эллипсом. Предусмотреть возможность снятия ловушки.
Вариант 6.
Установить ловушку на сообщения, поступающие от клавиатуры для программы «Блокнот». Ловушка должна по нажатию определенной комбинации клавиш заменять в программе «блокнот» тип курсора на один из предопределенных в операционной системе. Повторное нажатие комбинации приводит к возврату типа курсора. Предусмотреть возможность снятия ловушки.
Вариант 7.
Установить ловушку на сообщения, поступающие во все программы. По нажатию определенной комбинации клавиш в любом активном окне, организовать вывод информации обо всех сообщениях, поступающих именно в то окно, в котором произошло нажатие. Предусмотреть возможность снятия ловушки.
Вариант 8.
Установить ловушку на сообщения, поступающие от клавиатуры для программы «Блокнот». Ловушка должна по нажатию определенной комбинации клавиш выводить в окно «блокнота» строку символов, содержащую фамилии студентов, выполнивших задание. Нажимая другие комбинации клавиш, можно минимизировать или принудительно закрыть приложение. Предусмотреть возможность снятия ловушки.
Вариант 9.
Установить ловушку на сообщения, поступающие от клавиатуры для программы «Калькулятор». Ловушка должна по нажатию определенной комбинации клавиш заменять в программе «калькулятор» иконку в строке заголовка и содержимое самой строки. Повторное нажатие комбинации приводит к возврату исходной информации. Предусмотреть возможность снятия ловушки.
Вариант 10.
Установить ловушку на сообщения от клавиатуры, поступающие во все программы. По нажатию определенной комбинации клавиш в любом активном окне, организовать добавления иконки этого приложения в трей. Предусмотреть возможность снятия ловушки с удалением иконки из трея.