Sygnały Proponowane rozwiązanie EAIiE Katedra Automatyki Kraków,
Co to jest sygnał Sygnały są formą komunikacji pomiędzy procesami w systemie operacyjnym. Są asynchroniczną informacją wysyłaną do procesu w celu poinformowania go o wystąpieniu zdarzenia.
Wymagania –Pewność dostarczenia, –Bezpieczeństwo, –Obsługa wielowątkowości
Rozwiązania Lista sygnałów do implementacji Podział sygnałów (użytkownika, systemowe) Dodatkowe parametry Określenie możliwości (bądź braku) możliwości przechwycenia sygnału
Rodzaje sygnałów Standard POSIX opisuje wiele rodzajów sygnałów. Sygnały możemy przechwycić i obsłużyć Istnieją sygnały, których proces obsłużyć nie może (np. KILL) Sygnały użytkownika
Rozwiązania cd. Ograniczenia ze względu na bezpieczeństwo (porównywanie właściciela procesu i użytkownika wysyłającego sygnał) Rejestrowanie metody obsługi sygnału Blokowanie i kolejkowanie sygnałów Uwzględnienie zadań oczekujących na zwolnienie semafora bądź zasobu
Rozwiązania cd. Zgodność ze standardami (m.in. POSIX)
Podstawowe procedury Inicjalizacja : sigInit(), sigueueInit() Obsługa : sigaction() Blokowanie/ maskowanie: sigprocmask() Wysyłanie : raise(), kill(), sigqueue() Zarządzanie zaw. sygn.: sigpending()