Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Os_Prz1 (1)

.docx
Скачиваний:
10
Добавлен:
01.04.2022
Размер:
7.21 Mб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РФ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»

Кафедра "Математическая кибернетика и информационные технологии"

Практическая работа №1 по дисциплине «Операционные системы» на тему: «Детальное изучение процессов. Наблюдение за многозадачным вычислительным процессом»

Выполнил:

Студент группы БФИ1901

Гусев Никита и Рахимов Егор

Проверил:

Королькова Татьяна Валерьевна,

старший преподаватель

Москва 2021 г.

Задание на практическую работу

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

1) Для одной из задач определить PID, загрузку и время работы центрального процессора, базовый приоритет процесса, использование памяти, хронологию использования ЦП в режиме ядра. Изменить приоритет процесса и установить, влияет ли это на время выполнения приложения.

2) Монопольно выполнить каждую из трех задач, определить время выполнения каждой из задач, а также суммарное время их выполнения. Запустить одновременно три задачи, определить время выполнения пакета. Эксперимент провести при назначении процессов на одно ядро для выполнения.

3) Ответить на следующие вопросы:

1. В каком случае суммарное время выполнения задач больше при последовательном или одновременном выполнении?

2. Как изменилось время выполнения каждой отдельной задачи?

3. Как изменится время выполнения отдельной задачи при изменении ее приоритета? Окажет ли влияние изменение приоритета одной задачи на время выполнения другой задачи?

Ход работы

Задание №1

Для одной из задач определить PID, загрузку и время работы центрального процессора, базовый приоритет процесса, использование памяти, хронологию использования ЦП в режиме ядра. Изменить приоритет процесса и установить, влияет ли это на время выполнения приложения.

Программа была написана на С++ в среде разработки Visual Studio 2019. При помощи средств среды разработки проверим работу программы и измерим время её работы, как показано на рисунке 1. Видим, что программа выполняется 1 минуту и 13 секунд, или 73 секунды, что важно при наблюдении.

Рисунок 1 – Запуск программы в среде разработки

Соберём проект с программой в среде разработки, скомпилируем .exe файл для наблюдений, запустим его и проверим использование процессора, как показано на рисунке 2. Как видим, во время работы программа использует около 13-17% от всех ядер процессора.

Рисунок 2 – Работа программы

Рисунок 3 – Процессор до запуска программы

Рисунок 4 – Использование процессора во время выполнения программы

При выставлении приоритета реального времени использование процессора увеличилось примерно на 3 – 4%. При обычном приоритете использование составляло примерно 13 – 16%, а при приоритете реального времени – 16 – 20%. Результат показан на рисунке 5:

Рисунок 5 – Выполнение программы с приоритетом реального времени

Прошлые наблюдения проводились в многоядерном режиме. Теперь посмотрим, как будет работать программа при одноядерном режиме. При выполнении одним ядром программа использовала около 12% процессора, как показано на рисунках 6 и 7:

Рисунок 6 – Выполнение программы одним ядром

Рисунок 7 – ЦП во время выполнения программы

Проверим время работы программы при одноядерном режиме. Так как программа выполнялась очень долго, то возьмём показатели после некоторой работы программы и вычислим значение после полной работы.

Рисунок 8 – Начало работы программы

Как видно на рисунке 8, начало работы – 08:11:26. Подождём некоторое время и вычислим значение.

Рисунок 9 – Конец работы программы

Конец работы программы – примерно 08:12:03. Программа проработала примерно 37 секунд. Программа заканчивает свою работу при достижении значения 1 500 000. Здесь же программа проработала до значения 1 000. Путём простых вычислений можно понять, что программа работала бы 55 500 секунд, или 925 минут, или примерно 15 часов.

Задание №2

Монопольно выполнить каждую из трех задач, определить время выполнения каждой из задач, а также суммарное время их выполнения. Запустить одновременно три задачи, определить время выполнения пакета. Эксперимент провести при назначении процессов на одно ядро для выполнения.

Запустим программу 3 раза подряд. Запустим в первый раз, как показано на рисунке 10. Начало работы программы – 07:29:27.

Рисунок 10 – Начало работы

Программа окончила работу в 07:30:35, как показано на рисунке 11, значит, она выполнялась 1 минуту и 8 секунд, или 68 секунд.

Рисунок 11 - Окончание работы

Запустим программу во 2-ой раз. Программа начала работу примерно в 7:30:56, как показано на рисунке 12:

Рисунок 12 – Начало работы во 2-ой раз

Окончание выполнения программы произошло в 07:32:02, как показано на рисунке 13, значит, программа проработала примерно 1 минуту и 6 секунд, или 66 секунд.

Рисунок 13 – Окончание работы программы

Запустим программу в 3-ий раз. Начало работы – 07:32:30, как показано на рисунке 14:

Рисунок 14 – Начало работы программы

Окончание работы программы – 7:33:36, как показано на рисунке 15, значит, программа выполнялась также, то есть 66 секунд.

Рисунок 15 – Окончание работы программы

Суммарное время выполнения всех 3-х задач по отдельности составило 200 секунд.

Теперь запустим программу 3 раза одновременно и проверим время её выполнения. Начало работы – примерно 07:21:50, как показано на рисунке 16:

Рисунок 16 – Начало работы программы

Окончание работы – 07:24:10, как показано на рисунке 17, значит, программа, запущенная 3 раза одновременно, проработала 2 минуты и 20 секунд, или 140 секунд.

Рисунок 17 – Окончание работы программы

После проведения наблюдения ответим на вопросы:

  1. В каком случае суммарное время выполнения задач больше: при последовательном или одновременном выполнении?

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

  1. Как изменилось время выполнения каждой отдельной задачи?

При параллельном выполнении время выполнения каждой задачи увеличилось из-за большой нагрузки задач на процессор.

  1. Как изменится время выполнения отдельной задачи при изменении ее приоритета? Окажет ли влияние изменение приоритета одной задачи на время выполнения другой задачи?

Время выполнения отдельной задачи при изменении её приоритета уменьшается, а сама задача выполняется быстрее других задач. В доказательство показаны рисунки 18 и 19. На них видно, что при изменении приоритета одной из программ, она начинает выполняться быстрее других.

Рисунок 18 – Выполнение программ

Рисунок 19 – Одна из программ окончила работу раньше других