Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le...

192
Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: [email protected] Home page: http://www.iac.cnr.it/~adamo Tel.IAC: 06/88470235

Transcript of Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le...

Page 1: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Recapiti

Massimiliano Adamo

del Consiglio Nazionale delle Ricerche

presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma.

e-mail: [email protected]

Home page: http://www.iac.cnr.it/~adamo

Tel.IAC: 06/88470235

Page 2: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Obiettivi del CorsoObiettivi del Corso

Il corso ha come obiettivo di fornire allo studente una conoscenza generale del calcolatore ed il suo utilizzo

Page 3: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Obiettivi del Corso

Questi obiettivi vengono raggiunti proponendo due tipi di nozioni:

quelle più generali che riguardano l'informatica di base tese a sviluppare nello studente il senso critico per le problematiche informatiche,

quelle più tecniche che abbiano una ricaduta pratica: in particolare l’uso di internet

Il corso si articola in lezioni teoriche ed in lezioni pratiche, l'accertamento della preparazione consisterà in un esame scritto ed orale.

Page 4: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Programma del Corso

Architettura dei Calcolatori

Sistemi Operativi

Linguaggi di Programmazione

Rappresentazione dei Dati ed Algoritimi

Gestione Distribuita dei Calcolatori

Il funzionamento di una rete locale e di Internet

Trattamento Ipertestuale dell'Informazione

Page 5: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Applicativi

Applicativi 1: Il web

Applicativi 2: il foglio elettronico

Applicativi 3: il wordprocessor

Applicativi 4: i database

Page 6: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Cos’è un Computer ?

Un calcolatore digitale è una macchina che può risolvere problemi eseguendo le istruzioni fornitegli.

Una sequenza di istruzioni che descrive come eseguire un certo compito è chiamata programma.

I circuiti di un calcolatore elettronico possono riconoscere ed eseguire un numero limitato di istruzioni semplici in cui tutti i programmi devono essere convertiti prima di poter essere eseguiti.

Page 7: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Informatica, Linguaggi e Programmi

L'etimologia italiana di informatica proviene dai termini informazione e automatica, e sicuramente Philippe Dreyfus, che per primo utilizza nel 1962 il termine informatique (informatica) voleva significare la gestione automatica dell'informazione mediante calcolatore. Sebbene successivamente ne siano state date diverse definizioni, forse si avvicina di più alla realtà quella secondo cui l'informatica è la scienza che si occupa della conservazione, dell'elaborazione e della rappresentazione dell'informazione.

Page 8: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Informatica, Linguaggi e Programmi

l‘elaborazione viene effettuata attraverso dei PROGRAMMI scritti in un qualche LINGUAGGIO DI PROGRAMMAZIONE

un linguaggio di programmazione è un linguaggio formale dotato di una sintassi e di una semantica ben definite

per dare un programma occorre un algoritmo, cioè una sequenza di istruzioni deterministiche comprensibili dall'esecutore

Page 9: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Linguaggi e livelli

Functional units

Assembly

Firmware

Logic Gates

High Level Languages

Transistors and Wires

Increasing Complexity

Low Level

High Level

Page 10: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Componenti di un elaboratore

In un elaboratore possiamo distinguere quattro componenti elementari:

la La CPU (acronimo di Central Processing Unit, detta comunemente processore)

la memoria principale (o centrale)

la memoria secondaria

i dispositivi di input/output

Page 11: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

CPU - Central Processing UnitQualunque CPU contiene:

• una ALU (Unità Aritmetico-Logica) che si occupa di eseguire le operazioni logiche e aritmetiche;

• una Unità di Controllo che legge dalla memoria le istruzioni, se occorre legge anche i dati per l'istruzione letta, esegue l'istruzione e memorizza il risultato se c'è, scrivendolo in memoria o in un registro della CPU.

• dei registri, speciali locazioni di memoria interne alla CPU, molto veloci, a cui è possibile accedere molto più rapidamente che alla memoria: il valore complessivo di tutti i registri della CPU costituisce lo stato in cui essa si trova attualmente.

Page 12: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

CPU - Central Processing Unit

La CPU e' situata in una posizione centrale sulla piastra madre. Ad essa e' affidato gran parte del lavoro del computer, infatti essa riceve continuamente delle istruzioni da eseguire.

Page 13: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Hertz

• L'hertz (simbolo Hz) è l'unità di misura del Sistema Internazionale della frequenza.

• Un hertz significa semplicemente uno al secondo • L'unità può essere applicata a qualsiasi evento periodico • Per esempio, si può dire di un orologio che ticchetta a 1 Hz.

Page 14: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Hertz

• 1 chilohertz (simbolo kHz) = 103 Hz = 1.000 Hz

• 1 megahertz (simbolo MHz) = 106 Hz = 1.000.000 Hz

• 1 gigahertz (simbolo GHz) = 109 Hz = 1.000.000.000 Hz

• 1 terahertz (simbolo THz) = 1012 Hz = 1.000.000.000.000 Hz

• 1 petahertz (simbolo PHz) = 1015 Hz = 1.000.000.000.000.000 Hz

Page 15: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

CPU - Central Processing Unit• Una misura della velocità e data dal

numero di cicli al secondo (hertz) che e in grado di compiere

• Una performance oggi ragionevole e intorno ai 3.0 Gigahertz

• Gli ultimi pentium 4 lavorano oggi a circa 3,8 GHz

• Nei primi pc IBM si aggira tra i 4,77 e i 10 MHz

Page 16: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

CPU - Central Processing Unit

• Ogni istruzione rappresenta un ordine di elaborazione dei dati; il lavoro svolto e' composto soprattutto da calcoli e trasporto dei dati, che seguono un percorso verso la CPU. Questo percorso si chiama bus di sistema.

• Alla CPU viene fornito un lungo flusso di dati attraverso il bus di sistema; questi dati possono essere di due tipi: Istruzioni(per manipolare dati) Dati (da gestire secondo le istruzioni)

Page 17: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

CPU - Central Processing Unit

Page 18: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

CPU - Central Processing Unit• Il compito piu' importante per la CPU consiste nel decodificare le istruzioni

e nel localizzare i dati.

• La decodifica consiste nell'interpretare le istruzioni che il programma-utente invia alla CPU.

• Tutte le CPU compatibili “Intel” dei PC sono anche "compatibili 8086“: l'Intel 8086 è un microprocessore a 16 bit progettato dalla Intel nel 1978, che diede origine appunto all'architettura x86

Page 19: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

CPU - Central Processing Unit

• Dal 1978 l'8086 e le successive CPU hanno sempre ricevuto dei set di istruzioni compatibili che hanno permesso di affrontare senza traumi il passaggio da una generazione all'altra di microprocessori.

• Le prime CPU avevano il cosiddetto CISC (Complex Instruction Set Computer, Set d'istruzioni complesse).

• Il set d'istruzioni X86 (la X sta per 2, 3 e 4, 5 ecc…), e' stato sviluppato in origine per l'8086, con i suoi miseri 29000 transistor!

Page 20: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

CPU - Central Processing Unit

• Il RISC (Reduced Instruction Set Computer, computer con un set d'istruzioni ridotto), contiene un numero molto inferiore d'istruzioni rispetto al CISC.

• Questi processori hanno una unità di controllo molto semplice e riservano invece molto spazio per i registri interni:

– una CPU RISC ha di solito da un minimo di un centinaio ad alcune migliaia di registri interni generici, organizzati in un file di registri.

– Il tipico set di istruzioni RISC è molto piccolo, circa 60/70 istruzioni molto elementari (logiche, aritmetiche e istruzioni di trasferimento memoria-registro e registro-registro);

– Le istruzioni hanno tutte lo “stesso formato” e la stessa lunghezza, e tutte o quasi vengono eseguite in un solo ciclo di clock.

Page 21: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Scheda Madre

Page 22: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Le Memorie

• La memoria e' quella parte del computer dove sono contenute tutte le informazioni da elaborare ed i risultati derivanti da queste  o le istruzioni utili affinche' vengano elaborate.

Page 23: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Le Memorie (Principali)

• RAM (Random Access Memory)

• EPROM, acronimo di Erasable Programmable Read Only Memory

Sono memorie centrali direttamente collegate, senza intermediazioni, al cuore pulsante del computer, la CPU.

Il termine ROM viene ancor oggi utilizzato per indicare (impropriamente) quelle memorie non volatili che mantengono i dati in memoria anche in mancanza di alimentazione.

Page 24: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Le Memorie

• Abbiamo anche una memoria detta secondaria  che si contrappone alla primaria: qualunque mezzo usiamo per una memorizzazione non volatile (hard disk, floppy disk, cd-rom. dvd) nella quale vengono depositate informazioni gia' elaborate dalla CPU o che non lo saranno nell'immediato.

• Tutta la memoria esterna indirizzabile da quella centrale, alla quale si può giungere per mezzo di canali di I/O (Input/Output): viene anche chiamata memoria esterna (external storage), secondary storage (memoria secondaria), auxiliary storage (memoria ausiliare).

Page 25: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La RAM: com’e’ fatta?

• La RAM e' piccola, sia fisicamente (e' conservata in un microchip) sia nella quantita' di dati che puo' contenere.

Page 26: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La RAM: com’e’ fatta?

• E' molto piu' piccola dell'hard disk sia fisicamente sia come capacita' di contenimento dati: un computer, oggi, e' dotato di 256/512 MB di RAM mentre gli Hard disk hanno una capacità di 80/120 GB

Tre "cose" da ricordare: La velocità della RAM e' misurata in MHz: una velocità oggi accettabile è di 300/400 MHz SDRAM (synchronous DRAM) nome generico per dynamic random access memory (DRAM) che sono sincronizzate ed ottimizzate con il clock del Microprocessore. Queste caratteristiche permettono di massimizzare il numero di istruzioni elaborate in una unità di tempo. DIMM (dual in-line memory module )

Page 27: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Rappresentazione dei dati in memoria

• La memoria puo essere vista come una lunga sequenza di componenti elementari (celle) ognuna delle quali e in grado di conservare un bit.

Page 28: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Rappresentazione dei dati in memoria

• Es. per rappresentare il numero 27 con 8 bit posso scrivere27=2*13+1=2(6*2+1)+1=22(2*3)+2+1=23(2+1)+2+1=24+23+21+20

27 26 25 24 23 22 21 20

0 0 0 1 1 0 1 1

27 in base 2 si rappresenta quindi con 00011011

Page 29: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Rappresentazione dei dati in memoria

• Ogni cella di memoria e caratterizzata da un indirizzo espresso mediante un numero intero.

• Tale indirizzo è a sua volta rappresentato internamente mediante la sua codifica binaria:

– il numero di bit utilizzati per scrivere tale codifica prende il nome di spazio di indirizzamento.

Page 30: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Unità di misura della memoria

• Bit (unita' di codifica elementare: 0/1, v/f)

• Byte (2^3 bits)

• KB (KiloByte: 2^10 bytes, pari a circa 1000 byte)

• MB (MegaByte 2^20 bytes ovvero circa un milione di byte)

• GB (GigaByte 2^30 bytes, circa un miliardo di byte)

• TB (TeraByte 2^40 bytes, circa mille miliardi di byte) di byte)

• PB (PetaByte 2^50 bytes)

Page 31: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Capacità di alcuni dispositivi di memoria

• Hard DISK : decine di GB fino a qualche TB

• Floppy: 1.4 MB

• CD-ROM: > 650 MB, < 800 MB

• DVD: >4.7 GB; < 9 GB (Dual Layer)

• Penne USB: fino a 2 GB

• Memory Stick e simili: fino a 2 GB

Page 32: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Caratteristiche delle schede di memoria

• parole di memoria (word): permettono di trasferire sequenze di bit di una determinata lunghezza (ad es. 32 bits),

• tempo di accesso: e una misura della rapidita con cui l'informazione viene recuperata dalla memoria, si misura in nano-secondi,

• costo: e un parametro importante perche se ci si può permettere una grande quantità di memoria molto veloce le performances del sistema migliorano)

• volatilità: la memoria principale ha bisogno di un continuo refresh dunque tutte le informazioni contenute in essa sono perse al momento dello spegnimento del sistema.

Page 33: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Architetture a 32 ed a 64 bit

• I termini 32 e 64 bit sono utilizzati in informatica per indicare che, in una determinata architettura, gli interi sono indicati con al massimo 64 bit di larghezza o per descrivere l'architettura di una determinata CPU, che usa i registri interni, il bus degli indirizzi o bus dei dati di quella dimensione.

Page 34: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Architetture a 32 ed a 64 bit

• Ad oggi (2006) le CPU a 64 bit sono comuni nei server, e si stanno diffondendo sempre più anche nell'ambito dei personal computer (precedentemente a 32 bit), con le architetture AMD64, EM64T e PowerPC 970

• Il processore diventa in grado di gestire interi a 64 bit in modo nativo. I processori a 32 bit possono gestire in modo nativo solo numeri interi fino a circa 4 miliardi, dopodiché devono combinare più numeri in modo piuttosto complicato. Un processore a 64 bit sposta questo limite a 16 miliardi di miliardi.

Page 35: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Collegamento tra le unità

Il collegamento tra le varie unità è realizzato mediante canali di comunicazione detti bus ed è organizzato secondo una struttura di tipo master/slave

Page 36: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Collegamento tra le unita

Pregi e difetti di un collegamento a bus sono:

Semplicità Lentezza

Estendibilità Limitata capacità

Standardizzabilità Sovraccarico della CPU

Da un punto di vista funzionale il bus puo essere suddiviso in 3 componenti: il bus dati, il bus degli indirizzi, il bus di controllo..

Page 37: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La memoria principale

1. La memoria centrale fornisce all'elaboratore la capacità di ricordare le informazioni.

2. In particolare la memoria dovrà contenere sia il programma, cioè la lista di istruzioni che l'unità di controllo deve leggere ed eseguire, che i relativi dati.

• N.B. la memoria rappresenta queste diverse informazioni allo stesso modo mediante cifre binarie (detti bit dall'inglese binary digit).

Page 38: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Architettura di Von Neumann• Con l'espressione architettura di von Neumann o macchina di von Neumann ci si

riferisce a uno schema di progettazione di calcolatori elettronici che prende nome dal matematico John von Neumann.

• Lo schema si basa su quattro componenti fondamentali:• CPU o unità di lavoro che si divide a sua volta in

– Unità di calcolo o ALU – Unità di controllo

• Unità di memoria, intesa come memoria di lavoro o memoria principale (RAM, Random Access Memory)

• Unità di input, tramite la quale i dati vengono inseriti nel calcolatore per essere elaborati

• Unità di output, necessaria affinché i dati elaborati possano essere restituiti all'operatore

• Uno speciale registro dentro la ALU detto accumulatore, che faceva da buffer tra input e output grazie a una speciale istruzione che caricava una parola dalla memoria all'accumulatore e viceversa.

Page 39: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Architettura di Von Neumann• Bisogna comunque precisare che questa è una schematizzazione molto sintetica,

sebbene molto potente: basti pensare che il computer con il quale state leggendo questo articolo è progettato secondo l'architettura von Neumann (purché non si tratti di qualche mainframe aziendale). Inoltre, quando si parla di unità di memoria si intende la memoria principale, mentre le memorie di massa sono considerate dispositivi di I/O. Il motivo di ciò è innanzitutto storico, in quanto negli anni Quaranta, epoca a cui risale questa architettura, la tecnologia non lasciava neanche presupporre dispositivi come hard disk, CD-ROM o anche solo nastri magnetici, ma anche tecnico, se si considera che in effetti i dati da elaborare devono comunque essere caricati in RAM, siano essi provenienti da tastiera o da hard-disk.

Page 40: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Architettura di Von Neumann

Page 41: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Rappresentazioni dei dati in memoria : gli interi

• Un unico byte è una quantità troppo piccola per rappresentare un numero intero. • La rappresentazione dei numeri interi, sia positivi che negativi, avviene

nell'elaboratore considerando più byte consecutivi; usualmente si utilizzano 2 o 4 byte e, in certe situazioni, anche più. Un unico bit (di regola il primo a sinistra) rappresenta il segno: il bit 0 indica il "+" e il bit 1 il "-".

• Per certe applicazioni, due byte sono sufficienti e in due byte si possono memorizzare tutti i numeri interi relativi da -32768 a +32767, esattamente un numero negativo in più rispetto ai positivi, poiché 0 è considerato un numero positivo.

Page 42: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Rappresentazioni dei dati in memoria: con virgola

• Si consideri ad esempio il numero 12,345. Il numero viene prima di tutto "normalizzato", cioè scritto in una forma standard, del tipo 0,... seguito da una parte decimale la cui prima cifra sia diversa da zero. Per esempio il numero 12,345 diviene: 0,12345*10^2.

• Nella terminologia tecnica, 0,12345 si dice la "mantissa" del numero 12,345, mentre l'esponente del 10 (in questo caso il 2) si dice l'"esponente" del numero considerato.

Page 43: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Rappresentazioni dei dati in memoria: con virgola

• Mantissa ed esponente individuano univocamente il numero e quindi possono servire a rappresentarlo nella memoria dell'elaboratore.

• Un numero con la virgola del tipo descritto si dice un "numero reale" nel gergo dell'informatica, e viene memorizzato in un certo numero di byte consecutivi, da 4 fino a 64 e anche più, a seconda dell'elaboratore e della particolare applicazione.

• Cioe’: SEGNO X MANTISSA X BASE ^ ESPONENTE

Page 44: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Rappresentazioni dei dati in memoria: le lettere

• Un testo letterale è una sequenza di "caratteri" presi da un "alfabeto" finito e ben caratterizzato. La codifica dei caratteri è stata a suo tempo standardizzata e fu detta "codifica ASCII", dove la sigla sta per "American Standard Code for Information Interchange". Tale codifica è oggi accettata quasi universalmente e comprende:

• le lettere maiuscole e minuscole dell'alfabeto inglese (codici da 65 a 90 e da 97 a 122)

• le cifre decimali (codici da 48 a 57)

Page 45: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Rappresentazioni dei dati in memoria: le lettere

• i caratteri di interpunzione, cioè lo spazio, la virgola, il punto fermo, i due punti, il punto esclamativo, ecc.; i segni aritmetici, come il più, il meno, l'asterisco, le parentesi tonde, quadre e graffe; alcuni simboli speciali, come il dollaro, la barra verticale, la chiocciola (codici da 32 a 47, da 58 a 64, da 91 a 96 e da 123 a 127)

Page 46: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Rappresentazioni dei dati in memoria: le lettere

• La codifica estesa (codici da 128 a 255) ha permesso di introdurre una serie di caratteri speciali, molto utili in varie applicazioni:

• i caratteri nazionali, cioè accentati o con altri segni particolari • alcuni caratteri particolari, come !, ? e le virgolette • i caratteri semigrafici che permettono di disegnare, sullo schermo o sulla

stampante, semplici disegni, schemi o diagrammi • i caratteri matematici, come alcune lettere greche, alcuni simboli e alcuni

caratteri speciali

Page 47: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Programmi

• L'elaborazione delle informazioni da parte del processore avviene secondo sequenze di istruzioni che ne regolano il comportamento, dette programmi.

• Secondo il modello di Von Neumann la memoria principale deve ospitare contemporaneamente almeno due tipi di informazioni:

1. la sequenza delle istruzioni2. l'insieme dei dati su cui operare

Page 48: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I compiti del processore

• Ad ogni ciclo il processore:

1. legge dalla memoria principale la prossima istruzione da eseguire,

2. esegue l'istruzione.

Page 49: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I registri• Sono piccole unità di memoria interne al processore ed estremamente

veloci.• Servono per mantenere le informazioni di necessità immediata per il

processore.• Possono essere speciali (per scopi particolari ad es. registro Program

Counter, registro istruzioni, registro di stato, registri di comunicazione) • o generali detti anche aritmetici per contenere risultati parziali. (Il numero e le dimensioni di questi registri variano da processore a

processore).

Page 50: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il registro Program Counter

• Contiene l'indirizzo della cella di memoria in cui si trova la prossima istruzione da eseguire.

• Dimensioni del registro:

PC = dimensioni degli indirizzi

Page 51: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I compiti del processore (2)

Dettagliando il comportamento del processore, abbiamo che ad ogni ciclo il processore:

1. legge dalla memoria principale l'istruzione che si trova all'indirizzo indicato dal registro PC,

2. modifica il valore del PC aumentandolo di 1

3. esegue l'istruzione letta dalla memoria.

Page 52: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il registro delle istruzioni

• Ad ogni ciclo l'istruzione letta dalla memoria principale viene scritta nel Registro Istruzioni (RI).

• L'istruzione verrà a poi decodificata dalla unita di controllo

Page 53: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I compiti del processore

Dettagliando ulteriormente il comportamento del processore, abbiamo che ad ogni ciclo:

1. Legge dalla memoria principale l' istruzione che si trova all'indirizzo indicato dal registro PC

2. Scrive l'istruzione all'interno del registro RI3. Modifica il valore del PC aumentandolo di 14. La UC decodifica l'istruzione e individua la sequenza di azioni che

devono essere svolte5. Esegue le azioni specificate dall'istruzione

Page 54: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Registro di stato

Contiene delle informazioni sullo stato di esecuzione del processore e segnala eventuali errori.

Page 55: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

L'unita Logica-Aritmetico (ALU)

E costituita da un insieme di circuiti in grado di effettuare operazioni di tipo aritmetico e logico.

La ALU legge i dati contenuti nei registri generali, esegue le operazioni e memorizza il risultato in uno dei registri generali.

In alcuni casi oltre alla ALU può essere presente un coprocessore matematico.

Page 56: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Le principali porte logiche

Differenti livelli di tensione vengono utilizzati per

rappresentare i singoli bit.

I semi-conduttori permettono di realizzare i vari tipi di porte necessarie per il funzionamento dei calcolatori.

Inoltre le tecniche VLSI (very large system integration) permettono di integrare una gran quantità di questi circuiti in uno spazio molto ridotto.

Page 57: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Le principali porte logiche

Una lista (non esaustiva) dei principali tipi di porte:

NOT: negate the input

AND: high only both inputs are high

OR: high if one or both inputs are high

NAND: negate AND

NOR: negate OR

XOR: high only if the two inputs are different

Page 58: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Tabelle di verità delle porte logiche

Il comportamento di una porta logica e’ descritto mediante una tabella che lega i segnali di ingresso con quelli di uscita:

NOT

0 1

1 0

AND 0 1

0 0 0

1 0 1

OR 0 1

0 0 1

1 1 1

XOR 0 1

0 0 1

1 1 0

Page 59: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La logica dell'elaboratore

• La capacità decisionale è alla base dell'operatività degli elaboratori. I principi logici di questa capacità sono gli stessi della "logica delle proposizioni", scienza inventata da George Boole.

• L'idea originaria di Boole fu quella di affrontare il problema della formalizzazione della logica arrivando ad un formalismo di tipo matematico che permetta un "calcolo" della logica stessa.

Page 60: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La logica dell'elaboratore

• Si dice "proposizione" ogni frase che sia vera o falsa. Convenzionalmente, "vero" e "falso" si dicono "valori di verità", e si indicano simbolicamente rispettivamente con 1 e 0.

• Boole osservò che ci sono tre modi fondamentali di connettere due (o più) proposizioni, in modo tale che ogni altra possibile connessione sia esprimibile per mezzo delle tre di base:

Page 61: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La logica dell'elaboratore

• la congiunzione, espressa con il connettivo "e"; essa indica la verità simultanea delle due proposizioni che compongono la frase. Boole chiamò questa operazione "prodotto logico" o AND

• la disgiunzione, espressa dal connettivo "oppure"; essa indica la verità disgiunta di due proposizioni. Boole chiamò questa operazione "somma logica" o OR

• la negazione, espressa dall'avverbio "non"; essa indica il valore complementare della proposizione originaria (NOT)

Page 62: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La logica dell'elaboratore

• Seguendo le indicazioni date nella definizione, è possibile associare un preciso valore di verità alle proposizioni composte, quando si conosce il valore di verità di due proposizioni p e q.

• Questa associazione ha la forma di una tabella di operazione, e si dice "tabella di verità" del connettivo. Essa mostra come i connettivi costituiscano delle vere e proprie operazioni sulle proposizioni.

Page 63: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La logica dell'elaboratore

AND

OR NOT

Page 64: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Esecuzione delle istruzioni in linguaggio macchina

* Ogni istruzione e caratterizzata da un nome e da un certo numero di argomenti.

* Gli argomenti possono contenere nomi (numeri) di registri o indirizzi di memoria principale (metodi di indirizzamento).

Page 65: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Esempio di istruzione macchina

Codice operazione argomento 1 Argomento 2

LOAD R1 1235

Page 66: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Esempi di istruzioni

Tipici esempi di istruzioni sono:• Istruzioni di lettura dalla memoria (due argomenti)• Istruzioni di scrittura in memoria (due argomenti)• Istruzioni aritmetiche (due o tre argomenti)• Istruzioni logiche• Istruzioni di spostamento (due argomenti)• Istruzioni di salto (istruzioni goto)

Page 67: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Lettura e scrittura in memoria

• Le operazioni di lettura e scrittura in memoria sono fondamentali per il funzionamento di un processore.

• Per effettuarle e necessario specificare l'indirizzo della cella su cui si vuole operare.

• Inoltre è necessario che il processore e la memoria principale possano comunicare.

• Tale comunicazione avviene attraverso i cosiddetti registri di comunicazione del processore.

Page 68: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Registri di Comunicazione

• Il Registro Indirizzi Memoria (DOVE) RIM• Il Registro Dati Memoria (COSA) RDM• Il Registro di Controllo (OPERAZIONI ed ERRORI) RC

Page 69: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Istruzioni di salto• Finora abbiamo detto che le istruzioni di un programma devono essere eseguite

in sequenza.• Ma la semplice sequenzializzazione delle istruzioni non permette di scrivere

programmi che risolvano qualunque tipo di problema.• Esistono quindi istruzioni particolari (istruzioni di salto) che permettono di

specificare la successiva istruzione da eseguire. L'argomento di tali istruzioni e l'indirizzo della prossima istruzione da eseguire.

• E possibile così modifica re il flusso di esecuzione di un programma.

Page 70: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Esempio di esecuzione di un semplice programma

1. LOAD 3568 R12. ADD R1 R23. STORE R1 35684. JUMP 65. ……………..6. ……………..7. ..….. ………..

Page 71: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il software e il computer

• Dopo aver esplorato la struttura interna del calcolatore ci chiediamo: • cosa vediamo noi del “cuore" di un computer quando lo usiamo? • Chi fa da mediatore tra noi e le varie parti dell'architettura che abbiamo

studiato?• RISPOSTA: il software!

Page 72: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

MACCHINE VIRTUALI

• Perché tra l'utente e la CPU la comunicazione diretta fallisce?

perchè è un compito difficile scrivere sequenze di istruzioni in linguaggio macchina, per questo ci vuole una catena di intermediari !

Page 73: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Schema della macchina virtuale

• Il software di base che ci fa dialogare con l'hardware sottostante è la macchina virtuale.

• l'hardware comprende solo il linguaggio macchina• la macchina virtuale comprende comandi “più naturali“ e sà tradurli

verso l'hardware

Page 74: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Gerarchie di macchine virtuali (il modello a cipolla")

• UTENTE• macchina virtuale esterna• macchina virtuale intermedia 1• macchina virtuale intermedia 2• ………………………………..• macchina virtuale intermedia n• hardware

Page 75: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Esempio

• MEDICO:decide terapie e lo dice all'infermiera• INFERMIERA:ascolta medico e pratica terapia a paziente• PAZIENTE:riceve cure dall'infermiera

Page 76: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Schema generale del sistema operativo

• HW • kernel • gestione interna• gestione periferiche• Interazione UTENTE

Esamineremo via via gli strati della “cipolla", dall'interno verso l'esterno

Page 77: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Classicazione dei sistemi operativi

Mono-utente Multi-utente

Mono-programmato Multi-programmato

o Multi-tasking

Non distribuito Distribuito

Page 78: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I livelli della “cipolla" che esploreremo

• bootstrap• gestore dei processi• gestore della memoria principale• gestore della memoria secondaria• gestore delle periferiche• gestore della interazione con l'utente (shell e GUI)

Page 79: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Bootstrap

• Il bootstrap e il primo “programma" che viene eseguito dal kernel

• Esso e responsabile dell'attivazione di tutti le altre componenti del kernel, che a loro volta faranno partire i programmi della gestione interna e l'interprete con l'esterno.

• (Tutta questa “catena" si avvia all'accensione automaticamente, attenzione: questa e la parte piu’ sensibile ai virus !!!)

Page 80: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I processi

• Ogni “programma” che viene eseguito e un processo (detto anche JOB).

• Anche un sistema non multi-tasking deve eseguire piu’ programmi “contemporaneamente”.

• Tipicamente la gestione interna del computer e adatta ad una gran numero di programmi che l'utente non vede e non conosce ma che sono tutti indispensabili al funzionamento del computer.

Page 81: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Un processo

Un processo è un programma in esecuzione, esso può essere identicato con la struttura di dati utilizzata dal sistema per gestirlo.

Per descrivere questa struttura occorrono:• la sequenza di istruzioni che costituiscono il programma stesso• l'indirizzo della prossima istruzione che deve essere eseguita• lo stato di tutte le informazioni gestite dal programma (i dati)Queste tre componenti formano l'immagine del processo.

Page 82: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Un processo

Stati di un processo in esecuzione:• pronto, • in attesa, • in fase di creazione, • in terminazione• in scambio di esecuzione• richiesta di I/O o di risorsa• I/O terminato o risorsa disponibile

Page 83: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Schema Riassuntivo

Page 84: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

E il processore?

• Può essere:ATTIVO o IDLE

• Può alternarsi tra piu’ processi, “cambiando contesto" cioe’ salvando o leggendo l'immagine del processo dalla memoria.

• Deve restare IDLE il meno possibile: il tempo è una risorsa, non va sciupata !

Page 85: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il gestore dei processi

Compito (ideale) di un gestore di processi:• Operare in maniera che ogni processo proceda come se

ci fosse una CPU completamente dedicata a lui.

Tale CPU sarà meno veloce di quella reale ma così il processo non deve occuparsi degli altri processi che vengono eseguiti in quel momento.

Page 86: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Principio di funzionamento del gestore

Un principio essenziale e’ che (anche per un sistema di modeste dimensioni) il processo da eseguire non deve avere bisogno di conoscere lo stato di tutti gli altri processi per poter eseguire il suo programma.

Nasce quindi la necessità di un processo “super partes“ di coordinamento (lo scheduling ).

Page 87: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Dove stanno i processi pronti non attivi?

Obiettivi di una politica di scheduling (per processi eventualmente conflittuali tra loro):

• Minimo tempo di esecuzione di ciascun processo,• Massimo utilizzo processore,• Massimo numero di processi elaborati nell'unita di tempo

(throughput),• Minimo tempo di attesa per processo.

Page 88: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Tipo di esecuzione richiesta dai vari processi

• Processi batch: vengono lanciati dall'utente e debbono dare una risposta dopo qualche tempo.

Per giungere alla risposta non richiedono ulteriore intervento dell'utente.

• Processi time-sharing: richiedono una interazione con l'utente e nei tempi di attesa lasciano libero il processore di fare altre cose.

• Processi real-time: non possono tollerare alcun ritardo nell'elaborazione. Il processore deve dedicarsi completamente a tali processi. Richiedono sistemi dedicati.

Page 89: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Politiche a lungo termine e politiche abreve termine

• Quanti processi si possono “tenere" in elaborazione su un processore nel caso di un sistema multi-tasking ? ... ovviamente un numero non eccessivo.

• Il sistema operativo utilizza allora diverse strategie di gestione per decidere quale processo deve avere la priorità.

• Come distribuire tra i vari processi “in esecuzione" il tempo del processore?

Page 90: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Politiche di gestione dei processi

• politiche a breve termine: short term scheduling• politiche a lungo termine: long term scheduling

Page 91: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Politiche a breve termine

Tra le politiche a breve termine si distinguono:• politiche non pre-emptive: il processo in esecuzione può essere

sostituito solo se l'utente lo arresta volontariamente o se il programma stesso termina (e adatta ai programmi batch).

• politiche pre-emptive: il sistema ha la facoltà di fermare e sostituire i processi in qualsiasi momento, nei modi che esso stesso valuta essere i più appropriati alla situazione (adatta al time sharing e al real time).

Page 92: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Esempio

Una politica non pre-emptive derivata dalla gestione delle code:• First Come - First Served detta anche First In - First Out: i

processi vengono eseguiti nell'ordine in cui si presentano, viene completata l'esecuzione del primo arrivato mentre gli altri processi stanno ad aspettare il proprio turno.

Page 93: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Pro e Contro

Page 94: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Altre politiche per le code

• Shortest Remaining-Time First (politica preemptive). Controlla quale sia il minore tra il tempo residuo di ogni processo in esecuzione e il tempo dei processi in attesa.

• Selezione di priorità: Ogni processo ha una priorità. Vengono eseguiti i processi a priorità maggiore. Esistono varianti pre-emptive e non pre-emptive.

• Round Robin (politica pre-emptive). Il tempo e diviso in “quanti". A turno ogni processo viene eseguito per un quanto di tempo.

Page 95: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Gestione della memoria principale

• Ogni processo usa memoria. Inoltre quando si “mette un processo in attesa" occorre salvare da qualche parte la sua immagine.

Come viene regolato l'uso della memoria? • Di questo si occupa un'altra porzione del sistema operativo

(gestore della memoria) che assegna ad ogni processo porzioni della memoria disponibile.

Page 96: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Gestione della memoria principale

• ...ancora una volta il compito ideale un gestore della memoria è di “simulare" per ogni processo una memoria dedicata completamente a lui.

Page 97: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Sistema monoprogrammato

• Due sono i task in esecuzione: il programma del sistema operativo e il processo avviato dall'utente. Sistema Operativo Processo Utente

La gestione e semplicissima: basta porre una barriera invalicabile tra la zona di memoria dedicata al sistema operativo e quella dedicata al processo utente.

• Operazione non consentita: superare lo steccato (causa la terminazione forzata del processo utente).

Page 98: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Nel sistema che ha piu’ processi

• Cosa fare con l'immagine?• PRIMA OPZIONE: tutta l'immagine di un processo è

rappresentata in una area contigua della memoria.• SECONDA OPZIONE: l'immagine viene “segmentata" e scritta

in pezzi non contigui della memoria.

Page 99: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Cosa fare con la memoria?

• PRIMA OPZIONE: dividerla in porzioni di dimensioni fisse.• SECONDA OPZIONE: dividerla in porzioni di dimesione adattabile.

Page 100: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Obiettivi

Ridurre per quanto possibile:• Frammentazione interna (mancato utilizzo di una parte dell'area

assegnata ad un processo da parte di quel processo)• Frammentazione esterna (mancato utilizzo di porzioni della

memoria che non vengono assegnata a nessun processo)

Page 101: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

RAMI problemi sono alleviati • se se c'e tanta RAM! (non ci basta mai! E costa molto!)• se parte della memoria e organizzata in “pagine fisse“ che non

risiedono tutte sulla memoria principale ma che vengono copiate e lette da e sulla memoria secondaria (hard disk).

Questa attività di copiare sul disco le “pagine" dimemoria non utilizzate al momento (perche' i processi relativi sono

in attesa o pronti ma non in esecuzione) si chiama “paginazione" o “swapping di pagine".

Page 102: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

MEMORIA VIRTUALE

• L'espediente di ricorrere all'hard disk con la paginazione crea quella che si chiama MEMORIA VIRTUALE

• Essa e più lenta ma più economica di quella principale.

Page 103: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

L'informazione che più spesso utilizzata dov’è?

Viene posta in una memoria ultra-rapida detta memoria cache:• In questa memoria per esempio vivono i dati importanti relativi

alla gestione del sistema operativo.• 128 – 256 - 512 Kbyte e la misura standard della cache nei PC

più diffusi.

Page 104: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Gestione della memoria secondaria

Page 105: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Gestione della memoria secondaria

tracce e settori formano sulla superficie del disco un “sistema di riferimento” in modo che il sistema operativo abbia la possibilità di indirizzare singoli blocchi (o records) di memoria.

Page 106: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I compiti fondamentali del file system

• Mantenere un INDICE (o un sistema di indici) che leghi la struttura fisica con la struttura logica.

• Consentire di creare, distruggere, alterare un file.• Mantenere informazioni sulla data di creazione, sul creatore,

sulla grandezza, sui livelli di protezione di ogni file.

Page 107: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Sulle tecniche di indicizzazione

• Un file è spezzato in tanti record.• I record possono essere contigui o non contigui all'interno della

memoria secondaria.• L'indicizzazione può essere “indexata" oppure “linkata".

Page 108: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

L'organizzazione logica e gerarchica

• Una serie di scatole annidate l'una dentro l'altra.• Le scatole che contengono altre scatole si chiamano DIRECTORY• Le scatole che contengono solo le informazioni nali sono i veri e

propri FILE• Una directory fisicamente non e altro che un file che mantiene

l'indice di un gruppo di file. Intuitivamente (e graficamente) essa ci appare come un contenitore.

Page 109: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Gestione delle periferiche

• Ogni periferica deve scambiare messaggi con la CPU: tali messaggi vengono chiamati INTERRUPT

• Essi sospendono le azioni della CPU per fornire servizio e attenzione alle periferiche stesse.

• I dati sono condivisi da periferica o CPU: o accedendo ad una memoria “dedicata" a ciascuna periferica (esempio le schede video, il buffer della tastiera) o condividendo direttamente parte della RAM (alcune stampanti, i dischi di memoria secondaria).

Page 110: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I programmi di controllo di ciascuna periferica

• Sono detti driver: essi sono specifici di ogni periferica;• Sono specifici di ogni CPU.• Debbono essere sempre forniti dal produttore della periferica!

Altrimenti questa e inutilizzabile

Page 111: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Interprete comandi

La buccia esterna della cipolla!

Si distinguono due modalità (che possono anche convivere sul medesimo sistema):

• A “shell", ossia mediante scambio di comandi alfanumerici digitati da tastiera.

• Ad oggetti grafici (Windows, Icone, Mouse, Puntatore), detta Graphic User Interface (GUI).

Page 112: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Linguaggi di Programmazione

Linguaggi di programmazione ad alto livelloNascono e si sviluppano principalmente per due ragioni :1) E' difficile scrivere i programmi direttamente inlinguaggio macchina per:• Istruzioni a basso livello• Dati codicati mediante sequenze di bit2) I programmi in linguaggio macchina non sono portabili da un

elaboratore all'altro.

Page 113: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Obiettivi

• Quindi l'obiettivo di base dei linguaggi di programmazione ad alto livello e quello di consentire al programmatore di astrarre dalle caratteristiche fisiche della macchina e scrivere il programma utilizzando un insieme di istruzioni fornite dal linguaggio stesso.

• Il linguaggio di programmazione fornisce anche i costrutti necessari a combinare le varie istruzioni.

Page 114: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Programmi ad alto livello

• I programmi scritti nei linguaggi ad alto livello non sono eseguibili direttamente.

• Si deve avere un meccanismo intermedio che traduca le istruzioni di tali programmi in istruzioni macchina.

• In questa traduzione deve essere preservato il signicato di ogni istruzione.

• Perciò è necessario che i linguaggi ad alto livello siano denfiiti in modo preciso e non ambiguo.

Page 115: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Come si denisce un linguaggioDefinire un linguaggio vuol dire definire le frasi del linguaggio e il loro

signicato.Per definire un linguaggio e quindi necessario introdurre:• Un alfabeto (denisce l'insieme dei simboli)• Un lessico (denisce l'insieme delle parole)• Una sintassi (denisce l'insieme delle frasi ben formate)• Una semantica (definisce il signicato delle frasi ben formate) • Le frasi ben formate di un linguaggio di programmazione costituiscono i

programmi.

Page 116: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La Sintassi

La sintassi di un linguaggio si specifica mediante una grammatica cioè un insieme di regole che stabiliscono:

• come combinare le diverse parole del lessico per costruire le frasi corrette (frasi ben formate) del linguaggi.

Le grammatiche possono essere definite in modi

differenti: nell'informatica si usano delle definizioni di tipo generativo.

Page 117: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La semantica

• Il compito di associare un significato alle frasi e legato all'analisi semantica.

• Punto di partenza della analisi semantica è l’ipotesi che sia noto il signicato di ogni parola.

Page 118: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La semantica

• Consideriamo le due frasi seguenti entrambe esatte dal punto di vista sintattico:

1. La ragazza mangia un pollo

2. Un pollo mangia la ragazza

Chiaramente soltanto la prima e esatta dal punto di vista semantico.

Notare che la interpretazione semantica viene data rispetto ad un determinato contesto

Page 119: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

La definizione di un linguaggio diprogrammazione

Per la definizione di un linguaggio di programmazione bisogna fare in modo che:

• La sintassi sia semplice e non ambigua• La semantica sia chiara

Page 120: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il parser

• Data la grammatica di un linguaggio di programmazione è possibile costruire un parser (cioè un analizzatore sintattico) in grado di riconoscere le frasi ben formate del linguaggio (i programmi).

• Il parser inoltre quando esamina frasi non corrette,segnala il punto in cui è stato riscontrato un errore e suggerisce eventuali correzioni.

Page 121: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Problema

• Definito un linguaggio di programmazione ad alto livello e scritto un programma in tale linguaggio, come è possibile eseguire il programma su una macchina in grado di eseguire soltanto istruzioni in linguaggio macchina ?

• Abbiamo bisogno di un “traduttore" che traduca le istruzioni del linguaggio ad alto livello in istruzioni equivalenti del linguaggio macchina.

Page 122: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Modalità di traduzione

Esistono due diverse tecniche per farlo: • la compilazione• l' interpretazione• Osservazione: i linguaggi ad alto livello sono portabili su macchine

differenti.

Page 123: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Compilazione

• La compilazione può essere descritta nel modo seguente:

per eseguire su una macchina M un programma P scritto in un linguaggio ad alto livello L, bisogna:

1. Tradurre P in un programma P' scritto in linguaggio macchina.

2. Eseguire il programma P' sulla macchina M.

Page 124: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Compilazione

In questo caso la traduzione viene eseguita da unprogramma che prende il nome di compilatore per il linguaggio L sulla

macchina M. • In realtà il compilatore prima di effettuare la traduzione esegue

l'analisi sintattica segnalando gli eventuali errori sintattici.• Il programma P prende il nome di programma sorgente mentre il

programma P' prende il nome di programma oggetto.

Page 125: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Riassumendo

• Dal programma P tramite compilatore per il linguaggio L si ottiene il programma P' nel linguaggio macchina di M e quindi si può passare all'esecuzione di P' su M.

• Il programma oggetto (P') potrà poi essere eseguito tutte le volte che si desidera senza dover rifare ogni volta la traduzione.

Page 126: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Attenzione !

E’ necessario un compilatore diverso per ogni diversa macchina.• Lo stesso programma sorgente viene tradotto in programmi

oggetto differenti per le diverse architetture hardware.• Linguaggi compilati sono il Pascal, il C, il Fortran

Page 127: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Interpretazione

L'idea alla base dell'interpretazione e quella di tradurre il programma durante la sua esecuzione:

• quando il programma P in un linguaggio L viene mandato in esecuzione, le istruzioni di P vengono in sequenza tradotte e poi eseguite

• il programma che esegue la traduzione viene chiamato interprete per il linguaggio L sulla macchina M.

• contemporaneamente alla traduzione viene vericata la correttezza sintattica di ogni istruzione e vengono segnalati eventuali errori. Esempi di linguaggi interpretati sono il Basic, il Prolog, il Lisp, Perl, PHP, Javascript, ASP!

Page 128: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Interpreti contro compilatori

• La compilazione è più efficiente della interpretazione.• L'interpretazione è più flessibile della compilazione.• L'interpretazione è più utile durante la fase di sviluppo del

programma.ma.• La compilazione è più comoda una volta che il programma è già

stato messo a punto.

Page 129: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Interpreti contro compilatori

Esistono linguaggi che mettono a disposizione entrambe la modalità di esecuzione (Lisp, Prolog e Basic).

Esistono linguaggi che usano uno schema misto.

Page 130: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Java

Ad esempio, un programma scritto nel linguaggio Java,al momento della compilazione viene compilato in un programma in un codice intermedio (Java byte-code) che può essere eseguito da un interprete (JVM - java virtual machine).

Il codice intermedio prodotto dalla compilazione ha il vantaggio di essere indipendente dall'architettura, mentre ad una data architettura corrisponderà un dato interprete in grado di eseguire un qualsiasi java-byte-code.

Page 131: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Ingegneria del software

• Un programma ben scritto dovrebbe essere semplice, efficiente, facilmente leggibile , facilmente modificabile e di facile manutenzione.

• La semplicità e l'efficienza di un programma sono legate all'algoritmo utilizzato per risolvere il problema.

Page 132: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

L’Ingegneria del Software

• L'ingegneria del software formalizza i diversi passi dello sviluppo di un programma.

• In particolare, nello sviluppo di un programma si possono distinguere le seguenti fasi:

1. Analisi,2. Progettazione, 3. Codifica,

4. Verifica, 5. Correzione, 6. Documentazione,

7. Manutenzione, 8. Aggiornamento, 9. Dismissione.

Page 133: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

1. Analisi del problema

• Questa prima fase deve produrre una specifica chiara del problema che si vuole risolvere.

• In questa fase si devono individuare:• Il tipo di macchina da utilizzare• La disponibilità di linguaggio di programmazione su tale

macchina• I requisiti di tempo di sviluppo• I requisiti di efficienza

Page 134: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

2. Progettazione dello schema di base

• Individuazione delle strutture dati fondamentali • Stesura dell'algoritmo per la soluzione del problema. In questa fase

spesso si usa un approccio di tipo modulare (ad esempio per gli algoritmi un approccio di tipo top-down, si denfiiscono le funzionalità più esterne fino ad arrivare ai dettagli più interni).

Page 135: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

3. Codica dell'algoritmo

• Si passa dallo schema a blocchi al vero e proprio codice scritto nel linguaggio scelto.

Page 136: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

4. Verica di correttezza

• In alcuni casi la verifica puo' essere fatta formalmente, in altri ci si deve limitare ad eseguire dei test.

Page 137: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

5. Correzione (debugging)

• Gli errori di natura sintattica possono essere individuati ed eliminati facilmente (in fase di compilazione).

• Più difficile affrontare gli errori di natura semantica: di solito succede che il programma funzioni correttamente nella maggior parte dei casi e si comporti male in alcuni casi particolari.

• Programmi di debugging. Vi sono programmi che aiutano a seguire esattamente tutte le fasi dell'esecuzione del programma per individuarne i malfunzionamenti (bugs, o bachi).

Page 138: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

6. Documentazione

• Stesura della documentazione e manuali per l'uso del programma.

Page 139: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

7. Manutenzione e revisione del programma

• Il programma può essere revisionato per correggere alcuni malfunzionamenti e fare delle modifiche minori.

Page 140: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

8. Aggiornamento del programma inrisposta a nuove esigenze

• In seguito all'utilizzo del programma possono emergere nuove esigenze per le quali servirà una nuova fase di sviluppo.

• Si noti che durante lo sviluppo di un programma possono essere coinvolte diverse figure professionali: il progettista, l'analista, il programmatore.

Page 141: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

L’informazione sulla “rete”L’informazione sulla “rete”

Page 142: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Modello a strati

Modello di riferimento a sette livelli

Application

Presentation

Session

Transport

Network

Data Link

Physical

LAYER 7

LAYER 6

LAYER 5

LAYER 4

LAYER 3

LAYER 2

LAYER 1

TCP/IP

HTTP

•Il modello a strati (layering model) o a pila consiste nel suddividere i problemi relativi alla comunicazione in diversi livelli gerarchici, ognuno dei quali è regolato da un protocolloStandardizzato dall’ISO (International Organization for Standardization)

Page 143: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I sette livelli ISO

liv.1: fisico Stabilisce i dettagli e gli standard dei dispositivi fisici

liv.2: data link Stabilisce come organizzare i dati in frame e come trasmetterli lungo la rete (es. formato, stuffing, controllo degli errori)

liv.3: rete Si occupa dell’indirizzamento e inoltro dei pacchetti

liv.4: trasporto Stabilisce le direttive per assicurare il trasporto affidabile dei dati

liv.5: sessione Specifica come stabilire una sessione di comunicazione a distanza con un altro sistema

liv.6: presentazione

Converte le diverse rappresentazioni di dati (diverse marche di calcolatori utilizzano differenti formati per la rappresentazione interna degli interi e dei caratteri

liv.7: applicazioni I protocolli di questo livello specificano come una certa applicazione utilizza

Page 144: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Protocolli a pila• Una famiglia di protocolli progettata secondo un modello stratificato assomiglia ad una pila

• Ogni modulo comunica esclusivamente con i due moduli adiacenti alla pila

• I dati in uscita attraversano la pila dall’alto verso il basso, quelli ricevuti seguono un percorso inverso

application

presentation

session

transport

network

data link

Physical (network hardware)

application

presentation

session

transport

network

data link

Page 145: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

ReteRete LocaleLocale

Page 146: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Esempio di rete

Page 147: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I Router “Istradatori della rete”

router

internet

router

Roma Milano

Page 148: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I pezzi della rete

SWITCH Router

DNS OR ROUTER TREEScheda ethernet

Page 149: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

I protocolli di rete

Page 150: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

L’ARCHITETTURA TCP/IP

• Negli anni ‘70 la Defense Advanced Research Project Agency (DARPA) finanziò la ricerca di una rete per l’interconnessione di calcolatori eterogenei

• Nasce Internet Protocol Suite di cui fanno parte i due protocolli più noti: Internet Protocol (IP) e il Transmission Control Protocol (TCP)

• E’ il protocollo adottato da centinaia di milioni di sistemi nel mondo e su cui si basa Internet.

Page 151: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il protocollo TCP/IP

È il protocollo fondamentale per il funzionamento di Internet (Transmission Control Protocol / Internet Protocol)

Si basa la comunicazione fra i nodi della rete Internet attraverso una “pacchettizzazione” dell’informazione

Ad ogni nodo della Rete è assegnato un indirizzo IP composto da quattro numeri compresi tra 0 e 255 (es.: 150.146.2.25, servono pertanto 4 byte per la rappresentazione binaria!!!)

Page 152: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

INDIRIZZAMENTO IP

• Gli indirizzi IP devono essere UNICI su tutta la rete.• Formati da 32 bit, in 4 byte separati da un punto: Es:

193.205.203.38• Agli indirizzi IP sono associati, per comodità, uno o più nomi, detti

hosts, assegnati e garantiti a livello mondiale. I nomi sono risolti da sistemi detti Domain Name Server (DNS)

• Non sono i NODI a possedere indirizzo IP, ma le interfacce (vi possono essere schede di rete multiple su un unico sistema)

Page 153: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il Pacchetto IP

• IP si occupa di instradare, frammentare, riassemblare i messaggi sulla rete e di rilevare (senza correggere) gli errori.

Parole da 32 bit

Indirizzo IP destinazione

Indirizzo IP sorgente

Opzioni Padding

Controllo testataProtocolloTempo di vita

Identificazione Flags Fragment Offset

Lunghezza TotaleTipo di servizioHLENVersione

Bit 0 4 8 16 19 24 31

1

6

Testata del pacchetto IPTestata del pacchetto IP

Page 154: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Pacchetto IPIn particolare:

• TEMPO DI VITA: contatore temporale. Quando arriva a zero il pacchetto viene scartato. Evita i loop di pacchetti difettosi

• PROTOCOLLO: specifica il protocollo del pacchetto di livello superiore

• INDIRIZZO DI SORGENTE/DESTINAZIONE: indirizzi IP di mittente e destinatario

Page 155: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il protocollo TCP/IP

Mediante opportuni meccanismi (DNS= Domain Name Server ) è possibile convertire gli IP address numerici in indirizzi mnemonici e viceversa.

(es.: 150.146.2.201 = www.iac.rm.cnr.it).

Page 156: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Indirizzi PubbliciPer comunicare su Internet, è necessario quindi utilizzare indirizzi IP, tali indirizzi

vengono assegnati da una autorità internazionale: IANA (Internet Assigned Numbers Authority).

In genere, per le società di piccole dimensioni o gli uffici privati, gli indirizzi pubblici vengono assegnati dal provider di servizi Internet, che a loro volta hanno ricevuto un intervallo di indirizzi pubblici dall'autorità IANA.

Pertanto, per consentire a più computer di un piccolo ufficio o di un'abitazione di comunicare su Internet, è necessario che questi dispongano di un indirizzo. Questo requisito implicherebbe, nel caso di soli indirizzi pubblici, un utilizzo intensivo degli stessi. E’ per questo che sempre lo IANA ha stabilito una serie di range di indirizzi denominati “privati”

Page 157: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Indirizzi Privati InternetGli indirizzi privati sono definiti nell’ambito dei seguenti intervalli:

• 10.*.*.*

• 172.16.*.*

• 192.168.*.*

Questi indirizzi possono essere utilizzati per realizzare reti locali (LAN), ma non possono essere utilizzati per navigare su Internet.

Nel caso in cui si voglia permettere ad un computer con indirizzo privato di navigare su internet e’ necessaria una operazione di trasformazione dell’indirizzo detta NAT (Network Address Traslation)

Page 158: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il protocollo HTTP

• HTTP = HyperText Transfer Protocol

• HTTP è il protocollo internet attraverso cui avvengono le trasmissioni di dati per i Browser.

Page 159: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il protocollo HTTP

• Si “appoggia” sul protocollo IP (Internet Protocol)• Consente l'accesso a documenti ipertestuali in cui vengono

realizzati dei link tra file di vario genere (non solo testuali) fisicamente residenti anche su host differenti.

Page 160: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il protocollo HTTP

• È gestito da un software (server HTTPD) residente sugli host che intendono essere fornitori di informazioni. Chi vuole accedere alle informazioni fornite dal server HTTP deve utilizzare un software client (browser) in grado di interpretare le informazioni inviate dal server.

• HTTP è un protocollo "stateless": ad ogni richiesta si effettua una connessione al server che viene chiusa al termine del trasferimento dell'oggetto richiesto (pagina HTML, immagine, ecc.).

Page 161: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il protocollo HTTP

• HTTP identifica le risorse in rete mediante URL

(Uniform Resource Locator):

Page 162: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il server HTTP

• È un programma che "gira" su un computer di rete in attesa di una richiesta di connessione su una delle sue tante “porte di accesso” (la porta assegnatagli è la 80)

• Il server HTTP svolge un ruolo di interfaccia tra il client remoto che effettua delle richieste sulla “porta”

Page 163: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il server HTTP

• Svolge tre compiti fondamentali:

– invia al client le risorse disponibili localmente, richieste mediante l'indicazione di una URL;

– richiama eventuali procedure esterne con cui comunica mediante l'interfaccia CGI (Common Gateway Interface) per lo scambio di parametri e per ottenere in risposta informazioni in formato HTML;

– effettua, ove esplicitamente richiesto dalla sua configurazione, l'autenticazione degli utenti mediante username e password.

Page 164: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il server HTTP: struttura

• In ogni sito Web deve esistere una home directory.

• La home directory rappresenta il punto di partenza per i visitatori che esplorano il sito ed è la directory di livello superiore nella struttura di directory di pubblicazione.

• Essa contiene un file indice o una home page introduttiva in cui viene dato il benvenuto ai visitatori e sono inclusi i collegamenti ad altre pagine del proprio sito Web. La home directory è mappata nel nome di dominio del proprio sito.

Page 165: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il server HTTP: struttura

• Tutti i file contenuti nella home directory e nelle relative sottodirectory sono automaticamente disponibili ai visitatori che si connettono al sito

• Per pubblicare un documento contenuto in una directory qualsiasi non compresa nella home directory, è necessario creare una directory virtuale. Per directory virtuale si intende una directory che non è realmente contenuta nella home directory, ma che compare come tale ai browser dei client.

Page 166: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il server HTTP: struttura

• Le directory virtuali sono contraddistinte da un alias, ovvero un nome che i browser dei client utilizzano per accedervi. Per gli utenti gli alias sono più comodi da digitare poiché solitamente sono più brevi rispetto al nome di percorso della directory.

• Grazie agli alias, lo spostamento delle directory all'interno del sito diventa più facile. Anziché modificare l'URL per la pagina, è sufficiente modificare la mappatura tra l'alias e la posizione reale della pagina.

Page 167: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il browser

• Il browser è l'applicazione client di questo sistema ad architettura "client/server".

• Gira sulla macchina dell'utente remoto, legge ed interpreta l'output in formato HTML

• Visualizza o gestisce le informazioni codificate in formati a lui noti (es.: immagini GIF o JPEG, filmati QuickTime, scene VRML) e rimanda ad altri programmi esterni presenti sulla macchina client per la gestione di formati non conosciuti (es.: documenti Word, documenti Postscript, ecc.).

Page 168: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il browser

• Le procedure CGI non vengono eseguite sulla macchina client

• I programmi in linguaggio Java vengono invece scaricati sul client, compilati in tempo reale ed eseguiti su di esso

• Il browser consente di impaginare l'output indipendentemente dalla piattaforma che lo ospita (X11, Macintosh, Windows, ecc.)

Page 169: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il linguaggio HTML

HTML = HyperText Markup Language è

il linguaggio dei browsers http

Il concetto di ipertesto e` quello di un documento che contenga, oltre al testo, anche parti di diversa natura, come immagini, suoni, applicazioni, aree interattive, rimandi ad altri documenti (hyperlinks). È un semplice "linguaggio" di marcatura del testo (come il LateX), ereditato da SGML (Standard Generalized Markup Language).

Consiste in un insieme di tag che consentono di caratterizzare porzioni di testo; è compito del client (browser) l'interpretazione dei tag.

Page 170: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Markup = Marcatura

Il concetto di markup e` da intendersi come un linguaggio impostato con dei "marcatori" (tags) di inizio e fine. Per esempio, il grassetto (bold) si ottiene cosi`:

<b>Questa parte e` in grassetto</b>

Questa parte e` in grassetto

Vale a dire che il tag <b> identifica la marcatura di inizio del testo in grassetto, mentre il tag </b> ne identifica la fine.

Page 171: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Struttura della pagina HTML

La pagina html e` strutturata in due parti principali:

• l'intestazione (head) ed il

• corpo del documento (body).

• Per convenzione, l'intero documento va racchiuso tra i tag <HTML> e </HTML>.

Page 172: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Tag HEAD

L'intestazione e` identificata dal tag <HEAD>. Alcuni dei parametri che accetta sono:

TITLETITLE: Indica il titolo del documento. Il contenuto appare nella barra superiore della finestra del browser. Parametro opzionale.

<TITLE>Titolo del Documento</TITLE>

Page 173: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Tag BODY

• Piu` importante e ricco e` il tag di corpo del documento, cioe` il BODYBODY.Alcuni dei parametri che accetta sono:

BGCOLORBGCOLOR: Imposta il colore dello sfondo. Il colore viene passato o come stringa (tipo blue, black, aqua, ecc.) o come componenti RGB secondo la notazione #RRGGBB, dove RR, GG e BB sono le componenti rossa, verde e blu in esadecimale (00 - FF). Per impostare uno sfondo color giallo, ad esempio, l'impostazione sara`:

• BGCOLORBGCOLOR=“#00FFFF”

Page 174: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Tag BODY TEXTTEXT: Stessa funzione del BGCOLOR, solamente riferita al colore

di default del testo.

LINKLINK, VLINKVLINK, ALINKALINK: Stessa sintassi di BGCOLOR e TEXT per il testo associato ad hyperlink ancora da visitare (LINK), gia` visitati (VLINK) o selezionati in quel momento (ALINK).

BACKGROUNDBACKGROUND: Uno dei parametri piu` "succulenti" del BODY. Permette di impostare come sfondo un file grafico, in formato JPEG o GIF, che verra` visualizzato in piu`copie affiancate sul documento.

Page 175: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Un semplice esempio

<HTML><HEAD><TITLE="Prova della Lezione"></HEAD><BODY BACKGROUND=”prova.gif" TEXT=”Arial"><!-- Il testo comparira` con il file prova.gif come sfondo -->Questo e` il mio primo documento HTML!!!</BODY></HTML>

Page 176: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Intestazioni <Hn>…</Hn>n=1, 2, ….., 6

• Esistono due modi fondamentali per variare le dimensioni del carattere nelle pagine html: l'uso delle intestazioni e degli stili. Le intestazioni sono semplicemente sei stili predefiniti

• Intestazione di livello 1 Intestazione di livello 2

Intestazione di livello 3

Intestazione di livello 4

Intestazione di livello 5

Intestazione di livello 6

Page 177: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Il Tag FONT

Il tag <FONT>...</FONT><FONT>...</FONT> è uno tra i piu` usati. Permette di variare colore e dimensione del testo. I parametri che accetta sono:

SIZE:SIZE:Dimensione del font, da 1 a 7. Puo` essere data in modo assoluto (appunto da 1 a 7) o relativo rispetto alla dimensione attuale (+2, -1, ecc.)

COLOR:COLOR: Imposta il colore del carattere, utilizza le stesse modalita` di BGCOLORBGCOLOR

Page 178: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Es. TAG Font

<FONT SIZE=2 COLOR="fuchsia" FACE="TimesRoman">Questo e` un Font di dimensione 2, color fuchsia (magenta) con stile

Times New Roman</FONT><FONT SIZE=+1 COLOR=#FF8000 FACE="Arial">Questo e` un Font un punto piu` grande dello standard (=3) , color arancio(255 rosso, 128 verde, 0 blu) con stile Arial</FONT>Risultato!:

Questo e` un Font di dimensione 2, color fuchsia (magenta) con stile Times New Roman

Questo e` un Font un punto piu` grande dello standard (=3) , color arancio (255 rosso, 128 verde, 0 blu) con stile Arial

Page 179: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Separatori

<BR> <P> e <HR><BR> <P> e <HR>

• Il tag <BR><BR> introduce l'equivalente di un return, introducendo un a capo SENZA spazi di interlinea

• <P><P>, invece, oltre al return si introduce anche un salto di linea, in modo da separare due paragrafi

• <HR><HR> introduce una linea di separazione

Page 180: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Formattatori di blocco

• <CENTER>...</CENTER><CENTER>...</CENTER>:: Uno dei piu` usati. Centra il testo, oltre alle immagini, contenuto nel blocco, rispetto alla larghezza di pagina

Page 181: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Liste

• HTML propone dei metodi semplici per costruire liste. I tags che svolgono questa funzione sono cinque:

<UL>:<UL>: Lista non ordinata

<OL>:<OL>: Lista ordinata

<MENU>:<MENU>: Simile a <OL>

<DL>:<DL>: Lista di definizioni

<DIR>:<DIR>: Rientri consecutivi

Page 182: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Anchors (<A>)

I vari modi di utilizzo del Tag <A>• Riferimento IpertestualeRiferimento Ipertestuale: <a

href="http://www.prova.com"> Sito prova </a>• Immissione di una label per un blocco di testoImmissione di una label per un blocco di testo:<A

NAME="prova">• Richiamo di una labelRichiamo di una label: <A HREF=”this.htm#prova">Vai

alla prova</A>

Page 183: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

FRAMESET:

• Ordina al browser di impostare il frame. I parametri accettati sono:

ROW, COLROW, COL: Righe o colonne interne al frame. Il parametro e` passato come lista, vale a dire che, per esempio, se vogliamo tre colonne larghe 100 pixel, 300 pixel ed il resto per la terza, scriveremo COL="100,300,*". I valori in percentuale sono ammessi.

Page 184: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

FRAME:

• Indica il contenuto del frame generato. I parametri ammessi sono: SRC: indica il documento da visualizzare nel frame.

NAME: Indica il nome della frame. Esistono anche alcuni nomi predefiniti, quali:

_BLANK: Apre una nuova finestra vuota, _SELF: Carica il link correlato sopra il frame stesso, _PARENT: Carica il link correlato sopra il frame "padre" (se e` il primo frame, equivale a _SELF).

MARGINWIDTH, MARGINHEIGHT: Controllano le dimensioni dei bordi delle frames, come valori destro/sinistro (MARGINWIDTH) o alto/basso (MARGINHEIGHT). Valori in pixel.

NORESIZE: E` un flag che, quando inserito, vieta il ridimensionamento del frame.

Page 185: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Esempio

Page 186: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Forms

• Per impostare il documento HTML in modo da poter inviare dati al server viene usato il tag FORM. Questo tag accetta tre parametri, che sono:

ACTIONACTION: Indica l'URL da attivare per inviare i dati. Generalmente, il file indirizzato e` uno script o un eseguibile.

METHODMETHOD: Specifica POST o GET.

ENCTYPEENCTYPE: Indica la natura dei dati inviati, in formato MIME. Quando l'URL utilizza il protocollo HTTP (nella maggior parte dei casi), ENCTYPE e` impostato di default a "application/x-www-form-urlencoded".

"multipart/form-data" | "application/x-www-form-urlencoded" |"text/plain"

Page 187: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Input• Questo tag genera tutti gli altri tipi di interfaccia di dialogo quali pulsanti,

check box, text box, ecc.

NAMENAME: anche qui come per TEXTAREA.

SIZESIZE: dimensione del campo da visualizzare, dipendentemente dal tipo di campo.

SRCSRC: un URL per associare un'immagine ad un pulsante, se desiderato.

MAXLENGHTMAXLENGHT: numero massimo di caratteri introducibili in un campo testo. Se maggiore di SIZE, il testo scorrera` in accordo all'introduzione dei dati.

CHECKEDCHECKED: In caso di un oggetto pulsante, lo crea gia` selezionato.

VALUEVALUE: Il valore iniziale del campo da visualizzare.

Page 188: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Input

• TYPE: Specifica il tipo di interfaccia di dialogo da creare. I tipi sono:

CHECKBOXCHECKBOX: Genera una casella selezionabile.

HIDDENHIDDEN: Non genera interfaccia di dialogo. Viene usato per inviare dati al server che dipendono dal client, tipo nome o indirizzo IP.

IMAGEIMAGE: Un campo immagine, cliccando sul quale i dati vengono inviati al server. Al campo verranno inoltre associate le coordinate sulle quali era puntato il mouse al momento del click.

PASSWORDPASSWORD: Un campo testo, digitando nel quale, invece dei caratteri, vengono visualizzati dei '*'.

Page 189: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Input

• TYPE (segue) RADIORADIO: Genera un radio button, cioe` un pulsante che, selezionato,

deseleziona automaticamente gli altri del suo gruppo. E` obbligatorio il parametro VALUE.

RESETRESET: Genera un pulsante che azzera tutti i valori del FORM.

SUBMITSUBMIT: Genera un pulsante che invia i dati al server. Il parametro VALUE imposta l'etichetta del pulsante. Se manca, viene visualizzato "SUBMIT".

TEXTTEXT: Una singola linea di testo.

TEXTAREATEXTAREA: Vedi sopra

Page 190: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Textarea

• Crea un'area di testo scrivibile su piu` linee. I parametri che accetta sono:

ROW,COLROW,COL: Dimensioni, in caratteri, della finestra.

WRAPWRAP: Indica la modalita` di wrapping del testo. I valori ammessi sono:

OFFOFF: Default. Il testo non va a capo automaticamente.

VIRTUALVIRTUAL: Il testo va a capo automaticamente, ma viene inviato come linea unica.

PHISICALPHISICAL: Il testo va a capo automaticamente e viene inviato come visualizzato.

NAMENAME: Imposta il nome del campo, che verra` poi usato dall'applicativo per rintracciare il contenuto del campo stesso

Page 191: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Select

• Crea una lista di scelte possibili. Accetta tre parametri, che sono:

NAME: Equivalente al NAME di TEXTAREA

SIZE: Indica l'altezza massima, in righe, della lista. Se la lunghezza supera questo valore, verra` visualizzata una barra di scorrimento verticale.

MULTIPLE: Se presente, consente di fare scelte multiple nella lista

Page 192: Recapiti Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.itadamo@iac.cnr.it.

Select

• OPTIONOPTION: si accompagna alla SELECTSELECT ed indica il contenuto della lista di scelte. I parametri ammessi sono: SELECTEDSELECTED: Indica il valore inizialmente selezionato nella lista.

VALUEVALUE: Indica il valore da inviare come dato al server. Quando non e` presente, viene preso il contenuto della OPTION