Colocviu PPSD

An educational-themed graphic showcasing parallel processing concepts, Java programming, and web services, with vibrant colors and a technology backdrop.

Test Your Knowledge on Parallel Processing and Web Services

Are you ready to challenge your understanding of parallel processing, web services, and Java? This quiz is designed to assess your knowledge across a broad range of topics, from thread management to client-server architecture.

Key Features:

  • 20 engaging questions
  • Multiple-choice format
  • Focus on real-world applications
20 Questions5 MinutesCreated by CodingGuru457
Care din urmatoarele afirmatii referitoare la protocoalele legate de serviciile web sunt adevarate:
SOAP este un protocol pentru formatarea mesajelor trimise in aplicatiile client / server cu servicii web.
UDDI este un protocol care permite unei aplicatii client sa afle informatii detaliate despre metodele unui serviciu web.
WSDL permite descrierea prototipurilor metodelor puse la dispozitie de serviciile web.
SOAP este un protocol peste protocolul HTTP.
Un mesaj SOAP este trimis in cadrul unui pachet HTTP.
Care din urmatoarele afirmatii referitoare la thread-uri (fire de executie) sunt adevarate:
Un fir de executie (obiect de tip derivat din Thread) trece in starea "In executie" prin apelarea explicita a metodei run
Un fir de executie (obiect de tip derivat din Thread) trece in starea "In executie" prin apelarea explicita a metodei start.
Un fir de executie (obiect de tip derivat din Runnable) trece in starea "Gata de executie" prin apelarea explicita a metodei start.
Un fir de executie se poate sincroniza cu alt fir de executie folosind drept monitor orice obiect Java, nu neaparat de tip derivat din Thread sau Runnable.
Doua metode sincronizate ale unei clase se pot executa simultan in paralel daca sunt apelate de obiecte diferite
Care din urmatoarele afirmatii referitoare la thread-uri (fire de executie) sunt adevarate:
Metodele wait si notify se pot apela pe orice obiect Java.
Un thread se poate afla in starea "In executie” mai des decat un thread cu o prioritate mai mare.
Daca un thread T1 apeleaza metoda wait intr-o sectiune sincronizata (pe acelasi monitor), la deblocarea cu notify va concura din nou pentru preluarea monitorului si cu thread-uri care doresc (asteapta) sa intre in zona sincronizata.
Daca intr-un fir de executie F1 se apeleaza metoda join pe un fir de executie F2 atunci executia lui F2 se intrerupe pana la terminarea executiei lui F1.
Cuvantul cheie volatile aplicat unei date membre este echivalent cu a scrie metode de citire si scriere sincronizate pentru data membra.
Care din urmatoarele afirmatii referitoare la blocuri si fire de executie (threaduri) in procesarea paralela cu GPGPU sunt adevarate:
Un kernel poate fi executat folosind mai multe blocuri si un singur thread.
Doua blocuri nu pot avea acelasi ID
In cadrul unui kernel exista posibilitatea de a se folosi mecanisme de sincronizare a blocurilor
Pot exista threaduri cu acelasi ID daca acestea sunt in blocuri diferite
Este posibil ca threadurile din cadrul unui bloc sa nu execute instructiuni in paralel in acelasi timp
Se considera urmatoarea topologie de tip graf in MPI:
 
Picture1
Care este valoarea parametrului index pentru functia MPI_Graph_create:
{2,4,4,4,2,2}
Toate celelalte variante sunt incorecte
{2,6,10,14,16,18}
{2,4,6,14,16,18}
{2,14,10,6,16,18}
Se considera urmatoarea topologie de tip graf in MPI:
 
Picture2
Care este valoarea parametrului edges pentru functia MPI_Graph_create:
{0,2,3,4,1,2,0,1,3,5,1,2,4,5,1,2,1,3}.
Toate celelalte variante sunt incorecte
{1,2,0,2,3,4,0,1,3,5,1,2,4,5,2,3,1,3}.
{2,3,0,1,3,5,0,1,2,4,2,3,4,5,1,3,1,2}.
{2,3,2,3,4,5,0,1,3,5,0,1,2,4,1,2,1,3}.
Care din urmatoarele afirmatii referitoare la aplicatiile client/server sunt adevarate:
Un socket este caracterizat de un IP si un port cu exceptia unui socket de tip server.
Metoda accept returneaza o valoare doar cand aplicatia server primeste o cerere de la un client, pe socket-ul care a apelat metoda.
Daca un server care nu este blocat intr-un apel al metodei accept primeste o cerere de la un client atunci cererea nu este preluata / prelucrata.
Comunicarea intre client si server se reduce la operatii cu fluxuri de date.
Metoda accept este o metoda blocanta din punct de vedere al executiei programului in care este apelata.
Care din urmatoarele afirmatii referitoare la aplicatiile client/server multithread sunt adevarate:
Metoda accept nu este o metoda blocanta din punct de vedere al executiei programului in cazul server-elor cu suport multithread.
In aplicatiile client / server multithread la server exista cate un obiect de tip Socket pentru fiecare client conectat.
Daca un server care nu este blocat intr-un apel al metodei accept primeste o cerere de la un client atunci cererea nu este preluata / prelucrata, exceptand cazul in care serverul este multithread, caz in care cererile de la mai multi clienti nu pot fi pierdute si sunt prelucrate in paralel pe server.
Pentru a folosi fluxuri de date de tip caracter in comunicarea client / server este nevoie de un covertor explicit binar / caracter.

Fie clasa:

public class Student implements java.lang.Cloneable {

            String nume;

            String parola = “parolaImplicita”;

            // ... Alte date membre

            public Object clone() {

                        try {

                                    return super.clone();

                        } catch(CloneNotSupportedException e) {return null;}

            }

            // ...constructori...alte metode

}

Fie obiectul s1 (de tip Student) alocat la adresa ALFA, cu s1.nume alocat la BETA avand valoarea ["Popescu”], si s1.parola alocata la CSI avand valoarea [“parolaPopescu”]. Fie obiectul s2 obtinut prin clonarea obiectului s1. Referintele (adresele) continute de s2, s2.nume si s2.parola sunt:

GAMA / DELTA / CSI
Toate celelalte variante sunt incorecte.
GAMA / BETA / TETA
GAMA / DELTA / TETA
GAMA / BETA / CSI
Fie exemplul in care M numere care se aduna in paralel folosind P procesoare. M este multiplu de P. O computatie este egala cu o comunicare si dureaza o unitate de timp. Timpul secvențial de executie folosit pentru evaluarea performantelor este:
2*M
M/P
Toate celelalte raspunsuri sunt incorecte.
2*logP
2*M/P
LogP
Fie exemplul in care M (64/128/256/512/1024) numere care se aduna in paralel folosind P (2/4/8/16/32) procesoare. M este multiplu de P. O computatie este egala cu o comunicare si dureaza o unitate de timp. Care din urmatoarele afirmatii sunt adevarate:
Arhitectura cu 32 de procesoare este cea mai rapida si cea mai eficienta,
Arhitectura optima este cea cu 8 sau 16 procesoare
Arhitectura cu 32 de procesoare este cea mai rapida dar nu si cea mai eficienta.
Arhitectura cu 2 procesoare este cea mai eficienta si in unele cazuri cea mai rapida
Arhitectura optima este cea cu 4 procesoare
Care dintre urmatoarele afirmatii referitoare la fluxurile de date sunt adevarate:
System.out si System.in sunt fluxuri de date de tip tampon
Fluxurile de date de tip tampon au la baza fluxuri binare
Folosind clasa java.io.File se pot face operatii de creare/stergere/redenumire/mutare a directoarelor
Folosind fluxurile de date binare se pot copia fisiere text
Clasa java.io.File se poate folosi pentru copierea fisierelor text dar nu si pentru fisiere in format binar
Care din urmatoarele afirmatii referitoare la RMI sunt adevarate:
Crearea obiectelor de tip thread corespunzatoare unor cereri client se face implicit dar lansarea in executie a acestora se face explicit
Mai multe thread-uri (fire de executie) corespunzatoare unor cereri client se pot sincroniza in cadrul unei metode a unui obiect de tip derivat din java.rmi.UnicastRemoteObject, dar nu si pe metode diferite
RMI ofera suport multithread implicit doar la nivelul aplicatiei server nu si la nivelul aplicatiei client
Metodele unui obiect de tip derivat din java.rmi.UnicastRemoteObject pot fi apelate simultan de mai multe fire de executie corespunzatoare unor cereri de la clienti diferiti.
La nivelul aplicatiei server se poate scrie cod explicit pentru comunicare/sincronizare intre fire de executie corespunzatoare unor cereri de la clienti diferiti.
Care din urmatoarele afirmatii referitoare la RMI sunt adevarate:
Intre client si server se pot transmite obiecte de tip derivat din java.io.Externalizable.
In aplicatiile client / server RMI este necesar un server serviciu de nume, server de tip DNS
RMI este un protocol peste TCP / IP
Aplicatiile client / server RMI folosesc pentru comunicare fluxuri de date in mod explicit
Intre client si server se pot transmite obiecte de tip derivat din java.rmi.Remote.
Care din urmatoarele afirmatii referitoare la RMI sunt adevarate:
Daca la cererea unui client catre un obiect de tip derivat din java.rmi.activation.Activatable obiectul contine o referinta nula atunci el este creat de mecanismul de activare.
Un obiect de tip derivat din java.rmi.UnicastRemoteObject inregistrat la serviciul rmiregistry are o durata de viata teoretic infinita fiind disponibil permanent
Un obiect de tip derivat din java.rmi.Remote are o durata de viata teoretic infinita fiind disponibil permanent
Transferul de comportament inseamna in esenta transfer de cod
Aplicatia server poate fi scrisa doar in Java in timp ce aplicatia client se poate scrie in once limbaj

Fie clasa:

public class Student implements java.lang.Cloneable {

String nume;

String parola = "parolalmplicita";

// ... Alte date membre

public Object clone() {

try {

return super.clone();

} catch (CloneNotSupportedException e) {return null;}

}

// ... constructori ... Alte metode

}

Fie un vector de studenti vs1(de tip Student[]) alocat la adresa AVS1, vector care contine doua elemente(obiecte de tip Student) alocate la adresele AVS1_EO respectiv AVS1_E1. Fie vectorul vs2 obtinut prin clonarea vectorului vs1(vs2=(Student[]) vs1.clone();). Referintele (adresele) continute de vs2, vs2[0] si vs2[1] sunt:

AVS1 / AVS1_E0 / AVS1_E1
AVS2 / NULL / NULL
Toate celelalte variante sunt eronate.
AVS2 / AVS2_E0 / AVS2_E1
AVS2 / AVS1_E0 / AVS1_E1
Care din urmatoarele afirmatii referitoare la serializare si clonare sunt adevarate:
Clonarea se poate face prin serializare / deserializare (reconstituire).
Prin clonarea unui obiect se intelege obtinerea unui sir de octeti(biti), corespunzatori valorilor datelor membre ale obiectului, si alocati la adrese diferite decat cele initiale.
Serializarea se poate face prin clonare.
In cazul serializarii unui obiect de tip C1 (serializabil) derivat dintru-un tip C2(neserializabil, care nu implementeaza interfata Serializable)nu se poate face serializarea datelor membre din C2 daca C1 implementeaza Serializable.
In cazul serializarii unui obiect de tip C1 (serializabil) derivat dintru-un tip C2 (neserializabil, care nu implementeaza interfata Serializable) se poate face serializarea datelor membre din C2 daca C1 implementeaza Externalizable.
Care din urmatoarele afirmatii referitoare la servicii web sunt adevarate:
Intr-o aplicatie client / server cu servicii web de tip REST clientul nu trebuie sa cunoasca protocolul SOAP ci doar serverul.
Intr-o aplicatie client / server cu servicii web clasice (non REST) clientul si serverul trebuie sa cunoasca protocolul SOAP.
Aplicatie client / server care foloseste servicii web poate fi sau nu omogena din punct de vedere al limbajelor de implementare.
Aplicatie Android poate fi client pentru un serviciu web, ca orice alt program Java, daca respecta protocolul de comunicare.
Un browser poate fi client pentru un serviciu web de tip REST.

Fie clasa:

public class Student implements java.io.Serializable {

            String nume;

            transient String parola = “parolaImplicita”;

            //...alte date membre

            //...constructori...alte metode

}

 

Fie obiectul s1(de tip Student) alocat la adresa ALFA cu s1.nume alocat la BETA avand valoarea ["Popescu”], si s1.parola alocata la GAMA avand valoarea ["parolaPopescu”]. Se serializeaza obiectul s1 si apoi se deserializeaza (restaureaza) in obiectul s2. Referintele(adresele) continute de s2, s2.nume si s2.parola sunt:

DELTA / BETA / CSI
DELTA / TETA / CSI
DELTA / BETA / NULL
Toate celelalte raspunsuri sunt eronate.
DELTA / BETA / GAMA
Care din urmatoarele afirmatii referitoare la procesare paralela cu GPGPU sunt adevarate:
Secventa pentru executarea unei functii kernel este: alocare memorie HOST si DEVICE, copiere date din memorie HOST in memorie DEVICE, apel functie kernel, copiere date din memorie DEVICE in memorie HOST, eliberare memorie DEVICE si HOST.
Functie kernel este apelata cu sintaxa: numeFunctieKernel< <numarFireDeExecutie, numarBlocuri > > (parametri).
Functie kernel poate accesa date din memoria DEVICE-ului dar si din memoria HOST-ului.
Un kernel este o functie apelata de pe HOST (calculator gazda) si executata pe DEVICE (GPU).
Functie kernel este precedata de adnotarea _global_ sau _device_.
{"name":"Colocviu PPSD", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Are you ready to challenge your understanding of parallel processing, web services, and Java? This quiz is designed to assess your knowledge across a broad range of topics, from thread management to client-server architecture.Key Features:20 engaging questionsMultiple-choice formatFocus on real-world applications","img":"https:/images/course8.png"}
Powered by: Quiz Maker