Czytam artykuł z Wikipedii dotyczący zarządzania procesami . Skupiam się na Linuksie. Nie mogę zrozumieć związku i różnic między wywołaniem systemowym, przekazywaniem i przerywaniem wiadomości w ich pojęciach i celach. Czy wszystkie służą do wysyłania zapytań do jądra o zasoby i usługi?
Niektóre cytaty z artykułu i inne:
Istnieją dwa możliwe sposoby odzyskania kontroli nad procesorem przez system operacyjny podczas wykonywania programu, aby system operacyjny mógł dokonać alokacji lub alokacji:
- Proces generuje wywołanie systemowe (czasami nazywane przerwaniem oprogramowania); na przykład pojawia się żądanie we / wy z żądaniem dostępu do pliku na dysku twardym.
- Wystąpiło przerwanie sprzętowe; na przykład naciśnięto klawisz na klawiaturze lub skończył się czas (używany w wyprzedzającym wielozadaniowości).
Istnieją dwie techniki, za pomocą których program działający w trybie użytkownika może zażądać usług jądra:
* System call * Message passing
przerwanie to sygnał asynchroniczny wskazujący na potrzebę uwagi lub synchroniczne zdarzenie w oprogramowaniu wskazujące na potrzebę zmiany wykonania.
Przerwanie sprzętowe powoduje, że procesor zapisuje swój stan wykonania i rozpoczyna wykonywanie procedury obsługi przerwania. Przerwania programowe są zwykle implementowane jako instrukcje w zestawie instrukcji, co powoduje przełączenie kontekstu na procedurę obsługi przerwań podobną do przerwania sprzętowego.