Baza pytań rekrutacyjnych i wiedzy. Filtruj, szukaj i sprawdzaj swoją wiedzę.
Proces ma własną przestrzeń adresową i zasoby; wątki współdzielą adres w ramach procesu. Ma to znaczenie dla izolacji, narzutu pamięci i zarządzania współdzielonym stanem.
Context switching to przełączenie CPU między wątkiem/procesem. Jest kosztowny, bo OS zapisuje/odtwarza rejestry, przełącza mapowania pamięci i wpływa na cache/TLB.
Pamięć wirtualna daje procesowi własną przestrzeń adresową mapowaną na pamięć fizyczną. Stronicowanie przenosi strony między RAM a dyskiem, zapewniając izolację i możliwość większej pamięci niż RAM.
Preemptive pozwala OS przerywać zadania dla sprawiedliwości i responsywności. Cooperative opiera się na dobrowolnym oddawaniu CPU, co może prowadzić do głodzenia.
System call to kontrolowane wejście do jądra dla operacji uprzywilejowanych (I/O, pamięć, procesy). Separacja user/kernel chroni system przed błędnymi lub złośliwymi aplikacjami.
File descriptor to numeryczny uchwyt do otwartego pliku lub socketu. Buforowanie grupuje I/O w pamięci, zmniejsza liczbę syscalli i poprawia throughput kosztem opóźnionych zapisów.
Deadlock wymaga czterech warunków: wzajemne wykluczanie, hold-and-wait, brak preempcji i cykliczne oczekiwanie. Zapobieganie polega na złamaniu przynajmniej jednego z nich (np. kolejność locków lub timeouty).
Mutex zapewnia wyłączność, semafor kontroluje dostęp do ograniczonej liczby zasobów, a read-write lock pozwala na wielu czytelników lub jednego pisarza. Wybór zależy od wzorca dostępu i kontencji.
Sygnały to asynchroniczne powiadomienia dla procesu (np. SIGTERM, SIGINT). Proces może je obsłużyć handlerem, zignorować lub użyć domyślnej akcji, np. zakończenia.
mmap mapuje plik lub urządzenie do przestrzeni adresowej procesu, aby dostęp był jak do pamięci. Jest dobre dla dużych plików, losowego dostępu i zero-copy sharing.