Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / 2 лабораторная (исправленная).docx
Скачиваний:
0
Добавлен:
09.07.2025
Размер:
6.51 Mб
Скачать

4 Задание 2. Процессы и потоки в ос gnu/linux

Цель работы: изучение системных средств порождения и взаимодействия процессов и потоков в ОС GNU/LINUX.

Задача 2.2

Написать программу, создающую два дочерних потока. Родительский процесс и два дочерних потока должны выводить на экран свой id и pid родительского процесса и текущее время в формате: часы:минуты:секунды.

На рисунках 21 – 22 представлен код программы на языке программирования С++.

Рисунок 21 – Код программы

Рисунок 22 – Код программы

На рисунке 23 представлен результат работы программы

Рисунок 23 – Результат работы программы для задачи 2.2

Задача 2.1

Написать программу, создающую два дочерних процесса с использованием двух вызовов fork(). Родительский и два дочерних процесса должны выводить на экран свой pid и pid родительского процесса и текущее время в формате: часы:минуты:секунды. Используя вызов system(), выполнить команду ps -x в родительском процессе. Найти свои процессы в списке запущенных процессов.

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

Второй дочерний процесс после вывода основной информации должен быть замещен задачей, создающей два дочерних потока (см задание 2.2.).

На рисунках 24 – 26 представлен код программы на С++.

Рисунок 24 – Код программы

Рисунок 25 – Код программы

Рисунок 26 – Код программы

На рисунках 27 – 29 представлен результат работы программы для задачи 2.1.

Рисунок 27 – Результат работы программы

Рисунок 28 – Результат работы программы

Рисунок 29 – Результат работы программы

3 Вывод

Выполняя задание 1 мы изучили архитектуру и основные компоненты ядра Linux, включая механизм системных вызовов, также изучили возможности утилиты strace для отладки и анализа работы программ на уровне системных вызовов, приобрели практический навык создания и загрузки модуля в ядро Linux.

Выполняя задание 2 мы изучили системные средства порождения и взаимодействия процессов и потоков в ОС GNU/LINUX.

Соседние файлы в папке Лабы