
- •Структура оконного приложения и обработка сообщений.
- •Цель работы
- •Указания по подготовке к выполнению лабораторной работы
- •Обзор темы работы
- •Структура оконного приложения
- •Задания к лабораторной работе
- •Содержание отчета к лабораторной работе
- •Контрольные вопросы.
- •Многозадачность и многопоточность
- •Цель работы
- •Указания по подготовке к выполнению лабораторной работы
- •Обзор темы работы
- •Обобщенный алгоритм доступа к критическому ресурсу с использованием объектов синхронизации
- •Практические аспекты
- •Задания на лабораторную работу
- •Контрольные вопросы и задания
- •Управление распределением памяти (win api)
- •Цель работы
- •Указания по подготовке к выполнению лабораторной работы
- •Обзор темы работы
- •Порядок выполнения работы.
- •Задания к выполнению.
- •Содержание отчета
- •Контрольные вопросы и задания
- •Управление файлами
- •Цель работы
- •Указания по подготовке к выполнению лабораторной работы
- •Обзор темы работы
Задания на лабораторную работу
Написать программу, порождающую четыре потока, каждому из которых выделяется четвертая часть окна приложения. Первый поток выводит, в свою область, возрастающую числовую последовательность 0,1,2,…. Второй – последовательность чисел Фибоначчи. Третий поток заполняет свой участок окна прямоугольниками случайного размера и цвета. Четвертый поток фиксирует в трех переменных и выводит их в своей области окна число запусков каждого из предыдущих трех потоков (снимок состояния всех поток на момент времени).
Написать программу, порождающую поток по нажатию одной из клавиш клавиатуры. Каждому созданному таким образом потоку соответствует окружность в окне приложения, которая появляется в случайном месте окна приложения и движется либо по вертикали, либо по горизонтали. При достижении границы окна, окружность меняет направление своего движения на противоположное. При помощи объектов синхронизации (семафоров или событий) реализовать алгоритм движения шаров без столкновений.
В программе создать два потока. Назначение одного из них – периодическое чтение системного времени и заполнение глобальной структуры (часы, минуты, секунды), второго – вывод данной структуры на экран. При помощи критического раздела организовать раздельный доступ потоков к структуре данных.
Написать программу, содержащую четыре потока, каждый из которых управляет движением одного из шаров. Первые два шара двигаются горизонтально, вторые – вертикально. Скорость шаров различна. При достижении границы клиентской области окна, шар меняет направление движения на противоположное. При помощи объектов синхронизации (семафоров или событий) реализовать алгоритм движения шаров без столкновений.
Написать программу, которая запускает новый поток при нажатии левой клавиши мыши. Поток начинает выводить возрастающую числовую последовательность в текущую позицию курсора мыши. При нажатии правой клавиши мыши программа удаляет поток, координаты которого ближе всего к положению мыши. При помощи объектов синхронизации реализовать алгоритм разделения критических ресурсов.
Создать многопоточную программу, формирующую потоки трех типов. Каждый из потоков запускается соответствующим пунктом меню и захватывает соответственно 1,2,3 ресурса (максимальное число ресурсов по умолчанию – 8 и может меняться пользователем в окне диалога, вызываемом через меню). Количество, вид потоков, а также их состояние выводится на экран. Если число ресурсов не позволяет работать потоку, он находится в состоянии ожидания. Удаление потоков осуществляется через меню в порядке запуска (первым удаляется поток, запущенный первым). При помощи объектов синхронизации реализовать алгоритм разделения критических ресурсов
Написать программу, которая по нажатию мыши создает потоки: по нажатию правой клавиши – поток, производящий вывод возрастающего ряда в позицию курсора, левой – поток с убывающим рядом. Поток выгружается из памяти по окончанию счета. Число потоков ограничивается пользователем через контекстное меню и находится в диапазоне [4,8]. При помощи объектов синхронизации реализовать алгоритм разделения критических ресурсов
Написать программу, которая читает с диска *.bmpфайл и выводит его в окно приложения. При помощи потока организовать поворот изображения на 90 градусов. Операцию можно прервать при помощи диалогового окна, возникающего на время выполнения операции. При помощи объектов синхронизации реализовать алгоритм разделения критических ресурсов
Написать программу, которая позволяет запускать процессы, используя для этого выбранные на диске файлы. Пользователь может задавать имя запускаемого файла и командную строку. Программа следит за всеми запущенными ею процессами и выводит по требованию пользователя следующую информацию: имя процесса, значение указателя и идентификатора процесса, время выполнения процесса.