Wywołanie systemowe w systemie operacyjnym (Operating System): Co to jest, typy i przykłady

Co to jest wywołanie systemowe Operasystem?

A wywołanie systemowe jest mechanizmem, który zapewnia interfejs między procesem a systemem operacyjnym. Jest to programowa metoda, w której program komputerowy żąda usługi od jądra systemu operacyjnego.

Wywołanie systemowe oferuje usługi systemu operacyjnego programom użytkownika za pośrednictwem API (Application Programming Interface). Wywołania systemowe są jedynymi punktami wejścia do systemu jądra.

System wzywa Operasystemu
System wzywa Operasystemu

Przykład wywołania systemowego

Na przykład, jeśli musimy napisać kod programu, aby odczytać dane z jednego pliku, skopiuj te dane do innego pliku. Pierwszą informacją wymaganą przez program jest nazwa dwóch plików – wejściowego i wyjściowego.

W systemie interaktywnym tego typu wykonanie programu wymaga pewnych wywołań systemowych ze strony systemu operacyjnego.

  • Pierwsze połączenie polega na napisaniu monitu na ekranie
  • Po drugie, aby odczytać z klawiatury znaki definiujące oba pliki.

Jak działa wywołanie systemowe?

Oto kroki wywołania systemowego w systemie operacyjnym:

Wywołanie systemowe działa

Architektura wywołania systemowego

Architektura wywołania systemowego

Jak widać na powyższym diagramie przykładowego wywołania systemowego.

Krok 1) Procesy wykonywane w trybie użytkownika do czasu przerwania ich przez wywołanie systemowe.

Krok 2) Następnie wywołanie systemowe jest wykonywane w trybie jądra z priorytetem.

Krok 3) Po zakończeniu wykonywania wywołań systemowych sterowanie powraca do trybu użytkownika.,

Krok 4) Wykonywanie procesów użytkownika zostało wznowione w Tryb jądra.

Dlaczego potrzebujesz wywołań systemowych w systemie operacyjnym?

Poniżej przedstawiono sytuacje, w których konieczne jest użycie wywołań systemowych w systemie operacyjnym:

  • Odczyt i zapis plików wymaga wywołań systemowych.
  • Jeśli system plików chce utworzyć lub usunąć pliki, wymagane są wywołania systemowe.
  • Wywołania systemowe służą do tworzenia nowych procesów i zarządzania nimi.
  • Połączenia sieciowe wymagają wywołań systemowych do wysyłania i odbierania pakietów.
  • Dostęp do urządzeń sprzętowych, takich jak skaner, drukarka, wymaga wywołania systemowego.

Rodzaje wywołań systemowych

Oto pięć typów wywołań systemowych w systemie operacyjnym:

  • Kontrola procesu
  • Zarządzanie plikami
  • Zarządzanie urządzeniem
  • Konserwacja informacji
  • Komunikacja
Rodzaje wywołań systemowych

Rodzaje wywołań systemowych w systemie operacyjnym

Kontrola procesu

Te wywołania systemowe realizują zadanie tworzenia procesu, kończenia procesu itp.

Funkcje:

  • Zakończ i przerwij
  • Załaduj i wykonaj
  • Utwórz proces i zakończ proces
  • Poczekaj i Signal wydarzenie
  • Przydzielanie i zwalnianie pamięci

Zarządzanie plikami

Wywołania systemu zarządzania plikami obsługują zadania manipulacji plikami, takie jak tworzenie pliku, odczytywanie i zapisywanie itp.

Funkcje:

  • Utwórz plik
  • Usuń plik
  • Otwórz i zamknij plik
  • Czytaj, pisz i zmieniaj położenie
  • Pobierz i ustaw atrybuty plików

Zarządzanie urządzeniem

Zarządzanie urządzeniami umożliwia manipulowanie urządzeniami, np. odczytywanie danych z buforów urządzeń, zapisywanie danych do buforów urządzeń itd.

Funkcje:

  • Poproś i zwolnij urządzenie
  • Logicznie podłączaj/odłączaj urządzenia
  • Pobierz i ustaw atrybuty urządzenia

Konserwacja informacji

Obsługuje informacje i ich przesyłanie pomiędzy systemem operacyjnym a programem użytkownika.

Funkcje:

  • Uzyskaj lub ustaw godzinę i datę
  • Uzyskaj atrybuty procesu i urządzenia

Komunikacja

Tego typu wywołania systemowe są specjalnie używane do komunikacji między procesami.

Funkcje:

  • Tworzenie, usuwanie połączeń komunikacyjnych
  • Wyślij, odbierz wiadomość
  • Pomóż systemowi operacyjnemu przesłać informacje o stanie
  • Podłącz lub odłącz urządzenia zdalne

Zasady przekazywania parametrów wywołania systemowego

Oto ogólne, wspólne zasady przekazywania parametrów do wywołania systemowego:

  • Parametry powinny być umieszczane na stosie lub zdejmowane ze stosu przez system operacyjny.
  • Parametry można przekazywać w rejestrach.
  • Jeżeli parametrów jest więcej niż rejestrów, należy to zapisać w bloku, a adres bloku przekazać jako parametr do rejestru.

Ważne wywołania systemowe używane w systemie operacyjnym

czekać()

W niektórych systemach proces musi poczekać, aż inny proces zakończy swoje wykonanie. Tego typu sytuacja ma miejsce, gdy proces nadrzędny tworzy proces potomny, a wykonywanie procesu nadrzędnego pozostaje zawieszone do czasu wykonania procesu potomnego.

Zawieszenie procesu nadrzędnego następuje automatycznie za pomocą wywołania systemowego Wait(). Kiedy proces potomny kończy wykonywanie, kontrola wraca do procesu nadrzędnego.

widelec()

Procesy używają tego wywołania systemowego do tworzenia procesów, które są kopią samych siebie. Za pomocą tego systemu wywołanie procesu nadrzędnego tworzy proces potomny, a wykonywanie procesu nadrzędnego zostanie wstrzymane do czasu wykonania procesu potomnego.

Exec ()

To wywołanie systemowe jest uruchamiane, gdy plik wykonywalny znajduje się w kontekście już działającego procesu, który zastępuje starszy plik wykonywalny. Jednak oryginalny identyfikator procesu pozostaje, ponieważ nowy proces nie jest budowany, ale stos, dane, głowa, dane itp. są zastępowane przez nowy proces.

zabić()

Wywołanie systemowe kill() jest używane przez system operacyjny do wysyłania sygnału zakończenia do procesu, który nawołuje proces do zakończenia. Jednak wywołanie systemowe „zabij” nie musi koniecznie oznaczać zakończenia procesu i może mieć różne znaczenia.

wyjście()

Wywołanie systemowe exit() służy do zakończenia wykonywania programu. Szczególnie w środowisku wielowątkowym to wywołanie definiuje, że wykonanie wątku zostało zakończone. System operacyjny odzyskuje zasoby wykorzystane przez proces po użyciu wywołania systemowego exit().

Podsumowanie

Kategorie Windows Unix
Kontrola procesu Proces tworzenia()
Zakończ proces()
WaitForSingleObject()
widelec()
wyjście()
czekać()
Manipulacja urządzeniem Ustaw tryb konsoli()
Czytaj konsolę()
WriteConsole()
loctl()
czytać()
pisać()
Manipulacja plikami Utwórz plik()
Przeczytaj plik()
Zapisz plik()
ZamknijUchwyt()
Otwarty()
Czytać()
pisać()
zamknąć!)
Utrzymanie informacji GetCurrentProcessID()
Ustaw minutnik()
Spać()
getpid()
alarm()
spać()
Komunikacja Utwórz rurę()
Utwórz mapowanie pliku()
MapViewOfFile()
Rura()
shm_open()
mmmap()
ochrona UstawPlikZabezpieczenia()
Zainicjuj zabezpieczeniaDescriptlub()
Ustaw bezpieczeństwoDescriptlubGrupa ()
Chmod()
Umaskowanie()
Chown()