Лабораторная работа №2 по ОС (задания)
Тема: Объекты синхронизации WIN32

Язык программирования: Паскаль
Компилятор: Delphi 2-8 (dcc32.exe)
ОС: семейства WIN32
Содержание работы: Реализовать в зависимости от задачи варианта один из механизмов взаимодействия процессов в WIN32

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