Argomento 1: definizioni - caratteristiche - problematiche Flashcards
Dare la definizione di sistema distribuito
Un sistema distribuito è un insieme di elementi computazionali autonomi che, alla vista dell’utente, sono un solo sistema coerente
Cosa sono gli elementi computazionali (ossia i nodi del sistema)?
I nodi del sistema sono applicazioni (software) o hardware(computer o server)
Cosa possiamo dire sul clock nei sistemi distribuiti?
Siccome nei sistemi distribuiti abbiamo a che fare con elementi autonomi, non abbiamo una nozione globale di clock, quindi non vi è sincronizzazione tra i vari elementi, nonostante ciò, si ha la possibilità di onoscere lo stati degli altri nodi tramite message passing
Che tipi di sistemi distribuiti abbiamo nominato?
Abbiamo nominato sistemi distribuiti aperti e chiusi.
In quelli aperti non ci dobbiamo preoccupare di gestire gli ingressi e le uscite nel sistema, così come non dobbiamo preoccuparci delle autorizzazioni per inviare messaggi.
In quelli chiusi invece la situazione è più complicata, perchè dobbiamo gestire gli ingressi/uscitte e l’autorizzazione per i messaggi messaggi
Cosa possiamo dire sui fallimenti in un sistema distribuito?
In un sistema distribuito, essendo i nodi autonomi, quando si ha un fallimento esso viene detto parziale, in quanto non coinveolge tutto il sistema ditribuito ma solo alcuni nodi/un nodo del sistema, questo permette di recuperare, magari velocemente, la situazione, è comunque difficile nascondere all’utente un fallimento.
Cosa possiamo dire sulla memoria di un sistema distribuito?
In un sistema distribuito non vi è memoria condivisa, in quanto ogni nopdo ha la propria memoria
Quali sono i principali ostacoli di un sistema distribuito?
I 4 “problemi” di un sistema distribuito sono:
- identificare la controparte (naming)
- accedere alla controparte (access point)
- comunicare con la controparte (protocol)
- capire il contenuto dei messaggi
Definire il concetto di trasparenza nei sistemi distribuiti, dire quando ha senso non implementarla
La trasparenza è una caratteristica più o meno forte di un sistema distribuito, permette all’utente di non aver la necessità di sapere in dettaglio il funzionamento del sistema.
Spesso la trasparenza non viene implementata in maniera estrema, in quanto farlo è molto difficile e ha dei costi in termini di performance, ad esempio, se consideriamo il fallimento di un server, possiamo prendere in cosiderazione di segnalaretale fallimento all’utente, per fargli risparmiare tempo; così come può avere senso far sapere ad un utente dove si trova un nodo, ad esempio per un utente che cerca la stampante più vicina a sè.
Elencare alcuni tipi di trasparenza
- distribution transparency
- access transparency
- migration transparency
- replication transparency
- location transparency
- naming transparency
- failure transparency
Quale è la definizione corretta di middleware?
- È uno strato software che virtualizza l’hardware e fornisce servizi alle applicazioni
soprastanti - È uno strato software che sta sopra i sistemi operativi di rete e fornisce servizi
alle applicazioni soprastanti - È uno strato software che sta 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 soprastanti
- È uno strato software che sta sopra i sistemi operativi di rete e fornisce servizi
alle applicazioni soprastanti
Il concetto di trasparenza nei sistemi distribuiti significa che:
- Occorre utilizzare meccanismi di base per accedere alle funzionalità desiderate
- È possibile accedere alle funzionalità di più basso livello rispetto alle funzionalità
utilizzate - Non è necessario conoscere i dettagli con cui vengono realizzate le funzionalità
utilizzate - Sono visibili i dettagli con cui vengono realizzate le funzionalità utilizzate
- Non è necessario conoscere i dettagli con cui vengono realizzate le funzionalità
utilizzate
Il termine Failure Transparency sta ad indicare che. . .
- L’utente può riconoscere un fallimento parziale e porvi rimedio
- Il sistema operativo può far ripartire un server dopo un fallimento
- Un sistema è in grado di effettuare un abort per riportare ad uno stato consistente
dopo un fallimento - Un sistema è in grado di portare a termine un compito anche in presenza di
fallimenti parziali
- Un sistema è in grado di portare a termine un compito anche in presenza di
fallimenti parziali
Il termine Migration/Mobility Transparency sta ad indicare che…
- è possibile portare il software su macchine diverse senza modifiche
- Lo spostamento di dati e/o software comporta modifiche nei programmi utente
- Lo spostamento di dati e/o software non comporta modifiche nei programmi
utente - è possibile accedere a dati e/o software da qualsiasi punto fella rete
- Lo spostamento di dati e/o software non comporta modifiche nei programmi
utente
Il termine Persistence Transparency sta ad indicare che. . .
- È possibile memorizzare i dati via rete;
- È possibile memorizzare i dati su disco;
- Una risorsa (software o dati) viene conservata in memoria;
- Una risorsa (software o dati) può essere in memoria o su disco.
- Una risorsa (software o dati) può essere in memoria o su disco.
Il termine Access Transparency sta ad indicare che:
- Accesso a risorse locali e remote con le stesse operazioni e con lo stesso formato
dei dati - |non abbiamo altre opzioni|
- Accesso a risorse locali e remote con le stesse operazioni e con lo stesso formato
dei dati
In un sistema distribuito in presenza di “ommission failure”:
- Un servente accetta richieste ma fallisce nella ricezione di tale richiesta o nell’ellaborazione
- Server fallisce perché la servlet non funziona come dovrebbe
- Il server sbaglia ad elaborare la richiesta oppure non la riceve
- |non abbiamo altre opzioni|
- Un servente accetta richieste ma fallisce nella ricezione di tale richiesta o nell’ellaborazione
Quale di queste affermazioni è falsa? un sistema distribuito . . .
- Fallisce quando un componente fallisce
- Non prevede la condivisione di memoria
- Costituito da componenti autonomi
- Sincronizza le azioni attraverso messaggi espliciti
- Fallisce quando un componente fallisce
Qual è la differenza tra i servizi di un middleware e di un SO 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
- Il middleware implementa funzioni specifiche, il DOS implementa funzioni generiche
In relazione alle quattro problematiche (issue) dei Sistemi Distribuiti, nei sistemi a socket l’identificazione delle risorse(naming)?
- Dipende dal linguaggio di programmazione utilizzato
- Utilizza servizi di rete (e.g. DHCP)
- Permette l’uso di nomi logici risolti da un DNS (domain name system)
- Non è risolta in quanto occorre conoscere l’indirizzo dei componenti
- Non è risolta in quanto occorre conoscere l’indirizzo dei componenti
Quale di queste affermazioni è falsa? un sistema distribuito . . .
- Non fallisce quando un componente fallisce
- Sincronizza le azioni attraverso uno scheduler condiviso
- Non prevede la condivisione di memoria
- È costituito da componenti autonome
- Sincronizza le azioni attraverso uno scheduler condiviso
Quali di queste affermazioni meglio descrive i servizi di un sistema a layer (strati)?
- Ogni layer implementa gli stessi servizi con proprietà diverse (es sicurezza, affidabilità)
- I layer inferiori sono più specifici per le applicazioni, i layer superiori più generici
- I layer superiori sono più specifici per le applicazioni, i layer inferiori più generici
- Ogni layer implementa servizi che non sono in relazione tra loro
- I layer superiori sono più specifici per le applicazioni, i layer inferiori più generici
In relazione alle quattro problematiche dei SD nella comunicazione TCP la semantica..
- È definita dal protocollo di rete utilizzato
- Non è definita
- È normalmente UTF-8
- È definita dal sistema operativo
- Non è definita
Parlare dell’indipendenza dei componenti
I componenti possono avere due tipi di indipendenza:
- indipendenza logica: fa riferimento al fatto che ogni componente lavora singolarmente per offrire un task all’utente
- indipendenza di composizione: ossia che i vari componenti lavorano assieme per offrire un task complesso all’utente
Parlare di politiche e meccanismi
I meccanismi sono delle capacità offerte dai componenti
Le politiche definiscono come i meccanismi possono essere sfruttati per ottenere un comportamento
Cos’è un protocollo?
Un protocollo è un insieme di regole che definisce il formato e l’ordine dei messaggi, cosa fare quando si riceve un determinato messaggio ed il tipo di dati scambiati.
I protocolli sono fondamentali per i sistemi distribuiti in quanto senza di essi non si potrebbero costruire applicazioni in grado di comunicare tra loro.
Definire le differenze tra un middleware ed un DOS
un middleware si trova sopra ai sistemi operativi e offre servizi specifici alle applicazioni, un DOS si trova direttamente sopra all’hardware e quindi implementa servizi più generici