SO DZIEN 3

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/27

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 1:37 PM on 6/22/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

28 Terms

1
New cards
Co oznacza pojęcie "Scan-EDF" w szeregowaniu dysków?
Algorytm dla dysków HDD w systemach czasu rzeczywistego. Łączy zasadę techniki SCAN (głowica porusza się w jednym kierunku, zbierając zadania) z kryterium EDF (priorytet mają żądania z najbliższym terminem ostatecznym – deadline).
2
New cards
Wymień 2 czynności, jakie wykonuje operacja C.wait() wewnątrz monitora.
Automatycznie zwalnia blokadę wyłącznego dostępu (mutex) do monitora oraz zawiesza wątek i umieszcza go w kolejce procesów oczekujących powiązanej ze zmienną warunkową C.
3
New cards
Jakie są ograniczenia obiektu w Javie 4 traktowanego jako monitor?
Każdy kopiowany pojedynczy obiekt w języku Java 4 posiada wbudowaną w strukturę tylko jedną, anonimową zmienną warunkową (obsługiwaną przez instrukcje wait() i notify()).
4
New cards
Korzystając z biblioteki POSIX Threads, implementuję monitor z 3 zmiennymi warunkowymi. Jakich mechanizmów użyjemy?
Dokładnie: 0 zmiennych typu sem_t, 1 zmiennej typu pthread_mutex_t oraz 3 zmiennych typu pthread_cond_t.
5
New cards
Dlaczego w praktycznych realizacjach stosuje się stronicowanie 2- lub 3-poziomowe?
Aby drastycznie zmniejszyć rozmiar pamięci RAM zajmowanej przez same tablice stron. Pozwala to uniknąć tworzenia i przechowywania pod-tablic dla nieużywanych, pustych obszarów wielkiej pamięci wirtualnej procesu.
6
New cards
Różnica między macierzą RAID 4 a RAID 5?
RAID 4: Wszystkie bloki parzystości są zapisywane na jednym, dedykowanym do tego dysku fizycznym, co tworzy wąskie gardło przy zapisach. RAID 5: Bloki parzystości są rozproszone cyklicznie po wszystkich dyskach macierzy.
7
New cards
Co to jest dostęp surowy do dysku (raw access), kiedy on jest wykorzystywany? Podaj jeden przykład.
Jest to całkowite pominięcie struktur systemu plików oraz buforów jądra w celu bezpośredniego zapisu i odczytu fizycznych sektorów dysku. Wykorzystywany m.in. przez systemy baz danych (np. Oracle) dla maksymalizacji wydajności.
8
New cards
Podaj przykład ataku DoS (albo DDoS) wykorzystującego podatność sprzętową albo podatność programową.
Sprzętowa: Atak Rowhammer powodujący nieautoryzowaną zmianę bitów w sąsiednich komórkach pamięci RAM przez ich szybkie, wielokrotne odczytywanie. Programowa: Ping of Death – wysłanie zniekształconego, zbyt dużego pakietu sieciowego, powodującego przepełnienie bufora i crash jądra.
9
New cards
Podaj przykład współczesnego systemu komputerowego wykorzystywanego powszechnie, który wykorzystuje planowanie długoterminowe.
Klaster obliczeniowy typu HPC (High-Performance Computing) działający jako system wsadowy, w którym zewnętrzny system kolejkowy decyduje o dopuszczeniu i fizycznym uruchomieniu dużych zadań naukowych.
10
New cards
Co to jest klaster? Podaj definicję.
Zbiór wielu niezależnych, kompletnych komputerów połączonych bardzo szybką siecią lokalną, które ściśle ze sobą współpracują i dają użytkownikowi wrażenie pracy z jedną, potężną maszyną.
11
New cards
Omów różnice pomiędzy sieciowym systemem operacyjnym a rozproszonym systemem operacyjnym.
Sieciowy: Użytkownicy są w pełni świadomi istnienia wielu maszyn i logują się na nie w sposób jawny. Rozproszony: Architektura wielu maszyn jest ukryta
12
New cards
Jaka jest różnica pomiędzy synchroniczną a asynchroniczną operacją wejścia-wyjścia?
Synchroniczna: Proces zlecający operację jest całkowicie wstrzymywany (usypiany) przez system na czas trwania fizycznego transferu danych. Asynchroniczna: System zwraca kontrolę do programu natychmiast po inicjalizacji operacji, pozwalając procesowi na dalsze działanie równolegle z transferem sprzętowym.
13
New cards
Który wątek uruchomi się pierwszy po operacji wybudzenia (semantyka Mesa lub Hoare'a)?
Semantyka Hoare'a: Wątek wybudzony przez signal natychmiast przejmuje monitor i procesor, a wątek budzący zostaje zawieszony. Semantyka Mesa (POSIX/Java): Wątek budzący kontynuuje pracę i kończy zadanie. Wątek wybudzony trafia do zwykłej kolejki i ruszy dopiero, gdy monitor stanie się wolny.
14
New cards
Jakie są argumenty funkcji pthread_cond_wait?
Przyjmuje dwa wskaźniki: wskaźnik na zmienną warunkową (pthread_cond_t *cond) oraz wskaźnik na muteks chroniący sekcję krytyczną monitoru (pthread_mutex_t *mutex).
15
New cards
Co nie jest zmienną warunkową w monitorze? / Czym się różni?
Zmienna warunkowa w monitorze nie przechowuje żadnej wartości ani stanu (nie ma wartości typu 0, 1 czy true/false). Jest ona wyłącznie sformalizowaną pod kątem jądra kolejką procesów uśpionych.
16
New cards
How działa postarzanie (aging) w algorytmie NFU (not frequently used)?
Przy każdym przerwaniu zegarowym licznik użycia strony jest przesuwany bitowo w prawo o jedną pozycję, a na jego najwyższy bit dopisywana jest aktualna wartość bitu odniesienia R z tablicy stron.
17
New cards
Jak działa strategia prealokacji bloków dyskowych i w przypadku jakich typów pamięci masowej się sprawdza?
Polega na rezerwowaniu dla tworzonego pliku ciągu sąsiadujących, ciągłych bloków na dysku z wyprzedzeniem. Sprawdza się idealnie na tradycyjnych dyskach HDD, ponieważ minimalizuje ruchy głowicy i zapobiega fragmentacji plików.
18
New cards
Wyjaśnij, na czym polega problem utrzymywania spójności pamięci w systemie, gdzie każdy procesor ma własną pamięć podręczną (cache).
Problem polega na konieczności zapewnienia sprzętowego mechanizmu (np. protokołu MESI), który zagwarantuje, że modyfikacja zmiennej w cache jednego rdzenia spowoduje natychmiastowe unieważnienie lub zaktualizowanie kopii tej zmiennej w pamięciach cache pozostałych rdzeni.
19
New cards
Dlaczego znany z klasycznego UNIXa model synchronizacji oparty o niewywłaszczalne jądro i maskowanie przerwań nie sprawdzi się w systemach wieloprocesowych?
Ponieważ maskowanie przerwań działa wyłącznie lokalnie na wybranym rdzeniu. Pozostałe procesory (rdzenie) mogą w tym samym momencie całkowicie niezależnie wejść do jądra i modyfikować te same współdzielone struktury danych jądra.
20
New cards
Dlaczego system uniksowy zgodny ze standardem POSIX nie jest systemem klasy hard real-time?
Jest to system klasy soft real-time, ponieważ posiada duży i niesprecyzowany czas reakcji. Opóźnienia wynikają m.in. z konieczności sprowadzania stron procesu z dysku (pamięć wirtualna) oraz z niewywłaszczalności niektórych sekcji kodu jądra.
21
New cards
Podaj warunek konieczny wykonalności szeregowania w systemie czasu rzeczywistego, wyjaśniając dane symbole.
Suma stopni wykorzystania procesora: $\sum u \le 1$ Gdzie $U$ to stopień wykorzystania procesora przez pojedyncze zadanie ($U = \frac{t}{p}$), $t$ to czas potrzebny procesowi na obsługę zdarzenia, a $p$ to okres (czas pomiędzy kolejnymi zdarzeniami).
22
New cards
Jakiej struktury danych użyłbyś, aby sprawdzić, czy blok dyskowy o numerze i z dysku o numerze J jest w pamięci podręcznej dysku?
Tablicy mieszającej (hash table), ponieważ zapewnia ona najszybszy czas wyszukiwania bloku w pamięci, bliski czasowi stałemu $O(1)$.
23
New cards
Dlaczego system operacyjny z niewywłaszczalnym jądrem ma bardzo wysoki czas reakcji na zdarzenie?
Ponieważ proces wykonujący się w trybie jądra nie może zostać przerwany. Każdy wysokopriorytetowy proces obsługi zdarzenia musi bezczynnie czekać, aż aktualny proces dobrowolnie zrzeknie się procesora (uśpi się) lub powróci do trybu użytkownika.
24
New cards
Dlaczego ciężko zbudować procesor o zegarze 30 GHz?
Głównymi barierami są gigantyczne ilości generowanego ciepła, których nie da się odprowadzić tradycyjnymi metodami, oraz fizyczna prędkość rozchodzenia się sygnału w krzemie, ograniczająca dystans, jaki impuls może przebyć w czasie jednego cyklu.
25
New cards
Dlaczego wprowadzony przez producentów procesorów bit execute disable (NX/XD), nie likwiduje wszystkich problemów związanych z przepełnieniem bufora?
Nie zapobiega atakom typu return-to-libc lub ROP (Return-Oriented Programming). W tych atakach napastnik nie wprowadza nowego kodu na stos, lecz manipuluje adresem powrotu tak, aby wywołać legalny, istniejący już w pamięci kod bibliotek systemowych.
26
New cards
Jaka jest najważniejsza różnica pomiędzy robakiem (ang. worm) a wirusem?
Wirus potrzebuje pliku-nosiciela (np. programu wykonywalnego), aby zainfekować system i rozprzestrzeniać się poprzez doklejanie swojego kodu. Robak jest samodzielnym programem, który potrafi replikować się automatycznie i rozprzestrzeniać bezpośrednio przez sieci komputerowe bez ingerencji użytkownika czy modyfikacji innych plików.
27
New cards
Jaka jest różnica pomiędzy blokującą a nieblokującą operacją odbioru komunikatu (ang. receive)?
Operacja blokująca zawiesza wykonanie procesu wywołującego do momentu, aż w kanale komunikacyjnym faktycznie pojawi się komunikat gotowy do pobrania. Operacja nieblokująca zwraca kontrolę natychmiast – jeśli komunikat jest dostępny, pobiera go, a jeśli go brak, zwraca kod błędu, nie wstrzymując działania procesu.
28
New cards
W systemie jądra 2.2.x lub późniejszym, w jaki sposób zsynchronizowałbyś dostęp do struktury danych wykorzystującej listę z dowiązaniami, do której dostęp ma handler obsługi read/write?
Dostęp należy zsynchronizować za pomocą blokad spin-lock dostosowanych do obsługi przerwaniowej (np. spin_lock_irqsave), ponieważ wyłączenie lokalnych przerwań zabezpiecza jądro przed reetransmisją i zakleszczeniem ze strony handlera przerwaniowego na tym samym procesorze.