Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un...

67
xxx IL SOFTWARE Marco Maiocchi

Transcript of Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un...

Page 1: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

IL SOFTWAREIL SOFTWARE

Marco Maiocchi

Page 2: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

Problemi e SoluzioniProblemi e Soluzioni

•Problema: ho fame.

•Soluzione: mangio un panino

o Problema: come ottengo un panino ?

o Soluzione1: preparo un panino;

o Soluzione2: lo compro al bar sotto casa;

Page 3: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

La ProgrammazioneLa Programmazione

La programmazione è l’attività di:

 

1 Analizzare un dato problema, completamente e correttamente;

2 Scomporlo in sottoproblemi;

2 Individuare, per ogni sottoproblema, le possibili soluzioni;

3 Individuare, per ogni sottoproblema, il metodo per arrivare alle soluzioni (algoritmo);

4 Scegliere il metodo che arriva alla soluzione con la maggior efficienza;

5 Descrivere il metodo scelto in uno specifico linguaggio;

Page 4: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

L’hardware serve per far funzionare il software

Il software serve per far fare all’hardware

tutto quello che vogliamo

Il software è organizzato in programmi

Una definizione empirica

quello che si tocca è hardware, il resto è software

Page 5: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

ISTRUZIONI, OPERAZIONI, ESECUTORIISTRUZIONI, OPERAZIONI, ESECUTORI

UOVA AL BURROUOVA AL BURRO

Far sciogliere 20 g di Far sciogliere 20 g di burroburro in un in un tegaminotegamino..Quando il Quando il burroburro è ben è ben dorato, rompere il dorato, rompere il guscioguscio dell’uovo e far scivolare dell’uovo e far scivolare tuorlotuorlo e e albumealbume delicatamente nel delicatamente nel tegaminotegamino. . Cuocere fino a che Cuocere fino a che l’l’albumealbume non si sarà non si sarà completamente rappreso.completamente rappreso.Salare.Salare.Servire nel Servire nel tegaminotegamino..

PROCEDIMENTOPROCEDIMENTOInput Output

Esecutore

Le istruzioni, comprensibili all’esecutore, permettono l’effettuazione delle operazioni per passare dalle condizioni d’entrata a quelle d’uscita.

Page 6: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

L’ESECUZIONE DA PARTE DI UN COMPUTERL’ESECUZIONE DA PARTE DI UN COMPUTER

Seleziona la cella indicata dal ContatoreEsegui l’istruzione Se 00 preleva il contenuto della cella indicata e mettilo in A Se 01 memorizza il contenuto di A

nella cella indicata Se 10 somma ad A il contenuto della

cella indicata Se 11 fermatiIncrementa il ContatoreTorna da capo.

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

ME

MO

RIA

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

CONTATORE

A

0 0 0 0 1 0 1 0

1 0 0 0 1 0 1 1

1 0 0 0 1 1 0 0

1 0 0 0 1 1 0 1

0 1 0 0 1 1 1 1

1 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1

0 0 0 0 0 0 1 1

0 0 0 0 0 0 1 0

0 0 0 0 0 1 0 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Page 7: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

LA FORMA MNEMONICALA FORMA MNEMONICA

0 0 0 0 1 0 1 0 LOAD VAL1

1 0 0 0 1 0 1 1 ADD VAL2

1 0 0 0 1 1 0 0 ADD VAL3

1 0 0 0 1 1 0 1 ADD VAL4

0 1 0 0 1 1 1 1 STORE TOT

1 1 0 0 0 0 0 0 STOP

0 0 0 0 0 0 0 0 -

0 0 0 0 0 0 0 0 -

0 0 0 0 0 0 0 0 -

0 0 0 0 0 0 0 0 -

0 0 0 0 0 0 0 1 VAL1 1

0 0 0 0 0 0 1 1 VAL2 3

0 0 0 0 0 0 1 0 VAL3 2

0 0 0 0 0 1 0 1 VAL4 5

0 0 0 0 0 0 0 0 -

0 0 0 0 0 0 0 0 TOT -

Page 8: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

PROGRAMMI E LINGUAGGIPROGRAMMI E LINGUAGGI

LA CPU riconosce ed esegue delle istruzioni elementari

• somme, moltiplicazioni, lettura e scrittura da uno o più byte della memoria, etc

• si chiama: linguaggio macchina, LM, (o assembler)

È troppo complicato scrivere un programma così

Sono stati inventati dei nuovilinguaggi

• un’istruzione del linguaggio = tante istruzioni di LM

Serve un programma che faccia la traduzione

• tradurre una volta, eseguire tante volte: compilatore

• tradurre durante l’esecuzione: interprete

Page 9: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

IL TRADUTTORE (COMPILATORE)IL TRADUTTORE (COMPILATORE)

LOAD VAL1

ADD VAL2

ADD VAL3

ADD VAL4

STORE TOT

STOP

-

-

-

-

VAL1 1

VAL2 3

VAL3 2

VAL4 5

-

TOT -

0 0 0 0 1 0 1 0

1 0 0 0 1 0 1 1

1 0 0 0 1 1 0 0

1 0 0 0 1 1 0 1

0 1 0 0 1 1 1 1

1 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1

0 0 0 0 0 0 1 1

0 0 0 0 0 0 1 0

0 0 0 0 0 1 0 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Conta le istruz. e assegna una posizioneTraduci comando: Se LOAD 00 Se ADD 10 Se STORE 01 Se STOP 11 Se numero, valoreInserisci la posizione che corrisponde al nome

Page 10: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

I LINGUAGGI EVOLUTII LINGUAGGI EVOLUTI

0 0 0 0 1 0 1 0

1 0 0 0 1 0 1 1

1 0 0 0 1 1 0 0

1 0 0 0 1 1 0 1

0 1 0 0 1 1 1 1

1 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1

0 0 0 0 0 0 1 1

0 0 0 0 0 0 1 0

0 0 0 0 0 1 0 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

TRADUTTORE

VAL1 = 1VAL2 = 3VAL3 = 2VAL4 = 5TOT = VAL1+VAL2+VAL3+VAL4STOP

Page 11: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

INTERPRETIINTERPRETI

LOAD VAL1

ADD VAL2

ADD VAL3

ADD VAL4

STORE TOT

STOP

-

-

-

-

VAL1 1

VAL2 3

VAL3 2

VAL4 5

-

TOT -

Seleziona la prima istruzione Se LOAD, cerca l’operando e caricane il valore in A Se STORE, cerca l’operando e caricacene il valore di A Se ADD, cerca loperando e sommane il valore ad A Se STOP fermatiPassa alla prossima istruzioneRipeti

Page 12: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

COMPILATORI E INTERPRETICOMPILATORI E INTERPRETI

COMPILATORECOMPILATORE

Programma che traduce da un linguaggio a un altro; in genere da un Programma che traduce da un linguaggio a un altro; in genere da un linguaggio di “alto livello” a uno eseguibile dall’hardwarelinguaggio di “alto livello” a uno eseguibile dall’hardware

INTERPRETEINTERPRETE

Programma che, simulando il comportamento di un hardware, esegue un Programma che, simulando il comportamento di un hardware, esegue un programmaprogramma

L’hardware è l’interprete fisico del suo linguaggio nativoL’hardware è l’interprete fisico del suo linguaggio nativo

Ogni programma può essere pensato come un “traduttore” dai dati di Ogni programma può essere pensato come un “traduttore” dai dati di entrata ai risultati di uscitaentrata ai risultati di uscita

Page 13: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

I DIAGRAMMI A TI DIAGRAMMI A T

L

L1

L

L

L1 L2TRADUTTORE DA TRADUTTORE DA L1 L1 A A L2 L2 SCRITTO IN SCRITTO IN LL

INTERPRETE DI INTERPRETE DI L1L1 SCRITTO IN SCRITTO IN LL

MACCHINA IN GRADO DI ESEGUIRE MACCHINA IN GRADO DI ESEGUIRE L L

Page 14: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

Proviamo a programmare: Istruzioni e ParametriProviamo a programmare: Istruzioni e Parametri

10 PROGRAMMA :CUCINA_TOAST

20 PRENDI(PANCARRÉ)

30 FETTAPANE1 = TAGLIA(PANCARRÈ, 1)

40 FETTAPANE2 = TAGLIA PANCARRÉ,1)

50 PRENDI(FORMAGGIO)

60 FETTAFORM1 = TAGLIA(FORMAGGIO, 0.3)

70 FETTAFORM2 = TAGLIA(FORMAGGIO, 0.3)

80 PRENDI(PROSCIUTTOCOTTO)

90 FETTAPROSC1 = TAGLIA(PROSCIUTTOCOTTO, 0.3)

100 FETTAPROSC2 = TAGLIA(PROSCIUTTOCOTTO, 0.3)

110 TOAST = SOVRAPPONI(FETTAFORM1, FETTAPANE1)

120 TOAST = SOVRAPPONI(FETTAPROSC1, FETTAFORM1)

120 TOAST = SOVRAPPONI(FETTAPROSC2, FETTAPROSC1)

120 TOAST = SOVRAPPONI(FETTAFORM2, FETTAPROSC2)

120 TOAST = SOVRAPPONI(FETTAPANE2, FETTAFORM2)

130 SCALDA(TOAST, 3)

140 FINEPROGRAMMA

Page 15: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

Proviamo a programmare: Loop (1)Proviamo a programmare: Loop (1)

10 PROGRAMMA :CUCINA_TOAST

20 PRENDI(PANCARRÉ)

30 FETTAPANE1 = TAGLIA(PANCARRÈ, 1)

40 FETTAPANE2 = TAGLIA PANCARRÉ,1)

50 FETTAPANE3 = TAGLIA PANCARRÉ,1)

60 FETTAPANE4 = TAGLIA PANCARRÉ,1)

70 FETTAPANE5 = TAGLIA PANCARRÉ,1)

etc...

Page 16: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

Proviamo a programmare: Loop (2)Proviamo a programmare: Loop (2)

10 PROGRAMMA :CUCINA_TOAST

20 PRENDI(PANCARRÉ)

30 NUMEROFETTA = 1

40 RIPETI

50 FETTAPANE(NUMEROFETTA) = TAGLIA(PANCARRÈ, 1)

60 NUMEROFETTA = NUMEROFETTA +1

70 FINCHÈ NUMEROFETTA=100

...

Page 17: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

Proviamo a programmare: Subroutine (1)Proviamo a programmare: Subroutine (1)

10 PROGRAMMA :CUCINA_TOAST30 NUMEROTOAST = 140 RIPETI50 TOAST(NUMEROTOAST) = PREPARATOAST60 NUMEROTOAST = NUMEROTOAST +170 FINCHÈ NUMEROTOAST =5080 FINEPRORAMMA100 SUBROUTINE: PREPARATOAST110 PRENDI(PANCARRÉ)120 FETTAPANE1 = TAGLIA(PANCARRÈ, 1)140 FETTAPANE2 = TAGLIA PANCARRÉ,1)150 PRENDI(FORMAGGIO)160 FETTAFORM1 = TAGLIA(FORMAGGIO, 0.3)170 FETTAFORM2 = TAGLIA(FORMAGGIO, 0.3)180 PRENDI(PROSCIUTTOCOTTO)190 FETTAPROSC1 = TAGLIA(PROSCIUTTOCOTTO, 0.3)200 FETTAPROSC2 = TAGLIA(PROSCIUTTOCOTTO, 0.3)210 TOAST = SOVRAPPONI(FETTAFORM1, FETTAPANE1)220 TOAST = SOVRAPPONI(FETTAPROSC1, FETTAFORM1)220 TOAST = SOVRAPPONI(FETTAPROSC2, FETTAPROSC1)220 TOAST = SOVRAPPONI(FETTAFORM2, FETTAPROSC2)220 TOAST = SOVRAPPONI(FETTAPANE2, FETTAFORM2)230 SCALDA(TOAST, 3)240 FINESUBROUTINE

Page 18: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

Proviamo a programmare: CondizioniProviamo a programmare: Condizioni

10 PROGRAMMA :CUCINA_TOAST

30 NUMEROTOAST = 1

35 DORATURA = MEDIA

40 RIPETI

50 TOAST(NUMEROTOAST) = PREPARATOAST

60 NUMEROTOAST = NUMEROTOAST +1

70 FINCHÈ NUMEROTOAST =50

80 FINEPRORAMMA

100 SUBROUTINE: PREPARATOAST

230 SE DORATURA = LEGGERA

240 ALLORA SCALDA(TOAST, 3)

250 ALTRIMENTI SE DORATURA = MEDIA

260 ALLORA SCALDA(TOAST, 4)

270 ALTRIMENTI SE DORATURA = ROBUSTA

280 ALLORA SCALDA(TOAST, 5)

290 FINESUBROUTINE

Page 19: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

L’EVOLUZIONE DEI LINGUAGGI DI PROGRAMMAZIONEL’EVOLUZIONE DEI LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI NON LINGUAGGI NON PROCEDURALIPROCEDURALI

CODICE MACCHINACODICE MACCHINA

LINGUAGGI A OGGETTILINGUAGGI A OGGETTI

LINGUAGGI LOGICILINGUAGGI LOGICI

LINGUAGGI PROCEDURALILINGUAGGI PROCEDURALICOBOL, FORTRAN. BASIC, ...COBOL, FORTRAN. BASIC, ...

LINGUAGGI ASSEMBLERLINGUAGGI ASSEMBLER

APPLICAZIONI APPLICAZIONI PARAMETRICHEPARAMETRICHE

Page 20: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

QUANTO COSTA SVILUPPARE SOFTWARE?QUANTO COSTA SVILUPPARE SOFTWARE?

200 istruzioni per mese persona

2200 istruzioni per anno persona

60 milioni retribuzione annue

100 milioni di costo annuo

180 milioni di costo complessivoannuo

180.000.000

2.200= 82.000

Page 21: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

I SISTEMII SISTEMIOPERATIVIOPERATIVI

Page 22: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

I SISTEMI OPERATIVII SISTEMI OPERATIVI

……

Leggi A

Leggi B

C = A+B

Stampa C

…...

È arrivato il dato?Se no, ripetiSe sì, usa il dato

Se è un tasto,0,1 secondi

1 milionesimo disecondo o meno

LA CPU E’ IN ATTESALA CPU E’ IN ATTESAPER IL 99,999 % !PER IL 99,999 % !

Page 23: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

I SISTEMI BATCHI SISTEMI BATCH

GRANDE GRANDE COMPUTERCOMPUTER

Scrittura di nastri magnetici

StampaVelocità ditrasferimento:300 K crt/sec

Velocità ditrasferimento:300 K crt/sec

Rispetto all’esempio precedente, non 1 milionesimo /1 decimo di secondo, ma1 milionesimo/ 3 milionesimi di secondo: CPU in attesa per il 67% del tempo

Page 24: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

COSA E’ CAMBIATOCOSA E’ CAMBIATO

Lavori di X

Cosa fare

Cosa fare

Fine XLavori di Y

Cosa fare

……...

Poiché c’è un’unica esecuzione, è necessario sapere quali sono i consumi edi chi, per addebitare i costi

Page 25: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

COSA E’ CAMBIATO ALL’INTERNO:COSA E’ CAMBIATO ALL’INTERNO:

PROGRAMMA DA ESEGUIREPROGRAMMA DA ESEGUIRE

MEMORIA

SUPERVISORESUPERVISORE

Do leggi chi è il richiedente prendi il tempo leggi cosa vuole fare ripeti

esegui quanto richiestoleggi cosa vuole fare

fino a che non trovi “fine” prendi il tempo attribuisci il tempo intercorso all’utenteRipeti

Cedi la CPU al programma richiestoe attendi che questo finisca

Page 26: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

QUINDIQUINDI

All’interno del computer ci sono sempre due programmi contemporaneamente:

1. Il supervisore

2. Il programma dell’utente.

I due programmi sono in esecuzione uno per volta, e, mentre il primo è sempre presente, il secondo è presente solo per quanto è necessario.

Page 27: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

LA MULTIPROGRAMMAZIONELA MULTIPROGRAMMAZIONE

MEMORIA

SUPERVISORESUPERVISORE

Can. INCan. INCan. OUTCan. OUT

Progr. Progr. AA

Progr. Progr. BB

Progr. Progr. CC

UNA POSSIBILE STORIAUNA POSSIBILE STORIA

SPVSPV AA BB CC ININ OUTOUTSPV in esecuz.SPV in esecuz.SPV cede ad ASPV cede ad AA in esecuz.A in esecuz.A chiede INA chiede INSPV invoca IN SPV invoca IN SPV valutaSPV valutaSPV cede a CSPV cede a CC in esecuzC in esecuzC chiede OUTC chiede OUTSPV invoca OUTSPV invoca OUTSPV valutaSPV valutaSPC cede a BSPC cede a BIN finisceIN finisceSPV valutaSPV valutaSPV cede ad ASPV cede ad A……....

Page 28: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

GLI EFFETTI DELLA MULTIPROGRAMMAZIONEGLI EFFETTI DELLA MULTIPROGRAMMAZIONE

CI SONO SEMPRE MOLTI PROGRAMMI CONTEMPORANEAMENTE ATTIVI, E UNO SOLO IN ESECUZIONE:

• i tempi di processing e di I/O sono sovrapposti

• nessun programma gestisce direttamente l’I/O

• il supervisore introduce una “overhead” di consumi

• la CPU è sfruttata “al meglio”

• si possono introdurre criteri di priorità nella selezione del prossimo programma da mandare in esecuzione

Se un programma non in esecuzione occupa memoria centrale inutilmente, viene temporaneamente “scaricato” su disco, per fare spazio ad altri; la sua immagine verrà ricaricata al momento della sua esecuzione. Si parla di SWAPPING su disco.

Page 29: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

LE REGOLE DELLA MULTIPROGRAMMAZIONELE REGOLE DELLA MULTIPROGRAMMAZIONE

Il SPV prende il controllo quando:

• un programma chiede I/O

• un programma è in errore

• un programma termina

• arriva un segnale di Interrupt

Un programma può essere in stato di:

• “run” se è in esecuzione

• “wait” se deve attendere dati dall’esterno

• “idle” se, pur potendo essere eseguito, non è in esecuzione

Il SPV cede il controllo

• a quel programma, tra tutti quelli “idle”, che ha maggior priorità

Page 30: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

COSA E’ UN PROGRAMMA ATTIVOCOSA E’ UN PROGRAMMA ATTIVO

Un programma IDLE o RUNNING è caratterizzato da:

• il programma stesso

• il puntatore all’istruzione in esecuzione nel momento

• lo stato della memoria (variabili, dati, ecc.)

• lo stato di registri interni che indicano il risultato di confronti, eventuali condizioni d’errore, ecc.

TUTTO CIO’ DEVE VENIRE SALVATO NELLE OPERAZIONI DI SWAPPING

Page 31: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

MISURE DI SERVIZIO DI SISTEMI OPERATIVIMISURE DI SERVIZIO DI SISTEMI OPERATIVI

Throughput:Throughput:• misura la quantità di lavoro fatta nell’unità di tempo, ovvero il tempo di misura la quantità di lavoro fatta nell’unità di tempo, ovvero il tempo di

impegno della CPUimpegno della CPU

Turn-around-timeTurn-around-time• misura il tempo di risposta per l’utente dal momento di richiesta delle misura il tempo di risposta per l’utente dal momento di richiesta delle

informazioni a quello di ottenimento dei risultatiinformazioni a quello di ottenimento dei risultati

Obiettivo di un Sistema Operativo è di massimizzare il primo e minimizzare Obiettivo di un Sistema Operativo è di massimizzare il primo e minimizzare il secondo.il secondo.

La multiprogrammazione è un buon passo avanti, ma che succede se un La multiprogrammazione è un buon passo avanti, ma che succede se un programma che deve fare solo calcolo interno prende il controllo? Nessuno programma che deve fare solo calcolo interno prende il controllo? Nessuno degli altri programmi potrà accedere alla CPU, peggiorando il secondo degli altri programmi potrà accedere alla CPU, peggiorando il secondo parametro.parametro.

QUINDI...QUINDI...

Page 32: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

TIME SHARINGTIME SHARING

A ogni programma è assegnata una “TIME SLICE”

Il SPV prende il controllo quando:

• un programma chiede I/O

• un programma è in errore

• un programma termina

• arriva un segnale di Interrupt

• è finita la time slice del programma in esecuzione

Il SPV cede il controllo

• a quel programma, tra tutti quelli “idle”, che ha maggior priorità, rispettando l’ordine di coda rispetto al consumo delle time slice

Page 33: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

MULTIPROCESSINGMULTIPROCESSING

VALE TUTTO QUANTO DETTO, MA TRA LE RISORSE DISPONIBILI NON CI SONO SOLO

•I/O

•MEMORIA

•…..

MA ANCHE PIU’ CPU

PIU’ PROGRAMMI CONTEMPORANEAMENTE, INCLUSO IL SPV, POSSONO ESSERE ESEGUITI

Page 34: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

MULTITASKINGMULTITASKING

UN SISTEMA OPERATIVO, PUR CON UN UNICO UTENTE, PUO’ AVERE SITUAZIONI COME QUELLE DESCRITTE:

Nell’uso di un comune PC col Sistema Operativo Windows molti “TASK” sono attivi contemporaneamente:

• un processo che “ascolta” tastiera e mouse

• un processo che si occupa della visualizzazione sullo schermo

•un antivirus che controlla tutti i file che entrano in esecuzione

• più programmi, visualizzati su più finestre, che vengono eseguiti, uno alla volta pur essendo attivi, controllati dall’utente

• il supervisore che provvede all’armonizzazione di tutte le esecuzioni.

Page 35: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

MEMORY MANAGEMENTMEMORY MANAGEMENT

La memoria centrale è una risorsa limitata.

Il numero di applicazioni in funzione nello stesso istante all’interno di un computer è molto alto.

Il Sistema di Memory Management provvede a virtualizzare la memoria centrale con immagini sui dischi, in modo da far apparire all’utente una memoria molto più ampia, potenzialmente illimitata.

Parte di queste attività sono già state indicate con il termine SWAPPING.

Page 36: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

FILE MANAGEMENTFILE MANAGEMENT

Sistema che si occupa di:

• creazione, copia, eliminazione, sostituzione di file

• allocazione dei file sui supporti fisici

• gestione degli spazi su supporto fisico rispetto alla struttura logica dei file

Criteri di indirizzamento:

alfa.doc file reperibile sullo stesso disco del SO

c:alfa.doc file reperibile sul disco C

c:dir1/alfa.doc file reperibile su C, ma all’interno della directory dir1

d:dir1/dir2/…./alfa.doc file reperibile su D, all’interno di dir1, e poi di dir2, ecc.

Page 37: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

CARATTERISTICHE DEI FILECARATTERISTICHE DEI FILE

I file sono tipizzati rispetto alle possibilità di accesso:

SEQUENZIALE

• accesso dalla prima all’ultima unità di registrazione (record), nell’ordine, come su un registratore a nastro

RANDOM

• accesso in qualunque punto del fiel, specificando la posizione fisica, come la selezione del brano di un CD per numero

INDEXED

• accesso in un punto del file, sulla base di un indice, come ad esempio, a partire dalla lettera D di un elenco telefonico

INDEXED SEQUENTIAL

• come il precedente, ma con la possibilità di proseguire poi sequenzialmente

Page 38: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

DBMS - Data Base Management SystemDBMS - Data Base Management System

Sistema che si occupa di organizzare informazioni su file che contengono, oltre che i dati, le relazioni tra gli stessi: si tratta di un’evoluzione del file system.

Nell’esempio riportato, è pensabile di chiedere operazioni come:

• Selezionare tutti i record che hanno come sede “Milano” e come fatturato un valore >”10.000.000.000”, e che non hanno emesso ordini dopo l’1.1.2000

Rag.SocialeRag.Sociale IndirizzoIndirizzo CittàCittà FatturatoFatturato SettoreSettore …….…….…………………………....Rossi&RossiRossi&Rossi via … via … RomaRoma 100.000.000100.000.000 MetallurgiaMetallurgiaRossiniRossini via …via … MilanoMilano 10.000.000.000 Moda10.000.000.000 Moda………………………………......

Rag.SocialeRag.Sociale IndirizzoIndirizzo CittàCittà FatturatoFatturato SettoreSettore …….…….…………………………....Rossi&RossiRossi&Rossi via … via … RomaRoma 100.000.000100.000.000 MetallurgiaMetallurgiaRossiniRossini via …via … MilanoMilano 10.000.000.000 Moda10.000.000.000 Moda………………………………......

Fatt.nFatt.n DataData ImportoImporto StatoStato……1717 18.12.99 18.12.99 100.000100.000 PagatoPagato134134 6.3.006.3.00 1.234.0001.234.000 PendentePendente..

Fatt.nFatt.n DataData ImportoImporto StatoStato……1717 18.12.99 18.12.99 100.000100.000 PagatoPagato134134 6.3.006.3.00 1.234.0001.234.000 PendentePendente..

Page 39: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

QUANTO E’ QUANTO E’ ““PERICOLOSO” PERICOLOSO” IL SOFTWAREIL SOFTWARE

Page 40: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

LE CATASTROFILE CATASTROFI

•"La Società è sempre piu dipendente dal software e ne diviene vulnerabile per MALFUNZlONI e per USO ERRATO"

•"Il SOFTWARE manipola dati: sempre più importanti e critici; ma può diventare INSICURO"

•"II SOFTWARE pervade la nostra vita: sempre di più e in ogni settore; ma può diventare INAFFIDABILE"

•"II SOFTWARE una creazione dell'uomo: sempre più complessa; ma può diventare INGESTIBILE"

Page 41: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

CATASTROFICATASTROFI

"Se per 24 ore tutto il SOFTWARE (i calcolatori) del mondo si fermasse, riprendendo il suo corretto funzionamento nell'istante successivo, questo causerebbe diversi milioni di morti1 e miliardi di dollari di perdite economiche2"

1 stima: tra 1 e 5 milioni di morti2 stima: tra 1 miliardo e 5000 miliardi di $

(Fonte: Forester, Computer Ethics)

Page 42: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

CATASTROFI: ESEMPICATASTROFI: ESEMPI

1984 - American Arbitration - Dispute su progetti per 31 M$1986 - Allstate Insurance - Prev.: 8M$ Consunt.: 100M1988 - Bank of America - Prev.: 20M$ Consunt.: 60M$ NON funziona1988 - American Arbitration - Dispute su progetti 200M$ -190 per difetti

Centrale Nucleare di Three Miles IslandChernobylChallenger Space ShuttleCaduta inaugurale Airbus 320 (scala altimetro)Caduti altri 2 Airbus 320 (idem)Affondamento della HMS Sheffield nella guerra delle FaulklandAbbattimento Airbus iraniano da parte USS Vincennes -guerra GolfoDue Tornado cadono per passaggio vicino antenna TV Europa 2)Lauda Air alle Filippine - 1991

Page 43: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

CATASTROFI (cont.)CATASTROFI (cont.)

Caduta 5 elicotteri UH-Blackhawk (immunità elettromagnetica)F/A 18: lancia missile e chiude sportello prima della sua partenzaMariner 18: fatto esplodere in volo per rischio caduta (DO 10 I=1.5)AUDI 5000: 250 incidenti per gest. iniezione in frenata -danni 150 M$Terapia a microonde uccide portatore pace-maker per staratura - 1980Un robot prende alle spalle un operaio e lo uccide (Kawasaki- 1981)Pompa a insulina sbaglia il destrosio a un diabeticoTerapia raggi X: 17000 e 25000 rad invece di 5000 - 1985 e l986Sistema esperto: intervento ambulat., somministr.-coma e morte 1986Heathrow bloccato - 1988Borsa di Milano bloccata - 1990Borsa di Londra bloccata - 1993 Fuoco (Tokio - 1984) persi 23 mld di yenAcqua (Borsa di Milano - 1990) Alimentazione (Borsa di Milano - 1990)

Page 44: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

CATASTROFI (cont.)CATASTROFI (cont.)

impiegato scontento cambia voci della Enciclopedia Britannica - 1986

cavi tagliati: 35000 telefoni, centinaia di FAX, ATM, calcolatori, POS, ... sabotatore collaborò alla soluz. a pagamento (Sydney -1987)

milioni di azioni non trattate per 82’ (Nat’l Assoc. Sec. Dealers - 1987)

studenti inglesi cambiano la quotazione della sterlina '1988)

studenti inglesi leggono la posta elettronica della Casa Reale ( 1988)

1979 - EFT da NY in Svizzera - 10.2 M$

1984 - EFT dalla VolksWagen - 260 M$

1986 - EFT da UK in Svizzera - 8.5 M$

1987 - ATM a NY - 86000 $

1987 - EFT USA - 70 M$

Page 45: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

CATASTROFI (cont.)CATASTROFI (cont.)

1987 - SWIFT da NY a Zurigo - 8.4 M$

1987 - SWIFT da NYa Zurigo - 6.7 M$ il secondo trasferimento fallisce; F. Noe (impieg.Lloyds Bank - NL) torna a controllare: scoperto

1987 - 18 arresti a NY modifica mem. tel. cellulari - 40 M$/mese danno

1987 - USA; hackers usano codici rubati per telefonate - 20 M$ danno

1987 - Ernst & Whinney dichiara danni di 4mld/anno ad Aziende USA da Comp. Crime (>40M£ in UIC; >500 MFF in F)

1988 - EFT da UK in Svizzera - 54 M$

1988 - ATM a NewYork - 237000 $

1988 - ATM in USA -14 M$1988 - ATM in Nuova Zelanda - 1M$1990 - Bancomat a Milano (Di Pietro)1990 - Trasfer. Roma/UK/Tokio Dov’è commesso crimine ? (Di Pietro)

Page 46: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

CATASTROFI (ultimo)CATASTROFI (ultimo)

89% dei casi NON perseguitati

82% dei casi perseguitati NON condannati

Il COMPUTER CRIME paga:

meno del 2% di condanne

600000 $ di resa media

(3000 $ per rapina a mano armata)

Page 47: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

LE TIPOLOGIE LE TIPOLOGIE DI APPLICAZIONIDI APPLICAZIONI

Page 48: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

TIPOLOGIE DI APPLICAZIONI PER SETTORE D’IMPIEGOTIPOLOGIE DI APPLICAZIONI PER SETTORE D’IMPIEGO

• GESTIONALE• Amministrazione• Contabilità• Contabilità industriale• Controllo produzione• Sistemi integrati• ERP• ……..

• SCIENTIFICO/TECNICO• Ricerca Scientifica• Ingegneria• Strutture• CAD/CAM• Controllo di processo• …………..

• TELECOMUNICAZIONI• Telefonia fissa• Telefonia mobile• Trasmissione dati• ………..

• MEDICINA• Gestione pazienti• Controllo e monitoraggio• Diagnostica• ……………..

• GRAFICA E IMMAGINE• Grafica 2D• Grafica 3d• Animazioni• …………..

Page 49: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

SETTORISETTORI

E’ inutile cercare di classificare i settori di applicazione: conviene indicare

TUTTI

Forse è possibile indicare le tipologie di impiego o di interazione, o di vendita, indipendenti dal settore.

Page 50: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

INTERAZIONE CON L’UOMOINTERAZIONE CON L’UOMO

PROGRAMMI PER GLI UTENTI vs EMBEDDED

Un programma orientato all’utente deve essere usato da un essere umano, con tutte le conseguenze di localizzazione linguistica, culturale, ecc, di supporti di addestramento e di integrazione con le altre attività; es. contabilità, prenotazioni, applicazioni di sportello, ecc.

Un programma “embedded” è nascosto all’interno di un altro sistema, non necessariamente con consapevolezza dell’utente, che non può interagire direttamente col software; es. il controllo dell’ABS, l’iniezione delle automobili, i controlli di volo di un aereo, le regolazioni di un frigorifero, ecc.

Page 51: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Commercio elettronico B2BCommercio elettronico B2CContabilità analiticaGrafica 2DGrafica 3DCalcolo strutturaleCalcolo scientificoCAD/CAMAnimazioneSimulazione

Sistemi Sistemi espertiespertiIntelligenza Intelligenza artificialeartificialeSistemi educazionaliGiochiSoftware automotiveTelecomunicazioni fisseTelecomunicazioni mobiliApplicazioni medicaliComputer artAlgoritmi geneticiTrasmissioni datiReti di computerEdutainmentWordprocessingCalcolo matematico

White goodsReti neuronaliRiconoscimento vocaleApplicazioni musicaliSistemi OCRInterpretazione del linguaggio naturaleRoboticaDomoticaIntelligent buildingCritica letterariaGenerazione artisticaCinemaScenografiaCalcolo simbolicoTraduzione automaticaApplicazioni d’ufficio……………………...

Test di TuringDOMANDA: Mi scriva, per favore, un sonetto sul tema "Forth Bridge"RISPOSTA: Non faccia affidamento su di me per questo. Non ho mai saputo scrivere poesie.DOMANDA: Sommi 34957 a 70764

Si noti che la risposta è sbagliata (34957 sommato a 70764 dà come risultato 105721).

RISPOSTA: (pausa di circa 30 secondi e poi la risposta) 1056214DOMANDA: Gioca a scacchi?RISPOSTA: SìDOMANDA: Ho il Re in e1 e nessun altro pezzo. Lei ha solo il Re in c3 e una Torre in h8. Tocca a lei. Che mossa giuoca?RISPOSTA: (dopo una pausa di quindici secondi) Torre in h1 matto.

Imitazione del dialogoPARRY: Non capisco le sue ragioniDOTTORE: Perché non capisce le mie ragioni ?PARRY: Non dovrei esserlo?DOTTORE: Perché dice questo proprio ora ?PARRY: Le cose stanno cosìDOTTORE: Supponga che stiano nel modo esattamente oppostoPARRY: E allora?DOTTORE: Non sono sicuro di capirla del tuttoPARRY: Insiste troppo sullo stesse domandeDOTTORE: Cosa le suggerisce questa somiglianza?PARRY: Non la capiscoDOTTORE: Lei desidera capire?PARRY: Finalmente comincia a mostrare interesse per i miei sentimenti!DOTTORE: Oh! Ho mostrato interesse per i suoi sentimenti?

Page 52: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

ContabilitàFinanzaTradingCommercio elettronico B2BCommercio elettronico B2CContabilità analiticaControllo della produzioneMagazzinoGestione venditeMarketingGrafica 2DGrafica 3DCalcolo strutturaleCalcolo scientificoCAD/CAMAnimazioneSimulazione

Controllo impiantiControllo numericoControllo di processoSistemi espertiSistemi educazionaliGiochiSoftware automotiveTelecomunicazioni fisseTelecomunicazioni mobiliApplicazioni medicaliComputer artAlgoritmi geneticiTrasmissioni datiReti di computerEdutainmentWordprocessingCalcolo matematico

White goodsReti neuronaliRiconoscimento vocale

Applicazioni Applicazioni musicalimusicaliSistemi OCRInterpretazione del linguaggio naturaleRoboticaDomoticaIntelligent buildingCritica letterariaGenerazione artisticaCinemaScenografiaCalcolo simbolicoTraduzione automaticaApplicazioni d’ufficio……………………...

Page 53: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

ContabilitàFinanzaTradingCommercio elettronico B2BCommercio elettronico B2CContabilità analiticaControllo della produzioneMagazzinoGestione venditeMarketingGrafica 2DGrafica 3DCalcolo strutturaleCalcolo scientificoCAD/CAMAnimazioneSimulazione

Controllo impiantiControllo numericoControllo di processoSistemi espertiSistemi educazionaliGiochiSoftware automotiveTelecomunicazioni fisseTelecomunicazioni mobiliApplicazioni medicaliComputer artAlgoritmi geneticiTrasmissioni datiReti di computerEdutainmentWordprocessingCalcolo matematico

White goodsReti neuronaliRiconoscimento vocaleApplicazioni musicaliSistemi OCRInterpretazione del linguaggio naturaleRoboticaDomoticaIntelligent buildingCritica letterariaGenerazione artistica

CinemaCinemaScenografiaCalcolo simbolicoTraduzione automaticaApplicazioni d’ufficio……………………...

Page 54: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Commercio elettronico B2BCommercio elettronico B2CGrafica 2DGrafica 3DCalcolo strutturaleCalcolo scientificoCAD/CAMAnimazioneSimulazione

Sistemi educazionaliGiochiSoftware automotiveTelecomunicazioni fisseTelecomunicazioni mobiliApplicazioni medicaliAlgoritmi geneticiTrasmissioni datiReti di computerEdutainmentWordprocessingCalcolo matematico

White goodsReti neuronaliRiconoscimento vocaleSistemi OCR

Computer artComputer artCritica letterariaCritica letterariaGenerazione Generazione artisticaartisticaScenografiaCalcolo simbolicoTraduzione automaticaApplicazioni d’ufficio……………………...

Generazione automatica di fiabe popolari russeGenerazione automatica di fiabe popolari russe

Dopo avere attaccato e ingannato il mago del regno, il ciclope Cecyl rubò la pozione magica. Subito dopo la disgrazia, furono inviati degli araldi per informare i regni vicini del fatto, chiamando a raccolta valenti cavalieri.Il palafreniere Huliev, dopo aver udito le lamentele della corte, decise autonomamente di partire per porre rimedio alla disgrazia.Il mago Basil chiese a Huliev di spartire tutte le riserve di farina con i poveri del regno, per combattere la fame, promettendo il suo aiuto.Basil e Huliev, insieme, decisero di spartire gli oggetti secondo le loro necessità, e il mago preparò una pozione magica per Huliev, cuocendo cortecce di alberi vecchi di secoli.Vicino al fiume Huliev trovò una piccola barca, vi salì sopra e, molto rapidamente, arrivò alla sua destinazione.

Huliev, confidente nelle sue capacità e possibilità, invitò il ciclope nell'arena, dove avrebbero dovuto correre tra i leoni, affrettandosi senza essere mangiati. Chi fosse sopravvissuto più a lungo sarebbe stato il vincitore.

La corsa fu difficile e pericolosa, e alcuni tronchi sul percorso aggiungevano difficoltà, ma Huliev arrivò alla meta per primo.Mentre il ciclope andò a nascondersi nelle segrete del castello, Huliev lo seguì e lo imprigionò fino alla fine dei suoi giorni.Dopo aver camminato per giorni e giorni, la strega Daphne arrivò finalmente al ………..GrammelotGrammelotue fellegno, e vai,e cora, iasciolle, io adde la belletto, stelli haiforca marti schi menti sermutamentra eracominanzi mala a me sommo lo sgridache tir che l’altro o la e rendo rauna mor discerne tanto bene è leggiaché mali, duolo lordar lor sì così che lodo com’olte fioco strati.infiati,che,sì contro:”tostese,di questrocar, come la mi via e piena;e piancorse

La Decima sinfonia di La Decima sinfonia di BeethovenBeethoven

Analisi della Divina Analisi della Divina Commedia (Padre Commedia (Padre Busa)Busa)

……………………....

Page 55: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

ContabilitàFinanzaTradingCommercio elettronico B2BCommercio elettronico B2CContabilità analiticaControllo della produzioneMagazzinoGestione venditeMarketingGrafica 2DGrafica 3DCalcolo strutturaleCalcolo scientificoCAD/CAMAnimazioneSimulazione

Controllo impiantiControllo numericoControllo di processoSistemi espertiSistemi educazionaliGiochiSoftware automotiveTelecomunicazioni fisseTelecomunicazioni mobiliApplicazioni medicaliComputer artAlgoritmi geneticiTrasmissioni datiReti di computerEdutainmentWordprocessingCalcolo matematico

White goodsReti neuronaliRiconoscimento vocaleApplicazioni musicaliSistemi OCRInterpretazione del linguaggio naturaleRoboticaDomoticaIntelligent buildingCritica letterariaGenerazione artisticaCinemaScenografiaCalcolo simbolicoTraduzione automatica

Applicazioni Applicazioni d’ufficiod’ufficio……………………...

Page 56: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Commercio elettronico B2BCommercio elettronico B2CGrafica 2DGrafica 3DCalcolo strutturaleCalcolo scientificoCAD/CAMAnimazioneSimulazione

Sistemi educazionaliGiochiSoftware automotiveTelecomunicazioni fisseTelecomunicazioni mobiliApplicazioni medicali

Algoritmi geneticiTrasmissioni datiReti di computerEdutainment

Calcolo matematico

White goodsReti neuronaliRiconoscimento vocale

Sistemi OCR

Interpretazione del Interpretazione del linguaggio linguaggio naturalenaturaleRoboticaDomoticaIntelligent building

ScenografiaCalcolo simbolico

Traduzione Traduzione automaticaautomatica

Da AltavistaDa Altavista

President Clinton says the emergency Mideast President Clinton says the emergency Mideast summit "cannot afford to fail" as Prime summit "cannot afford to fail" as Prime Minister Ehud Barak and Yasser Arafat meet Minister Ehud Barak and Yasser Arafat meet for talks amid fresh violence.for talks amid fresh violence.

Il presidente Clinton dichiara che la sommità Il presidente Clinton dichiara che la sommità di Mideast di emergenza " non può permettersi di Mideast di emergenza " non può permettersi di venire a mancare " come raduno del primo di venire a mancare " come raduno del primo ministro Ehud Barak e di Yasser Arafat per i ministro Ehud Barak e di Yasser Arafat per i colloqui in mezzo della violenza fresca.colloqui in mezzo della violenza fresca.

Page 57: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

ContabilitàFinanzaTradingCommercio elettronico B2BCommercio elettronico B2CContabilità analiticaControllo della produzioneMagazzinoGestione venditeMarketingGrafica 2DGrafica 3DCalcolo strutturaleCalcolo scientificoCAD/CAMAnimazioneSimulazione

Controllo impiantiControllo WordprocessingCalcolo matematico

Applicazioni musicaliSistemi OCR

Sistemi espertiSistemi educazionali

GiochiGiochiSoftware automotiveTelecomunicazioni fisseTelecomunicazioni Algoritmi geneticiTrasmissioni datiReti di computerEdutainment

Page 58: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

TradingCommercio elettronico B2BCommercio elettronico B2C

Grafica, 2D,3DGrafica, 2D,3DMultimediaMultimediaScenografiaScenografiaAnimazioneAnimazioneCalcolo strutturaleCalcolo scientificoCAD/CAMAnimazioneSimulazione

Controllo impiantiControllo numericoControllo di processoSistemi espertiSistemi educazionali

Software automotiveTelecomunicazioni fisseTelecomunicazioni mobiliApplicazioni medicaliComputer artAlgoritmi geneticiTrasmissioni datiReti di computerEdutainment

Calcolo matematico

White goodsReti neuronaliRiconoscimento vocaleApplicazioni musicaliSistemi OCRInterpretazione del linguaggio naturaleRoboticaDomoticaIntelligent buildingCritica letterariaGenerazione artisticaCinemaScenografiaCalcolo simbolicoTraduzione automaticaApplicazioni d’ufficio……………………...

Page 59: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Calcolo strutturaleCalcolo scientificoCAD/CAM

Simulazione

Sistemi educazionali

Software automotive

Telecomunicazioni Telecomunicazioni fissefisseTelecomunicazioni Telecomunicazioni mobilimobiliApplicazioni medicali

Algoritmi genetici

Trasmissioni datiTrasmissioni datiReti di computerReti di computerEdutainment

Calcolo matematico

White goodsReti neuronaliRiconoscimento vocale

Sistemi OCR

RoboticaDomoticaIntelligent building

Calcolo simbolico

Page 60: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Calcolo strutturaleCalcolo scientificoCAD/CAM

Simulazione

Sistemi educazionali

Software Software automotiveautomotive

Applicazioni medicali

Algoritmi genetici

Edutainment

Calcolo matematico

White goodsWhite goodsReti neuronaliRiconoscimento vocale

Sistemi OCR

RoboticaDomoticaIntelligent building

Calcolo simbolico

Page 61: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Calcolo strutturaleCalcolo scientificoCAD/CAM

Simulazione

Sistemi Sistemi educazionalieducazionali

Applicazioni medicali

Algoritmi genetici

EdutainmentEdutainment

Calcolo matematico

Reti neuronaliRiconoscimento vocale

Sistemi OCR

RoboticaDomoticaIntelligent building

Calcolo simbolico

Page 62: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Calcolo strutturaleCalcolo scientificoCAD/CAM

Simulazione

Applicazioni medicali

Algoritmi genetici

Calcolo matematico

Reti neuronaliReti neuronaliRiconoscimento Riconoscimento vocalevocale

Sistemi OCRSistemi OCR

RoboticaDomoticaIntelligent building

Calcolo simbolico

Page 63: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Calcolo strutturaleCalcolo strutturaleCalcolo scientificoCalcolo scientificoCAD/CAMCAD/CAM

SimulazioneSimulazione

Applicazioni medicali

Algoritmi genetici

Calcolo Calcolo matematicomatematico

RoboticaDomoticaIntelligent building

Calcolo simbolicoCalcolo simbolico

Page 64: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Applicazioni medicali

Algoritmi genetici

Robotica

DomoticaDomoticaIntelligent buildingIntelligent building

Page 65: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Applicazioni Applicazioni medicalimedicali

Algoritmi genetici

Robotica

Page 66: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAbUSTIVO E NON ORDINATO UN ELENCO NON ESAbUSTIVO E NON ORDINATO

Algoritmi genetici

RoboticaRobotica

Naïve physicsNaïve physics, la , la fisica ingenuafisica ingenua: un ramo dell’: un ramo dell’intelligenzaintelligenza artificialeartificiale, che è a sua volta una , che è a sua volta una particolare tecnica della particolare tecnica della computer sciencecomputer science. Ad esempio, la fisica (classica, relativistica, . Ad esempio, la fisica (classica, relativistica, quantistica, …) non è in grado di descrivere fenomeni come la persona che scivola sulle scale, quantistica, …) non è in grado di descrivere fenomeni come la persona che scivola sulle scale, l’acqua che bolle o il bicchiere d’acqua che si rovescia; in particolare riferendoci a l’acqua che bolle o il bicchiere d’acqua che si rovescia; in particolare riferendoci a quest’ultimo esempio, è possibile descrivere con la fisica ingenua il seguente fenomeno, non quest’ultimo esempio, è possibile descrivere con la fisica ingenua il seguente fenomeno, non descrivibile dalla fisica in termini predittivi quantitativi:descrivibile dalla fisica in termini predittivi quantitativi:

dato un bicchiere vuoto, versando in esso da una bottiglia un liquido, tale liquido dato un bicchiere vuoto, versando in esso da una bottiglia un liquido, tale liquido riempie progressivamente il bicchiere fino all’orlo, dopodiché si rovescia.riempie progressivamente il bicchiere fino all’orlo, dopodiché si rovescia.

La fisica ingenua è in grado di simulare il fenomeno costruendo programmi che descrivono il La fisica ingenua è in grado di simulare il fenomeno costruendo programmi che descrivono il comportamento delle gocce d’acqua, facendole poi agire e interagire con il bicchiere; una comportamento delle gocce d’acqua, facendole poi agire e interagire con il bicchiere; una descrizione (estremamente grossolana) di una tale descrizione può essere:descrizione (estremamente grossolana) di una tale descrizione può essere:

una goccia d’acqua “ama” stare in contatto con altre gocce d’acquauna goccia d’acqua “ama” stare in contatto con altre gocce d’acquauna goccia d’acqua vende a stare in una posizione che è la più “bassa” possibileuna goccia d’acqua vende a stare in una posizione che è la più “bassa” possibileuna goccia d’acqua non penetra barriere di vetro.una goccia d’acqua non penetra barriere di vetro.

Sulla base di queste caratteristiche, si costruiscono programmi che presentano Sulla base di queste caratteristiche, si costruiscono programmi che presentano progressivamente schermate del riempimento e del rovesciamento del bicchiere come quelle progressivamente schermate del riempimento e del rovesciamento del bicchiere come quelle (puramente esemplificative) che seguono:(puramente esemplificative) che seguono:

Tali tecniche hanno applicazioni, ad esempio, nella progettazione di robot che, dovendosi Tali tecniche hanno applicazioni, ad esempio, nella progettazione di robot che, dovendosi muovere in ambienti “ostili”, devono essere capaci di predire l’effetto delle loro interazioni muovere in ambienti “ostili”, devono essere capaci di predire l’effetto delle loro interazioni con l’ambiente.con l’ambiente. La legge La legge FF=m=maa esprime le modalità di comportamento di un corpo soggetto a una forza, ove esprime le modalità di comportamento di un corpo soggetto a una forza, ove FF è la forza, m è la massa e è la forza, m è la massa e aa è l’accelerazione; la sottolineatura fa riferimento al fatto che le è l’accelerazione; la sottolineatura fa riferimento al fatto che le grandezze in questione sono grandezze in questione sono vettorialivettoriali, ovvero devono essere considerate in una dimensione , ovvero devono essere considerate in una dimensione spaziale, tipicamente caratterizzata da tre componenti altezza, larghezza, profondità.spaziale, tipicamente caratterizzata da tre componenti altezza, larghezza, profondità.

Page 67: Xxx IL SOFTWARE Marco Maiocchi. xxx Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino oProblema: come ottengo un panino ? oSoluzione1:

xxx

UN ELENCO NON ESAUSTIVO E NON ORDINATO UN ELENCO NON ESAUSTIVO E NON ORDINATO

Algoritmi geneticiAlgoritmi genetici