Skip to content

anazhook/OSlab2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

OSlab2

Operation Systems lab №2 Тема: «Создание потоков».

Задача. Написать программу для консольного процесса, который состоит из трех потоков: main, min_max и average. Поток main должен выполнить следующие действия:

  1. Создать массив целых чисел, размерность и элементы которого вводятся с консоли.
  2. Создать потоки min_max и average.
  3. Дождаться завершения потоков min_max и average.
  4. Заменить максимальный и минимальный элементы массива на среднее значение элементов массива. Вывести полученные результаты на консоль.
  5. Завершить работу. Поток min_max должен выполнить следующие действия:
  6. Найти минимальный и максимальный элементы массива и вывести их на консоль. После каждого сравнения элементов «спать» 7 миллисекунд.
  7. Завершить свою работу. Поток average должен выполнить следующие действия:
  8. Найти среднее арифметическое значение элементов массива и вывести его на консоль. После каждой операции суммирования элементов «спать» 12 миллисекунд.
  9. Завершить свою работу. Примечания.
  10. Для ожидания завершения работы потоков min_max и average использовать функцию: DWORD WaitForSingleObject( HANDLE hHandle, // дескриптор объекта DWORD dwMilliseconds // интервал ожидания в миллисекундах ); где второй параметр установить равным INFINITE. Например WaitForSingleObject(hAverage, INFINITE); // ждать завершения потока Здесь hAverage – дескриптор потока average.
  11. Для засыпания использовать функцию: VOID Sleep( DWORD dwMilliseconds // миллисекунды ); Например, Sleep(12); // спать 12 миллисекунд

About

Operation Systems lab №2

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages