Un sistema per l’elaborazione dell’informazione
consiste di due componenti :
l’hardware ed il software
Si può parlare di una macchina reale, che è
costituita dall’hardware e di una macchine virtuali
costituite dalla macchina reale + software.
La
macchina
reale
esplica
le
funzioni
fondamentali del sistema di elaborazione. Essa è
in grado di effettuare un grande numero di
operazioni elementari in tempi molto ridotti
rispetto a quelli umani
La macchina reale è programmabile
esclusivamente in linguaggio macchina ed è,
pertanto, molto scomoda da utilizzare
direttamente: infatti, la programmazione in
linguaggio macchina è ardua e poco efficace.
E’ difficile adattare la logica sintetica del
pensiero umano a quella analitica ed
elementare della macchina reale.
Le difficoltà maggiori:
- è necessario pianificare accuratamente
l’impiego della memoria;
- i codici operativi vanno riferiti utilizzando il
formalismo rigoroso della macchina;
-bisogna gestire programmi di notevole
complessità, composti da un elevatissimo numero
di istruzioni elementari, con conseguente elevato
rischio di commettere errori;
- un programma realizzato in linguaggio
macchina non funzionerà su hardware diverso da
quello utilizzato per la sua stesura
Per superare queste difficoltà si realizzano degli
strati di software che vanno a ricoprire la
macchina reale.
macchina reale + software--->macchina virtuale
Software:
- Software di base: Insieme di programmi necessari
per lo stesso funzionamento del sistema che
costituiscono macchine virtuali di basso livello.
-Software applicativo: Programmi orientati alla
risoluzione di problemi specifici utilizzati
direttamente dall’utente finale.
Le macchine virtuali sono orientate alla
rappresentazione più efficace (cioè più vicina
all’uomo) di problemi specifici da risolvere.
La macchina reale è invece ciò
fisicamente possibile la soluzione.
che rende
Schema macchine virtuali ad alto livello
Richiedono grandi quantità di risorse (memoria e
tempo di calcolo)
Le macchine virtuali di livello più basso (e
quindi dal software di base) comprendono la
gestione delle periferiche e la possibilità di
programmare impiegando linguaggi simbolici
Linguaggi di programmazione:
- Linguaggio macchina
- Assemblatori
- Compilatori e interpreti
Linguaggio macchina
Forma espressiva per descrivere programmi di
elaborazione direttamente interpretabili dall’unità
di controllo della CPU.
Le tipiche operazioni elementari :
- spostamento dei dati fra due indirizzi di memoria, fra
registri o fra memoria e registri. Es.:MOV. LD
- operazioni aritmetico-logiche di vario tipo tra gli
operandi ES. ADD, SUB, INC, DEC, OR, AND.
- trasferimento di controllo (“salto”) a un’istruzione
che non sia la prossima. ES. JMP, BRA, CALL, RTS.
- valutazione di una condizione, con salto
condizionato al verificarsi o meno di essa. ES. JNZ,
DBRZ, RTZ.
- istruzioni per gestire condizioni particolari che
possono verificarsi. Es. HALT, TRAP, INT.
Il formato e la lunghezza in bit di un’istruzione in
linguaggio macchina dipende dal sistema elaborativo,
dal tipo di istruzione, da quanti operandi ha e di che
tipo sono.
Esempio di istruzione di linguaggio macchina
Il campo OPCODE (codice operativo) occupa 8 bit
(24-31) e specifica il tipo di istruzione (JMP, INC).
Il campo FLAGS occupa 4 bit (20-23) specifica
informazioni ausiliarie che variano con il tipo di
istruzione (per es. il riporto di una precedente
addizione).
In questo caso si tratta di un’istruzione con un solo
operando (un indirizzo di memoria o il numero di un
registro ), che viene specificato dal campo OP1 nei
20 bit (0-19).
31
24 23
0
20 19
OPCODE
OP1
FLAGS
Istruzione in linguaggio macchina
Un’istruzione che specifica due indirizzi di
memoria avrebbe 20 bit in più.
Assemblatori
Il linguaggio assemblativo (assembly language)
rappresenta
il
primo
passo
verso
la
semplificazione della programmazione.
L’operatore esprime il proprio programma in
linguaggio
assemblativo,
dopodichè
un
programma (l’assemblatore) traduce le istruzioni
in linguaggio macchina, producendo così un
programma che è equivalente al primo, ma
espresso in una forma utilizzabile direttamente
dalla macchina reale.
Il linguaggio assembly è un linguaggio simbolico
I compiti dell’assemblatore sono:
-assegnare automaticamente gli indirizzi a dati e
istruzioni;
- tradurre i nomi simbolici in indirizzi e valori;
- trasformare le istruzioni dalla forma simbolica a
quella binaria.
L’assemblatore è un particolare tipo di programma
per i quale i dati di ingresso e di uscita sono altri
programmi.
I programmi che, come l’assemblatore,
effettuano la traduzione da un linguaggio a un
altro sono detti traduttori.
Esempio di traduzione del linguaggio assembly:
Consideriamo un’istruzione che fa riferimento a un
dato in memoria.
Supponiamo di avere una locazione di memoria
(all’indirizzo 1200) che contiene il numero di pazienti
in clinica in un certo istante .
Quando un paziente viene dimesso questo numero
deve essere decrementato.
In linguaggio assembly questo potrebbe essere
effettuato con le seguenti istruzioni:
PAZIENTI EQU 1200
DEC PAZIENTI
La prima istruzione è una direttiva, cioè dice
all’assemblatore che il simbolo PAZIENTI si riferisce
all’indirizzo 1200. La seconda è una vera e propria
istruzione per la macchina reale.
Questa istruzione in linguaggio macchina si traduce:
opcode flags
op1
00011110 0001 00000000010010110000
Abbiamo assunto che l’istruzione DEC (decremento) sia
rappresentata dall’opcode 3010=111102. Il valore flags=1
indica che il decremento va effettuato su un indirizzo di
RAM e non su un registro di CPU.
Il linguaggio assembly, come il linguaggio
macchina, riflette l’architettura interna del
processore utilizzato.
Quindi
- ogni CPU ha il proprio linguaggio assemblativo;
- programmare in linguaggio assemblativo implica
la conoscenza della struttura logico-circuitale del
processore target (numero di registri, spazio degli
indirizzi ..)
-un programma scritto il linguaggio assemblativo
può essere impiegato sul processore target;
-se si eccettuano le direttive 8che non sono vere
istruzioni macchina, ma servono solo ad istruire
l’assemblatore su come procedere) esiste una
corrispondenza 1:1 tra le istruzioni del programma
in linguaggio assemblativo e il programma tradotto
in linguaggio macchina.
Linguaggi ad alto livello
Precisamente per programmare in un linguaggio ad
alto livello non è necessario conoscere la macchina
reale: lo stesso programma può girare su macchine
diverse.
Questi linguaggi sono caratterizzati da istruzioni
molto sintetiche.
La traduzione da questi linguaggi al linguaggio
macchina non è più 1:1: infatti, ad ogni istruzione di
alto livello corrispondono molte istruzioni macchina.
Un traduttore per un linguaggio ad alto livello ha gli
stessi compiti di un assemblatore più altri:
- riconoscere le strutture sintattiche che specificano
cicli iterativi, esecuzione condizionale di istruzioni,
richiamo di sottoprogrammi;
-applicare le opportune precedenze nelle espressioni
numeriche,
-allocare la memoria necessaria per contenere i dati;
liberare quella che non è più necessaria;
Due tipi di programmi di traduzione da un
linguaggio ad alto livello in linguaggio macchina:
Compilatori ed Interpreti
Compilatore
Questo programma prende in input il programma
scritto nel linguaggio ad alto livello (codice
sorgente) e produce in output un programma
equivalente scritto in linguaggio macchina (codice
oggetto). Il programma oggetto risultante viene
conservato in un file e può successivamente essere
eseguito in qualsiasi momento.
ASCII è il più diffuso codice alfanumerico. Codifica ogni
carattere in un byte di cui vengono utilizzati solo 7 bit
(lasciando il bit 27) sempre pari a zero. Pertanto il codice
ASCII comprende 27=128 caratteri e non 256.
Alcuni compilatori non producono un file binario contenente il
programma in linguaggio macchina, ma piuttosto scrivono un
file ASCII che contiene il programma in assembly. E’ poi
l’assemblatore a trasformare quest’ultimo nel codice binario
eseguibile.
Interprete
Nel caso dell’interprete il programma sorgente
non viene tradotto tutto insieme: infatti,
l’interprete traduce un’istruzione sorgente alla
volta e il codice oggetto risultante viene
eseguito immediatamente, invece di essere
conservato in un file.
Differenze:
-nel caso di un compilatore la traduzione viene
effettuata una volta per tutte; in questo caso il
codice oggetto che viene ottenuto come risultato
non contiene più traccia del compilatore utilizzato
né ha più bisogno di questo.
- nel caso dell’interprete ogni esecuzione del
programma richiederà la presenza dell’interprete
che effettui la traduzione.
Ma ……
-l’esecuzione interattiva tipica dell’interprete
permette di individuare gli errori mentre
l’interprete è ancora in esecuzione;
-la progettazione e la realizzazione di un interprete
è più semplice di quella di un compilatore.
Linguaggi di programmazione ad alto livello:
Basic: è di facile apprendimento, semplifica la
programmazione per i principianti. In origine non
molto strutturato.
Pascal: si tratta di un linguaggio altamente
strutturato, che rappresenta un valido strumento
didattico.
Fortran: adatto alla risoluzione di problemi
numerici di tipo scientifico.
Cobol: utilizzato in applicazioni amministrative e
gestionali.
C: nato per la realizzazione del software di base.
HTML: linguaggio adatto a combinare testo e
grafica in un ipertesto (usato per la creazione di
pagine Web).
PostScript: linguaggio per la descrizione grafica
di pagine contenenti testo ed immagini. Esso
risiede in molte stampanti laser.
Fasi di sviluppo di un Programma
Dato un problema da risolvere:
1) Scelta del metodo risolutivo e rappresentazione
mediante un algoritmo.
2) Rappresentazione dell’algoritmo nel linguaggio
di programmazione scelto (ad esempio,
Pascal): si ottiene il programma in forma
sorgente. La fase di scrittura del programma
viene normalmente detta di editing.
3) compilazione. Il programma sorgente prodotto
nella fase di editing viene tradotto dal
compilatore
in
linguaggio
macchina
(programma eseguibile). La fase di
compilazione può rilevare eventuali errori
(sintattici).
4) debugging. Analisi del corretto funzionamento
del programma. Può essere eseguita da speciali
programmi detti debugger, che permettono
l’esecuzione controllata del programma. (Ad
es. esecuzione di una istruzione alla volta,
visualizzazione dei valori di variabili e punti di
arresto)
5) esecuzione. Quando il programma è stato
verificato, può essere eseguito per la risoluzione del
problema di partenza
Il software applicativo risolve i problemi
specifici richiesti dall’utente.
Il software di base gestisce e controlla il
funzionamento stesso del sistema elaborativo
fornendo al programmatore ed all’utente delle
astrazioni che hanno lo scopo di nascondere i
complicati dettagli sottostanti.
Il sistema operativo
È una collezione di moduli software che gestiscono
le risorse hardware e software e controllano lo
svolgimento delle diverse procedure di elaborazione.
Le macchine virtuali di livello più basso sono tutte
realizzate da moduli di sistema operativo.
Fra i vari moduli c’è un supervisore o kernel che risiede
stabilmente in memoria centrale,ossia viene caricato una
tantum all’atto dell’accensione del sistema.
Gli altri moduli, residenti in memoria di massa, vengono
richiamati dal supervisore e caricati in memoria centrale
quando devono svolgere i compiti specifici di loro
competenza
I compiti del sistema operativo:
1. Gestione delle risorse disponibili
Ogni sistema elaborativo consiste di un processore,
memoria centrale, schermo, interfacce, stampanti,
tastiera, mouse. Il S.O. deve fare in modo che le
richieste per accedere a tali risorse vengano servite
in maniera ottimale (come l’esecuzione di vari
programmi, le code di stampa, l’accesso ai file su
disco..)
2. Gestione delle periferiche
Per ogni periferica presente nel sistema operativo
ha un modulo chiamato driver. I driver di periferica
sono programmi specializzati nel tradurre richieste
formulate dall’utente in una forma comprensibile
dalla periferica. (Es. Driver per una stampante)
3. Controllo dell’esecuzione dei programmi
Quando si ci propone di eseguire un programma,
esso risiede in memoria di massa; ma sappiamo che
per essere eseguito deve trovarsi in memoria
centrale. Viene avviato un modulo di S.O. chiamato
loader, che si occupa di copiare il programma dalla
memoria di massa nella RAM.
4. Interazione con l’utente
Uno dei moduli all’interno del S.O è l’interprete di
comandi, anche detto shell. Esso è un interprete che
risponde i comandi forniti dall’utente tramite la
tastiera o il mouse e li traduce uno ad uno in comandi
di livello più basso che portino a termine le azioni
specificate dall’utente.
Esempio:
1. La shell di MS-DOS con comandi quali DIR, per
listare i file contenuti in una directory, o COPY, per
copiare i file (shell che ricevono i comandi in forma
testuale).
2. Alcune shell interpretano gesti compiuti
dall’utente mediante il mouse o altri dispositivi di
puntamento (shell visuale in Windows)
(a) Monoprogrammazione, monoutenza: il sistema serve un
solo utente per volta ed è in grado di eseguire un solo
programma per volta
(b) Multiprogrammazione, monoutenza: il sistema serve un
solo utente per volta ed è in grado di eseguire più
programmi contemporaneamente.
(c) Multiprogrammazione, multiutenza:
(a)
(b)
(c)
INPUT
ELABORAZIONE
OUTPUT
INPUT
ELABORAZIONE
OUTPUT
INPUT
ELABORAZIONE
OUTPUT
INPUT
ELABORAZIONE
OUTPUT
UTENTE 1 UTENTE 2 UTENTE 3 UTENTE 4 UTENTE 5 UTENTE 6
Multiprogrammazione, multiutenza:serve più utenti
contemporaneamente. Il S.O. impiega una tecnica basata
sulla suddivisione del tempo macchina detta time sharing
per assegnare le risorse del sistema ai vari utenti.
Ogni utente ha l’impressione di avere la CPU
interamente a propria disposizione, mentre quello che
succede è che la CPU passa rapidamente da un processo
all’altro.
Fig III.9
I sistemi operativi più diffusi:
MS-DOS Questo S.O. viene caricato da disco,
invece, di risiedere in ROM. Esso implementa la
monoprogrammazione per singolo utente, con delle
limitatissime capacità di multiprogrammazione.
Windows Inizialmente non si trattava di un sistema
operativo ma di un programma applicativo che
aggiungeva al sistema operativo (MS-DOS) una
macchina virtuale di alto livello nella quale far
girare altro software applicativo. Oggi è il più
diffuso S.O. ed implementa la multiprogrammazione
in monoutenza e permette la condivisione di risorse
fra elaboratori connessi in rete.
Unix Fu il primo sistema operativo ad essere scritto
quasi interamente in un linguaggio ad alto livello (il
C). Unix permette la multiprogrammazione e
multiutente; l’accesso al sistema è possibile anche
attraverso terminali remoti.
Sistemi operativi: interfacce
Interfacce testuali: le operazioni vengono compiute
scrivendo dei comandi su una riga dello schermo
(riga di comando).
Esempio per il sistema operativo MS-DOS dove il
prompt è del tipo:
C:\>
Interfacce grafiche: le operazioni vengono
compiute selezionando oggetti grafici mediante
l’utilizzo del mouse.
Point and click: si porta il puntatore del mouse
sull’oggetto e poi si preme uno dei tasti sul mouse.
Interfacce intuitive: gli oggetti vengono
rappresentati mediante disegni (icone) che ne
richiamano la funzione.
Finestre
Mediante le finestre è possibile mandare in
esecuzione ed interagire con più applicazioni
contemporaneamente:
- a ciascuna applicazione è riservata una finestra
separata
- ad ogni istante, ci sarà una sola finestra attiva
corrispondente all’applicazione con la quale si sta
interagendo
- le finestre possono essere ridimensionate,
spostate e chiuse.
Elementi costitutivi delle finestre:
- barra del titolo: consente di spostare,
ridimensionare e chiudere le finestre
- barra di menu: il menu consente di eseguire le
operazioni offerte dall’applicazione
- barra degli utensili: barra contenente le icone
corrispondenti alle operazioni di più frequente
impiego.
Uso del mouse:
Una volta posizionato il puntatore del mouse sopra
una icona, possono essere eseguite le seguenti
operazioni:
 Selezione: click con il tasto sinistro.
 Apertura: doppio click con il tasto sinistro. Le
possibili operazione dipendono dall’oggetto:
 cartella: ne viene mostrato il contenuto;
 applicazione: viene lanciata;
 file di dati: viene lanciato il programma con
cui è stato creato e il file viene aperto.
 Shortcut menu: click con il tasto destro. Viene
mostrato il menu dipendente dall’oggetto e
dall’applicazione.
Barra delle applicazioni
Si compone di tre parti:
 Menu Start: consente di eseguire le operazioni offerte
dal sistema operativo;
 Bottoni delle applicazioni: quando una applicazione
viene lanciata appare un bottone sulla barra;
 Area degli indicatori: mostra l’orario più le icone di
alcune applicazioni.
Menu Start:
 Programmi: applicazioni istallate su sistema,
suddivise in sottogruppi;
 Impostazioni: consente di modificare le impostazioni
della macchina;
 Trova: consente di cercare un file o una cartella;
 Esegui: consente di lanciare una applicazione
mediante una riga di comando;
 Guida in linea: mostra informazioni di aiuto sul
sistema operativo;
 Chiudi sessione: consente di spegnere la macchina;
Il software applicativo
Il software applicativo è l’insieme di programmi che
concorrono all’implementazione di una macchina
virtuale di altissimo livello che ha lo scopo di
svolgere ben determinai compiti, specifici di una
particolare applicazione.
È il software utilizzato dall’utente finale per risolvere
il problema specifico che gli interessa.
Alcuni esempi:
-scrittura di testi e documenti
-realizzazione di disegni tecnici ed artistici
-composizione di brani musicali
-gestione della farmacia di un ospedale
-gestione di un laboratorio di analisi cliniche
-programmi di posta elettronica (E-mail)
-programmi per la navigazione in Internet (Web
Browser)
Elaboratori di testi o word processor
Potente strumento per la creazione, l’organizzazione e
la conservazione di documenti.
I vantaggi derivanti dall’uso dell’elaboratore:
-possibilità di effettuare modifiche e correzioni
“invisibili” sul testo
-possibilità di conservare i test per riprenderli i un
secondo tempo
-possibilità di manipolare la parte tipografica di un
testo modificando i tipi di carattere (font) e
l’impaginazione o inserendo elementi grafici come
tabelle, figure e diagrammi
- possibilità di effettuare rapidamente ed
automaticamente controlli ortografici e lessicali, con
eventuale scelta di sinonimi.
Tabelloni elettronici
programma che manipola tabelle composte da righe e
colonne di celle e le visualizza sullo schermo; le celle
possono contenere dati numeriici, alfanumerici o
formule matematiche.
Basi di dati o database
Un database è un archivio integrato di dati controllato
da un sistema di gestione (detto DBMS - Data Base
Management System).
Le operazioni supportate da un DBMS sono:
-creare archivi
-memorizzare su disco o altra memoria i dati dell’archivio
-aggiornare e modificare con facilità i dati inseriti
-reperire le informazioni tramite interrogazioni (query)
Esempi di database:
-banca dati anagrafica del comune
-banca dati dei donatori di sangue
-banca dati di informazioni genetiche (DNA, proteine)
- banca dati degli studenti iscritti all’università
-sistema informativo ospedaliero (cartelle cliniche dei
pazienti ricoverati, gestione posti-letto, gestione farmacia
interna)
Collegamenti fra sistemi elaborativi ….
Un sistema per l’elaborazione dei dati può essere
dislocato in un impianto singolo o può essere
distribuito su vari laboratori. In quest’ultimo caso le
varie unità sono interconnesse tramite una rete di
trasmissione dati (rete).
Rete locale (LAN)
una rete di interconnessione di estensione limitata
tipicamente all’ambito di un solo edificio, e che non
attraverso suolo pubblico.
Rete geografica
una rete di interconnessione di estensione maggiore,
che può coprire un’area cittadina (MAN,
Metropolitan Area Network) o anche un territorio
più vasto (Widea Area Network)
Reti locali
I vari componenti (sistemi completi o singole
periferiche di rete) sono connessi mediante un cavo
coassiale. Sia i sistemi sia le periferiche possono essere
di natura e marca diversa, creando una rete eterogenea
(ethernet), in cui tutte le
risorse presenti sono
utilizzabili da ciascuno dei punti di accesso alla rete.
Un apposito insieme di programmi (software di rete) implementa
una serie di macchine virtuali, che si occupano di gestire lo
scambio di inf. secondo un preciso protocollo.
Protocollo: insieme di regole che governano i dettagli tecnici
dello scambio di informazioni.
Il software di rete risolve anche gli eventuali conflitti (collisioni)
dovuti alla richiesta contemporanea di accesso alla stessa risorsa
da parte di due o più utenti della rete.
Reti geografiche
I sistemi, siti in località poste a distanza arbitraria tra loro,
possono essere collegati mediante linea commutata o
linea dedicata.
• Una rete geografica può essere privata (banca,
industria) o pubblica (università , enti di ricerca).
• Più reti separate possono essere collegate
mediante gateway. Poiché ciascuna delle reti
collegate può avere un protocollo diverso, il
gateway provvede all’opportuna conversione di
protocollo al fine di garantire una corretta
trasmissione delle informazioni.
Linea commutata: modalità di collegamento che
sfrutta la diffusione capillare di reti preesistenti,
tipicamente la rete telefonica pubblica.
Linea dedicata: si impiegano linee
esclusivamente alla trasmissione di dati.
dedicate
Tutte le reti create da organizzazioni tecnicoscientifiche sono collegate tra loro, pervenendo così
alla costituzione di una rete unica internazionale che
tocca quasi tutti i paesi del mondo: Internet.
Internet, Inter-network, cioè “reti fra reti”.
Si definisce nodo, ogni sistema connesso in rete.
La rete delle reti comprende al suo interno diversi
protocolli, ognuno legato ad uno specifico servizio
di rete.
I principali sono:
-Posta elettronica o E-mail: consente lo scambio di
messaggi personali tra utenti dei nodi della rete. È
possibile spedire solo messaggi contenenti testo
(infatti l’invio di file binari non dà risultati garantiti)
e, soprattutto, testi non più lunghi di 50-60 Kb.
Importanza delle mailing list.
-FTP (File Transfer Protocol): servizio di rete che
consente di trasferire file da un nodo ad un altro.
-Telnet (Teletype Network): è possibile effettuare
procedure di elaborazione su un sistema remoto.
-World Wide Web o WWW: ragnatela diffusa in
tutto il mondo. In questa modalità di fruizione della
rete, l’utente sfoglia un ipertesto suddiviso in
pagine. All’interno di ciascuna pagina esistono degli
oggetti chiamati link (parole o icone) che, se attivati,
richiamano suoni, animazioni o altre pagine (scritte
in HTML).
Poiché il Web è un unico documento enorme per
aiutare l’utente a ricercare informazioni specifiche,
esistono diversi motori di ricerca (Web browser),
che, una volta specificate alcune parole-chiave di
nostro interesse, trovano un certo numero di
pagine che contengono riferimenti a quelle parole.
Indirizzi Internet
Sono utilizzati per indicare indirizzi IP, indirizzi di
posta elettronica e URL di pagine Web.
Domain name: stringa di caratteri, intervallata da
punti, che individua un nodo della rete.( FQDN)
Esempio: sirio.acme.it
- il nodo si trova in Italia (it)
-il nodo sta in un sub-network che si chiama ‘acme’
(rete privata di un’aziena o di un’università)
-Il computer che ci interessanel sub-network acme.it
si chiama ‘sirio’.
Indirizzi IP: i domain name, per poter essere
compresi dalle macchine collegate, vengono tradotti
in un formato costituito da 4 numeri separati da
punti.
Esempio: 192.9.18.1
La traduzione da indirizzo IP a FQDN si chiama name
serving e richiede la consultazione di un enorme database
che, a causa delle proprie dimensioni, è distribuito su tutta
Internet invece di risiedere su un solo elaboratore.
Indirizzi di posta elettronica: questo tipo di
indirizzo oltre a specificare un nodo, deve anche
specificare un utente di quel nodo.
Il formato è utente @ host, dove host è il domain
name del sistema utilizzato dal destinatario, mentre
utente è il nome con cui il destinatario è conosciuto
presso il suo sistema remoto.
Negli indirizzi di posta elettronica non si usano l’
indirizzo IP al posto del FQDN.
Indirizzi www: sono indirizzi di pagine Web e si
dicono URL (Uniform Resource Locator).
Il formato usato è
prot://host/pathname dove
-‘prot’ indica il protocollo da utilizzare (tipo http o
ftp)
-‘host’ è il domain name o l’indirizzo IP su cui
risiede la pagina (tipo www)
-‘pathname’ è il pathname del file che contiene la
pagina.