Тема: Объекты синхронизации WIN32
Язык программирования: Паскаль
Компилятор: Delphi 2-8 (dcc32.exe)
ОС: семейства WIN32
Содержание работы: Реализовать в зависимости от задачи варианта один из механизмов взаимодействия процессов в WIN32
Требования:
- Использование только вызовов API
- Желательно описание внешних вызовов ОС производить непосредственно в своем коде (разрешено пользоваться описанием windows.pas)
- Обработка ошибок и их анализ по каждому вызову функций API
- Остановка исследуемого процесса по вводу символа «а» с клавиатуры
Конечный результат:
- Получить требуемую в варианте величину.
- Пакетный файл компиляции.
- Отчет с выводами и анализом результатов. В анализ должны входить оценки вероятностных показателей измеренной в варианте величины.
- Исходный код программы на дискете.
Варианты:
- Реализовать перекачку файла размером 4Мб от одного процесса в другой через общую разделяемую память. Первый процесс получает в параметрах имя (или полный путь) второго процесса. Первый запускает второй процесс и передает ему в одной из переменных окружения имя объекта разделяемой памяти. Провести измерения времени передачи файла при различных размерах разделяемой памяти: 4Кб, 8Кб, 16Кб. Провести статистический анализ результатов.
- Реализовать перекачку файла размером 4Мб от одного процесса в другой через набор событий. Первый процесс получает в параметрах имя (или полный путь) второго процесса. Первый запускает второй процесс и передает ему в одной из переменных окружения имена объектов из набора событий, через которые будет производиться передача файла. Провести измерения времени передачи файла при различном количестве событий в наборе: 8, 16, 32. Провести статистический анализ результатов.
- Реализовать следующую схему испытаний: испытывающий процесс, который замеряет время, запускает процесс с условно предсказуемым временем выполнения. Требуется выполнить измерения времени выполнения для 10, 20 и 30 последовательно запущенных однотипных процессов с предсказуемым временем выполнения. Провести статистический анализ измерений.
- Реализовать приложение, которое из командной строки позволяет запускать и останавливать однотипные приложения. Формат командной строки - произвольный. Основное (запускающее) приложение позволяет измерить время реакции операционной системы на команду запуска и остановки. Провести анализ измерений.
- Основное приложение запускает 2 приложения с приостановленными основными потоками. Запускаемые приложения однотипны и содержат единственный поток с логикой: сканирует перебором пространство идентификаторов процессов и пытается «получить доступ» к ним. Попеременно запуская эти два потока на случайное время (равномерно распределено от 5 до 10 мс) 3 раза, основной процесс, если обнаруживает, что один из процессов получил доступ более чем к 10-ти процессам - уничтожает его.
- Измерить, за сколько времени приложение может запустить 10 экземпляров «MS Word» и уничтожить их. Сравнить с временем запуска и уничтожения такого же количества «MS Excel». Провести статистический анализ замеров.
- Реализовать «ЧАТ» (пересылку текстовых сообщений) между двумя процессами (консолями). Объект коммуникации - любой для этого подходящий, кроме файла на диске. В отчете привести возможные варианты реализации.
- Реализовать сеть однотипных процессов, которые способны только с помощью событий передавать текстовые сообщения друг другу.
- Реализовать очередь сообщений на разделяемой памяти с семафором. Один процесс обслуживает очередь (извлекает сообщения), 5 других однотипных - ставят сообщения в очередь. Измерить интервал времени, за которое будет обслужено 10 тысяч сообщений.
- Реализовать возможность из консоли основного процесса исполнять все внутренние команды DOS. При этом должна быть реализована возможность получать текстовые сообщения о результатах выполненных операций в этой консоли.
|