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