Вытесняющая многозадачность и средства взаимодействия в ОС
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Цель: Научиться проектировать многопоточные приложения ( multithread applications ) и использовать основные средства взаимодействия в среде ОС.

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

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

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

 

Arg = Σ Rez * Nblock * Nvar

 

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

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

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

Следует обратить внимание на то, что получение суммы результатов требует использования средств защиты доступа к разделяемым данным.

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

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

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

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

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

IL – IL(Arg) – вычисление определенного интеграла ABS(sin(x)) на интервале от -Arg до +Arg методом левых прямоугольников с разбиением на 100*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).

 

Методические указания

1) Сначала необходимо ознакомиться с концепцией вытесняющей многозадачности и средствами взаимодействия потоков и процессов в среде ОС Windows.

2) Описать постановку задания для своего варианта (см. таб 4.1) с конкретизацией блоков обработок и структуры проекта.

3) Для своей конфигурации выбрать вариант разбиения проекта на потоки и механизмы синхронизации ивзаимодействия потоков. В зависимости от варианта необходимо использовать преимущественно рекомендованные средства взаимодействия ( в случае если предложенный объект синхронизации не пригоден для решения поставленной задачи, необходимо обосновать выбор другого средства взаимодействия).

4) Написать и отладить программу на языке программирования высокого уровня в среде WIN32 API (например можно использовать Microsoft Visual C++ и выше).

5) Составить отчет, при сдаче необходимо уметь проявлять свои знания вытесняющей многозадачности и средств взаимодействия потоков и процессов в среде ОС Windows.

 

Содержание отчета

 

1) Постановка задачи для своего варианта: структура проекта в виде графа (см.рис. 2.1), замечания по реализации алгоритмов, выбор средств взаимодействия потоков в проекте и обоснование этого выбора…

2) Листинги программ и спецификации основных процедур и функций. Содержание LOG-файла после выполнения программы.


Таблица 4.1 – Варианты заданий

 

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

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

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

1 2 3 4 5 6 7 8
1. 3 IT IR IT IR SS IL SS SS
2. 2 IT IR IT IR IT IL SS SS
3. 1 SC IR IT IR IT IL IT SS
4. 3 IT SS IT IR SS IT SC SS
5. 2 SC IT IT IR SS IL IT IT
6. 1 SS SS IT IR IT SS SS IT
7. 3 IT SC IT IR SS IT SS SS
8. 2 SS SC IT IR SS SS IT SS
9. 1 SC IR IT SC IT SC IT SS
10. 2 SC IR IT IR IT SC SS IT
11. 3 SC IR IT IR IT SC SS IT
12. 3 SS IR IT IR SS IL SS IT
13. 2 SS IR IT IR IT IL SS IT
14. 2 SS SC SC IT SS IL SS SS
15. 1 IT IR IT IR IT IT SS SS
16. 1 SS IR IT IR SS IL IT IT
17. 3 SS IR IT SC SS IL SS IR
18. 3 IT IT IT IT IT IT SS SS
19. 3 SS SS IT IR SS IL SS SS
20. 2 SS SS IT IR SS IR SS IT
21. 2 IT IT SC IT IT IL IT IT
22. 2 SS IT SC IR IT IR IT IL
23. 1 SS SS SS SC IT IR SS IR
24. 1 IT IT SC IR IT IL SS SS
25. 1 SS IR IT IR SS SC SS SC
26. 2 SC IR IT IR SS IL SS SS
27. 3 IR IR SC IT SS IL SS SS
28. 1 IR IR IT SS SC IL SS SS
29. 2 IR IR IT SS SS IL SS SS
30. 1 IT IT SC IT IT IL IT IT
31. 3 IT IR IT IR SS IL SS SS
32. 2 IT IR IT IR IT IL SS SS
33. 1 SC IR IT IR IT IL IT SS
34. 3 IT SS IT SC IT IT SC SS
35. 2 SC IT IT SC IR IT IT IT
36. 1 SS SS IT SS SC IT SS IT
37. 3 IT SC IT SC IR IT SS SS
38. 2 SS SC IT IT IR SS IT SS
39. 1 SC IR IT IT IR SS IT SS
40. 2 IR SS IT SS SC IL IR SS
41. 3 SS IL SS SC IT SS IT
42. 2 IT IT SC IR IT IL IT SS
43. 1 IT IR IT IR SS IL IT SS
44. 3 IR IT IR SS IT SC
45. 2 SC IR IT IR IT SC SC IT
46. 3 SC IR IT IR IT SC SC IT
47. 2 SS IR IT IR SS IL SS IT
48. 1 SS IR IT IR IT IL SS IT
49. 3 IT IR IT IR SS IL IT SS
50. 2 IT IR IT IR IT IL IT SS
51. 1 SS IR IT IR IL IT IT
52. 2 SS IR IT IT SS IL SS IR
53. 3 IT IL IR IT IT IT SS SS
54. 2 SS IL IL SC IT SS IR
55. 3 IT IR IT IR SS IL SS SS
56. 2 IT IR IT IR IT IL SS SS
57. 1 SC IR IT IR IT IL IT SS
58. 3 IT SS IT IR SS IT SC SS
59. 2 SC IT IT IR SS IL IT IT
60. 1 SS SS IT IR IT SS SS IT
61. 3 IT SC IT IR SS IT SS SS
62. 2 SS SC IT IR SS SS IT SS
63. 1 SC IR IT SC IT SC IT SS
64. 2 SC IR IT IR IT SC SS IT
65. 3 SC IR IT IR IT SC SS IT
66. 3 SS IR IT IR SS IL SS IT
67. 2 SS IR IT IR IT IL SS IT
68. 2 SS SC SC IT SS IL SS SS
69. 1 IT IR IT IR IT IT SS SS
70. 1 SS IR IT IR SS IL IT IT
71. 3 SS IR IT SC SS IL SS IR
72. 3 IT IT IT IT IT IT SS SS
73. 3 SS SS IT IR SS IL SS SS
74. 2 SS SS IT IR SS IR SS IT
75. 2 IT IT SC IT IT IL IT IT
76. 2 SS IT SC IR IT IR IT IL
77. 1 SS SS SS SC IT IR SS IR
78. 1 IT IT SC IR IT IL SS SS
79. 1 SS IR IT IR SS SC SS SC
80. 2 IT IT SC IR IT IL IT SS

 

 

Тип синхронизирующих объектов выбирается из классификатора.

     
 

 


Рисунок 4.1 – Номер конфигурации
Раздел 5

Дата: 2019-02-25, просмотров: 263.