
- •Вариант № 1
- •Вариант № 1а
- •Вариант № 1б
- •Вариант № 2
- •Вариант № 3
- •Вариант № 3а
- •Вариант № 3б
- •Вариант № 4
- •Вариант № 5
- •Вариант № 5а
- •Вариант № 5б
- •Вариант № 6
- •Вариант № 7
- •Вариант № 7а
- •Вариант № 7б
- •Вариант № 8
- •Вариант № 9а
- •Вариант № 9б
- •Вариант № 10
- •Вариант № 11
- •Вариант № 11а
- •Вариант № 11б
- •Вариант № 12
- •Вариант № 13
- •Вариант № 13а
- •Вариант № 13б
- •Вариант № 14
- •Вариант № 15
- •Вариант № 15а
- •Вариант № 15б
ПЕРЕЧЕНЬ РАСЧЕТНО – ГРАФИЧЕСКИХ РАБОТ
по дисциплине: «Системное программирование и операционные системы»
очной и заочной формы обучения.
Тема: Синхронизация потоков и процессов в ОС Windows
Учебная цель: Изучение программного интерфейса приложений(API) операционных систем Windows 9x, NT, ME, XP. Приобретение практических навыков синхронизации потоков, используя Win32 API и семафоры в средах программирования Borland Delphi и C++ Builder.
Расчетно – графические работы выполняются в электронном виде и виде отчетов.
Отчет должен содержать следующие пункты:
- титульный лист;
постановка задачи;
тексты программ с комментариями;
результаты выполнения программ;
выводы.
Содержание работ:
Вариант № 1
Написать программу Sort, реализующую следующий алгоритм:
Зафиксировать время начала Tstrt выполнения программы.
Вывести на экран время Tstrt в формате: минуты:секунды: миллисекунды;
Для i от 1 до 100 (количество повторений может быть изменено в зависимости от быстродействия процессора) повторять:
заполнение массива целых чисел случайными значениями из диапазона 0-1000;
зафиксировать текущий момент времени t1;
отсортировать массив;
зафиксировать текущий момент времени t2;
определить время i-той сортировки dti=t2-t1;
Определение среднего времени сортировки: dti/100;
Вывести на экран среднее время одной сортировки;
Зафиксировать время окончания Tend выполнения программы;
Вывести на экран время Tend в формате: минуты:секунды: миллисекунды;
Метод сортировки – пузырька; направление сортировки – возрастание; количество элементов массива N – 85; количество процессов = 3.
Вариант № 1а
Написать программу Master, создающую два процесса Sort, используя системные вызовы CreateProcess. Необходимо, чтобы каждый процесс имел собственную консоль и класс приоритета NORMAL_PRIORITY_CLASS. Зафиксировать время начала, окончания и длительность сортировки для обоих процессов.
Изменяя приоритеты процессов, как показано ниже, зафиксировать время начала, окончания и длительность сортировки для обоих процессов:
Первый процесс |
Второй процесс |
NORMAL_PRIORITY_CLASS |
HIGH_PRIORITY_CLASS |
HIGH_PRIORITY_CLASS |
IDLE_PRIORITY_CLASS |
IDLE_PRIORITY_CLASS |
NORMAL_PRIORITY_CLASS |
Вариант № 1б
Написать программу Threads, содержащую процедуру сортировки массива (разработанную при выполнении пункта 1.1), содержащего N/5 элементов и процедуру вывода массива на экран – mass_print. Программа должна выполнять следующие действия:
- Генерировать случайный массив содержащий N/5 элементов;
- используя системные вызовы CreateThread, создать программные потоки sort и mass_print в приостановленном состоянии;
- установить приоритеты потоков в THREAD_PRIORITY_NORMAL, используя системный вызов SetThreadPriority;
- активизировать потоки, используя системные вызовы ResumeThread;
Изменяя приоритеты потоков в разработанной программе в различных сочетаниях фиксировать получаемые результаты.
Вариант № 2
Написать программу, содержащую два потока. Первый поток генерирует последовательность чисел и помещает их в буфер из Nbuf элементов (с проверкой на свободное место в буфере с использованием механизма семафоров). Второй считывает данные из буфера и выводит их на экран.
Количество элементов Nbuf = 5, вид последовательности – натуральные числа и длина буфера = 500.
Определить максимальную длину буфера при различных приоритетах потоков.
Вариант № 3
Написать программу Sort, реализующую следующий алгоритм:
Зафиксировать время начала Tstrt выполнения программы.
Вывести на экран время Tstrt в формате: минуты:секунды: миллисекунды;
Для i от 1 до 100 (количество повторений может быть изменено в зависимости от быстродействия процессора) повторять:
заполнение массива целых чисел случайными значениями из диапазона 0-1000;
зафиксировать текущий момент времени t1;
отсортировать массив;
зафиксировать текущий момент времени t2;
определить время i-той сортировки dti=t2-t1;
Определение среднего времени сортировки: dti/100;
Вывести на экран среднее время одной сортировки;
Зафиксировать время окончания Tend выполнения программы;
Вывести на экран время Tend в формате: минуты:секунды: миллисекунды;
Метод сортировки – выборка; направление сортировки – убывание; количество элементов массива N – 70; количество процессов – 4.