Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсач.docx
Скачиваний:
48
Добавлен:
02.09.2019
Размер:
693.96 Кб
Скачать

3 Вытесняющая многозадачность и средства взаимодействия в ос windows хх и windows nt

В разделе составлена программа, которая реализует параллельное выполнение проекта в среде ОС Windows95 и WindowsNT.

Структура проекта задается двудольным графом (аналогичным сети Петри), в котором каждый узел представляет собой блок обработки, а переход – точку синхронизации и/или передачи данных. В зависимости от варианта, проект может иметь структуру одного из следующих типов:

Тип обработки для каждого узла зависит от номера варианта и берется из таблицы. Все блоки обработки имеют один вещественный аргумент и один вещественный результат. Аргумент формируется по формуле:

Arg = Σ Rez * Nblock * Nvar, где

Σ Rez сумма результатов входящих блоков;

Nblock номер блока в конфигурации;

Nvar номер варианта.

Результат обработки определяется типом обработчика:

начало” — начинает выполнение проекта (результат всегда = 1);

конец” — завершает выполнение проекта – выводит на экран свой аргумент, закрывает все потоки, освобождает ресурсы;

SC — SC(Arg) – вычисление суммы ряда Σ ABS(cos(i)) для i от 1 до модуля Arg;

IR — IR(Arg) – вычисление определенного интеграла ABS(cos(x)) на интервале от -Arg до +Arg методом правых прямоугольников с разбиением на 100*Arg интервалов;

IT — IT(Arg) – вычисление определенного интеграла ABS(cos(x)*sin(x)) на интервале от -Arg до +Arg методом трапеций с разбиением на 100*Arg интервалов;

Программная реализация проекта должна удовлетворять следующим требованиям:

  1. необходимо исключить возможность одновременного выполнения в системе более чем одной копий проекта (при повторном запуске должно выдаваться соответствующее сообщение и прекращаться выполнение второй копии программы);

  2. для каждого узла обработки (независимо от разбиения проекта на потоки) необходимо выводить в LOG-файл сообщения:

  • при входе в блок – сообщение о начале соответствующей обработки;

  • при завершении обработки – сообщение о прекращении обработки и результат.

LOG-файл – один, общий для всего проекта (его необходимо представить в отчете).

  1. в любом случае проект не должен выполняться более 20 секунд – если за это время вычисления не были закончены, то необходимо принудительно завершить все потоки и выдать соответствующее сообщение на экран и в LOG-файл;

  2. для взаимодействия потоков в программе, в зависимости от варианта, необходимо использовать различные синхронизирующие объекты WIN32 API. В случае, если для каких либо целей указанный тип синхронизирующих объектов не подходит – необходимо объяснить почему они не подходят для этих целей и обосновать выбор другого типа объектов. Используются следующие типы синхронизирующих объектов:

  1. Критические секции (critical sections) и Потоки (threads) как синхронизирующие объекты;

  2. Взаимоисключения (mutexes);

  3. События (events);

  4. Семафоры (semaphores).

Вариант:

Номер варианта

Номер конфигурации

Типы блоков обработки (Nblock)

1

2

3

4

5

6

7

8

35

2

SC

IT

IT

SC

IR

IT

IT

IT

Рисунок – Тип синхронизирующих объектов