API (Application Programming Interface) oznacza interfejs programistyczny: zbiór reguł, definicji, struktur danych i opisów funkcji, które program może wywoływać, aby komunikować się z innym komponentem (np. systemem operacyjnym, biblioteką lub usługą).
W kontekście systemu operacyjnego API pełni rolę "umowy" między aplikacją a systemem: określa, jak program ma prosić system o wykonanie operacji (np. dostęp do plików, sieci, procesów, czasu), jakie parametry przekazać i jakie wyniki/komunikaty błędów może otrzymać. Dzięki temu aplikacje napisane zgodnie z danym API są kompatybilne z systemem i jego środowiskiem uruchomieniowym (lub z warstwą zgodności), bo korzystają ze zdefiniowanych, stabilnych punktów wejścia zamiast odwoływać się do przypadkowych szczegółów implementacyjnych.
Dlaczego pozostałe odpowiedzi nie pasują do definicji "zestawu reguł i opisów" dla aplikacji?
- DMA (Direct Memory Access) to mechanizm umożliwiający urządzeniom (lub kontrolerom) bezpośredni dostęp do pamięci operacyjnej z ograniczeniem udziału procesora. Jest to zagadnienie architektury sprzętowej i sterowników, a nie interfejs reguł dla twórców aplikacji w sensie API.
- IRQ (Interrupt Request) odnosi się do przerwań sprzętowych i sposobu zgłaszania żądań obsługi przez urządzenia. To element komunikacji sprzęt–CPU/system, nie "opis wywołań" dla aplikacji użytkownika.
- ACPI (Advanced Configuration and Power Interface) dotyczy standardu zarządzania energią i konfiguracją sprzętu na poziomie systemu/firmware. Może wpływać na działanie systemu, ale nie jest typowo rozumiane jako interfejs programistyczny zapewniający kompatybilność aplikacji.
Wskazówka egzaminacyjna: jeśli w pytaniu pojawia się opis "zestawu reguł/opisów" umożliwiających programowi korzystanie z funkcji systemu lub innego komponentu, najczęściej chodzi o API. Gdy mowa o przerwaniach, magistrali, dostępie do pamięci lub zasilaniu, zwykle są to mechanizmy sprzętowo-systemowe, a nie interfejs programistyczny aplikacji.