Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные задачи по ОС обновление2.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
151 Кб
Скачать
☆

3.5 Поток main должен выполнить следующие действия:

  • создать массив, размерность и элементы которого вводятся пользователем с консоли;

  • вывести размерность и элементы исходного массива на консоль;

  • ввести число k;

  • запустить поток work;

  • запустить поток SumElement;

  • выводить на экран поэлементно элементы массива (итогового) параллельно с работой потока work;

  • известить поток SumElement о начале суммирования (момент запуска произойдёт после того, будут выведены на консоль k элементов массива), использовать событие;

  • вывести на экран результат работы потока SumElement;

Поток work должен выполнить следующие действия:

  • запросить у пользователя временной интервал, требуемый для отдыха после подготовки одного элемента в массиве;

  • Сортировка выбором. Элементы - символы.

  • извещать поток main о новом элементе;

  • после каждого готового элемента отдыхать в течение заданного интервала времени;

Поток SumElement должен выполнить следующие действия (Для синхронизации с потоком work, использовать критическую секцию, событие!):

ждёт от потока main сигнал о начале суммирования (использовать событие);

  • выполнить суммирование элементов (кодов символов) итогового массива до заданной позиции k;

  • известить(использовать критическую секцию) поток main о выводе результата

3.6 Поток main должен выполнить следующие действия:

  • создать массив, размерность и элементы которого вводятся пользователем с консоли;

  • вывести размерность и элементы исходного массива на консоль;

  • запустить поток work;

  • запустить поток SumElement;

  • Запросить числа А, К1, К2 (0<К1<К2<размерности массива).

  • выводить на экран поэлементно элементы массива (итогового) параллельно с работой потока work;

  • вывести на экран результат работы потока SumElement;

Поток work должен выполнить следующие действия:

  • запросить у пользователя временной интервал, требуемый для отдыха после подготовки одного элемента в массиве;

  • Поиск в массиве элементов >A (разместить их в массиве слева, остальные элементы массива - заполнить нулями). Элементы - целые числа без знака. Число A ввести в потоке main.

  • извещать поток main о новом элементе;

  • после каждого готового элемента отдыхать в течение заданного интервала времени;

  • известить поток SumElement о начале суммирования (момент запуска произойдёт после того, будет сформировано К2 элементов итогового массива (использовать событие)

Поток SumElement должен выполнить следующие действия (Для синхронизации с потоком work, использовать критическую секцию, событие!):

ждёт от потока work сигнал о начале суммирования (использовать событие);

  • выполнить суммирование элементов от К1 позиции до К2 позиции итогового массива;

  • известить(использовать критическую секцию) поток main о выводе результата

3.7 Поток main должен выполнить следующие действия:

  • создать массив, размерность и элементы которого вводятся пользователем с консоли;

  • вывести размерность и элементы исходного массива на консоль;

  • ввести число k;

  • запустить поток work;

  • запустить поток SumElement;

  • выводить на экран поэлементно элементы массива (итогового) параллельно с работой потока work;

  • вывести на экран результат работы потока SumElement;

Поток work должен выполнить следующие действия:

  • запросить у пользователя временной интервал, требуемый для отдыха после подготовки одного элемента в массиве;

  • Поиск в массиве простых чисел (разместить их в массиве слева, остальные элементы массива - справа). Элементы - целые числа без знака.

  • извещать поток main о новом элементе;

  • известить поток SumElement о начале суммирования (момент запуска произойдёт после того, будут готовы к печати k - элементов массива), использовать событие.

  • после каждого готового элемента отдыхать в течение заданного интервала времени;

Поток SumElement должен выполнить следующие действия (Для синхронизации с потоком main, использовать событие и критическую секцию!):

  • ждёт от потока work сигнал о начале суммирования (использовать событие);

  • выполнить суммирование элементов итогового массива до заданной позиции k;

  • известить(использовать критическую секцию) поток main о выводе результата