Spisu treści:
Definicja - Co oznacza semafor?
Semafor to obiekt synchronizacji, który kontroluje dostęp wielu procesów do wspólnego zasobu w środowisku programowania równoległego. Semafory są szeroko stosowane do kontrolowania dostępu do plików i pamięci współdzielonej. Trzy podstawowe funkcje związane z semaforami są ustawione, sprawdź i poczekaj, aż zniknie, aby ustawić ponownie. |
Semafory służą do rozwiązywania problemów z synchronizacją testów porównawczych.
Koncepcję semafora przedstawił holenderski informatyk Edsger Dijkstra.
Techopedia wyjaśnia Semaphore
Semafory to nieujemne wartości całkowite, które obsługują operacje semafor-> P () i semafor-> V (). P jest operacją atomową, która czeka na pozytywny semafor, a następnie zmniejsza go o jeden, podczas gdy V jest operacją atomową, która zwiększa semafor o jeden, co oznacza, że budzi czekający P. Test i zestaw związany z semaforem są procedurami zaimplementowane w sprzęcie w celu koordynowania sekcji krytycznych niższego poziomu.
Semafory są zwykle implementowane przy użyciu deskryptorów plików. Kreacje semaforowe nie są atomowe. Jeśli dwa procesy próbują jednocześnie utworzyć, zainicjować i użyć semafora, tworzony jest warunek wyścigu. Semafory są tworzone i inicjowane do wartości dodatniej, aby pokazać dostępność zasobu do użycia. Semafory można zaimplementować za pomocą przerwań lub operacji zestawu testów.
Każdy semafor utrzymuje zestawy zezwoleń. Ogranicza liczbę wątków uzyskujących dostęp do zasobów. Semafory posiadające tylko jedno zezwolenie i zainicjowane w jednym służą jako blokady wzajemnego wykluczenia. Są one określane jako takie, ponieważ mają tylko dwa stany: dostępne zezwolenie lub dostępne zero pozwoleń. Obejmuje to właściwość, dzięki czemu zamek może zostać zwolniony przez wątek inny niż właściciel, co pomaga w przywracaniu zakleszczenia. Semafory są używane do wzajemnych wykluczeń, w których semafor ma wartość początkową jeden, a P () i V () są wywoływane przed sekcjami krytycznymi i po nich.
