Font size
WorksheetsDistributed Systems - First Partial
Total questions: 62
Worksheet time: 1hrs 26mins
Qual è la definizione corretta di middleware?
È uno strato software che virtualizza l'hardware e fornisce servizi alle applicazioni sopra di esso
È uno strato software che si trova sopra i sistemi operativi di rete e fornisce servizi alle applicazioni sopra di esso
È uno strato software che si trova sopra il sistema operativo di rete per simulare un sistema operativo distribuito
È uno strato software che sostituisce i sistemi operativi di rete e fornisce servizi alle applicazioni sopra di esso
Un vantaggio della virtualizzazione è che:
L'integrità del sistema è garantita anche di fronte a guasti software
Migliora l'affidabilità del software installato
L'accesso a tutte le periferiche collegate al sistema è garantito
Migliora le prestazioni
Il concetto di trasparenza nei sistemi distribuiti significa che:
I meccanismi di base devono essere utilizzati per accedere alle funzionalità desiderate
È possibile accedere a funzionalità di livello inferiore rispetto alle funzionalità utilizzate
Non è necessario conoscere i dettagli di come sono implementate le funzionalità utilizzate
I dettagli di come sono implementate le funzionalità utilizzate sono visibili
Il termine Trasparenza di Fallimento indica che...
L'utente può riconoscere un fallimento parziale e rimediare
Il sistema operativo può riavviare un server dopo un fallimento
Un sistema può eseguire un abort per tornare a uno stato consistente dopo un fallimento
Un sistema può completare un compito anche in presenza di fallimenti parziali
Il termine Trasparenza di Migrazione/Mobilità indica che...
È possibile spostare il software su macchine diverse senza modifiche
Il movimento di dati e/o software comporta modifiche nei programmi utente
Il movimento di dati e/o software non comporta modifiche nei programmi utente
È possibile accedere a dati e/o software da qualsiasi punto della rete
Il termine Trasparenza di Persistenza indica che...
È possibile memorizzare dati su rete
È possibile memorizzare dati su disco
Una risorsa (software o dati) è mantenuta in memoria
Una risorsa (software o dati) può essere in memoria o su disco
Il termine Trasparenza di Accesso indica che:
In un sistema distribuito in presenza di 'omission failure':
Un server accetta richieste ma non riesce a ricevere o elaborare quella richiesta
Il server fallisce perché il servlet non funziona come dovrebbe
Il server non riesce a elaborare la richiesta o non la riceve
Quali vantaggi o svantaggi comporta un'organizzazione dei messaggi a lunghezza fissa?
Semplificazione della gestione dei buffer
Velocità di trasmissione inferiore
Limitazione sulla lunghezza di invio
Velocità di trasmissione superiore
Quale di queste affermazioni è falsa? Un sistema distribuito...
Fallisce quando un componente fallisce
Non fornisce condivisione della memoria
È composto da componenti autonomi
Sincronizza le azioni tramite messaggi espliciti
Quale di queste affermazioni è falsa? Un sistema distribuito...
Sincronizza le azioni attraverso un pianificatore condiviso
Non fallisce quando un componente fallisce
Non fornisce condivisione della memoria
È composto da componenti autonomi
Quale di queste affermazioni descrive meglio i servizi di un sistema a strati?
Ogni strato implementa gli stessi servizi con proprietà diverse (ad es. sicurezza, affidabilità)
Gli strati inferiori sono più specifici per le applicazioni
Qual è la relazione tra i livelli in un sistema a strati?
Ogni livello implementa gli stessi servizi con proprietà diverse (ad es. sicurezza, affidabilità)
I livelli inferiori sono più specifici per le applicazioni, i livelli superiori sono più generici
I livelli superiori sono più specifici per le applicazioni, i livelli inferiori sono più generici
Ogni livello implementa servizi che non sono correlati tra loro
In relazione ai quattro problemi della SD nella comunicazione TCP, la semantica...
È definita dal protocollo di rete utilizzato
Non è definita
È normalmente UTF-8
È definita dal sistema operativo
È essenziale indicare la dimensione del payload nella risposta nella comunicazione dei messaggi?
No se il payload ha una codifica (ad es. UTF-8) e un formato noti
Sì, se la comunicazione avviene tramite stream di byte
No perché posso sempre usare un carattere terminatore (ad es. CRLF)
Sì, perché non è mai possibile usare un carattere terminatore (ad es. CRLF)
In relazione ai quattro problemi dei Sistemi Distribuiti, nei sistemi socket, l'identificazione delle risorse (naming)?
Dipende dal linguaggio di programmazione utilizzato
Utilizza servizi di rete (ad es., DHCP)
Consente l'uso di nomi logici risolti da un DNS (sistema dei nomi di dominio)
Non è risolto poiché richiede di conoscere l'indirizzo dei componenti
La realizzazione di un server basato su socket TCP/IP può essere critica. Quale delle seguenti affermazioni è FALSA?
La connessione potrebbe non essere chiusa correttamente causando problemi di blocco del servizio
Inviare flussi di byte rende il tempo di ricezione del messaggio arbitrario
La necessità di una connessione per cliente può causare ritardi nel servizio
Inviare flussi di byte limita il tipo di messaggi da inviare
La trasmissione di messaggi tramite socket in Java avviene attraverso:
Perché è necessario utilizzare 'SELECT' per creare server concorrenti?
Perché le operazioni read() e write() sono bloccanti
Perché consente l'uso di più canali di comunicazione
Perché è possibile selezionare il canale da cui leggere e/o scrivere
Perché non è più necessario eseguire 'accept' per le connessioni
Un server multithread è connesso a 3 processi client. Quanti socket sono aperti per il processo che esegue il server?
2
1
3
Più di 3
Quale affermazione è VERA? L'invocazione da parte di un server di un accept su un socket s1 determina:
L'associazione di una porta al socket s1 per ricevere dal client
La lettura del primo messaggio di richiesta dal client dal socket s1
Abilitare il socket s1 a comunicare con il client
La creazione di un nuovo socket s2 per comunicare con il client
Un mittente esegue l'istruzione (in pseudo codice): write (socket, buffer, N) per scrivere i N byte contenuti nel buffer al socket. QUALI di queste affermazioni sono FALSE (2 risposte)?
Il ricevitore può leggere l'intero buffer con un ciclo di istruzioni: read (socket, buffer, N/2)
Il ricevitore può leggere l'intero buffer con un'istruzione: read(socket, buffer, 2*N)
Il ricevitore può leggere l'intero buffer con un ciclo di istruzioni: read(socket, buffer, N)
Il ricevitore può leggere l'intero buffer con un'istruzione: read(socket, buffer, N)
I socket consentono a due peer (client e server) di comunicare tramite il protocollo:
HTML
HTTP
FTP
TCP/IP
Quale di queste affermazioni è FALSA:
Come comunicano i client e i server attraverso il protocollo?
HTML
HTTP
FTP
TCP/IP
Quale di queste affermazioni è FALSA?
La chiamata di sistema bind viene utilizzata per associare una porta nota a un socket server
Per leggere tutti i dati da un socket, è sempre necessario un ciclo di lettura
Se il client effettua una chiamata di sistema connect a un socket server occupato, viene messo in coda
Non è possibile associare una porta nota (porta ben nota) a un socket client
L'invocazione da parte di un server di un accept su un socket determina:
La definizione del numero di richieste che il server è disposto ad accettare
La creazione di un nuovo socket per accettare le richieste di connessione
La sospensione del server fino all'arrivo di una richiesta di connessione
L'accettazione di un nuovo messaggio di richiesta
Un'istruzione in Java:
Normalmente non dovrebbe essere considerata atomica ma composta da operazioni di base interrotte dallo scheduler
Può essere resa atomica utilizzando synchronized
In alcuni casi, ad esempio, gli incrementi e i decrementi delle variabili, è atomica
Il thread A è bloccato perché ha cercato di eseguire un metodo sincronizzato di un oggetto O mentre un altro thread B stava già eseguendo lo stesso metodo dello stesso oggetto. Il thread B chiama il metodo wait. In quale stato entra il thread A?
Pronto
Esecuzione
Bloccato
In attesa
A quali entità sono associati i blocchi gestiti automaticamente dalla macchina virtuale Java?
Metodi
Interfacce
Oggetti
Classi
Quando un thread invoca il metodo wait(), cosa succede?
In Java, l'esecuzione di un metodo sincronizzato comporta l'acquisizione di un blocco associato all'oggetto su cui viene invocato il metodo. QUALI eventi causano il rilascio del blocco da parte della macchina virtuale?
La terminazione del metodo (o l'invocazione del metodo wait)
La scadenza di un intervallo di tempo predeterminato
L'invocazione del metodo wait
Il quantificatore sincronizzato applicato a un blocco di codice Java significa che viene eseguito in mutua esclusione rispetto a:
Per eseguire un metodo sincronizzato, un thread in un programma Java deve acquisire il blocco associato all'oggetto su cui viene invocato il metodo. L'acquisizione è interamente gestita dalla macchina virtuale. Spiega quali eventi nel programma causano il rilascio del blocco.
Quale evento può causare l'uscita di un thread dallo stato di attesa e in cosa si trasforma poi?
In MOM, ogni mittente deve conoscere l'indirizzo di ogni destinatario?
Sì, perché la comunicazione deve avvenire punto a punto
No, perché possono essere utilizzati meccanismi di inoltro dei messaggi
Sì, perché ogni destinatario deve registrarsi presso il mittente
No, perché possono essere utilizzati router per creare reti overlay
In message communication, is it essential to return a status code in the response?
Sì, perché il client deve sapere come interpretare i dati che riceve
No, perché il sistema operativo può sollevare un'eccezione in caso di problemi
Sì, perché non c'è memoria condivisa
No, perché il client può interrogare il server per conoscere l'esito di una richiesta
Rispetto a un server multi-thread, un server multi-processo è più vantaggioso quando...
Rispetto a un server multi-thread, un server multi-processo è più vantaggioso quando...
Non ci sono risorse condivise da gestire
Le risorse condivise devono essere gestite
Il numero di clienti è limitato
È richiesta una migliore prestazione
In HTTP, cosa significa che un'operazione è 'sicura'?
Che più esecuzioni della stessa richiesta producono lo stesso effetto di una singola esecuzione
Che l'esecuzione della richiesta non modifica lo stato della risorsa coinvolta
Che più esecuzioni della stessa richiesta producono lo stesso effetto di un'altra operazione
Che l'esecuzione della richiesta modifica lo stato della risorsa coinvolta
In HTTP, qual è una funzione principale delle coppie nome-valore contenute nell'intestazione?
Indicare il formato dei dati del payload
Trasferire i parametri passati con le richieste
Indicare la dimensione dell'intero messaggio HTTP
Definire il valore dei cookie scambiati tra client e server
In a communication that uses a message broker, the sender must know the address of the recipient:
Sì, perché deve passare le informazioni al broker
No, perché deve essere conosciuto solo dal broker
Sì, perché viene comunicato dal ricevente stesso
No, perché viene comunicato dal broker
Qual è la differenza tra i servizi di middleware e un sistema operativo distribuito (DOS)?
Sono termini diversi che si riferiscono alle stesse funzionalità
Il middleware implementa funzioni specifiche, il DOS implementa funzioni generiche
Il middleware implementa funzioni generiche, il DOS implementa funzioni specifiche
Un middleware nasconde completamente le funzionalità di un DOS
In message communication, transient means that the message:
Is lost if the receiver is not ready to receive it
Passes through the middleware before being delivered to the receiver
Is considered by the middleware to be delivered to the receiver
Is entrusted to the middleware and control returns to the sender
In message communication, persistent means that the message:
Is lost if the receiver is not ready to receive it
Passes through the middleware before being delivered to the receiver
Is stored by the middleware to be delivered to the receiver when they are ready to receive it
Is entrusted to the middleware and control returns to the sender
Quale meccanismo di interazione tra processi è incorporato nel linguaggio FSP?
Condivisione della memoria
Scambio di messaggi
Esecuzione simultanea delle azioni
Condivisione dello stato
Che cosa significa che il metodo GET è idempotente?
Controllo ipermedia:
Nel contesto attuale delle tecnologie web, il browser:
È semplicemente un sistema per richiedere pagine HTML, contenuti multimediali associati e renderizzarli sullo schermo dell'utente
È un sistema per richiedere pagine HTML e contenuti multimediali associati tramite il protocollo HTTP, che gestisce anche il rendering sullo schermo dell'utente. Le librerie per lo sviluppo di applicazioni web (ad es. DOM) sono presenti ma non attive per impostazione predefinita, per risparmiare memoria
È un sistema modulare, con funzionalità di base comuni (rendering di pagine HTML, inclusi file CSS) e altre funzionalità installabili su richiesta in uno stile plugin (particolarmente la libreria DOM per lo sviluppo di applicazioni web)
È un ambiente composto ed estensibile, tipicamente includendo un inter
In a communication that uses a message broker, must the format of the messages be the same for all participants?
Yes, because the sender sends messages in only one format
No, because the broker can transform between formats
Yes, because the receivers do not know in which format they receive the messages
No, because the receivers know in which format they receive the messages
Given a process P1 that opens a socket s1 and then executes a fork() generating a process P2. What happens if both processes read from the same socket s1?
In the state diagram of a thread A in Java, what events can cause the transition from the blocked state to the ready state?
When a thread A in a Java program is blocked after trying to execute a synchronized method of an object O while another thread B is already executing... of the same object, what event can make it exit this state?
The control of access of multiple Java threads to different operations (both reading and writing) to methods of shared resources in general:
When the client and server initialize the sockets, what type of sockets must they initialize?
What is the semantics in a Java program and in message exchange?
Which of the following statements is correct regarding client-server communication?
What is the advantage of using Multicast Socket?
When a thread in a Java program receives a notification through the notifyAll method, in which state is it moved (in reference to the life cycle of threads)?
What problem do we have in the Readers-Writers service in Java?
What is the sufficient but not necessary condition for a deadlock to occur?
What is the solution to the dining philosophers problem?
