Virtualizzazione. Dott. Luca Tasquier.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Virtualizzazione. Dott. Luca Tasquier."

Transcript

1 Virtualizzazione Dott. Luca Tasquier

2 Condizioni di Popek & Golberg 1) Equivalence / Fidelity A program running under the VMM should exhibit a behavior essentially identical to that demonstrated when running on an equivalent machine directly. 2) Resource control / Safety The VMM must be in complete control of the virtualized resources. 3) Efficiency / Performance A statistically dominant fraction of machine instructions must be executed without VMM intervention

3 Full Virtualization La Full Virtualization fa in modo che l hypervisor veda le operazioni hardware che l OS usa per leggere o modificare lo stato del sistema o eseguire le operazioni di I/O per poi emularle via software e avere come risultati codici di stato consistenti con quelli che avrebbe fornito l hardware reale: questa tecnica è detta trap-and-emulate. Ogni istruzione privilegiata di una macchina virtuale causa un errore (la cosiddetta trap ), perché sta cercando di eseguire istruzioni di gestione delle risorse mentre è eseguita in un ring con minore privilegio; il VMM intercetta tutte queste trap ed emula l istruzione, senza mettere in pericolo l integrità di altri utenti.

4 Architettura x86-1 I processori x86 hanno due modalità operative fondamentali: real mode e protected mode (kernel mode). - Il real mode è caratterizzato dalla mancanza di protezione della memoria e di multitasking a livello hardware. Le applicazioni vengono eseguite in questa modalità e possono usare l hardware attraverso le system calls. - Il protected mode fornisce la protezione della memoria per evitare che i programmi si possano danneggiare tra loro. E possibile eseguire le istruzioni di CPU, incluse quelle privilegiate (interruzioni, gestione di memoria, I/O).

5 Architettura x86-2 In real mode tutti i processi possono operare liberamente nella memoria ed accedere a qualsiasi risorsa; usando questa modalità non è possibile ad esempio gestire il multitasking a livello hardware. In protected mode, vi sono degli anelli che sono dei meccanismi i quali permettono al sistema operativo, tramite il processore, di limitare l operatività dei programmi utente. Sono definiti quattro livelli di protezione numerati da zero (anello di maggior privilegio) a tre (minor privilegio). Questi quattro ring hanno lo scopo di restringere principalmente l accesso a due risorse: la memoria e le porte I/O, inoltre regolano la capacità di portare a termine con successo alcune istruzioni. Poco più di una dozzina di istruzioni possono essere svolte solamente con privilegi di livello zero, qualora si tentasse l esecuzione di una di queste con privilegi insufficienti viene generata un eccezione, che deve essere gestita dal sistema operativo.

6 Architettura x86-3 Il primo anello (RING 0) è detto kernel mode o supervisor mode, mentre l ultimo anello (RING 3) che viene usato per i processi utente (user space) è chiamato user mode. I più recenti sistemi fanno uso del primo e dell ultimo anello, lasciando inutilizzati il secondo ed il terzo. Generalmente i kernel dei sistemi operativi (i loro servizi e librerie) adoperano l anello zero che consente loro di svolgere tutte le istruzioni privilegiate quali la gestione della memoria (ad esempio operare direttamente sull intero intervallo degli indirizzi di memoria o accedere alle tabelle delle pagine del processore), l input/output su disco e controllare i registri dei segmenti.

7 Architettura x86-3

8 Problema Negli x86 le istruzioni privilegiate se sono eseguite con privilegi insufficienti (esempio hanno ring maggiore di zero) producono un eccezione (trap) che può essere intercettata dal VMM (che sta nel ring 0) e essere amministrata. Alcune istruzioni sensibili (ma non privilegiate) se eseguite senza privilegi sufficienti non generano trap ma sono ignorate cosicché il VMM non riesce ad intervenire e inoltre spesso provocano messaggi di errore e instabilità nel sistema. L architettura x86 ha diciassette istruzioni non intercettabili dall hypervisor e di conseguenza non può essere virtualizzata con il metodo classico della full virtualization.

9 Esempio: POPF L istruzione POPF disabilita e abilita le interruzioni; il problema è che se questa istruzione viene eseguita da un sistema operativo guest nel ring 1, una CPU x86 la ignora: come risultato si ha che se un sistema operativo guest sta cercando di disabilitare un interruzione, quest ultima non viene disabilitata, e il VMM non ha modo di sapere che ciò sta accadendo.

10 Binary Translation - 1 Questa si basa su un traduttore (Binary Translator BT) che traduce il codice binario che il kernel di un sistema operativo guest vuole eseguire al momento e memorizza il codice x86 adatto in una Translator Cache (TC); le applicazioni utente non sono trattate dal BT poiché quest ultimo assume che il codice utente sia sicuro: le applicazioni user mode sono eseguite direttamente come girassero in modo nativo (cioè direttamente sull hardware). Il codice kernel, invece, deve attraversare il passaggio di traduzione del BT: si può dire che il kernel dell OS guest non venga più eseguito e che il kernel tradotto dal BT giri effettivamente nel ring 1. In alcuni casi il codice kernel tradotto è una copia esatta del codice originale, ma ci sono parecchi casi in cui il BT deve rendere il codice tradotto un po più lungo di quello originale. Se il kernel dell OS guest deve eseguire un istruzione privilegiata, il BT cambia questo tipo di codice in un codice utente più sicuro (sicurezza intesa per gli altri sistemi operativi guest e per il VMM); se il kernel deve prendere il controllo dell hardware fisico, il BT sostituisce il codice binario associato con un codice che manipola l hardware virtuale.

11 Binary Translation - 2 La traduzione binaria (o riscrittura binaria) prevede che il flusso delle istruzioni sia analizzato dal programma di virtualizzazione alla ricerca di particolari istruzioni critiche (sensibili non privilegiate), ossia istruzioni che richiederebbero di essere eseguite con particolari privilegi (kernel mode) ma non generano, per limiti intrinseci del processore, un eccezione (trap) se la loro esecuzione viene richiesta in un contesto non privilegiato. Queste istruzioni critiche, vengono modificate in modo da poter essere eseguite dal VMM con i corretti privilegi: la macchina virtuale non può operare in kernel mode ma deve lasciare che il VMM agisca per essa.

12 Binary Translation - 3 Un programma di virtualizzazione che sfrutta la traduzione binaria funziona similmente ad un debugger; utilizza le stesse funzioni implementate per il controllo del codice sorgente. Inserisce dei breakpoint dove ci sono istruzioni critiche per la virtualizzazione e le emula. Una macchina virtuale viene eseguita su un interprete invece che direttamente sulla CPU, l interprete può così risolvere i problemi dovuti a operazioni che ostacolano la virtualizzazione. A differenza di altri approcci alla virtualizzazione il codice di un applicazione o del kernel guest non deve essere modificato per poter interagire correttamente con le risorse del sistema.

13 Binary Translation - 4

14 System calls - 1 Una system call si ha quando un applicazione utente richiede un servizio dal kernel; il x86 fornisce una latenza molto bassa per l esecuzione di una system call attraverso le due istruzioni SYSENTER e SYSEXIT. Una chiamata a sistema dà all hypervisor, specialmente con la Binary Translation, un bel po di lavoro extra: infatti, le tecniche di virtualizzazione software mettono il sistema operativo in un ring leggermente meno privilegiato di quello normale (ring 1 invece che ring 0), tecnica chiamata ring deprivileging.

15 System calls - 2 Il problema è che una SYSENTER è inviata a una pagina con privilegio 0 e si aspetta di trovare il sistema operativo, ma invece trova l hypervisor: quindi quest ultimo deve emulare ogni system call, tradurre il codice e infine cedere il controllo al codice kernel tradotto che gira nel ring 1. Una volta che il codice traslato dell OS guest è stato eseguito, questo usa una SYSEXIT per ritornare all applicazione utente; però l OS guest si trova al ring 1 e non ha i privilegi necessari per eseguire SYSEXIT, e si genera un errore. Una system call provoca molto overhead

16 Gestione della memoria - 1 L OS guest eseguito sulla macchina virtuale, non ha accesso alle page tables reali, ma vede page tables che si trovano su una MMU emulata (shadow page tables). Queste tabelle danno all OS guest l illusione di poter tradurre i suoi indirizzi virtuali in indirizzi fisici, ma in realtà questo è fatto dall hypervisor in the shadow, cioè di nascosto al sistema operativo guest: le page tables reali sono nascoste e gestite dall hypervisor e si trovano comunque nella MMU reale. Questa tecnica è detta shadow paging; ogni volta che il sistema operativo guest modifica la disposizione delle pagine, la MMU virtuale deve catturare (trap) le modifiche e cambiare di conseguenza le shadow page tables.

17 Gestione della memoria - 2 L hypervisor ha il compito di virtualizzare completamente il meccanismo di address translation x86: c è un nuovo livello di address translation quando è in esecuzione l OS guest: ci sono le guest page tables (gpt, versioni ombra delle page tables) e le shadow page tables (spt), che vengono usate per effettuare la traduzione di indirizzi quando è attivo il guest (le spt non sono visibili al guest). L hypervisor deve mantenere in uno stato consistente le spt e le gpt e lo fa attraverso due tecniche principali: write-protecting e Virtual TLB.

18 Write protecting L hypervisor scrive e protegge tutte le pagine fisiche che costituiscono una gpt, e ogni modifica da parte del guest di aggiungere o rimuovere una traduzione provoca un eccezione di page fault; ad ogni page fault il controllo del processore viene trasferito all'hypervisor cosicché questo possa emulare l operazione opportuna.

19 Virtual TLB L hypervisor permette al guest di aggiungere o rimuovere nuove traduzioni nella gpt senza intervenire; quando poi il guest accede, attraverso quella traduzione, a un istruzione o a un dato che si trova nella memoria di riferimento del processore, avviene un page fault perché la traduzione non è presente nella spt. Il page fault permette l intervento dell hypervisor, che controlla la gpt per aggiungere la traduzione mancante nella spt ed esegue le istruzioni opportune.

20 Gestione della memoria - 3 Entrambe le tecniche provocano un gran numero di eccezioni di page fault, che possono essere guest-induced oppure hypervisor-induced: in ogni caso l hypervisor deve intercettare tutti i faults ed emulare le corrette operazioni per gestirle, e questo provoca significativi overhead nel meccanismo di address translation.

21 Gestione dell'i/o - 1 Nel momento in cui si effettua la virtualizzazione, su un solo server ci sono in esecuzione diverse macchine virtuali: ogni VM contende per le stesse risorse hardware che forniscono collegamenti con la rete o i dispositivi di memoria. L hypervisor deve fornire ad ogni VM la percezione di accesso a risorse di I/O dedicate, gestendo e controllando le operazioni di I/O tra le macchine virtuali e l hardware. I dati di I/O devono prima essere portati nella memoria accessibile dal dispositivo di I/O: ogni dispositivo connesso a un computer ha la propria specifica locazione nella memoria del sistema (memory mapped I/O). Il sistema operativo conosce dove si trova questa memoria e, quando deve inviare dati a i dispositivi di I/O, li trasferisce dalla memoria del processore alla memoria specifica del dispositivo, accessibile da quest ultimo. Viceversa, quando i dati ritornano, il dispositivo di I/O li pone nella sua locazione di memoria, da cui sono prelevati dall OS e trasferiti nella memoria del processore per essere eseguiti.

22 Gestione dell'i/o - 2 Tutto ciò si complica in un ambiente virtualizzato. Il sistema operativo guest scrive i dati associati all I/O dove pensa che il dispositivo possa prelevarli: l hypervisor deve intercettare il tentativo del guest di scrivere nella memoria fisica, mappandolo prima nella sua memoria (virtuale) e poi nella memoria fisica reale a cui il dispositivo è collegato. L hypervisor deve tenere traccia e mappare tutte le diverse locazioni di memoria virtuale I/O del guest e scambiare costantemente le rappresentazioni delle locazioni di memoria guest nella memoria fisica effettiva di I/O. Questo, come si comprende, può sovraccaricare il processore (perché l hypervisor deve eseguire numerosi compiti per gestire l I/O) e limitare il throughput dell I/O, dal momento che i dati devono passare attraverso l hypervisor prima di arrivare nella VM o nel dispositivo di I/O

23 Paravirtualization - 1 La Paravirtualization, come la binary translation, traduce il codice, ma non lo fa di volta in volta con l hypervisor, dal momento che la traduzione viene fatta nel source code, ovvero attraverso modifiche del sistema operativo. L hypervisor fornisce hypercall interfaces per le operazioni critiche del kernel come gestione della memoria, trattamento delle interruzioni; queste hypercalls avvengono solo se necessario, perché la maggior parte delle operazioni vengono effettuate dagli OS guest. In questo modo si riduce in maniera rilevante l overhead associato alla binary translation, con lo svantaggio di dover modificare i sistemi operativi guest.

24 Paravirtualization - 2 Questo tipo di approccio consente di ottenere il minimo decadimento prestazionale rispetto all esecuzione non virtualizzata, poiché le istruzioni provenienti dalle macchine virtuali vengono eseguite quasi tutte direttamente sul processore, senza l intervento di un sistema operativo che si ponga tra la macchina virtuale e le risorse fisiche.

25 Hardware-assisted virtualization I più recenti processori x86 prodotti a partire dal 2006 beneficiano di un set di istruzioni per la virtualizzazione che permettono alla piattaforma di soddisfare pienamente i requisisti di Popek e Goldberg, rendendo non più necessaria l interpretazione di alcune istruzioni non virtualizzabili. Purtroppo Intel e AMD non hanno reso compatibili fra loro le estensioni, perciò ogni software di virtualizzazione deve implementare entrambi i set. Le estensioni di AMD si chiamano AMD-V, mentre quelle di Intel per i suoi processori x86 si chiamano VT. Intel VT-x rappresenta il sottoinsieme delle estensioni sviluppate per i processori.

26 Intel VT-x - 1 Intel ha apportato alle CPU due nuovi livelli operazionali (protection level). I nuovi livelli di protezione consentono al VMM di operare in uno stato operazionale detto modalità root, mentre i guest non modificati lavorano nello stato non-root mode. Entrambe le due modalità supportano i quattro anelli della protected mode permettendo così ai software ospiti di operare al livello per cui sono stati scritti e attribuisce al VMM la flessibilità di poter usare più livelli di privilegio.

27 Intel VT-x - 2 VT-x definisce anche due nuove transizioni: - dalla root mode alla non-root mode = VM entry - dalla non-root alla root = VM exit Le transizioni sono gestite da una struttura dati chiamata virtual-machine control structure (VMCS). Grazie a questa soluzione molte istruzioni e eventi generano delle VM exit. Il tentativo da parte di una macchina virtuale di eseguire un operazione non autorizzata produce un eccezione VM exit che restituisce il controllo al VMM.

28 Intel VT-x - 3 Non è più necessario che il software di virtualizzazione intercetti il flusso delle istruzioni, in quanto il VMCS ha controllo degli interrupt e delle eccezioni. Il VMM ha completo accesso alle informazioni riguardati gli eventi sincroni incluso il codice d errore originato. Anche il problema delle system call è risolto: il sistema guest è in esecuzione in ring 0 e ciò elimina il problema delle transizioni dal kernel al guest.

29 Intel VT-x - 4

30 Intel VT-x - 5

31 Gestione dell'eccezioni - 1 VT-x permette all hypervisor di configurare ogni eccezione per provocare una VM exit; nella gestione delle VM exit l hypervisor ha l accesso completo all informazione che riguarda l eccezione, e può decidere che l evento che ha determinato una VM exit può essere gestito dal sistema operativo guest (exception reflecting, in questo caso l hypervisor effettua una VM entry al guest con funzione di event injection ), oppure interviene eliminando la causa dell eccezione (operazione di resuming).

32 Gestione dell'eccezioni - 2 In generale l hypervisor, come accennato prima, consegna l eccezione al guest usando una VM entry; copia (usando le istruzioni VMREAD e VMWRITE) il contenuto del VM-exit interruption-information field nel VM-entry interruption-information field, dopodiché esegue l istruzione VMRESUME per riprendere l esecuzione del guest. Nel caso in cui l hypervisor determina che una VM exit è stata causata da un eccezione dovuta a una condizione stabilita dall hypervisor stesso, può scegliere di rimuovere la condizione e riprendere (resume) l esecuzione del guest; l approccio di rimozione della condizione di eccezione dipende dall architettura e dagli algoritmi del software hypervisor.

33 Virtualizzazione delle interruzioni Per la virtualizzazione delle interruzioni, l hypervisor può consegnare un interruzione al guest usando una VM entry come event injection; se il guest non è pronto all interruzione, l hypervisor effettua una VM entry per far eseguire il guest, e quando quest ultimo è pronto per gestire l interruzione, effettua una VM exit, e la prossima VM entry viene usata per la consegna dell interruzione.

34 Intel VT-d - 1 Intel VT-d (Intel VT for Directed I/O) è l assistenza hardware per le operazioni di I/O; poiché su un server possono coesistere molteplici VM (e quindi molteplici sistemi operativi guest), il movimento di dati in ingresso e uscita dal sistema (I/O traffic) aumenta e diventa più complesso. Senza aiuto hardware, l hypervisor è coinvolto direttamente in ogni transizione di I/O: ciò non solo rallenta i movimenti di dati, ma accresce anche il carico sui processori del server, dovuto all elevata attività dell hypervisor. Intel VT-d ha l obiettivo di risolvere questi problemi, riducendo il coinvolgimento dell hypervisor nella gestione dell I/O traffic; infatti consente all hypervisor di assegnare specifici dispositivi di I/O a specifici sistemi operativi guest.

35 Intel VT-d - 2 Ogni dispositivo ha un area di memoria del sistema dedicata, che può essere acceduta solo dal dispositivo e da suo guest assegnato. Una volta che l assegnamento iniziale viene effettuato, i dati possono viaggiare direttamente tra il sistema operativo guest e i suoi dispositivi assegnati: l I/O traffic è più veloce e la ridotta attività dell hypervisor alleggerisce il carico sui processori del server.

ANALISI DELLE TECNOLOGIE INTEL-VT E AMD-V A SUPPORTO DELLA VIRTUALIZZAZIONE DELL'HARDWARE

ANALISI DELLE TECNOLOGIE INTEL-VT E AMD-V A SUPPORTO DELLA VIRTUALIZZAZIONE DELL'HARDWARE Tesi di laurea ANALISI DELLE TECNOLOGIE INTEL-VT E AMD-V A SUPPORTO DELLA VIRTUALIZZAZIONE DELL'HARDWARE Anno Accademico 2010/2011 Relatore Ch.mo prof. Marcello Cinque Candidato Guido Borriello Matr. 528/1336

Dettagli

Tecnologie di virtualizzazione

Tecnologie di virtualizzazione Tecnologie di virtualizzazione Obiettivo: disaccoppiare il comportamento delle risorse hardware e software di un sistema di elaborazione, così come viste dall utente, dalla loro realizzazione fisica. Disaccoppiamento

Dettagli

Tecniche di virtualizzazione di processori Intel-AMD. Gianluca Guida

Tecniche di virtualizzazione di processori Intel-AMD. Gianluca Guida Tecniche di virtualizzazione di processori Intel-AMD Gianluca Guida Copyright (c) 2006 Gianluca Guida Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free

Dettagli

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06. SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a

Dettagli

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO 2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO In questo capitolo verranno prese in considerazione le soluzioni tecnologiche e gli approcci implementativi della virtualizzazione basata su partizionamento

Dettagli

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA Corso di Sistemi Operativi Prof. Stefano Berretti SEMINARIO: VIRTUALIZZAZIONE DI INFRASTRUTTURE INFORMATICHE a cura di: Nicola Fusari A.A. 2012/2013

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

Virtualizzazione e macchine virtuali. Presentata da Bernardo Lombardi

Virtualizzazione e macchine virtuali. Presentata da Bernardo Lombardi Virtualizzazione e macchine virtuali Presentata da Bernardo Lombardi La virtualizzazione Per virtualizzazione, in ambiti informatici, si intende la creazione di una versione virtuale di una risorsa normalmente

Dettagli

Cenni sulla virtualizzazione

Cenni sulla virtualizzazione Virtualizzazione Cenni sulla virtualizzazione Anno accademico 2016/17 Sistemi Concorrenti e Distribuiti Tullio Vardanega Realizzare una vista logica su una risorsa indipendentemente dalla sua vera natura

Dettagli

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca

Dettagli

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non

Dettagli

Lezione 16. Il Software di base

Lezione 16. Il Software di base Lezione 16 Software di base Il Software di base Con il termine software di base si intende l insieme dei programmai che consentono ad un utente di eseguire operazioni base come costruire e mandare in esecuzione

Dettagli

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas I sistemi operativi (prima parte) Le esigenze dell informatica moderna Computer facili da usare Gestione di grandi archivi di dati Esecuzione di più programmi sulla stessa macchina Collegamento in rete

Dettagli

Architetture software. Virtualizzazione

Architetture software. Virtualizzazione Sistemi Distribuiti Architetture software 1 Virtualizzazione 2 1 Virtualizzazione (motivazioni) Sullo stesso elaboratore possono essere eseguiti indipendentemente d t e simultaneamente t sistemi i operativi

Dettagli

Input/Output (Cap. 7, Stallings)

Input/Output (Cap. 7, Stallings) Input/Output (Cap. 7, Stallings) Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi Tutti più lenti della CPU e della RAM Necessità di avere moduli

Dettagli

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Dettagli

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

Il Sistema Operativo. Informatica Sistema Operativo 1

Il Sistema Operativo. Informatica Sistema Operativo 1 Il Sistema Operativo Informatica Sistema Operativo 1 O.S.:.: un intermediario SW Applicativo Sistema Operativo HW Informatica Sistema Operativo 2 O.S. vs applicativi Applicativi accesso a un insieme ridotto

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di

Dettagli

Protezione del Kernel Tramite Macchine Virtuali

Protezione del Kernel Tramite Macchine Virtuali Protezione del Kernel Tramite Macchine Virtuali Fabio Campisi Daniele Sgandurra Università di Pisa 27 Novembre 2007 1/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa Sommario della

Dettagli

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati TEORIA DEI SISTEMI OPERATIVI Sistemi monoprogrammatie multiprogrammati 1 STRUTTURA DEL SISTEMA OPERATIVO UTENTE La struttura di un sistema operativo è di tipo gerarchico: i programmi che lo compongono

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione 1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1.

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware

Dettagli

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

Virtualizzazione con KVM. Reggio Emilia - Linux Day 2014 Stefano Strozzi KVM Virtualizzazione con KVM Considerazioni Legge di Gordon Moore (co-fondatore di Intel): «Le prestazioni dei processori, e il numero di transistor ad esso relativo, raddoppiano ogni 18 mesi.» http://it.wikipedia.org/wiki/legge_di_moore

Dettagli

I THREAD O PROCESSI LEGGERI

I THREAD O PROCESSI LEGGERI I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

LA GESTIONE DELLA I/O

LA GESTIONE DELLA I/O LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono

Dettagli

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE DELLA MEMORIA CENTRALE GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Input/Output. Livelli del sottosistema di I/O

Input/Output. Livelli del sottosistema di I/O Input/Output 1 Livelli del sottosistema di I/O Software di I/O di livello utente Software di sistema indipendente dal Di Driver dei didispositivi itii Gestori delle interruzioni Hardware utente kernel

Dettagli

Tecnologie per la Virtualizzazione. Ernesto Damiani, Claudio A. Ardagna Lezione 3

Tecnologie per la Virtualizzazione. Ernesto Damiani, Claudio A. Ardagna Lezione 3 Tecnologie per la Virtualizzazione Ernesto Damiani, Claudio A. Ardagna Lezione 3 1 Agenda Cpu Virtuali, Gestione della RAM Introduzione al VMFS La virtualizzazione dei Desktop La virtualizzazione dei Server

Dettagli

La gestione dell I/O (Cap. 5, Tanenbaum)

La gestione dell I/O (Cap. 5, Tanenbaum) La gestione dell I/O (Cap. 5, Tanenbaum) Prestazioni e generalità Gestione software Supporti su disco Orologi Lezione Architettura degli Elaboratori - 1 - A. Sperduti Pagina 1 Prestazioni e generalità

Dettagli

Periferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus

Periferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus Periferiche Interface Interface Interface Interface CPU SREG CREG DREG Il processore scambia informazioni con le periferiche attraverso dei registri. Tipicamente: Control REGister; Status REGister; Data

Dettagli

Sistema operativo & file system 1

Sistema operativo & file system 1 Il software (sw) Software di sistema e file system Lezione 1b L esecuzione di programmi è lo scopo di un elaboratore I programmi sono algoritmi codificati in un particolare linguaggio di programmazione

Dettagli

Sistema Operativo (Software di base)

Sistema Operativo (Software di base) Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche

Dettagli

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti

Dettagli

Protocolli multimediali

Protocolli multimediali Protocolli multimediali RTP, RTCP, RTSP Ormai molte applicazioni scambiano informazioni in cui le relazioni temporali sono molto importanti. La Telefonia via Internet, Videoconferenza, Lezioni a distanza,

Dettagli

Introduzione al Multithreading

Introduzione al Multithreading Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui

Dettagli

Le virtual machine e la memoria virtuale

Le virtual machine e la memoria virtuale Le virtual machine e la memoria virtuale Prof. Alberto Borghese Dipartimento di Scienze dell Informazione [email protected] Università degli Studi di Milano Riferimento Patterson 5: 5.6, 5.7. 1/29

Dettagli

Sistemi operativi e distribuiti

Sistemi operativi e distribuiti Sistemi operativi e distribuiti La memoria virtuale Memoria Virtuale Separazione della memoria logica da quella fisica Un programma potrebbe risiedere in memoria solo parzialmente Lo spazio di indirizzamento

Dettagli

Introduzione alla Programmazione. Giselda De Vita

Introduzione alla Programmazione. Giselda De Vita Introduzione alla Programmazione Giselda De Vita - 2015 1 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: ² Calcolo scientifico:

Dettagli

Kernel-Based Virtual Machine

Kernel-Based Virtual Machine Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Sistemi Operativi Kernel-Based Virtual Machine Anno Accademico 2013/2014 Candidato: Luigi Gallo

Dettagli

Linguaggi, compilatori e interpreti

Linguaggi, compilatori e interpreti Linguaggi, compilatori e interpreti 1 Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 001000100011

Dettagli

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) - Dedicati Quelli dei primi sistemi operativi. La macchina viene utilizzata da un utente per volta che può eseguire un solo programma per volta.

Dettagli

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

Dettagli

File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da:

File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da: File System File: definizione Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da: Dimensione Posizione Accessibilità (solo lettura, lettura e scrittura) Tipo (estensione)

Dettagli

Virtualization Benchmarking

Virtualization Benchmarking Università degli Studi di Salerno Laurea Magistrale in Informatica Corso di Sistemi Operativi II Virtualization Benchmarking Professore Giuseppe Cattaneo Studenti Ada Mancuso Francesco Raia Carmine Spagnuolo

Dettagli

Porte Input/Output (I/O Connectors)

Porte Input/Output (I/O Connectors) Porte Input/Output (I/O Connectors) Le porte I/O permettono al computer di comunicare (scambiare dati) con le periferiche Interfacce di entrata / uscita Porta seriale RS-232, invio dei dati attraverso

Dettagli

Analisi di prestazioni di applicazioni web in ambiente virtualizzato

Analisi di prestazioni di applicazioni web in ambiente virtualizzato tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Andrea Toigo in collaborazione con candidato Antonio Trapanese Matr. 534/1485 La virtualizzazione è un

Dettagli

Esperimenti di Sistemi Distribuiti Virtuali riconfigurabili per il risparmio energetico

Esperimenti di Sistemi Distribuiti Virtuali riconfigurabili per il risparmio energetico ALMA MATER STUDIORUM UNIVERSITÀ DI BOLOGNA FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica Esperimenti di Sistemi Distribuiti Virtuali riconfigurabili per il risparmio

Dettagli

Strutture dei Sistemi Operativi. Componenti del sistema Servizi di un sistema operativo Struttura dei sistemi operativi

Strutture dei Sistemi Operativi. Componenti del sistema Servizi di un sistema operativo Struttura dei sistemi operativi Strutture dei Sistemi Operativi Componenti del sistema Servizi di un sistema operativo Struttura dei sistemi operativi Gestione dei processi Un processo è un programma in esecuzione Un processo ha bisogno

Dettagli

Simuliamo ora il funzionamento di LRU sulla reference string data:

Simuliamo ora il funzionamento di LRU sulla reference string data: 1. Un computer ha quattro frame, i cui istanti di caricamento, di ultimo riferimento e i reference bit sono riportati nella seguente tabella: Frame Caric. Rifer. R 2 135 287 1 1 240 250 1 0 169 253 0 3

Dettagli

Esercitazione su Gerarchie di Memoria

Esercitazione su Gerarchie di Memoria Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,

Dettagli

Il Processore. Informatica di Base -- R.Gaeta 27

Il Processore. Informatica di Base -- R.Gaeta 27 Il Processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

Dettagli

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Calcolatori Elettronici Parte VIII: linguaggi assemblativi Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività

Dettagli

Virtualizzazione. Ciò si ottiene introducendo un livello di indirezione tra la vista logica e quella fisica delle risorse.

Virtualizzazione. Ciò si ottiene introducendo un livello di indirezione tra la vista logica e quella fisica delle risorse. Virtualizzazione Dato un sistema caratterizzato da un insieme di risorse (hardware e software), virtualizzare il sistema significa presentare all utilizzatore una visione delle risorse del sistema diversa

Dettagli

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse. Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

Struttura Logica del S.O:

Struttura Logica del S.O: Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

Sistema operativo. Interazione con il SO

Sistema operativo. Interazione con il SO Sistema operativo Il sistema operativo (SO) è un insieme complesso di programmi che, in modo coordinato, controlla le risorse del sistema e i processi che usano queste risorse. Per evidenziare le funzionalità

Dettagli

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008 VIRTUALIZZAZIONE LUG - CREMONA Linux Day - 25 Ottobre 2008 VIRTUALIZZAZIONE In informatica la virtualizzazione consiste nella creazione di una versione virtuale di una risorsa normalmente fornita fisicamente

Dettagli

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: [email protected] Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi Sistemi Operativi A.M. Fanelli Architettura dei Sistemi a. a. 2008-09 1 Livello di Sistema Operativo Livello di Linguaggi Applicativi Livello di Linguaggio Assembly Livello di Sistema Operativo Livello

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 20 Martedì 16-12-2014 1 System call per la gestione dei processi Creazione

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

SOLUZIONI: Memoria virtuale

SOLUZIONI: Memoria virtuale SOLUZIONI: Memoria virtuale INTRODUZIONE Memoria Virtuale: Si parla di memoria virtuale quando la memoria principale viene utilizzata come cache per la memoria di massa (dischi, nastri): - I programmi

Dettagli

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Sincronizzazione Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Soluzioni hardware Le soluzioni hardware al problema della SC possono essere classificate

Dettagli

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo

Dettagli