Laboratornaya_Rabota_3
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РФ Федеральное учреждение высшего профессионального образования Московский технический университет связи и информатики
Кафедра системного программирования
Лабораторная работа 3
«Средства синхронизации в ОС GNU/LINUX»
по дисциплине:
Операционные системы
Выполнил студент
группы БФИ 1901
Рахимов Е.К.
Проверила:
Алексанян Диана Ашотовна
Москва 2021
Цель работы:
Изучение механизмов синхронизации процессов с использованием:
сигналов;
семафоров;
мьютексов;
барьеров.
Задания на лабораторную работу
Изучить теоретическую часть лабораторной работы.
Исследовать на конкретном примере особенности 3 по выбору из указанных методов синхронизации потоков:
Сигналы;
Семафоры;
Мьютексы;
Барьеры.
Ход работы
Задание №1
Исследовать на конкретном примере особенности 3 по выбору из указанных методов синхронизации потоков: сигналы, семафоры, мьютексы, барьеры.
Сигнал
При запуске программы, она начинает работать, если мы хотим прекратить работу, то сделаем это при помощи комбинации CTRL+C, но при помощи перехвата сигнала SIGINT, который отвечает за завершение программы, мы можем передать управление на адрес собственной функции, которая будет выполнять свои действия. Как описано в программе, после нажатия комбинации, у нас выведется текст, действительно ли мы хотим прекратить выполнение программы.
Рисунок 1 - Код программы
Рисунок 2 - Результат работы
Мьютекс
Мьютекс допускает только 1 поток к защищенному участку кода, заставляя другие потоки, которые пытаются получить доступ к этому коду, ждать, пока поток не выйдет из этого раздела. Пример программы:
Рисунок 3 - Код программы
Рисунок 4 - Результат работы
Семафор
Семафор – переменная определенного типа, которая доступна параллельным процессам для проведения над ней только двух операций. Пример программы:
Рисунок 5 - Код программы
Рисунок 6 - Результат работы