27/03/2013. Contenuti

Documenti analoghi
Architetture software. Virtualizzazione

Processi nei Sistemi Distribuiti

Introduzione alla Virtualizzazione

Virtualizzazione e Macchine Virtuali

Approccio stratificato

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Architettura di un sistema operativo

Protezione del Kernel Tramite Macchine Virtuali

Il Sistema Operativo (1)

Comunicazione tra Processi

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

Introduzione alle applicazioni di rete

PROPOSTA DI UN ARCHITETTURA IMS INTEGRATA IN UN AMBIENTE VIRTUALIZZATO: ANALISI DI PRESTAZIONI Daniele Costarella

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

La virtualizzazione ed i suoi aspetti di sicurezza. Sergio Sagliocco Responsabile SecureLAB Direzione R&D CSP

Fisciano, 24 ottobre 2008

C Cloud computing Cloud storage. Prof. Maurizio Naldi

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

La Gestione delle risorse Renato Agati

Architetture Applicative

SISTEMI OPERATIVI DISTRIBUITI

Macchine Virtuali. Docente: Fabio Tordini

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Linux nel calcolo distribuito

Sistemi Operativi. Conclusioni e nuove frontiere

Telematica II 17. Esercitazione/Laboratorio 6

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Reti di Telecomunicazione Lezione 6

Programmazione dei socket con TCP #2

Informatica. Prof. A. Longheu. Introduzione a Java

Virtualizzazione con KVM. Reggio Emilia - Linux Day 2014 Stefano Strozzi KVM

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

Il sistema operativo TinyOS

Cenni di programmazione distribuita in C++ Mauro Piccolo

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Simulazione di macchina: analisi virtuale del comportamento cinematico. Elio Bergamaschi

FTP. Appunti a cura del prof. ing. Mario Catalano

Protezione. Protezione. Protezione. Obiettivi della protezione

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

Virtualizzazione VirtualBox su Host Windows

VIRTUALIZZAZIONE. Docente: Marco Sechi Modulo 1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Tecnologia dei Sistemi Informativi. architettura s.i. 1

Dipartimento di Scienze Applicate

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Progetto Virtualizzazione

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Progetto di Applicazioni Software

Capitolo 3: Strutture dei sistemi operativi

Il Sistema Operativo

Progetto di Applicazioni Software

Pronto Esecuzione Attesa Terminazione

Corso di Informatica

CAPITOLO 5 - Sistemi Operativi Moderni

VMware. Gestione dello shutdown con UPS MetaSystem

MODULO 02. Iniziamo a usare il computer

Gestione della memoria centrale

B.P.S. Business Process Server ALLEGATO C10

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO

Introduzione al sistema operativo. Laboratorio Software C. Brandolese

Sistemi informativi secondo prospettive combinate

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Sistemi operativi basati sul web

Ambienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job

Dr. Andrea Niri aka AndydnA ANDYDNA.NET S.r.l.

STRUTTURE DEI SISTEMI DI CALCOLO

UML Component and Deployment diagram

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Infrastrutture e Architetture di sistema

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Sistema operativo: Gestione della memoria

Applicazioni distribuite

Reti di Telecomunicazione Lezione 8

I sistemi virtuali nella PA. Il caso della Biblioteca del Consiglio Regionale della Puglia

SDD System design document

Capire i benefici di una rete informatica nella propria attività. I componenti di una rete. I dispositivi utilizzati.

Analisi di prestazioni di applicazioni web in ambiente virtualizzato

Architetture software

Corso di Informatica

Transcript:

Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Contenuti Virtualizzazione - 3 Macchina virtuale - 4 Architetture delle macchine virtuali - 6 Tipi di virtualizzazione - 7 Monitor della macchina virtuale - 9 Paravirtualizzazione - 12 Problematiche lato client - 13 Problematiche lato server - 14 Migrazione del codice - 17 Conclusioni 21 Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 2 /21 Virtualizzazione un livello alto di astrazione che nasconde i dettagli dell implementazione sottostante Virtualizzazione: astrazione di risorse computazionali Si presenta all utilizzatore una visione diversa da quella reale Virtualizzazionedella piattaforma Virtualizzazionedelle risorse di sistema Le tecnologie di virtualizzazione comprendono una varietà di meccanismi e tecniche usate per risolvere problemi di: Sicurezza, affidabilità e prestazioni (isolamento della QoS) Come? Disaccoppiando l architettura ed il comportamento delle risorse hardwaree software percepiti dall utente dalla loro realizzazione fisica Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 3 /21 1

Macchina virtuale Il concetto di macchina virtuale (VM, Virtual Machine) è un idea definita negli anni 60 in un contesto centralizzato Ideato per consentire al software legacy (esistente) di essere eseguito su mainframemolto costosi Ad es. il mainframe IBM System/360-67 Una VM permette di rappresentare le risorse hardware diversamente dai loro limiti fisici Una singola macchina fisica può essere rappresentata e usata come differenti ambienti di elaborazione Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 4 /21 Virtualizzazione (2) La virtualizzazione è ritornata in auge alla fine degli anni 90 e sta assumendo maggiore importanza L hardware cambia più velocemente del software (middleware e applicazioni) Facilita la portabilità e la migrazione di codice Isolamento di componenti malfunzionanti o soggetti ad attacchi Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 5 /21 Architetture delle macchine virtuali La virtualizzazione può aver luogo a livelli diversi Dipende fortemente dalle interfacce offerte dai vari componenti del sistema Interfaccia tra hardware e software (istruzioni macchina invocabili da ogni programma o user ISA) [interfaccia 4] Interfaccia tra hardware e software (istruzioni macchina invocabili solo da programmi privilegiati o system ISA) [interfaccia 3] Chiamate di sistema [interfaccia 2] ABI (Application Binary Interface): interfaccia 2 + interfaccia 4 Chiamate di libreria (API) [interfaccia 1] Obiettivo della virtualizzazione: Imitare il comportamento di queste interfacce Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 6 /21 2

Tipi di virtualizzazione Due tipi di virtualizzazione: Macchina virtuale di processo Monitor della macchina virtuale (VMM, Virtual Machine Monitor) o anche hypervisor Macchina virtuale di processo Il programma è compilato in un codice intermedio (portabile), che viene successivamente eseguito nel sistema a runtime Virtualizzazione solo per un singolo processo La VM di processo è una piattaforma virtuale che esegue un singolo processo Fornisce un ambiente ABI o API virtuale per le applicazioni utente Esempi: Java VM Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 7 /21 Tipi di virtualizzazione: MV di Processo Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 8 /21 Monitor della macchina virtuale Uno strato software separato che scherma completamente l hardware sottostante ed imita l insieme di istruzioni Sul VMM possono essere eseguiti indipendentemente e simultaneamente sistemi operativi diversi Esempi: VMware, Microsoft Virtual PC, Parallels,VirtualBox, Xen Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 9 /21 3

Monitor della macchina virtuale (2) In quale livello dell architettura di sistema collocare il VMM? Può essere implementato direttamente sull hardware (VM classica o di sistema) oppure su un sistema operativo esistente (VM ospitata) Esempi di VM di sistema: VMware ESX, Xen Esempi di VM ospitata: VMware Server, VirtualBox, Virtual PC Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 10 /21 Monitor della macchina virtuale (3) Quale modalità di dialogo per l accesso alle risorse fisiche tra la macchina virtuale ed il VMM? Virtualizzazionecompleta Paravirtualizzazione Virtualizzazione completa Il VMM espone ad ogni macchina virtuale un interfaccia hardware simulata funzionalmente identica a quella della sottostante macchina fisica Paravirtualizzazione Il VMM espone ad ogni macchina virtuale un interfaccia hardware simulata funzionalmente simile (ma non identica) a quella della sottostante macchina fisica Simileall approccio classico per VMM Non viene emulato l hardware, ma viene creato uno strato minimale di software per assicurare la gestione delle singole istanze di macchine virtuali e il loro isolamento Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 11 /21 Paravirtualizzazione Xen è l esempio più noto di paravirtualizzazione http://www.cl.cam.ac.uk/research/srg/netos/xen/ Il VMM offre al SO guest un interfaccia virtuale (hypercall API) alla quale il SO guest deve riferirsi per aver accesso alle risorse Occorre rendere compatibile con Xen il kernel ed i driver del SO ospite; le applicazioni rimangono invece invariate Soluzione preclusa a molti sistemi operativi commerciali, a meno di non avere un processore che supporti la virtualizzazione nativa Overhead moltobasso: in grado di fornire prestazioni molto simili a quelle dell esecuzione non virtualizzata Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 12 /21 4

Problematiche gestite dal lato client: Trasparenza e Stub Il client comprende componenti per gestire i problemi di: Trasparenza alla distribuzione Trasparenza di accesso: generalmente gestita attraverso la generazione di un client stub (software che fornisce la stessa interfaccia del server ma nasconde le possibili differenze nelle architetture delle macchine client) Trasparenza all ubicazione, alla migrazione e al riposizionamento: generalmente il latoclient tiene traccia della locazione effettiva Trasparenza ai guasti: spesso gestita solo lato client (cercando di mascherare malfunzionamenti del server o della comunicazione) Trasparenza alla replica: molteplici invocazioni gestite dal client stub Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 13 /21 Problematiche gestite dal Server Diverse questioni inerenti la progettazione di un server, quali Server iterativi (il server stesso gestisce la richiesta e se necessario risponde al client) e Server concorrenti (il server non gestisce la rchiesta mala passa ad un thread e si rimette inattesa di un altra richiesta) I client inviano una richiesta ad un end-point, chiamato Porta, ossia una struttura sw di sistema associata a un processo in esecuzione Come può il client conoscere la porta per contattare il server? Porta preassegnata e nota Porta assegnata dinamicamente (interazione con daemon) Daemon in ascolto su porta preassegnata delle richieste per alcuni servizi Richieste per lo stesso servizio girate su porta assegnata dinamicamente di cui viene informato il server corrispondente Attivazione dinamica di server (interazione con superserver) Per richieste sporadiche non conviene mantenere server attivi Il superserver ascolta le porte corrispondenti e per ogni richiesta in arrivo risveglia (o crea dinamicamente) il server corrispondente Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 14 /21 Problematiche lato server (2) Interrompibilità del server: è possibile interrompere un server una volta che ha accettato una richiesta di servizio? Soluzione 1: interruzione della connessione Comporta l interruzione del servizio Soluzione 2: dati out-of-band Usare una porta di controllo separata Il server haun thread (o processo) inattesa di messaggi urgenti Quando arriva un messaggio urgente, la richiesta di servizio associata viene sospesa Oppure usare i meccanismi di comunicazione out-of-band forniti dal livello di trasporto Ad es. TCP permette di trasmettere dati urgenti sulla stessa connessione Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 15 /21 5

Problematiche lato server (3) Server con o senza stato Server senza stato (stateless) Non mantiene informazioni accurate sullo stato del client e non deve informarlodi eventuali cambi di stato lato server Ad es. non invalida la cachedi un client Ad es. non registra che un file è stato aperto Conseguenze: Client e server sono completamente indipendenti Ridotte le inconsistenzedi stato dovuto a crash del client o del server Possibile perdita di prestazioni, ad es. il server non può anticipare il comportamentodel client Server con stato (stateful) Mantiene informazioni persistenti sullo stato del client Ad es. registra che un file è stato aperto, in modo da poterne fare il prefetching Ad es. conosce il contenuto della cache di un client e consente ad un client di mantenereuna copia locale di dati condivisi Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 16 /21 Migrazione del codice Nei SD la comunicazione può non essere limitata al passaggio dei dati, ma riguardare anche il passaggio di programmi, anche durante la loro esecuzione Motivazione della migrazione Bilanciare o condividere il carico di lavoro Risparmiare risorse di rete e ridurre il tempo di risposata processando i dati vicino a dove risiedono Sfruttare il parallelismo ma senza le difficoltà della programmazione parallela Configurare dinamicamente il SD Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 17 /21 Modelli per la migrazione del codice Processo composto da tre segmenti Segmento del codice Le istruzioni del programma in esecuzione Segmento delle risorse I riferimenti alle risorse esterne di cui il processo ha bisogno Segmento dell esecuzione Lo stato del processo (stack, PC, dati privati) Alcune alternative per la migrazione Mobilità leggera o mobilità forte Leggera: trasferito solo il segmento del codice Forte: trasferito anche il segmento dell esecuzione Migrazione iniziata dal mittente o avviata dal destinatario Nuovo processo per eseguire il codice migrato o clonazione Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 18 /21 6

Migrazione e risorse locali Collegamento processo/risorsa Collegamento per identificatore Ad es. il processo è collegato ad un socket* Collegamento per valore Occorre solo il valore di una risorsa, ad es. una libreria standard Collegamento per tipo Occorre solo una risorsa di tipo specifico Collegamento risorsa/macchina Risorsa unattached Facile da spostare, ad es. file Risorsa fastened Più costosa da spostare, ad. una base di dati Risorsa fissa * un socket è un'astrazione software progettata per poter utilizzare delle API standard e condivise per la trasmissione e la ricezione di dati attraverso una rete oppure come meccanismo di IPC Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 19 /21 Migrazione nei sistemi eterogenei In ambienti eterogenei, la macchina target può non essere in grado di eseguire il codice La definizione del contesto di processo, thread e processore è fortemente dipendente dall hardware, dal SO e dal sistema runtime Soluzione migliore: usare una macchina virtuale Macchina virtuale di processo Monitor di macchina virtuale Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 20 /21 Conclusioni Lasciate ai discenti del Corso Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 21 /21 7