Вы просматриваете: Главная > Статьи > Только опытный работник сможет выполнить все необходимые действия с сервером.

Только опытный работник сможет выполнить все необходимые действия с сервером.

Для предотвращения указанных проблем нам нужно иметь два типа блокировок файла. Первый тип, блокировка по записи, означает: «Я пишу в файл, и все остальные должны ждать, пока я не закончу это делать». Второй тип, блокировка по чтению, означает: «Я читаю из файла. Процессы-писатели должны ждать, пока я не закончу это делать. Но другим процессом можно читать этот файл».
Семафоры
Семафор — это переменная ядра, которая доступна для всех процессов в системе. Процесс может использовать такие переменные ядра для синхронизации доступа к разделяемой памяти и другим ресурсам. Условные объекты являются глобальными в составе процесса. Семафоры же являются глобальными в составе системы.
Сервер производит запись в сегмент. Он должен ждать момента, когда ни один из клиентов не читает из сегмента. Клиенты читают из сегмента. Они должны ждать, пока сервер не закончит запись в сегмент. Мы можем выразить эти правила работы с сегментами с помощью значений переменных.
Семафоры представляют собой глобальные переменные в масштабе системы. Мы можем использовать один семафор для всех процессов-питателей, а другой семафор — для всех процессов-писателей. Для управления этими переменными необходимы две операции, которые легко пропишет ваш новый опытный мастер, ведь подбор ит персонала кадровое агентство вам предоставило свою помощь и теперь вы легко наладите рабочий процесс.
Процесс-читатель, например, должен ждать, пока счетчик процессов-писателей не станет равным нулю, а затем немедленно инкрементировать счетчик процессов-читателей. Когда процесс-читатель закончит работу по чтению данных, то он должен будет декрементировать счетчик процессов-читателей.
Процесс-писатель, аналогично, должен ждать, пока счетчик процессов-читателей не достигнет нуля, а затем инкрементировать счетчик процессов-писателей. Две операции — ожидание, когда счетчик процессов-читателей достигнет нуля, и увеличение счетчика процессов-писателей, рассматриваются как единая неделимая операция. Другими словами, эта пара действий рассматривается как одна атомарная операция. Процесс, который использует семафоры для синхронизации своих действий, может использовать несколько переменных и выполнять в отношении них несколько атомарных операций.

Читайте также: Новости Украины России и мира сегодня.

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