Każdy proces posiada fragment kodu nazywany ______, w którym m.in. może on zmieniać ogólnodostępne zmienne, aktualizować tablice, nadpisywać pliki.
Sekcja wejściowa
Niekrytyczna sekcja
Sekcja wyjściowa
Krytyczna sekcja
Krytyczna sekcja
Rozwiązanie problemu krytycznej sekcji musi spełniać trzy z podanych wymagań:
I. Wzajemne wykluczanie
II. Progres
III. Nieograniczone oczekiwanie
IV. Ograniczone oczekiwanie
D. I, II, IV
C. I, III, IV
A. I, II, III
B. II, III, IV
D. I, II, IV
Które sformułowanie opisuje ograniczone oczekiwanie?
Kiedy wątek wysyła komunikat o chęci wejścia do swojej sekcji krytycznej, jest ograniczona ilość wątków, które mogą przed nim wejść do krytycznej sekcji, tak by wątek mógł wejść do swojej krytycznej sekcji.
Kiedy wątek wykonuje swoją krytyczną sekcji, żaden inny wątek nie może wykonywać swojej krytycznej sesji.
Jeśli żaden wątek nie wykonuje swojej krytycznej sekcji, a są wątki, które chcą wejść do swojej krytycznej sekcji, to jeden z nich z nich na pewno wejdzie do krytycznej sekcji.
Wiele procesów ma dostęp oraz możliwość zmiany danych jednocześnie.
Kiedy wątek wysyła komunikat o chęci wejścia do swojej sekcji krytycznej, jest ograniczona ilość wątków, które mogą przed nim wejść do krytycznej sekcji, tak by wątek mógł wejść do swojej krytycznej sekcji.
W jakiej kolejności dane są dodawane do kolejki (struktura danych), a w jakiej kolejności odbywa się ich pobieranie?
Dane są dodawane na koniec kolejki i pobierane z końca kolejki
Dane są dodawane na początek kolejki i pobierane z początku kolejki
Dane są dodawane na koniec kolejki, a pobierane z początku kolejki
Dane są dodawane na początek kolejki, a pobierane z końca kolejki
Dane są dodawane na koniec kolejki, a pobierane z początku kolejki
Ile maksymalnie procesów może być wykonywanych współbieżnie, aby możliwe było zapewnienie synchronizacji przy pomocy algorytmu Petersona?
2
nieskończenie wiele
4
3
2
Które sformułowanie opisuje pojęcie wzajemnego wykluczania?
Żadne z powyższych.
Kilka procesów może jednocześnie uzyskać dostęp do tych samych danych oraz je modyfikować.
Jeśli jeden proces wykonuje kod w swojej sekcji krytycznej, to w tym czasie inne procesy nie mogą wykonywać kodu w swoich sekcjach krytycznych.
Żaden proces nie może uzyskać dostępu ani modyfikować tych samych danych jednocześnie.
Jeśli jeden proces wykonuje kod w swojej sekcji krytycznej, to w tym czasie inne procesy nie mogą wykonywać kodu w swoich sekcjach krytycznych.
Która z metod klasy Thread nadaje priorytet wątkowi?
setDaemon()
setName()
setPriority()
getPriority()
setPriority()
“Wszystkie wątki są zablokowane, program nigdy się nie wykona.” - do której sytuacji odnosi się to zdanie?
zakleszczenie
wszystkie są poprawne
zagłodzenie
wielowątkowość
zakleszczenie
Która z metod klasy Thread jawnie wywołuje rozpoczęcie wątku?
run()
interrupt()
join()
start()
start()
Co to jest Semafor?
Chroniona zmienna
Kolejka procesów
Żadne z powyższych
Procedura
Chroniona zmienna
Co to jest zakleszczenie?
Zapętlenie programu
Sytuacja, w której co najmniej dwie różne akcje czekają na siebie nawzajem
Błąd zwracany przez program
Mechanizm pozwalający na zmniejszenie zużycia pamięci RAM
Sytuacja, w której co najmniej dwie różne akcje czekają na siebie nawzajem
Czym jest Mutex:
Jest blokadą, którą może uzyskać tylko jeden wątek
Jest fragmentem kodu, w którym wątki (lub procesy) odwołują się do wspólnego zasobu.
Jest strukturą danych
Jest to inny termin na określenie zakleszczenia
Jest blokadą, którą może uzyskać tylko jeden wątek
int TestAndSet(int &lock) {
int initial = lock;
lock = 1;
return initial;
}
void enter_CS(X)
{
while test-and-set(X) ;
}
void leave_CS(X)
{
X = 0;
}
W powyższym rozwiązaniu X jest lokalizacją pamięci związaną z CS i jest inicjowana na 0. Które z poniższych zdań jest prawdziwe?
Więcej niż jeden proces może wejść do sekcji krytycznej jednocześnie
Powyższe rozwiązanie problemu sekcji krytycznej jest pozbawione impasu
Procesy wchodzą do sekcji krytycznej w kolejności FIFO
Procesy wchodzą do sekcji krytycznej w kolejności losowej
Powyższe rozwiązanie problemu sekcji krytycznej jest pozbawione impasu
W jakich rodzajach procesów występuje problem synchronizacji procesów?
we wszystkich powyższych
w procesach niezależnych
w procesach systemowych
w procesach kooperacyjnych
w procesach kooperacyjnych
Ile wartości może przyjąć zmienna blokująca w rozwiązaniu TestAndSet?
3
1
4
2
2
Jaki powinien być stosunek wywołań metod lock() do metod unlock() w obiekcie klasy Lock?
Liczba wywołań metody lock() powinna zawsze być równa liczbie wywołań metody unlock()
Wywołań metody lock() powinno być więcej od unlock()
Wywołań metody unlock() powinno być więcej od lock()
żadne z powyższych
Liczba wywołań metody lock() powinna zawsze być równa liczbie wywołań metody unlock()
Kiedy jesteśmy w stanie zobaczyć listę oczekujących wątków?
Wykorzystując Lock Framework lub standardową synchronizację
Jedynie wykorzystując Lock Framework
Jedynie wykorzystując standardową synchronizację
Nigdy nie jest to możliwe
Jedynie wykorzystując Lock Framework
Czy w przypadku kodu Lock.lock (); myMethod (); Lock.unlock (); gdy metoda myMethod() natrafi na wyjątek (Exception) będzie możliwe zwolnienie blokady (Lock.unlock())?
Nie, zwolnienie blokady będzie zawsze niemożliwe w takim przypadku
To zależy od ciała metody myMethod()
Taki kod nie będzie chciał się skompilować
Tak, zawsze nastąpi zwolnienie blokady
Nie, zwolnienie blokady będzie zawsze niemożliwe w takim przypadku
Czy inny proces może użyć zablokowanej zmiennej, nienależącej do niego?
Nie, musi poczekać, aż zmienna zostanie zwolniona
Tak, w każdym dowolnym momencie
Tylko jeżeli proces aktualnie wykorzystujący zmienną na to pozwoli