Wywołanie systemowe
Wywołanie systemowe to żądanie wysyłane przez program do systemu operacyjnego. Umożliwia ono aplikacji dostęp do funkcji i poleceń z API systemu operacyjnego.
Wywołania systemowe wykonują operacje na poziomie systemu, takie jak komunikowanie się z urządzeniami sprzętowymi oraz odczytywanie i zapisywanie plików. Korzystając z wywołań systemowych, programiści mogą używać gotowych funkcji obsługiwanych przez system operacyjny (OS), zamiast pisać je od podstaw. Upraszcza to tworzenie oprogramowania, poprawia stabilność aplikacji i sprawia, że aplikacje są bardziej „przenośne” między różnymi wersjami systemu operacyjnego.
Jak działają wywołania systemowe
Aplikacje działają w obszarze pamięci nazywanym przestrzenią użytkownika. Wywołanie systemowe uzyskuje dostęp do jądra systemu operacyjnego, które działa w przestrzeni jądra. Gdy aplikacja wykonuje wywołanie systemowe, musi najpierw poprosić jądro o pozwolenie. Można to zrobić za pomocą żądania przerwania, które wstrzymuje bieżący proces i przekazuje sterowanie jądru.
Jeśli żądanie zostanie zaakceptowane, jądro je przetwarza, na przykład tworząc lub usuwając plik. Po zakończeniu operacji jądro przekazuje dane wyjściowe z powrotem do aplikacji, która przenosi dane z przestrzeni jądra do przestrzeni użytkownika w pamięci. Aplikacja otrzymuje dane wyjściowe z jądra jako dane wejściowe. W kodzie źródłowym programu może to być wartość parametru lub wartość zwracana przez funkcję. Po otrzymaniu danych wejściowych aplikacja wznawia proces.
Podstawowe wywołanie systemowe, takie jak pobranie bieżącej daty i godziny, może trwać kilka nanosekund. Bardziej zaawansowane wywołanie systemowe, takie jak nawiązanie komunikacji z urządzeniem sieciowym, może wymagać kilku sekund. Aby zapobiegać wąskim gardłom, większość systemów operacyjnych uruchamia osobny wątek jądra dla każdego wywołania systemowego. Współczesne systemy operacyjne obsługują wielowątkowość, co oznacza, że mogą jednocześnie przetwarzać wiele wywołań systemowych.
Sprawdź swoją wiedzę