Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: CXXVI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 08 июня 2023 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Гросс Д.А., Горбунова В.В. ПРОГРАММНЫЙ ПОДХОД К СИНХРОНИЗАЦИИ ПРОЦЕССОВ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. CXXVI междунар. студ. науч.-практ. конф. № 6(124). URL: https://sibac.info/archive/technic/6(124).pdf (дата обращения: 27.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ПРОГРАММНЫЙ ПОДХОД К СИНХРОНИЗАЦИИ ПРОЦЕССОВ

Гросс Дмитрий Александрович

студент, кафедра «Вычислительная техника», Пензенский государственный университет,

РФ, г. Пенза

Горбунова Вероника Владимировна

студент, кафедра «Вычислительная техника», Пензенский государственный университет,

РФ, г. Пенза

PROGRAM APPROACH TO PROCESS SYNCHRONIZATION

Dmitry Gross

Student, Department of Computer Science, Penza State University

Russia, Penza

Veronika Gorbunova

Student, Department of Computer Science, Penza State University

Russia, Penza

 

АННОТАЦИЯ

Рассматривается программный подход к синхронизации процессов, синхронизация в пространстве ядра ОС.

ABSTRACT

A software approach to process synchronization, synchronization in the space of the OS kernel is considered.

 

Ключевые слова: многопроцессорная система, синхронизация процессов, критический интервал.

Keywords: multiprocessor system, process synchronization, critical interval.

 

Программный подход к синхронизации процессов является традиционным для метода, основанного на критических интервалах. Метод реализуется в пользовательском пространстве. Критическому интервалу ставится в соответствие общая двоичная переменная, которую называют блокирующей. Ей присваивается значение единицы, когда осуществляется вход в критический интервал, и значение нуля, когда производится выход из критического интервала. При освобождении критического интервала процесс устанавливает блокирующую переменную и входит в критический интервал. Выполнив необходимые действия с критическим ресурсом, процесс сбрасывает блокирующую переменную, тем самым предоставляя доступ в неё другим процессам.

Синхронизация процессов реализуется либо в пользовательском пространстве, либо в пространстве ядра ОС.

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

Алгоритм запроса к некоторому ресурсу D с помощью блокирующей переменной F(D) представлен на рисунке 1.

 

Рисунок 1. Алгоритм программного подхода к синхронизации процессов

 

Однако у данного метода имеются недостатки:

- запущенный процесс неопределенно долго может находиться в режиме циклического опроса (петле ожидания). Поскольку проверка производится при участии процессора, поэтому бесполезно тратится процессорное время, и, следовательно, высоки потери производительности ВС;

Метод синхронизация в пространстве ядра ОС использует системные вызовы. Заключается в том, что процесс (поток) прежде чем войти в критическую секцию выполняет системный вызов, в рамках которого идет проверка блокирующей переменной, и если ресурс занят, то запрашивающий процесс переходит в режим ожидания (засыпает). При этом делается отметка о том, что данный процесс или поток должен быть в дальнейшем активирован (разбужен). Перечисленные функции выполняет ядро ОС.

Алгоритм входа в критический интервал и выхода из критического интервала представлен на рисунке 2.

 

Рисунок 2. Алгоритм программной синхронизации в пространстве ядра ОС

 

Традиционно блокирующие переменные, использующие системные вызовы, реализуют в виде битовых семафоров, мьютексов (mutex - сокращение от mutual exclusion – взаимное исключение), и других подобных примитивов синхронизации.

Но при этом возрастают накладные расходы на время реализации приложений. Это объясняется тем, что запросы на синхронизацию выполняются c помощью системных вызовов. Вообще с помощью системных вызовов прикладные процессы обращаются к ядру ОС с запросами на выполнение тех или иных функций, в том числе и функций синхронизации процессов. Системные вызовы основаны на программных прерываниях, трудоемкость выполнения которых велика, требует достаточно больших затрат процессорного времени.

Решение этой проблемы возможно на пути вынесения функции синхронизации процессов за пределы ядра и реализации в виде аппаратного блока (ускорителя или сопроцессора) в составе многопроцессорной системы, запрос которого осуществляется непосредственно из прикладного процесса.

 

Список литературы:

  1. Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд. — СПб.: Питер, 2015. — 1120 с.
  2. Смирнов А.Д. Архитектура вычислительных систем. – М.: «Наука», 2005 – 163 с.
  3. Олифер В. Г., Олифер Н. А. Сетевые операционные системы: Учебник для вузов. 2-е изд. — СПб.: Питер, 2009. — 669 с.:
  4. Многопроцессорные ЭВМ и методы их проектирования / Б.А. Бабаян, А.В. Бочаров, В.С. Волин и др. — М.: Высшая школа, 1990.
  5. Жаркова А.И. Многопроцессорные системы. – М., 2004 – 173 с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий