Оглавление:
Определение - Что означает Семафор?
Семафор - это объект синхронизации, который управляет доступом нескольких процессов к общему ресурсу в среде параллельного программирования. Семафоры широко используются для контроля доступа к файлам и общей памяти. Три основные функции, связанные с семафорами, установлены, проверьте и подождите, пока он не очистится, чтобы установить его снова. |
Семафоры используются для решения проблем синхронизации эталонных тестов.
Концепция семафора была выдвинута голландским специалистом по компьютерам Эдсгером Дейкстрой.
Техопедия объясняет семафор
Семафоры являются неотрицательными целочисленными значениями, которые поддерживают операции семафор-> P () и семафор-> V (). P - это атомарная операция, которая ожидает положительного значения семафора, а затем уменьшает его на единицу, а V - это атомарная операция, которая увеличивает семафор на единицу, что означает, что она пробуждает ожидающий P. Тест и набор, связанные с семафором, являются процедурами. реализовано в аппаратном обеспечении для координации критических секций нижнего уровня.
Семафоры обычно реализуются с использованием файловых дескрипторов. Творения семафоров не атомарны. Если два процесса пытаются создать, инициализировать и использовать семафор одновременно, создается условие гонки. Семафоры создаются и инициализируются положительным значением, чтобы показать доступность используемого ресурса. Семафоры могут быть реализованы с помощью прерываний или с помощью операций набора тестов.
Каждый семафор поддерживает наборы разрешений. Это ограничивает количество потоков, обращающихся к ресурсам. Семафоры, имеющие только одно разрешение и инициализированные одним, служат в качестве взаимных исключающих блокировок. Они упоминаются как таковые, потому что у них есть только два состояния: разрешение доступно или разрешение не доступно. Это охватывает свойство, так что блокировка может быть снята потоком, отличным от владельца, что помогает в восстановлении тупика. Семафоры используются для взаимного исключения, когда семафор имеет начальное значение 1, а P () и V () вызываются до и после критических секций.
