ERASED TEST, YOU MAY BE INTERESTED ON ORII 0 2024
COMMENTS | STATISTICS | RECORDS |
---|
TAKE THE TEST
Title of test:
ORII 0 2024 Description: seven letters Author: INFoo Other tests from this author Creation Date: 19/01/2025 Category: Others Number of questions: 39 |
Share the Test:
New Comment
No comments about this test.
Content:
Co można powiedzieć o semaforze s ze zbiorem oczekujących procesów? Nie ma zdefiniowanej wartości minimalnej, którą może przyjąć. Zawiera wyłącznie zbiór oczekujących procesów, nie ma wartości. Wykonanie operacji V(s) powoduje wznowienie wykonywania wszystkich procesów, które są na nim zatrzymane. Jego użycie może doprowadzić do zagłodzenia procesu. Które z poniższych stwierdzeń jest prawdziwe w odniesieniu do MPI? Wszystkie odpowiedzi są prawidłowe. Standard przesyłania danych między procesami wykonywanymi współbieżnie w modelu z pamięcią rozproszoną. Jedyną formą komunikacji między procesami jest przesyłanie komunikatów, brak jest pamięci współdzielonej. Standard przesyłania danych między procesami, które mogą być wykonywane współbieżnie na różnych komputerach. Jakie założenie jest przyjmowane w prawie Amdahla? Stały rozmiar rozwiązywanego zadania. Stała liczba procesorów, przy zmiennym rozmiarze rozwiązywanego zadania Liczba procesorów większa niż rozmiar rozwiązywanego zadania. Liczba procesorów będąca potęgą liczby 2. Na czym polega przeplatanie wykonywania operacji procesów? Na przydzieleniu procesów do różnych procesorów. Jako pierwsze wykonywane są wszystkie operacje z pierwszego procesu, następnie z drugiego, itd., aż do wykonania wszystkich operacji. Na łączeniu dwóch procesów w jeden. Na przydzieleniu kilku procesów do jednego procesora. Procesor w danej chwili wykonuje operację wyłącznie z jednego procesu, inne procesy w tym czasie pozostają zawieszone. Następnie wykonuje operację z innego procesu, itd. Na dynamicznym tworzeniu nowych procesów w zależności od liczby procesorów. Jak poprawnie utworzyć obiekt synchronizacyjny condition w języku Java? Lock lock = new ReentrantLock(); Condition c = lock.newCondition(); Condition c = new Condition(); Condition c = new Condition(true); Condition c = null; . Na jakiej podstawie dokonywany jest podział architektur komputerów zaproponowany przez Michaela J. Flynna (taksonomia Flynna)? Na podstawie liczby dostępnych procesorów, podział na: komputery sekwencyjne, super-komputery i hiper-komputery. Na podstawie szybkości przesyłania danych między procesorami. Na podstawie sposobu dostępu do pamięci przez procesory Na podstawie strumienia instrukcji, który przetwarza strumień danych. Strumień instrukcji oraz strumień danych może być pojedynczy lub wielokrotny. Dany jest fragment kodu wykorzystujący OpenMP. omp_set_num_threads(5); #pragma omp parallel num_threads(3) { Operacja_1(); } #pragma omp parallel { Operacja_2(); } Jaki będzie efekt wykonania powyższego kodu? Operacja_1() zostanie wykonana przez 5 wątków. Operacja_2() zostanie wykonana przez 5 wątków. Operacja_1() zostanie wykonana przez 3 wątki. Operacja_2() zostanie wykonana przez 5 wątków. Operacja_1() zostanie wykonana przez 3 wątki. Operacja_2() zostanie wykonana wyłącznie przez jeden wątek (główny wątek programu). Operacja_1() zostanie wykonana przez 3 wątki. Operacja_2() zostanie wykonana przez 3 wątki. W jaki sposób programista może przypisać wykonanie określonego wątku przez dany rdzeń GPU w architekturze CUDA? Należy zdefiniować odpowiednią zmienną środowiskową. Nie ma możliwości przypisania danego wątku do konkretnego rdzenia GPU. Należy zdefiniować wartość zmiennej threadIdx podczas uruchomienia wątku. Należy użyć funkcję cudaSetDevice. Zaznacz prawidłową odpowiedź dotyczącą funkcji semop z systemu UNIX. Funkcja umożliwia wykonać operacje semaforowe P i V na jednym lub więcej semaforach. Funkcja umożliwia usunąć dany semafor. Funkcja umożliwia utworzyć nowy semafor. Funkcja umożliwia pobrać wartość danego semafora. Dany jest fragment opisujący współbieżne wykonanie dwóch procesów: int x = 0; cobegin { // proces 1 x = x + 1; // proces 2 x = x + 1; } 0 Nie można jej określić 1 2. Co jest cechą modelu sieciowego? Połączenie grupy procesorów siecią połączeń, wymiana danych odbywa się przez pamięć współdzieloną. Połączenie bloków pamięci siecią połączeń. Połączenie grupy procesorów siecią połączeń, wymiana danych odbywa się za pomocą przesyłania komunikatów. Połączenie grupy procesorów siecią połączeń, gdzie liczba procesorów jest równa potędze liczby 2. Co jest cechą modelu PRAM? Model, w którym n procesorów ma dostęp do wspólnego obszaru pamięci (pamięć wspólna). Wszystkie odpowiedzi są prawidłowe. Model, w którym w pamięci RAM jest przechowywany wyłącznie program, a dane przechowywane są w pamięci dyskowej. Model, w którym jedyną formą wymiany danych między procesorami jest przesyłanie komunikatów przez sieć. Co wyraża jednostka FLOPS? Przepustowość magistrali systemowej łączącej GPU z CPU. Szybkość odświeżania ekranu. Szybkość odczytu danych z pamięci operacyjnej. Moc obliczeniową komputera. Zaznacz prawidłową odpowiedź dotyczącą funkcji msgrcv z systemu UNIX. Funkcja odbiera wiadomość od procesu nadawcy. Funkcja umożliwia pobranie jednej wiadomości z kolejki komunikatów. Funkcja nasłuchuje, czy jakiś proces w grupie rozpoczął transmisję danych, a jeśli tak, to odbiera dane tego procesu. Funkcja obsługuje zgłoszenia od klientów wywołujących procedury zdalne z użyciem RPC. Jak można opisać monitor? Obiekt, który zawiera w sobie zasoby współdzielone oraz udostępnia metody (funkcje) operujące na tych zasobach. Obiekt, który zawiera wyłącznie licznik dostępnych zasobów. Obiekt, który zawiera aktualną wartość (wartość nie może być ujemna) oraz kolejkę oczekujących procesów. Obiekt, który zawiera wyłącznie kolejkę oczekujących procesów. Jaką cechę posiada zmienna warunku? Może na niej oczekiwać wyłącznie jeden proces. W momencie utworzenia ma stan zablokowany. Zawiera wyłącznie kolejkę zatrzymanych procesów. Może przyjmować wyłącznie wartości 0 lub 1. Dany jest fragment programu wykorzystujący wielowątkowość języka C++11 (funkcja f() jest wykonywana przez wątki): mutex m; condition_variable cond; int n; // ... void f() { unique_lock<mutex> ul(m); cond.wait(ul); // ... } Wykonanie operacji wait dla obiektu cond spowoduje wznowienie wykonywania wszystkich wątków, które oczekują na obiekcie cond. Wykonanie operacji wait dla obiektu cond spowoduje wstrzymanie wykonywania wątku, jeżeli obiekt cond jest w stanie zablokowany. Wykonanie operacji wait dla obiektu cond spowoduje bezwarunkowe wstrzymanie wykonywania wątku oraz odblokowanie mutexu m. Wykonanie operacji wait dla obiektu cond spowoduje wstrzymanie wykonywania wątku, jeżeli obiekt cond ma wartość równą 0. Dany jest semafor ogólny S o wartości początkowej równej 0. Które z poniższych stwierdzeń jest prawdziwe? Wykonanie operacji P(S) przez proces spowoduje zatrzymanie jego wykonywania. Wykonanie operacji P(S) przez proces spowoduje zmniejszenie wartości semafora o 1. Wykonanie operacji V(S) przez proces spowoduje zatrzymanie jego wykonywania. Wykonanie operacji V(S) przez proces doprowadzi do wzajemnej blokady. Który z poniższych parametrów nie jest parametrem oceny topologii sieci połączeń w modelu sieciowym? Średnica sieci Pole sieci Maksymalny stopień wierzchołka Koszt. Jakie jest działanie operacji V(s) dla semafora s? Jeżeli są zatrzymane procesy na semaforze s, to wznawia wykonywanie pierwszego z nich, w przeciwnym przypadku zwiększa wartość semafora o 1. Operacja powoduje wznowienie wykonywania wszystkich procesów zatrzymanych na semaforze s. Operacja zwraca liczbę wstrzymanych procesów na semaforze s. Operacja ta nadaje wartość początkową semaforowi s. Jakie jest znaczenie kwalifikatora __global__ umieszczonego w nagłówku funkcji w CUDA API? Oznacza funkcję wykonywaną przez GPU, wywoływaną tylko przez CPU. Oznacza funkcję, która odwołuje się wyłącznie do zmiennych globalnych. Oznacza funkcję, wewnątrz której alokowana jest pamięć globalna. Oznacza funkcję, która jest wykonywana w pamięci globalnej procesu. Jak można opisać mutex? Obiekt synchronizacyjny, który zawiera wyłącznie licznik dostępnych zasobów. Obiekt synchronizacyjny, który zawiera wyłącznie kolejkę oczekujących procesów. Obiekt synchronizacyjny, który zawiera aktualny stan (odblokowany, zablokowany) oraz kolejkę oczekujących procesów. Obiekt synchronizacyjny, który zawiera w sobie zasoby współdzielone oraz udostępnia metody (funkcje) operujące na tych zasobach. Dany jest fragment programu, w którym użyto elementów standardu OpenMP: #pragma omp parallel sections { #pragma omp section Operacja_1(); #pragma omp section Operacja_2(); #pragma omp section Operacja_3(); } Wszystkie trzy operacje: Operacja_1(), Operacja_2(), Operacja_3(), muszą być wykonane przez wątek główny programu. Fragment programu jest błędny, ponieważ nie zdefiniowano liczby wątków, które mają go wykonać. Przedstawiona konstrukcja zawiera na końcu domyślną barierę synchronizacyjną. Wymienione operacje: Operacja_1(), Operacja_2(), Operacja_3(), muszą być wykonane sekwencyjnie w takiej kolejności, w jakiej zostały one zapisane w tekście programu. W programie w języku Java zamieszczono następującą instrukcję: AtomicInteger x = new AtomicInteger(0); Podczas modyfikacji wartości x należy ją chronić obiektem synchronizacyjnym, w przeciwnym przypadku efekt wykonania takiej operacji jest nieokreślony. Podczas modyfikacji wartości x nie ma konieczności chronienia jej obiektem synchronizacyjnym. Zmienna nie może przyjmować wartości mniejszej niż 0. Przy próbie jednoczesnej modyfikacji wartości x zostanie nadana wartość 0. Jaki obiekt synchronizacyjny używany jest wewnątrz monitora do synchronizacji procesów? Semafory Bariery synchronizacyjne Zmienne warunku Semafory binarn. Który z modeli, według taksonomii Flynna, jest komputerem wieloprocesorowym? MIMD Żaden z wymienionych SISD SIMD. Dany jest fragment kodu wykorzystujący OpenMP: int a = 10; int b = 10; #pragma omp parallel for num_threads(3) lastprivate(a) firstprivate(b) for (int i = 0; i < 15; ++i) { a = i; b = i; } printf("a = %d, b = %d\n", a, b); a = 14, b = 14 a = 10, b = 10 Wynik wykonania jest nieokreślony, ponieważ dochodzi do jednoczesnej modyfikacji zmiennych a i b przez wątki. a = 14, b = 10. Jakie jest działanie operacji lock(m) wykonywanej dla mutexu m? Wyłącznie zmienia stan mutexu m na zablokowany. Zmienia stan mutexu m na przeciwny. Jeżeli mutex m znajduje się w stanie zablokowany, to wstrzymuje wykonanie procesu i umieszcza go w kolejce skojarzonej z mutexem. W przeciwnym przypadku (mutex znajduje się w stanie odblokowany) zmienia stan mutexu na zablokowany, a wykonywanie procesu nie jest wstrzymywane. Zwraca wartość true, jeżeli mutex m aktualnie znajduje się w stanie zablokowany. Jeżeli mutex m jest w stanie odblokowany, to wstrzymuje wykonanie procesu. Jaki jest efekt umieszczenia w programie w języku Java następującej instrukcji? Semaphore s = new Semaphore(n, true); Utworzenie semafora s o wartości początkowej równej n. Procesy zablokowane na semaforze będą zwalniane w trybie FIFO. Utworzenie semafora o wartości początkowej równej true, na którym czas oczekiwania jest maksymalnie równy n milisekund. Utworzenie semafora, który nie może przyjmować wartości mniejszych niż n. Utworzenie tablicy, która zawiera n semaforów. Wartościami początkowymi semaforów jest true. Co można powiedzieć na temat funkcji MPI_Send? Umożliwia wysłanie danych do jednego procesu. Służy do testowania czy istnieje możliwość wysłania danych. Umożliwia wysłanie danych do grupy procesów tej samej wartości. Służy do testowania, czy wszystkie procesy w grupie zainicjowały transmisję danych. Co zostanie wypisane na ekranie w wyniku wykonania powyższego kodu? int tab[24]; #pragma omp parallel for schedule(static, 3) num_threads(4) for (int i = 0; i < 24; ++i) tab[i] = omp_get_thread_num(); for (int i = 0; i < 24; ++i) printf("%d, ", tab[i]); 0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3 0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3 0,0,0,1,1,1,2,2,2,3,3,3,0,0,0,1,1,1,2,2,2,3,3,3 . Zaznacz prawidłową odpowiedź dotyczącą funkcji ftok z systemu UNIX. Funkcja wywoływana w różnych procesach tego samego właściciela zawsze zwraca tę samą wartość (klucz). Funkcja nigdy nie zwróci w dwóch różnych procesach takiej samej wartości (klucza). Każdorazowe wywołanie funkcji z takimi parametrami powoduje zwrócenie tej samej wartości (klucza). Funkcja umożliwia sprawdzenie, czy w systemowej bazie kluczy pozostały wolne wartości. Jaki jest efekt wykonania operacji wait(c) dla zmiennej warunku c? Zwrócenie liczby oczekujących procesów na zmiennej warunku c Zatrzymanie wykonywania procesu na liczbę milisekund zdefiniowaną dla zmiennej warunku c Zatrzymanie wykonywania procesu i umieszczenie go w kolejce skojarzonej ze zmienną warunku c Jeżeli zmienna warunku c jest w stanie zablokowanym, to zatrzymanie procesu, w przeciwnym przypadku jest operacją pustą. Co można powiedzieć na temat funkcji kodu jądra ( kernel ) w CUDA API? Jako wynik musi zwracać wartość typu int. Jest funkcją bezparametrową. Nie można w jej wnętrzu deklarować żadnych zmiennych. Nie może być funkcją rekurencyjną. Jak można opisać semafor? Obiekt synchronizacyjny, który zawiera wyłącznie licznik dostępnych zasobów. Obiekt synchronizacyjny, który zawiera wyłącznie kolejkę oczekujących procesów. Obiekt synchronizacyjny, który zawiera aktualną wartość (wartość nie może być ujemna) oraz kolejkę oczekujących procesów. Obiekt synchronizacyjny, który zawiera w sobie zasoby współdzielone oraz udostępnia metody (funkcje) operujące na tych zasobach. Jakie założenie przyjmowane jest w prawie Gustafsona i Barsisa? Liczba dostępnych procesorów równa jest rozmiarowi rozwiązywanego zadania. Liczba dostępnych procesorów jest równa potędze liczby 2. Utrzymanie stałego czasu obliczeń przez zwiększenie rozmiaru rozwiązywanego zadania. Rozmiar rozwiązywanego zadania jest równy potędze liczby 2. Które z poniższych stwierdzeń jest prawdziwe w odniesieniu do wzajemnej blokady (zakleszczenia)? Wzajemna blokada każdorazowo wystąpi w sytuacji, kiedy proces w celu dalszego wykonywania próbuje zająć zasób współdzielony. Wzajemna blokada może wystąpić jeżeli proces blokuje jeden z zasobów, a do dalszego wykonywania konieczne jest zablokowanie innego zasobu. Wzajemna blokada zawsze wystąpi w przypadku, kiedy liczba dostępnych zasobów jest mniejsza od liczby procesów. Wzajemna blokada nigdy nie wystąpi jeżeli do ochrony zasobów użyte zostały muteksy. Dany jest fragment programu wykorzystujący wielowątkowość języka C++11: atomic<int> x = 1; void f(int id) { x += id; } int main() { vector<thread> thr; for (int i = 0; i < 10; i++) thr.push_back(thread(f, i)); for (auto& t : thr) t.join(); cout << x << endl; return 0; } Wszystkie odpowiedzi są błędne. Fragment programu jest błędny ponieważ wątki nie mogą odwoływać się do zmiennych globalnych. Po zakończeniu wykonywania wątków wartość zmiennej x będzie równa 1, ponieważ każdy wątek posiada własną kopię zmiennej x, którą modyfikuje. Zmienna x musi być chroniona za pomocą mutexu w czasie jej modyfikacji, w przeciwnym przypadku jej wartość po zakończeniu wykonywania wątków będzie nieokreślona. Jaka jest optymalna wartość parametru E(p,n) = S(p,n)/p określającego efektywność wykorzystania procesorów, gdzie: p- liczba procesorów n- rozmiar problemu S(p,n)- przyspieszenie algorytmu równoległego p*n n p 1. |
Report abuse