7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 1/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$'
D i p a r t i m e n t o d i n g e g n e r i a
M e c c a n i c a e n d u s t r i a l e
D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e
Elementi di informatica e
(rogrammazione
Docente: Marco Sechi
E-mail: marco.sechi)uni*s.it
Università degli Studi di Brescia
PROGRAMMAZIONEPROGRAMMAZIONE
Vers. 24/10/2015
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 2/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e – E l e m e n t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e Virtualizzazione
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 3/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e – E l e m e n t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e
Virtualizzazione
l linguaggio assembly + il linguaggio del
microprocessore. Un programma esegui*ile +
costituito da istruzioni assem*l, che vengono
interpretate ed eseguite dal microprocessore.Un programma che + stato progettato per
essere eseguito su un determinato hardare
è scritto nell’assembly di quel processore!/
non pu0 girare su un hardare diverso. (er
eseguire un applicativo su diverse piattaformehardare + necessario svilupparne diverse
versioni1 ciascuna specifica per il processore
che dove l2applicazione deve girare.
3uesto comporta costi molto elevati1 non solo
per via dello sviluppo multiplo1 ma anche nellagestione degli aggiornamenti: ogni modifica
deve essere replicata e testata su tutte le
piattaforme supportate4
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 4/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e – E l e m e n t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e
5a scrittura dei programmi direttamente in assem*l, appartiene alle prime
metodologie di sviluppo ed + ora poco diffusa. 6ggi l7assem*l, + utilizzato 8uando +
necessario ottenere applicazioni estremamente veloci oppure nella programmazione
dei microcontrollori PIC/ dove il sistema operativo + 8uasi inesistente o limitato a
poche funzionalità di *ase.
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 5/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
Sviluppare in assem*l, + molto complicato poich9 tale linguaggio risulta umanamente;
poco comprensi*ile. noltre la sua estrema atomicità ad esempio per svolgere una
semplice somma sono necessarie numerose istruioni assembly!/ comporta la stesura dilunghe se8uenze di istruzioni anche 8uando si vuole creare un semplice programma.
3ueste difficoltà hanno portato alla creazione di linguaggi ad alto livello1 che
contrariamente all7assem*l,1 risultano umanamente pi< comprensi*ili e compatti ad
esempio per svolgere un’operaione complessa come l’ordinamento di una sequena di
numeri basta riciamare una singola istruione" sort /.
linguaggi ad alto livello sono incomprensi*ili per il microprocessore per cui + necessario
utilizzare un programma detto compilatore/ che traduca le istruzioni ad alto livello in
assem*l, linguaggio a basso livello/.
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 6/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
l sistema operativo gioca un ruolo importante nello sviluppo delle applicazioni. 6ltre a
fornire l7interfaccia utente&macchina1 fornisce una serie di funzionalità che devono
essere presenti nella maggior parte delle applicazioni come ad esempio: l7uso dellastampante1 del video1 del mouse etc.
=ali funzioni1 chiamate API #$$ in %indo%s/1 possono essere inserite nelle applicazioni
tramite delle librerie/ senza che sia necessario riscriverle ogni volta. 3uesto permette
di semplificare ulteriormente lo sviluppo delle applicazioni.
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 7/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
5e !( svolgono un ulteriore funzione: filtrano gli accessi alle risorse hardare. (i< il
sistema operativo nasconde alle applicazioni il livello fisico impedendo qualsiasi accesso
diretto all’ard%are/ maggiore + il livello di sicurezza ottenuto. 5e !( controllano l7uso
delle risorse hardare imponendo delle regole che garantiscano un elevato livello di
sicurezza e sta*ilità del sistema.
!d esempio un keylogger dispositivo per registrare tutta l’attivit& di input dell’utente/ sarà
invisi*ile al sistema operativo 8uando comunica direttamente con il livello hardare. (er
*,passare le protezioni del sistema operativo un7applicaione spia deve necessariamenteavviarsi prima del boot del sistema operativo e modificarne le procedure di sicurezza.
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 8/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
5e applicazioni che utilizzano le !( di un sistema operativo restano comun8ue scritte in
linguaggio assem*l,. 5e chiamate alle !( rendono le applicazioni incompati*ili su sistemi
operativi differenti anche 8uando l7hardare utilizzato + lo stesso. !d esempio i sistemi
operativi MAC OS e Windows girano sullo stesso hardare ntel ma le loro applicazioninative risultano incompati*ili: un >ord per M!? non gira su >indos e viceversa.
RIASSUM!"O: Sviluppare un applicativo per diverse piattaforme implica costi elevati.
5a virtualizzazione softare e 8uella hardare permettono di aggirare 8uesto pro*lema.
@irtualizzando; + possi*ile scrivere un7applicazione solo una volta ed eseguirla poi su tutti
i sistemi operativi richiesti.
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 9/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
Aella virtuali##a#ione $ardware particolari softare emulano le componenti fisiche di un
computer creando di fatto un pc virtuale %irtual Mac$ine/ all7interno del pc fisico &ostPC/. l pc virtuale si comporta a tutti gli effetti come un normale (? sul 8ual possiamo far
girare un sistema operativo diverso da 8uello installato sulla macchina fisica.
%IR'UA(I))A)IO! &AR"WAR
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 10/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e
n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
l softare di virtualizzazione hardare ha nel suo pannello di gestione l2elenco delle
macchine virtuali disponi*ili e che possono essere avviate 8uando necessario.
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 11/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
n pratica la virtualiaione ard%are crea all2interno del nostro pc diverse finestre
applicative nelle 8uali vengono eseguiti veri e propri sistemi operativi
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 12/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
l softare di virtualizzazione pu0 integrarsi fortemente
con il sistema operativo ospitante OS &ost/ fino a
mostrare le applicazioni di altri sistemi operativi come
se fossero applicazioni native del nostro sistema. n
8uesto caso le applicazioni non vengono eseguite
all2interno di una finestra dove + evidente che sta
girando un altro sistema operativo OS *uest/.
l livello di
integrazione + tale
che l2utente non si
rende neppure conto
del meccanismo di
virtualizzazione che
sta utilizzando.
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 13/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m
m a z i o n e
D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
Esempi di %irtuali##atori &ardware sono:
+mu1 %irtual ,o-1 Microso.t %irtual PC1 Parallel "esktop Mac/ e %MWare.
https:&&.virtual*o.org& http:&&.vmare.com
http:&&.parallels.com&
https:&&.microsoft.com&it-it&donload&details.aspCid%F#
6*soleto4
http:&&.8emu.org
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 14/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m m a z i o n e
D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
5a preparazione di una macchina
virtuale consiste nell2avviare sul
proprio pc l2applicazione di
virtualizzazione.
(er utilizzare il (? virtuale +
necessario installare il sistema
operativo altrimenti all2avvio della
virtual machine otteniamo unmessaggio di alt .
E2 necessario 8uindi procedere con l2installazione del Sistema 6perativo utilizzando il set di
D@D appropriato.
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 15/22
%M /
%M 0
%M ! ' R M I ! A ( S
R % R
Concentratore
C(I!' 'S /
5a virtualiaione ard%are' portata dall2am*ito standalone ad un contesto di (A! rete
locale/1 costituisce la *ase del funzionamento del paradigma applicativo 'erminal Server. Aei
=S la Gmaccina virtualeG non gira pi< sul nostro computer ma su un sistema centrale che si
preoccupa di distri*uire le singole GvideateG sessioni/ ai client collegati i 8uali inviano allacorrispondente macchina virtuale @M/ i dati di input ac8uisiti tramite mouse e tastiera.
C(I!' 'S 0
C(I!' 'S !
1 A77 …
Videata
Input
%IR'UA(I)A'IO!
(A1R
Videata virtuale
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 16/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m m a z i o n e
D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
5a virtualiaione
ard%are estesa
dall2am*ito standalone ad
un contesto di WA! reti
geografiche1 ad esempio
internet/ costituisce il
punto di partenza di uno
dei servizi offerti dal
paradigma applicativo del
C(OU".
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 17/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m m a z i o n e
D i p a r t i m e n t o d i n g e g n e r i a M e c c a n
i c a e n d u s t r i a l e
5a @irtualizzazione Hardare riproduce via softare tutte le componenti fisiche
di un computer: ram1 cpu1 disco fisso1 etc. l virtualizzatore salva in un file1 sul
sistema host il contenuto del disco virtuale utilizzato dalla @irtual Machine.
%A!'A**I %IR'UA(I))A)IO! &AR"WAR
(osso utilizzare la virtual machine come
sistema di test per provare nuovi softare
la cui proveniena potrebbe destare
sospetti!/ oppure per visitare siti e*ritenuti a rischio. Se la macchina virtuale si
infesta di virus oppure si rovina mi *asta
sostituire il file a**inato al disco fisso del
sistema corrotto con una copia integra ce
mi ero messo da parte durante lacon(iguraione iniiale della virtual
macine/ ed ottengo immediatamente una
macchina perfettamente funzionate.
!pplicazioni costruite per particolari sistemi operativi anche o*soleti4/ possono essereeseguite su altri sistemi operativi senza dover apportare modifiche al softare
originale.
?ome già indicato la virtualizzazione hardare + l2elemento *ase del =erminal Server
S%A!'A**I %IR'UA(I))A)IO! &AR"WAR
Iichiede macchine potenti
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 18/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m e n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m m a z i o n e
D i p a r t i m e n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e
57o*iettivo della virtualizzazione softare + 8uello di fornire un linguaggio di sviluppo
programmazione/ universale che sia indipendente dal sistema operativo utilizzato. 5o stratosoftare che consente la virtualizzazione softare + detto .ramework. (rogrammi di
virtualizzazione softare sono 2ava e 3las$4
%IR'UA(I))A)IO! SO3'WAR
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 19/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m
e n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e – E l e m e n
t i d i i n f o r m a t i c a e p r o g r a m m a z i o n e
D i p a r t i m
e n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e
?on la virtualizzazione softare
l7applicazione viene scritta una sola
volta ed eseguita su tutti i sistemioperativi che supportano tale
frameorJ.
#include <QApplication>
#include <QTextEdit>
#include <QPushButton>
#include <QWidget>
#include <QVBoxLayout>
int main(int argc, char *argv[]){
QApplication app(argc, argv);
QTextEdit textEdit;
QPushButton quitButton("Esci");
QVBoxLayout layout;
QWidget window;
QObject::connect(&quitButton,SIGNAL(clicked()),&app,SLOT(quit())
);layout.addWidget(&textEdit);
layout.addWidget(&quitButton);
window.setLayout(&layout);
window.show();
return app.exec();
}
!pple 5inu>in
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 20/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m
e n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e – E l e m e n t i d i i n f o r m a t i c a e p r o g r a m m a z i o n e
D i p a r t i m
e n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e
l concetto di virtualiaione so(t%are pu0 essere esteso anche in am*ito WA!. 6tteniamo in
8uesto caso l2infrastruttura portante delle Web Application e del Cloud. Broser1 tramite
2avaScript1 CSS e &'M( diventano i virtualizzatori softare che gestiscono il .ront5end
applicativo. l back5end gira invece su istanze del motore applicativo app engine/ fornite dallapiattaforma del provider.
Piatta.orma C(OU"
5e funzionalità fornite dal back5end
vengono rese disponi*ili ai client
tramite l2Endpoints che mette a
disposizione le !( che i client possono
richiamare all2interno del loro codice
client code/.
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 21/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m
e n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e – E l e m e n t i d i i n f o r m a t i c a e p r o g r a m m a z i o n e
D i p a r t i m
e n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e
6gni client ce potrebbe ance non essere un bro%ser!/ comunica1 utilizzando un
opportuno client code Kavascript1 Kava1 6*Lect ?/1 con il back5end che gira sul app5engine
della piattaforma ?loud utilizzata/ tramite le !( rese disponi*ili dai cloud endpoints.
C(I!' SR%RAPICO"ICC(I!'
SPCI3ICO
enera le !( e le li*rerie
client a partire da un !pp
Engine indicato come un
*acJend !(/ che
semplificano l2accesso alle
risorse disponi*ili sulla
piattaforma.
7/24/2019 Excel2013 DV
http://slidepdf.com/reader/full/excel2013-dv 22/22
Docente: M. Sechi - Elementi di informatica e programmazione – Università degli studi di Brescia D..M. - !.!. "#$%&"#$' D i p a r t i m
e n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e – E l e m e n t i d i i n f o r m a t i c a e p r o g r a
m m a z i o n e
D i p a r t i m
e n t o d i n g e g n e r i a M e c c a n i c a e n d u s t r i a l e
Un esempio di virtualizzazione di 8uesto tipo + rappresentato dalle *oogle MAPS Api.
Iiferimento alle api disponi*ili su google: https:&&developers.google.com&products&
<html>
<HEAD>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp "></script>
<script src="googlemaps.js"></script>
</HEAD><body>
<div id="map-canvas" style="width: 500px; height:305px; float: left;"
class=googlemap></div>
</BODY>
</HTML>
(agina >EB
oogle Maps !(
KavaScript ?lient ?ode
*oogle Maps API permettono di
personalizzare le informazioni
visualizzate sulle mappe di oogle.