CdL MAGISTRALE in INFORMATICA Il naming dei processi

05/11/14
CdL MAGISTRALE in INFORMATICA
A.A. 2014-2015
corso di SISTEMI DISTRIBUITI
7.
I processi : il naming
Prof. S.Pizzutilo
Il naming dei processi
Nome = stringa di bit o di caratteri utilizzata per identificare univocamente un’entità
(una risorsa, un processo, una funzione, un host, un file,….) indipendentemente
dalla sua posizione.
La posizione di una entità è invece definita dal suo indirizzo (o punto di accesso).
In un sistema di calcolo si dispone di un SISTEMA di NAMING che permette al
Sistema Operativo ed all’utente di identificare le risorse (HW/SW) e di gestire la
localizzazione (l’indirizzo) delle risorse all’interno delle componenti hardware (file
system, processi, …) utilizzando sistemi di RISOLUZIONE dei nomi (scoprire
l’associazione tra nome e indirizzo della risorsa).
In un sistema distribuito il sistema di naming diventa ancora più importante per
risolvere in maniera non ambigua i problemi di gestione delle risorse ovunque
distribuite.
1)  Un identificatore si riferisce al massimo a una entità,
2)  Ogni entità è referenziata al massimo da un identificatore,
3)  Un identificatore si riferisce sempre alla stessa entità.
1
05/11/14
Process addressing
Indirizzamento esplicito
send (process_id, message)
receive (process_id, message)
Indirizzamento implicito
(functional addressing)
send_any (service_id, message)
receive_any (process_id, message)
Process_id
in generale vengono utilizzate tecniche di indirizzamento che prevedono una combinazione di:
machine_id
e
Identificatore di host
local _id
identificatore di processo o di porta
o una combinazione di :
machine1_id(Mid)
Identif. nodo su cui
è creato il processo server
local_id (Lid)
identificatore locale
generato dal nodo su cui
è creato il processo
e machine2_id (OMid)
identif. dell’ultimo nodo
conosciuto su cui è attivo il processo
Link based process addressing
Lid
Nodo A (server)
Nodo B (server)
Processo x
kernel
Processo x
OLid
se Mid ≠ OMid
Nodo C (client)
Call processo x
kernel
OMid
(Mid, Lid, OMid)
se Mid=OMid
kernel
OLid Lid
---- ------- -----
Durante il ciclo di vita di un processo il 1° ed il 2° campo non
cambiano.
Quando un processo viene migrato da un nodo A ad un nodo B, il link
del 3° campo (OMid) è stato modificato dal nodo A e punta sul nuovo
nodo B, dove viene generato un nuovo Lid (OLid) al processo; il suo
identificatore di processo (Lid) con il nuovo OLid viene inserito in
una tabella di mapping (gestita dal kernel del nuovo nodo B) di tutti i
processi creati su altri nodi e in esecuzione su B.
Quando si genera un processo il 1° campo =3° campo
2
05/11/14
Naming versus localizzazione delle
entità
Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 )
a) 
b) 
mapping semplice tra nomi e indirizzi.
mapping usando l’identità della entità.
Naming semplice, strutturato e
basato su attributi
Naming semplice = Identificatori come stringhe di bit non
strutturate (flat) che non contengono informazioni su come
localizzare l’indirizzo dell’entità (ad es.indirizzi IP, ...)
Naming strutturato = identificatori strutturati composti da
nomi semplici (leggibili dall’uomo) (ad es. DNS,….)
Naming basato su attributi = descrizione della entità in
termini di coppie attributo-valore (ad es. directory service,
LDAP,…)
3
05/11/14
Naming semplice
Broadcasting e multicasting
Per localizzare le entità in una rete è relativamente semplice: il messaggio
contiene un identificatore numerico delle entità ed ogni macchina che
riceve il messaggio è in grado di valutare se l’indirizzo del destinatario è
il suo o no. In caso positivo invia come risposta il suo indirizzo ethernet
(ad es.ARP). Il Multicasting permette di restringere il numero delle
macchine cui inviare il messaggio.
Puntatori forwarding
Approccio utilizzato per localizzare entità mobili: quando una entità si
sposta si lascia dietro un puntatore alla sua nuova posizione.
Forwarding Pointers (1)
Principio del forwarding pointer usando le coppie (proxy, skeleton) (o client
stub-server stub).
Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 )
4
05/11/14
Forwarding Pointers (2)
Redirezione di un puntatore forwarding, memorizzando un collegamento in
un client stub (o in un proxy)
Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 )
Approccio Home-Based
L’host dove è nato un oggetto mantiene sempre un riferimento (link) alla sua
posizione attuale (home location) anche se si sposta.
Il principio del Mobile IP.
Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 )
5
05/11/14
Altri approcci alla risoluzione dei nomi
per la localizzazione delle entità
DHT (Distributed Hash Table) .
I nodi sono strutturati in un anello logico con identificatori casuali a m bit (128
o 160) e chiavi associate a specifiche entità (file, processi,…) Ciascuna
entità con chiave k è associata ad un nodo con identificatore id≥ k
chiamato successore di k. Ogni nodo, per poter risolvere il problema della
risoluzione della chiave k nell’indirizzo di succ(k) tiene traccia del suo
successore in una finger table.
Approccio gerarchico
rete suddivisa in domini e sottodomini
con nodi (directory) radice.
Su tale albero si applicano gli algoritmi
di visitazione dell’albero per risolvere
il problema della localizzazione di un host.
Naming strutturato
I nomi sono organizzati in un name space che può essere rappresentato
come un grafo orientato.
Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 )
6
05/11/14
Ad esempio il file system Unix
Organizzazione generale della implementazione di un file system
unix di blocchi contigui di un disco logico.
Linking and Mounting (1)
Questo sistema consente di RISOLVERE I NOMI, costruire cioè un
meccanismo per memorizzare e recuperare le informazioni sulle entità per
mezzo dei nomi e del loro path name e di un opportuno meccanismo di
chiusura ( punto da cui iniziare la risoluzione di un nome =directory table
del nodo iniziale)
7
05/11/14
Linking and Mounting (2)
Come montare uno spazio dei nomi remoto attraverso uno
specifico protocollo di accesso.
Distribuzione di uno Spazio dei
nomi (1)
Un esempio di partizionamento del DNS in tre livelli
Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 )
8
05/11/14
Implementazione della Name Resolution
(1)
Il principio della risoluzione iterativa dei nomi
Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 )
Implementazione della Name Resolution
(2)
Il principio della risoluzione ricorsiva dei nomi
Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 )
9
05/11/14
Naming basato su attributi
Il naming semplice o strutturato consente di far riferimento alle entità in
modo indipendente dalla loro localizzazione.
Esiste però la possibilità di usare descrizioni ancora più dettagliate delle
entità per localizzarle.
  Directory Service : alle entità vengono associate informazioni dettagliate
(coppie ATTRIBUTO-VALORE) che consentono di descrivere le risorse e
che vengono usate per effettuare la ricerca della esatta localizzazione della
risorsa stessa.
Il modello RDF = Resource Description Framework descrive le risorse
con una tripla (soggetto – predicato - oggetto).
  LDAP (Lightweight directory access protocol) Consiste nel combinare
il naming strutturato con quello basato sugli attributi. E’ un protocollo
standard per l'interrogazione e la modifica dei servizi di directory .
I sistemi di Directory Service
  Una directory è un insieme memorizzato di informazioni su oggetti (utenti, file,
server, stampanti, applicazioni, database…) in qualche modo in relazione tra loro:
Ø  gli Utenti devono individuare ed utilizzare in modo semplice ed efficace questi
oggetti
Ø  gli Amministratori devono gestire efficacemente l’utilizzo degli oggetti
  Se tutte le informazioni necessarie alla gestione e all’utilizzo degli oggetti vengono
memorizzate in una posizione centralizzata, il processo di individuazione e
gestione delle risorse si semplifica.
  Una directory è quindi un database di oggetti di rete a cui è possibile fare
riferimento in modi diversi.
Ad esempio Active Directory fornisce un'unica posizione da cui gestire
gli account utente, i client, i server e le applicazioni basati su
Windows.
• 
I servizi Active Directory integrano il concetto Internet dello spazio dei nomi, utilizzando il
servizio DNS (Domain Name System) e sono in grado di scambiare informazioni con le
applicazioni che utilizzano il protocollo LDAP
10
05/11/14
Active Directory (Windows 2000)
 
 
• 
Struttura Logica
  Nei servizi Active Directory le risorse vengono organizzate all’interno di una struttura
logica. Il raggruppamento logico delle risorse consente la ricerca delle risorse
attraverso i loro nomi piuttosto che le loro posizioni fisiche
Oggetti
  Un oggetto è un insieme di attributi denominato in modo distinto che rappresenta una
risorsa di rete. Gli attributi dell’oggetto sono caratteristiche degli oggetti nella
directory. All’interno dei servizi di Active Directory è possibile organizzare gli oggetti
in CLASSI, ossia raggruppamenti logici di oggetti. Una classe di oggetti può essere
utenti, gruppi, domini o unità organizzative
Gli oggetti contenitore sono oggetti in grado di contenere altri oggetti
–  Una OU (Organizational Unit) è un oggetto contenitore utilizzato per organizzare oggetti
all’interno di un dominio in gruppi amministrativi logici
–  Una OU è in grado di contenere account utente, gruppi, stampanti, applicazioni e altre OU
–  Ogni dominio è in grado di implementare la propria gerachia OU
LDAP
Il protocollo LDAP (Lightweight Directory Access Protocol) è costituito da una serie di
protocolli utilizzati per accedere ai servizi sullo standard X.500 per la condivisione di
directory, ma è meno complesso e non richiede grandi risorse. Per tale ragione, LDAP viene
spesso chiamato X.500 Light.
• LDAP organizza le informazioni in ordine gerarchico servendosi di directory che sono in grado
di immagazzinare numerose informazioni che possono anche essere utilizzate (come in NIS
=Network Information Service), permettendo a chiunque di accedere al loro account da qualsiasi
macchina presente sulla rete LDAP abilitata. In molti casi, tuttavia, LDAP viene utilizzato
semplicemente come rubrica virtuale che permette agli utenti di accedere con facilità alle
informazioni relative ai contatti di altri utenti.
•  LDAP è in grado di propagare le proprie directory ad altri server LDAP in tutto il mondo,
fornendo accesso globale all'informazione (autenticazione IDEM).
•  LDAP è un sistema client-server.
Il server può avvalersi di numerosi database per salvare una directory, ciascuno dei quali
ottimizzato per operazioni di lettura rapide e sostanziose.
Quando un'applicazione di un client LDAP si connette a un server LDAP può interrogare una
directory oppure caricare informazioni al suo interno.
Se l'applicazione client cerca di caricare informazioni all'interno di una directory LDAP, il
server verifica che l'utente abbia il permesso di attuare la modifica, poi aggiunge o aggiorna le
informazione
11