Scopo delle Moderne MV per HLL

Slides:



Advertisements
Presentazioni simili
Massa Laura Mela Enrica
Advertisements

Generalità Linguaggio e Macchina Astratta
Implementazione di un linguaggio ad alto livello (con riferimento a Java)
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Giuseppe Andronico CCR-WS10 Santa Tecla, 18 Maggio 2010 Introduzione MPI & GPU.
Università degli Studi di Perugia, LS in Informatica Seminario per il corso di Sicurezza Informatica (Prof. S. Bistarelli) Valentina Franzoni I nuovi paradigmi.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
1 14 marzo 2006 sommaruga andrea Fondazione Ordine Ingegneri di Milano VPN: Reti Private Virtuali VPN: RETI PRIVATE VIRTUALI LE POSSIBILITA' DI ACCESSO.
Generazione di codice dinamico per la realizzazione di catene di servizi componibili Progetto di Reti di Calcolatori LS A.A. 2007/08 Studente: Silvia Cereda.
IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI.
Elementi fondamentali dell’ Architettura di di un elaboratore elettronico.
PGDay 2009 FSGateway Ing. Torello Querci Resp. Architetture SW - Negens S.r.l. 4 Dicembre 2009, Pisa.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI LINGUAGGIO MACCHINA.
CONTROLLO DELLA CONCORRENZA
La chimica della vita Ogni organismo vivente è una macchina sofisticata, risultato di un complesso insieme di reazioni chimiche. La costruzione e il funzionamento.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
IL SOFTWARE (FPwin 6.0).
NAT, Firewall, Proxy Processi applicativi.
Introduzione alla programmazione MIDI
Sistemi e Applicazioni per l’Amministrazione Digitale
dCache Test effettuati al CNAF
App-to-Cloud Security
CARATTERISTICHE DI UN DATACENTER
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Linguaggi: guardando la semantica
Dal problema al processo risolutivo
Generazione di codice dinamico per la realizzazione di catene di servizi componibili Matteo Fazi – matr
Breve report su corso RedHat Enterprise Virtualization (RH318)
Programmazione per la Musica | Adriano Baratè
PROGETTO DI RETI DI CALCOLATORI L-S
Sistema di Analisi e di Acquisizione
LE ARCHITETTURE NON VON NEUMANN
Analysis framework of distributed thread and malware data-sources
Dal problema al processo risolutivo
Basi di Dati: Introduzione
(Breve) Riassunto del workshop WLCG
Diagrammi Implementativi
LE BANCHE DATI PER LE RICERCHE BIBLIOGRAFICHE
INFN-AAI Autenticazione e Autorizzazione
* Il Sistema Operativo GNU/Linux * Sistema Operativo e Applicazioni
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Cosa sono il Software Libero e GNU/Linux? Scopriamolo insieme!
Organizzare, gestire e proteggere i laboratori informatici
analizzatore di protocollo
Corso di Ingegneria del Web A A Domenico Rosaci 1
istalliamo l’ambiente di sviluppo - ide
Organizzazione di una rete Windows 2000
Vettori dinamici Definiremo la classe vector.
La trasformazione tecnologica 4.0
Controllo e microprogrammazione
Introduzione alle basi di dati
Progetto di Tecnologie Web 2014/2015 THERMOWEB
Programmare.
Introduzione alla materia sistemi
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Scheduling in Linux (Kernel 2.4 e 2.6)
© 2007 SEI-Società Editrice Internazionale, Apogeo
Ricorsione 16/01/2019 package.
APPUNTI SUL LINGUAGGIO C
INFN-AAI Autenticazione e Autorizzazione
OpenLayers Client di mappe “non solo” WMS
IT SECURITY Controllo di accesso
Parti interne del computer
Corso Java – Intoduzione
Unico 2009 – Esempi per la crisi
Introduzione ai DBMS I Sistemi di Gestione di Basi di Dati sono strumenti software evoluti per la gestione di grandi masse di dati residenti su memoria.
Array e Stringhe Linguaggio C.
Gentica e Biologia Molecolare
Semantica operazionale:
il povero manuale di sistema per sperimentare reti di computer
Transcript della presentazione:

Scopo delle Moderne MV per HLL La necessità è quella di distribuire programmi sulla rete a piattaforme diverse interconnesse. In questa situazione una architettura a HLL VM è molto conveniente: Ogni piattaforma implementa la VM. I programmi sono distribuiti in form compilata e vengono eseguiti sulla locale VM.

Modern HLL VMs features Oltre alle istruzioni (analoghe a quelle della P-code) HLL VMs includono le strutture dati: oggetti nella JavaVM. funzioni in a VM funzionale In questo modo la struttura dati è implementata sulla macchina fisica, in accordo alle carateristiche definite nella descrizione dei metadati.

HLL VM code to Local Machine code Loader Internal Data Structures Metadata Interpreter Code Native code Translator

Modern HLL VMs features Sicurezza e protezione: devono essere garantite anche eseguendo programmi recevuti da fonti non affidabili Robustezza: è molto importante per problemi complessi in ambiente distribuito Networking: Sulla rete si trovano situazioni molto diverse a cui è necessario adattarsi, per esempio larghezza di banda ridotta Performance

Sicurezza and Protezione I programmi (guest) (in forma compilata) sono distribuiti sulla rete ma eseguiti localmente dalla VM. I programmi guest devono poter accedere a alcuni file locali e remoti ma invece l’accesso ad altri file locali e remoti deve essere impedito. Anche il software della VM deve essee protetto dai programmi guest anche se in esecuzioni appartengono allo stesso processo. Tale tipo di protezione è diversa dalla protezione di solito fornita dai SO (isolamento dell’utente e protezione delle risorse)

Sicurezza and Protezione: file publici La HLL VM controlla che l’accesso ai file loali e/o remoti avvenga su file publici. Un metodo semplice è quello di definire define convenzioni concordate pubblicamente a proposito del naming dei file publici. Naturalmente la responsabilità della visibilità dei files è dell’utente del sistema remoto.

Sicurezza and Protezione: sandboxes L’ accesso alla memoria nell’host è controllata e limitata alle così dette sandbox. Fondamentalmente una sandbox è lo spazio di memoria di un’applet (piccola applicazione) in Java. Più recetemente (in Java 2) è stato introdotto un modello più sofisticato per la sicurezza.

Componenti della sandbox Emulation engine trusted standard libraries trusted lib met. nat. met. load met. class file Network File System loader trusted security manager trusted local file. local file Local File System Every thing outside the big box is untrusted except explicitely stated Ogni cosa fuori dalla riquado grande è non affidabile a meno che esplicitamente stabilito

Componenti della sandbox Emulation engine: esegue il codice Loader: controlla la definizione dei metodi nei class file e produce una versione locale dei metodi (loaded method) Security manager: controlla i tentativi di accesso ai file loali Metodi affidabili (trusted): librerie native: alcuni di questi sono quelli invocati per accedere a file locali. loaded (ottenuti dal loader come risultato del controllo)

Cosa deve essere controllato accessi alla memoria necessari per operare sulle strutture dati. trasferimenti di controllo (jumps) devono essere all’interno dell’area del programma (code area) transferimenti di controllo fuori dall’area del del programma devono derivare solo da chiamate e ritorni di metodi.

Processo di controllo statico Viene eseguito dal loader. se il languaggio è fortemente tipato, il loader può controllare che : tutte le structure dati siano parte di meta dati e gli accessi alla memoria devono essere consistenti. jumps sono all’interno dell’area del programma, se il jump è assoluto (?verificare) i transferimenti di controllo derivano solo da invocazioni e ritorni di metodi l’implementazione è più efficiente dato che i controlli a runtime sono limitati. accessi alla memoria il cui indirizzo viene calcolato da un computazione (f.i. arrays) non possono essere controllati staticamente, ma, devono essere controllati a run-time.

Processo di controllo dinamico viene eseguito dall’emulation engine controlla tutto quello che non è controllato staticamente. permette di utilizzare metodi di quelunque HL language (fortemente tipato o no). è inefficiente dato che il controllo è ripetuto ad ogni esecuzione

Caratteristiche Object-Oriented Tutti dati sono oggetti i.e. Una classe è un a specie di tipo astratto (equivalenza nominale di tipo) Una specie perchè le informazioni sull’implementation possono essere nascoste(private) o essere pubbliche (public) o protette(protcted). Ereditarietà e l’overriding di metodi, forniscono un tipo di polimorfismo Interfacces e classi astratte permettono di separare la specifica e l’implementazione

Garbage collection Oggetti sono allocati dinamicamente and memorizzati nello heap. Se un oggetto non è più raggiungibile, iil suo spazio di memoria può essere recuperato e riusato. Alcuni (vecchi) languaggi (Pascal C++) mettono a disposzione dell’utente meccanismi per liberare dati (objects) non più necessari. Problemi con riferimenti di memoria non validi(memory leaks) Una soluzione diversa è quella della garbage collection: un programma che visita la memoria per raccogliere dati non pi`u usati e restituirli al memory management.

Networking Operando in rete, può essere necessario risparmiare memoria a seconda anche del tipo di ambiente in cui eve operare.. Usando la tecnologia HLLVMs , programmi che circolano in rete sono expressi in un linguaggio ad alto livello, quindi sono molto più compatti. Comunque la specifica dei metadata probabilmente cancella la larghezza di banda (bandwidth) risparmiata. Il caricamento (loading) dinamico e incrementale è il reale beneficio.

Performance C’è molto spazio per migliorere la performance di sistema: traduzione invece di interpretazione ci sono parecchie tecniche che possono essere used per l’ottimizzazione: ottimizzazione traditional, profiling etc. (beyond the scope of the course)