Title: Dalla CPU all
1Dalla CPU allutente
Utente 1
Utente 2
HARDWARE
BIOS
SISTEMA OPERATIVO
Utente N
SOFTWARE APPLICATIVO
2Il Bios
- Il Bios (Basic Input Output System) è il software
di base che risiede nella ROM, dedicato alla
comunicazione diretta con lhardware, e che
svolge le iniziali e le fondamentali operazioni
per il funzionamento del computer. - Il Bios e le componenti software similari, non
sono in genere assimilati al sistema operativo,
anche se sono effettivamente parte del software
di sistema essi prendono spesso il nome di
firmware, ad indicare che è fornito insieme
allhardware del PC, a differenza del sistema
operativo.
3Il Sistema Operativo
- Il sistema operativo è un insieme di programmi
che gestisce e coordina il flusso di informazioni
nel computer. - E composto di più moduli specializzati che
intergiscono tra loro
E il software più importante del computer. I
programmi che lo costituiscono operano in modo
cooperativo per La gestione ottimizzata delle
risorse del computer. La realizzazione della
macchina virtuale per lutente.
4Moduli del Sistema Operativo
- Configurazione ed avviamento del computer
- Gestione dellesecuzione dei programmi (processi,
task) e delluso della CPU - Gestione delluso della memoria centrale (memory
manager) e del suo assegnamento ai programmi ed
ai dati - Gestione delle memorie di massa (file system) per
il salvataggio permanente delle informazioni in
files - Gestione dellI/O delle informazioni dalle
periferiche, le code e la priorità - Gestione delle unità di I/O (device manager)
- Scambio di informazioni con lutente (interfaccia
utente) - Accesso multiutente (anche contemporaneo) con
protezioni e sicurezze - Routine di libreria.
5Struttura del Sistema Operativo
- E strutturato a livelli gerarchici
- Il livello più basso (kernel) gestisce la
macchina fisica di cui è strettamente dipendente
(è scritto in linguaggio macchina). - Le funzionalità di ogni livello sono basate su
quella del livello sottostante, risultando quindi
slegate dallo specifico computer. - Il livello dellinterfaccia utente può avere
identica funzionalità anche su computer
totalmente diversi.
6Tipi di Sistema Operativo
- Modalità dellelaborazione
- Batch un solo programma in sequenza, buffer,
spool dell/IO. Occupa le risorse allo start e le
rilascia solo al termine di tutte le operazioni
previste - Interattivo elaborazione interattiva con
lutente. - Accesso alle risorse del computer
- Single-user cioè utilizzabile da un solo utente
alla volta (MS-Dos, Win95) - Multi-users più utenti contemporaneamente (Win
NT, UNIX, MacOS, Linux).
7Tipi di Sistema Operativo
- Modalità di esecuzione dei programmi da parte
della CPU - Monoprogrammazione la più semplice, che consente
di eseguire un solo programma alla volta
(MS-Dos) - Multi-task più (frammenti di) programmi, anche
di un singolo utente o programma, sono eseguiti
contemporaneamente (Win 95, Win NT, UNIX).
Interrupt, scheduling della CPU.
8Programma di Setup (avvio del computer)
- Allaccensione del computer, con una particolare
procedura, è possibile attivare uno speciale
programma di configurazione dellhardware del
computer - Il programma di setup è contenuto nella Rom e può
essere eseguito solo allinizio, prima di
qualsiasi altro programma - E utilizzato per specificare tutti i tipi di
risorse del computer e le configurazioni
specifiche dei segnali e degli indirizzi - I dati così forniti sono memorizzati in una
speciale memoria Cmos (a batteria e non
accessibile a dati e programmi applicativi) letta
al successivo Bootstrap (avvio) del sistema.
9Bootstrap (1)
- Allaccensione del computer un meccanismo
hardware, attivato dal reset, provoca
lesecuzione diretta della prima istruzione di un
programma speciale che è residente in Rom il
bootstrap (componente del sistema operativo). - Le operazioni allaccensione sono
- inizializzazione del computer secondo le
informazioni precedentemente definite nel setup - riconoscimento delle risorse e periferiche
dichiarate ed attivazione degli appositi
programmi di gestione - test di funzionamento delle risorse essenziali
(memoria centrale) - attivazione dei programmi di sistema operativo
per la gestione della memoria centrale
10Bootstrap (2)
- attivazione della gestione dellesecuzione dei
programmi - attivazione dei programmi di gestione delle
periferiche di I/O - attivazione del programma di file system
- caricamento in memoria centrale (Ram) della parte
principale del sistema operativo (solitamente
residente su memoria di massa) - attivazione dei programmi di gestione delle
periferiche aggiuntive (mouse, drive Cdrom,..) - attivazione dellinterfaccia utente.
11Gestione Esecuzione dei Programmi (1)
- La CPU esegue le istruzioni in sequenza in modo
meccanico, senza distinguere a quale processo
(programma in esecuzione) appartengano. - La gestione di un processo si può distinguere in
due fasi - fase di esecuzione vera e propria delle
istruzioni è il tempo reale di operazione del
computer - fase di attesa di un evento (un intervento
dellutente o la risposta di una periferica) è
in genere molto maggiore rispetto al precedente. - Il tempo totale impiegato dal computer per
eseguire un programma è dato dalla somma di
entrambi i tempi.
12Gestione Esecuzione dei Programmi (2)
- Nei sistemi in monoprogrammazione un processo non
può iniziare se non dopo la terminazione del
precedente. - Con la tecnica multitasking durante lattesa di
un processo la CPU esegue un altro processo in
attesa. - Nei sistemi multitasking, virtualmente si ha una
elaborazione contemporanea (parallela) dei
processi, anche se istantaneamente la CPU esegue
una sola istruzione alla volta. E il sistema
operativo che gestisce luso della risorsa CPU ed
il tipo di esecuzione.
13Gestione della Memoria Centrale
- Un programma per essere eseguito dalla CPU deve
essere caricato in memoria centrale. Nel caso di
multiprogrammazione, ma anche con il solo sistema
operativo, i vari processi presenti non devono né
sovrapporsi né avere aree dati comuni (anchesse
presenti in memoria). - Il sistema operativo provvede, tramite una mappa,
alla gestione dellassegnazione della memoria - Deve assegnare a ciascun processo tutta la
memoria di cui ha bisogno - Rendere laccesso a questa memoria il più
possibile veloce - Evitare che i diversi processi in memoria
accedano alle stesse aree di memoria in modo non
coordinato e che le scritture/letture di un
processo danneggino gli altri processi.
14Memoria Virtuale
- Memoria virtuale è unastrazione della memoria
fisica che consente nei sistemi in
multiprogrammazione luso dellintera memoria per
ogni singolo processo
Memoria centrale
Memoria di massa
Una porzione della memoria di massa è utilizzata
dal sistema operativo per contenere
temporaneamente segmenti di memoria centrale
(task o pagine), dove sono dinamicamente
scaricati e riletti (swapping) Con opportune
tecniche (programmi di gestione della memoria
virtuale) è possibile addirittura eseguire
programmi più grandi della memoria fisica.
15Tecnica dello Swapping
Lo swapping consiste nel trasferire
temporaneamente unarea di memoria centrale su
una porzione riservata alla memoria virtuale
della memoria di massa per liberare spazio. In
seguito larea trasferita sulla memoria di massa
sarà nuovamente riportata in memoria.
libera
libera
16Gestione della Memoria di Massa
- I dischi magnetici costituiscono la tipica
memoria di massa utilizzata per - memoria virtuale
- archivio riscrivibile di memoria per dati e
programmi. - Il file system è il programma di sistema
operativo che si occupa della gestione ed
organizzazione delle informazioni sulla memoria
di massa. - Il file è una organizzazione logica delle
informazioni basate su record logici e campi i
dischi magnetici sono strutturati a record fisici
(in genere di 512 bytes) dipendenti dalle
caratteristiche fisiche dellhardware del drive.
17Organizzazione Logica dei Dati
- La rappresentazione fisica dei dati (e programmi)
sulla memoria di massa dipende esclusivamente dal
tipo di supporto di memoria e dalle sue
caratteristiche. - Dati dipendenti e correlati tra loro in
organizzazioni complesse (lista di istruzioni,
schede a campi molteplici, tabelle,) necessitano
di una strutturazione logica che ne faciliti
l'uso e l'accesso, indipendentemente dal record
fisico.
18Unità Logiche dei Dati
- La struttura logica dei dati è un livello
astratto (virtuale) di rappresentazione
costituito da - Campo stream (serie) di bit con cui è codificata
l'informazione (numeri, codici,..). Il formato
dipende dal tipo di computer utilizzato. E'
identificato da un indice - Record logico insieme di più campi contenenti
informazioni di tipo eterogeneo ma correlati tra
loro. E' definito dal programma che usa i dati ed
è identificato da un numero di linea - File è una sequenza di record logici omogenei
con cui sono raggruppati e memorizzati i dati
relativi ad una applicazione.
19Il File
- I record possono essere di lunghezza fissa o
variabile. - Il file è definito dal programma ma è il software
di base del computer che ne gestisce la
memorizzazione con i record fisici. - Il file è l'elemento base della organizzazione
logica dei dati. - Il file è definito da un nome simbolico.
20File e Memoria di Massa
- La memoria di massa è organizzata logicamente a
files tutti i programmi e dati che essa contiene
sono raggruppati in files. - Ciascun supporto di memoria di massa ha, in
posizioni predeterminate (p.e. dischi in traccia
0), una tabella di descrizione dei files che
contiene - informazioni logiche lunghezza, data, tipo,
formato, attributi - mappa dei record fisici (FAT File Allocation
Table). Il file è segmentato in cluster con la
indicazione della traccia e settore. I cluster
possono essere anche in zone diverse e non
contigue della memoria di massa. - E il software di base del computer (sistema
operativo) che utilizza questa tabella per le
operazioni di lettura/scrittura del file sulla
memoria di massa.
21Il File System
- Compiti del file system sono
- interfacciare lorganizzazione logica delle
informazioni propria dellutente con la struttura
fisica del disco - gestire laccesso ai file su disco.
- Lorganizzazione a file è unastrazione nelluso
delle informazioni da parte dellutente - un nome simbolico di identificazione è associato
ad ogni file - le informazioni contenute nel file sono lette
facendo riferimento per nome al file che le
contiene.
22Operazioni del File System
- Il set minimo di operazioni di gestione del file
- creazione definizione di una struttura di file,
di un nome, ed inserzione dei nuovi dati - cancellazione che praticamente consiste nel
marcare come liberi i record fisici del file - copia creazione di un nuovo file uguale
alloriginario ma con diverso nome - rinomina assegnazione di un nuovo nome al file
- stampa su video o sulla stampante del contenuto
del file (se codificato in ascii) - visualizzazione degli attributi oltre al nome la
dimensione, il tipo, la data di creazione, la
protezione.. - lettura/scrittura possibilità di accedere a
segmenti di record logico ed effettuare
cancellazioni o inserzioni.
23La Directory
- Struttura dei files in directory raggruppamento
dei files in insiemi con un nome. - Questa operazione ha solo rilevanza
organizzativa ed ha lunico scopo di suddividere
linsieme dei files in gruppi distinti seguendo
criteri logici (p.e. appartenenza ad uno stesso
utente in sistemi multi-user, classificazione per
argomenti, per tipo di file.) - Ci possono essere più livelli di directory
strutturate in modo gerarchico (sub-directory) ad
albero - La directory iniziale si chiama radice (root)
- Una directory può avere più sub-directories
figlie - Lidentificatore completo del file è quindi il
suo nome e quello della directory che lo contiene
più lelenco (ordinato dalla radice) della
sequenza di tutte le directories in cui è
contenuto (path).
24Esempio di Struttura ad Albero
25FAT e Files
- La FAT per ogni file contiene un descrittore del
tipo - Informazioni descrittive, quali
- Nome del file
- Data di creazione (o modifica)
- Dimensione in bytes
- Attributi
- Tipo di file
- Identificatore (traccia e settore) dei record
fisici in cui è memorizzato il file (cluster).
26FAT e Directories
- Le Directories non hanno una connotazione logica
(e quindi non hanno record fisici), ma sono
anchesse definite nella FAT con descrittori di
tipo - Nome della directory
- Data della creazione
- Attributi
- Nome della directory padre
- Elenco dei files contenuti
- Elenco delle sub-directories figlie.
27Gestione dellI/O delle Informazioni
- Compito del sistema operativo nella gestione
delle periferiche è - Fornire uninterfaccia utente (astratta) per le
periferiche - Far sì che possano operare (possibilmente) in
contemporanea tra loro e con la CPU. - Caratteristiche comuni a tutte le periferiche
sono - La lentezza di operazione rispetto alla CPU
- La subordinazione (slave) alla CPU nella
comunicazione e nello scambio dati (anche per
quelle dotate di autonomia).
28Sincronizzazione con la CPU
- Alcune periferiche hanno un loro proprio
funzionamento autonomo ed indipendente dalla CPU - Per comunicare con la periferica la CPU deve
comunque sincronizzarsi con essa anche se non può
assoggettarsi al funzionamento della periferica
(drive) - Il meccanismo degli interrupt consente ad una
periferica che vuole comunicare con la CPU, di
inviare un segnale di interrupt, a cui la CPU
risponde attivando lo specifico programma di
gestione della periferica (routine di driver)
29Schema dellI/O
- Linterfaccia del sistema operativo con le
periferiche consiste nel definire una serie di
operazioni generali a livello astratto (stampa,
lettura, copia) che lutente utilizza, mentre a
basso livello il sistema operativo richiama il
driver della periferica che ne gestisce il reale
funzionamento.
30I/O e Sistema Operativo
- Ogni periferica di I/O dispone del suo programma
di gestione, da aggiornare nella libreria dei
drivers del sistema operativo. - Nei sistemi multi-task e/o multi-user il sistema
operativo si deve anche occupare del
coordinamento dellaccesso multiplo alle
periferiche.
31Interfaccia Utente
- Lutente deve sempre richiedere al sistema
operativo lesecuzione di una qualsiasi
operazione del computer - Lesecuzione di un programma applicativo
- Una operazione del sistema operativo.
- Il Sistema operativo presenta allutente la
risposta. - Linterfaccia utente è quindi definita da un
linguaggio costituito da comandi e da messaggi di
risposta, ed è notevolmente diversa da sistema
operativo ad un altro.
32Tipi di Interfaccia Utente
- Le due classi tipiche di interfaccia utente sono
- Alfanumerica lutente deve scrivere lo specifico
comando rispettandone correttamente la sintassi
la risposta è costituita da codici numerici o
messaggi prefissati. Il formato è la riga di
comando - Grafica tramite un dispositivo di puntamento (in
genere il mouse) lutente seleziona il comando da
un menù o da un oggetto grafico visualizzato
(pulsante, area, campo). Una GUI (graphical
user interfaces), tipica è quella di tipo WIMP
(Windows, Icons, Menus, Pointing device).
33Esempi di Interfaccia grafiche
34Schema dellInterfaccia Utente
- Linterfaccia utente è un programma sempre in
funzione dall'accensione e ciclicamente esegue la
procedura (interfaccia alfanumerica) - stampa del prompt messaggio con cui il sistema
operativo comunica che è in attesa di un azione
dellutente - comando dellutente (terminato dal carattere
speciale Return) - decodifica ed interpretazione del comando
- se scorretto stampa allutente del relativo
messaggio di errore - se corretto il sistema operativo esegue il
comando - se è unoperazione di sistema operativo, la
esegue - se è la richiesta di esecuzione di un programma
applicativo, lo carica il memoria e lo attiva - stampa della (eventuale) risposta
- continua il ciclo con la stampa del prompt.
- In modo analogo funziona linterfaccia utente
grafica.
35Flow Chart dellInterfaccia Utente
36Trasmissione e Comunicazione
37Tipi di Trasmissione
- Canali analogici
- Modulazione di un segnale portante sinusoidale
- baud numero di variazioni dei livelli di
modulazione (al secondo)
- Canali digitali
- Associazione del bit ad un livello di tensione (o
frequenza) - Trasmissione seriale/parallela
- bit time tempo per la trasmissione di un bit
- bitrate numero di bit trasmessi (al secondo)
38Trasmissione Digitale
Interfacce Hardware Porta Seriale e
Parallela Trasmissione dei dati in sequenze di
bytes
Tipica asincrona Pc-Pc lt 112.5Kb Pc/modem
56Kb Pc/fax 9.6Kb Velocità di
trasmissione Baud bit/sec (2 livelli)
39Trasmissione Seriale
- Asincrona
- Viene trasmesso un byte alla volta senza avere
un intervallo di tempo costante fra un byte e
laltro
- Sincrona
- Vengono trasmessi un certo numero di bytes
Pacchetto ad intervalli costanti preceduti da
uno o più byte SYNC
40Tecniche di trasmissione
Trasmissione a byte i singoli bytes dei dati
vengono trasmessi ciascuno in modo indipendente
dai precedenti senza nessuna regola temporale
Trasmissione a pacchetto i bytes dei dati
vengono raggruppati in sequenze di dimensioni
fisse e quindi trasmessi uno di seguito allaltro.
41Errori di trasmissione
Errori di trasmissione linea telefonica
commutata 10-4 lt Pe lt 10-2
linea telefonica dedicata 10-7 lt Pe lt
10-5
- Tecniche di rilevazione degli errori
- controllo di parità (orizzontale e verticale)
- codici di ridondanza ciclica (CRC)
- Comando ACK/NACK (acknowledge) con richiesta di
ripetizione del dato
- Codici di correzione degli errori uso di
codifiche ridondanti (bit di controllo) per la
correzione degli errori (non tutti) - Codice di Hamming codice per la correzione di un
singolo bit - Codice Reed_Solomon codice per la correzione di
più bit.
42Protocollo di trasmissione
Protocollo di trasmissione insieme di regole
per la gestione del sincronismo dello scambio di
dati tra due stazioni e per la rilevazione e
correzione degli errori.
XMODEM, KERMIT protocolli di trasmissione a
pacchetto.
43Requisiti della comunicazione
- Per effettuare una comunicazione tra computer
sono necessari - almeno di due computer (nodi o host),
- un mezzo fisico di trasmissione,
- interfacce di I/O (porte seriali/parallele,
schede di rete) - un protocollo di comunicazione,
- unapplicazione utente e/o dati da scambiare.
- Obiettivi della comunicazione
- Locale condivisione e/o unione delle risorse
- A distanza comunicazione tra utenti
44Protocollo di comunicazione
- Protocollo di comunicazione
- insieme di controlli e di procedure che
permettono linstaurarsi delle fasi di - Attivazione
- Mantenimento
- Chiusura
- del collegamento (anche virtuale (p.e. TCP)) tra
due stazioni. - E organizzato a diversi livelli di astrazione
(secondo il modello di riferimento ISO/OSI)
45Reti
46Reti di comunicazione
Le reti informatiche consentono la comunicazione
tra computer al fine di scambiare flussi di
informazioni. I protocolli di comunicazione
definiscono i modi e i termini entro i quali tali
comunicazioni devono avvenire.
- Rete telefonica pubblica (PSTN) (max 56Kb/s)
- Rete telefonica mobile GSM (9.6Kb/s), GPRS
(29.4Kb/s), UMTS(1Mb/s) - Internet (10-100Mb/s rete locale fissa,
1-10Mb/s wireless) - Rete satellitare
47Rete Punto-Punto
- E la connessione diretta ed esclusiva tra due
computer.
- Interfaccia Hardware il mezzo di trasmissione è
connesso alle porte di I/O o attraverso una
scheda di rete (fissa o wireless)
48Rete a Stella
- I computer sono collegati a una stazione centrale
che gestisce il collegamento tra tutti i computer
e mette in collegamento i due computer per la
trasmissione dei dati. - Tutti i dati trasmessi da una stazione allaltra
transitano nella stazione centrale.
49Rete ad Anello
- I computer sono connessi tra di loro con a
struttura ad anello e la trasmissione segue ha
una direzione fissa. - La gestione della comunicazione è effettuata da
tutte le stazioni, che possiedono lo stesso
software di comunicazione. - Ciascuna stazione riceve tutti i dati dalla
stazione adiacente, memorizza quelli a lei
destinati e ritrasmette tutti gli altri alla
stazione successiva, insieme agli eventuali
propri dati.
50Rete a Bus
- La struttura a bus è del tipo broadcast i dati
trasmessi da una stazione arrivano, senza
memorizzazioni intermedie, direttamente alla
stazione destinazione. - Questo comporta velocità di trasferimento
maggiori rispetto alle reti ad anello e stella. - Le reti con struttura a bus sono quelle più
diffuse.
51Rete a Maglia
- Non esiste una tipologia di rete predefinita. Le
connessioni di rete sono ridondanti. - Completa ogni stazione della rete è fisicamente
connessa con un esclusivo mezzo di trasmissione a
tutte le altre stazioni della rete. - Incompleta esistono più connessioni tra le
stazioni della rete (al minimo un collegamento
per stazione). E la tipologia di rete di Internet
52Protocollo di rete
Protocollo di rete il software di
comunicazione residente sui tutti i nodi della
rete, specifico per la tipologia di rete, che
consente il trasporto asincrono di pacchetti di
dati tra le stazioni evitando conflitti e
deadlock.
53Reti Metropolitane MAN
- MAN (Metropolitan Area Network) è una rete a
dimensione cittadina/regionale. Interconnessione
di reti private su suolo pubblico (urbano)
tramite una dorsale. 2Mb/s (fino a 150 Mb/s)
54Reti Geografiche WAN
- WAN (Wide Area Network). E una rete che si
estende sul territorio nazionale/internazionale,
è un insieme di LAN, MAN. Reti estese
geografiche. Da 64Kb/s fino a 155Mb/s
55Dorsali di Rete
- Dorsale WAN speciale per la interconnessione di
reti LAN, MAN, WAN.
GARR dorsale italiana. I gateway di Pisa (IAT) e
Bologna (INFN) sono connessi alla dorsale europea
EUROPENET (Cern di Ginevra) ed alle dorsali
americane (ARPANET, BITNET,..)
56Internet
57Internet
- Internet è definita come la rete delle reti è
costituita dallinterconnessione a livello
mondiale di reti geografiche che adottano comuni
protocolli di rete.
Originata da Arpanet. Protocollo di rete TCP_IP.
Intranet (tecnologia internet per reti private).
58Protocollo di rete di Internet
- La classe di protocolli di rete utilizzati su
Internet è il TCP/IP (Transmission Control
Protocol /Internet Protocol) - I computer connessi in rete (nodi) sono chiamati
Host. - Gli Host si suddividono in Host Client ed Host
Server. - Server sono gli host che amministrano e curano i
servizi della rete locale. I Bridge, Router e
Gateway sono host Server. - E possibile continuare ad utilizzare gli
originari protocolli di rete anche in presenza
del protocollo TCP/IP.
59Gli Indirizzi IP
- Gli hosts hanno un indirizzo unico sulla rete
Internet . - Lindirizzo è numerico su 32 bit
(2324.294.967.296). - E comunemente rappresentato con quattro numeri
interi decimali separati dal punto, ciascun
numero con valore compreso fra 0 e 255 (valore
intero su 8 bits). - I 32 bits sono divisi in due parti la parte più
significativa indica lindirizzo di rete, laltra
quello dellhost. - Per esempio lindirizzo 146.48.68.132 identifica
lhost 132 sulla rete 146.48.68 - Tutti gli hosts di una stessa rete hanno
indirizzi del tipo 146.48.68.xxx (xxxindirizzo
dellhost). - Gli indirizzi con xxx0 e 255 sono riservati (0
individua la rete (p.e. 146.48.68.0) 255 per
trasmissione broadcast a tutti gli host della
rete (p.e. 146.48.68.255)).
60Assegnazione degli Indirizzi IP
- NIC (Network Information Center) è lautorità
che si occupa della registrazione ed assegnazione
degli indirizzi tramite la suddivisioni in classi
(A,B,C,D,E) e la suddivisione dei gruppi. - L'assegnazione degli indirizzi agli host è fatta
dal server della rete locale.
61Domini
- Internet è logicamente suddivisa in sottoreti i
domini. - Ogni dominio a sua volta può essere organizzato
in sottodomini secondo una struttura gerarchica
ad albero. - Un dominio è una serie di reti (sottorete di una
rete geografica connesso da un gateway) gestita
da una singola organizzazione (server) che in
modo autonomo ne definisce - topologia
- strutturazione (gerarchica) in sottodomini
- nomi simbolici ed IP address dei nodi (la parte
iniziale è quella assegnata al dominio dal
dominio di cui fa parte).
62Trasmissione su Internet
- Ogni rete (sottodominio) ha un server che
gestisce la trasmissione/ricezione dei pacchetti
dei messaggi dallinterno allesterno della rete. - La trasmissione di un informazione tra due hosts
residenti su domini diverse e non adiacenti è
effettuata tramite l'invio su rete di un
messaggio con l'IP address del destinatario. - L'host (di transito) che riceve un messaggio non
diretto a lui, provvede a reinstradarlo sulla
rete. - I gateway provvedono al reinstradamento su una
rete adiacente secondo regole di percorso
(routing) basate sulla composizione dell'IP
address.
63Instradamento dei pacchetti
- Il gateway è un server che collega più reti anche
diverse tra loro con il compito di accettare i
pacchetti dal sottodominio, di tradurli e di
trasmetterli. - Il gateway è in grado di instradare i pacchetti
verso il sottodominio di destinazione,
trasmetterli al gateway adiacente, utilizzando
una tabella con gli indirizzi di tutti gli hosts
della rete e dei gateway adiacenti. - Per creare e aggiornare queste tabelle vengono
usati i protocolli di routing.
64Il protocollo TCP/IP
- TCP/IP è un architettura di protocolli per la
comunicazione in rete indipendente dal tipo di - Computer (PC, Apple, Mini, Workstation, Main
Frame..) - Sistema Operativo (UNIX, Windows, OS/2, VMS,
- Connessione fisica (Ethernet, Token Ring,
Telefonica, ) - Si compone di due protocolli con funzioni
distinte - IP Internet Protocol
- TCP Trasmission Control Protocol
65Il protocollo TCP
- Il protocollo TCP si occupa di segmentare in
pacchetti i dati da trasmettere. E un protocollo
di trasporto che si occupa di - impacchettare/spacchettare i dati
- garantire lintegrità e la correttezza del
messaggio trasmesso dopo averlo ricostruito dai
pacchetti ricevuti - interagire con le applicazioni utente su Internet
(accesso al web, posta elettronica,) e con il
protocollo IP - consentire lutilizzo di più applicazioni utente
in contemporanea sullo stesso host smistando i
pacchetti dei singoli messaggi tramite lutilizzo
di porte logiche assegnate alle applicazioni
utente.
66Il protocollo IP
- Il protocollo IP si occupa di instradare i
pacchetti sulla rete. E un protocollo di rete
che si occupa di - interagire con il protocollo TCP e con quello di
collegamento (Ethernet, Token Ring, ) - incapsulare nel pacchetto in trasmissione
lindirizzo dell host - interpretare in ricezione lindirizzo dellhost
destinatario leggendo il campo indirizzo del
pacchetto ricevuto - determinare il ramo più idoneo della rete per far
giungere il pacchetto alla rete di destinazione
(secondo regole di mappatura della rete e di
traffico).
67DNS Domain Name Server
- E comune attribuire agli host ed ai sottodomini
dei nomi simbolici (host name) composti da
stringhe di caratteri registrati allinterno di
apposite tabelle, che però non possono essere
utilizzati nella trasmissione - La risoluzione dei nomi simbolici degli host in
IP address è svolta da particolari host i DNS
(Domain Name System) server, distribuiti ad ogni
livello di rete (tipicamente ogni sottodominio ha
il suo DNS) - Il protocollo TCP/IP provvede ad effettuare
questa conversione prima di trasmettere
effettivamente i pacchetti - Per esempio 131.114.22.3 ---gt www.med.unipi.it
dove - 131 identifica .it dominio Italia
- 114 identifica .unipi sottodominio Università di
Pisa - 22 identifica .med sottodominio di Medicina
- 3 identifica www lhost collegato
68Suffissi degli Host Name
I principali suffissi dopo lultimo punto del
nome sono .EDU si riferisce a università ed enti
di ricerca .COM organizzazioni commerciali .GOV
enti governativi .MIL enti militari
.NET organizzazioni di supporto e gestione della
rete .ORG organizzazioni o enti di diritto
privato .IT Italia .FR Francia .UK Inghilterra
.DE Germania
69Accesso ad Internet non da rete locale
Alcuni server speciali di Internet lISP
(Internet Service Provider o Terminal Server)
provvedono alla connessione telefonica via modem
di host non connessi ad una rete locale.
L'accesso al Server è consentito solo agli host
dotati di un account (username e password).
Attraverso protocolli di comunicazione tra host
e server di tipo punto punto (PPP) e diretti
(SLIP serial Link Interface Protocol) l'host
remoto ha accesso temporaneo alla rete Internet
tramite il Terminal Server a cui è connesso.
70Servizi dei protocolli TCP/IP
- Protocolli di base del TCP/IP organizzati come
client-server. - FTP (file transfer protocol) trasferimento di
files tra due host di rete. L'accesso ai files
può essere libero (anonymous) o subordinato a
regole d'accesso (account) - TELNET (terminal network) accesso remoto (in
I/O) con account a sistemi operativi su server di
rete - SMTP (simple mail transfer protocol)
trasferimento di messaggi multimediali tra utenti
(non host!) tramite limpiego di speciali Mailer
server che smistano i messaggi sulla rete e che
memorizzano i messaggi diretti al destinatario
(analogo al servizio postale con fermo-posta) - HTTP (hyper text transfer protocol)
consultazione di informazioni multimediali in
formato ipertestuale. Appositi link consentono di
estendere la ricerca consentendo automaticamente
il collegamento con altri server.
71SMTP
- Simple mail transfer protocol.
- Protocollo di gestione dellinvio della posta
elettronica (e-mail), ossia messaggi multimediali
(e con allegati) tra utenti utilizzando la
rete - Il Mailer server gestisce il servizio
- lutente (mittente) invia il messaggio al Mailer
server della rete dallhost da cui ha fatto
accesso - il Mailer server del mittente provvede ad
inoltrare il messaggio al Mailer server del
destinatario - il destinatario può ricevere il messaggio
collegandosi da un host al suo Mailer server - Il messaggio sara recapitato se e quando il
destinatario si connetterà al proprio Mailer
server
72POP
- Post office protocol. Protocollo per la ricezione
di messaggi multimediali (e con allegati) tra
utenti utilizzando la rete - Il Mailer server del destinatario, interrogato da
un host della rete, fornisce con il protocollo
POP i messaggi ricevuti che sono stati
temporaneamente memorizzati nella sua casella
postale - Il Mailer server per linvio della posta
elettronica e quello per la lettura possono anche
essere distinti in questo caso occorre avere
laccount del Mailer server a cui ci si connette
e laccount per la lettura dei messaggi sul
proprio Mailer server.
73La posta elettronica
- Per poter usufruire del servizio della posta
elettronica occorre - disporre di un computer connesso alla rete
(Internet) - avere un programma applicativo per luso della
posta elettronica - essere registrati presso un Mailer server che ci
riservi una casella di posta (directory) dove
mantiene i messaggi in arrivo - disporre di un account (identificatore e
password) per laccesso al Mailer server (fornito
dal Mailer server stesso) - avere di un indirizzo di posta elettronica
(e-mail address), fornito dal Mailer server, che
ci identifica univocamente il cui formato è - nomeutente_at_nome del Mailer server
- p.e. pinco.pallo_at_nomeditta.it
74Invio di un e-mail
- Per linvio di un messaggio di posta elettronica
(e-mail) occorre - collegarsi da un host di rete al Mailer server e
specificare laccount - preparare il messaggio multimediale a cui
eventualmente allegare file di qualsiasi tipo
(attach) che saranno trasmessi insieme al
messaggio - inviare il messaggio al destinatario (di cui
occorre conoscerne lindirizzo e-mail) il
messaggio è inviato al Mailer server - Il Mailer server provvederà (SMTP) a far giungere
il messaggio nella casella postale del Mailer
server del destinatario, dove resterà finchè non
sarà letto.
75Ricezione di un e-mail
- Per la lettura di un messaggio di posta
elettronica (e-mail) occorre - collegarsi da un host di rete al Mailer server e
specificare laccount - accedere alla propria casella postale sul Mailer
server dove è specificato il proprio indirizzo di
e-mail (POP) - leggere ed eventualmente memorizzare il messaggio
(ed i file allegati) dallhost da cui è stato
fatto laccesso.
76Newsgroups
- Newsgroup gruppi di discussione. E una bacheca
elettronica (forum) dedicata ad argomenti
specifici. - Alcuni server specializzati di Internet
memorizzano e presentano a ciascuno che ne faccia
richiesta i messaggi multimediali (posting)
inviati dagli utenti - I messaggi sono classificati in modo gerarchico
in gruppi di argomenti similari - Ciascun utente può analizzare la lista dei
messaggi e leggere liberamente quello di
interesse può inoltre partecipare alla
discussione virtuale con gli utenti del gruppo
inviando alla lista un proprio messaggio.
77WWW
- World wide web (Web) sistema client/server per
laccesso e presentazione di informazioni su
Internet - permette di organizzare la distribuzione delle
proprie informazioni su più host di rete connessi
logicamente tra loro - consente laccesso ad informazioni presente in
rete senza conoscerne in precedenza lesistenza e
lesatta dislocazione - la consultazione delle informazioni è effettuata
sulla base di documenti ipertestuali - le informazioni sul Web sono strutturate come un
ipertesto distribuito - i documenti (multimediali) presentati dal Web
sono dotati di link ad argomenti correlati
presenti sia sullo stesso che su altri host - larchitettura del Web consiste nel client
(browser) e nel server (web server) - interfaccia utente semplice e friendly.
78HTTP
- Hyper text transfer protocol protocollo per la
consultazione di informazioni multimediali in
formato ipertestuale su Web - Le informazioni sono organizzate e presentate nel
formato di pagine web - La pagina web è scritta in formato HTML (hyper
text markup language) testo (in ASCII), comandi
di impaginazione e link (tag) ad altre pagine
web - Ogni web server ha una pagina web iniziale (home
page) presentata al web client (browser) che lha
richiesta specificandone lindirizzo ciascun
altra pagina web che può essere accessa a partire
da questa pagina ha un suoproprio indirizzo.
79URL
- Uniform Resource Locator è lindirizzo della
pagina web - deve essere fornito al browser per il primo
accesso ad una pagina web - è lindirizzo della successiva pagina web a cui
accedere quando è selezionato il link della
pagina ipertestuale - Il formato dellURL è
- protocollo//indirizzo del web server/percorso/nom
e del file - Per esempio lURL della prima pagina della
Facoltà di Medicina e Chirurgia dellUniversità
di Pisa è - http//www.med.unipi.it/site/index.htm
- Il protocollo può essere qualsiasi di quelli
previsti dal TCP/IP (e quindi tramite il WWW
accedere alle risorse di rete anche con FTP,
Telnet, SMTP)
80Accesso al WWW
BROWSER
1.Preparazione richiesta
SERVER
2.Inoltro richiesta
BROWSER
SERVER
3. Esecuzione richiesta
BROWSER
4. Risposta
SERVER
BROWSER
5. Presentazione risposta
81Browser
- Lutente specifica lURL del documento
desiderato - Il browser visualizza la pagina web (in HTML)
ricevuta dal web server facendone il rendering
grafico secondo i tag HTML - Se lutente seleziona un (eventuale) link sulla
pagina web il browser si connette automaticamente
al web server specificato nellURL e presenta la
nuova pagina web - Il browser è in grado di effettuare connessioni
con vari protocolli per esempio è possibile
scaricare file con FTP - file freeware possono essere scaricati
gratuitamente - file shareware possono essere scaricati e
provati gratuitamente in versione ridotta o per
un breve periodo - file protetti da account (accessibili a
pagamento). - Il browser dispone del software per
rappresentare immagini filmati e suoni in vari
formati.
82I motori di ricerca
- Motori di ricerca. Server web costituiti da
supercomputers (Lycos, Yahoo, Google) che
consentono di effettuare ricerche per keyword o
argomento di pagine web - Il risultato della ricerca è una pagina web con
lindicazione degli argomenti trovati ed il link
alla relativa pagina web - Sono utilizzati quando
- non è facilmente individuabile loggetto della
ricerca - non è nota lesistenza sul web dellinformazione
cercata - non è noto lURL della pagina web
- I motori di ricerca hanno un archivio di
riferimenti (NON delle informazioni) alle pagine
web presenti su Internet referenziate per
keyword - Periodicamente viene fatto laggiornamento
automatico dellarchivio applicazioni lanciate
dai motori di ricerca accedono ai web server dove
sono pubblicate le pagine web.
83Linguaggi
84Funzionamento del computer
- Il calcolatore e una macchina in grado di
compiere SOLTANTO operazioni elementari di tipo
ARITMETICO e LOGICO seguendo le istruzioni del
Programma. - TUTTE le funzioni ed operazioni di qualsiasi
complessita da far svolgere ad un calcolatore
devono essere SEMPRE espresse in termini delle
sue operazioni elementari di base. - Affinche un calcolatore possa effettivamente
svolgere una particolare operazione, deve essere
descritto in dettaglio - COME svolgere loperazione, basandosi unicamente
sulle operazioni di base del computer - QUALI operazioni di base utilizzare e lordine di
esecuzione - Considerare TUTTI i possibili casi particolari
che si possono presentare, tenendo ben presente i
possibili formati dei dati
85Algoritmo
- L' algoritmo e la struttura descrittiva
utilizzata nella individuazione di una procedura
di soluzione di un problema, prima della
programmazione vera e propria. - Lalgoritmo e uno schema ordinato sequenziale di
operazioni e controlli che descrivono i dati da
utilizzare e la sequenza di azioni elementari da
effettuare per risolvere una determinata classe
di problemi. - La realizzazione di un algoritmo consiste nella
combinazione di operazioni del tipo - Dichiarazioni di dati ed operazioni elementari
sui dati - Azioni condizionate da test logici sui dati e sui
risultati di precedenti operazioni - Strutture cicliche condizionate di operazioni
86Algoritmo
- I due formati tipici dellalgoritmo sono
- Luso di un linguaggio testuale, consistente
nella elencazione delle operazioni in linguaggio
naturale - La rappresentazione grafica con un diagramma di
flusso (flow chart) che consente una descrizione
grafica delle azioni e del flusso di esecuzione. - Il flow chart e costituito da blocchi (di varie
forme convenzionali) collegati da archi
orientati il grafo viene percorso da un blocco
iniziale fino ad un blocco di terminazione. La
descrizione dellazione contenuta nel blocco puo
essere dettagliata fino al livello delle
operazioni elementari della macchina. - I blocchi tipici dellalgoritmo sono
- Dichiarazione di inizio e fine procedura
- Operazione sui dati
- Controllo condizionato del flusso di esecuzione
- Operazione di input/output.
87Linguaggi di programmazione
- Un Linguaggio di Programmazione e definito dalla
semantica dei comandi e dalla sintassi
dell'istruzione cio consente di trascrivere un
Algoritmo in un Programma.
88Linguaggio macchina
- Rientra nella classe dei linguaggi di
programmazione, ma con diversi inconvenienti - Difficolta di stesura occorre conoscere
esattamente i codici delle operazioni elementari
e gli indirizzi di memoria dei dati - Necessita di scrivere algoritmi con un alto
grado di dettaglio - Unicita del programma, inutilizzabile su CPU
differenti e fortemente legato agli indirizzi
scelti di memoria centrale - Difficolta elevata di comprensione di un simile
programma in quanto molto distante dal livello
astratto della progettazione
89Linguaggio macchina
- Un programma in Linguaggio Macchina utilizza
l'insieme delle istruzioni elementari che
lhardware del computer (CPU) e in grado di
comprendere direttamente ed eseguire. - Ogni istruzione e identificata da un indirizzo
di memoria. - Il computer esegue una istruzione in linguaggio
macchina alla volta, in ordine strettamente
sequenziale a partire da una istruzione iniziale
il cui indirizzo e stato precedentemente
comunicato alla CPU.
90Linguaggio macchina
- E il linguaggio di base del computer perche e
basato sulla sua specifica operativita. - Ogni tipo di CPU ha il suo proprio linguaggio
macchina, in genere differente per CPU diverse
anche a parita di funzionalita di base. - Il linguaggio macchina, come ogni linguaggio di
programmazione, e caratterizzato da - una sintassi, che fornisce le regole per la
scrittura dellistruzione - una semantica, data dallinsieme delle istruzioni
utilizzabili, cioe le operazioni di base della
CPU.
91Linguaggio macchina
- Il formato dellistruzione contiene due campi
uno per il codice operativo ed uno per uno (o
piu) argomenti che specificano i dati su cui
operare. - Il codice operativo (obbligatorio) e un numero
relativo alloperazione fisica che la CPU e in
grado di eseguire. - Largomento(i) puo essere direttamente un valore
oppure lindirizzo di memoria dove e il dato.
Molteplici sono i metodi di indirizzamento
adottate nel campo argomenti. Alcune istruzioni
non hanno argomento.
92Tipi di istruzioni
- Operazioni di lettura e scrittura in memoria
centrale nel campo argomenti deve essere
specificato lindirizzo di memoria (e la
componente della CPU) tra cui effettuare il
trasferimento - Operazioni aritmetiche e logiche gli operandi
(ed il risultato) devono essere specificati tra
gli argomenti - Istruzioni di controllo del flusso di esecuzione
costituiscono lunica eccezione alla
sequenzialita dellesecuzione delle istruzioni.
Largomento specifica lindirizzo della
successiva istruzione (non in sequenza) da cui
continuare lesecuzione. Listruzione puo
richiedere la verifica di una condizione il
salto e effettuato solo nel caso sia vera - Istruzioni di Input ed Output da periferiche il
campo argomento indica il tipo di periferica (ed
il valore) su cui effettuare loperazione.
93Lingaggio macchina
- Linguaggio di programmazione, ma con diversi
inconvenienti - Difficolta di stesura occorre conoscere
esattamente i codici delle operazioni elementari
e gli indirizzi di memoria dei dati - Necessita di scrivere algoritmi con un alto
grado di dettaglio - Unicita del programma, inutilizzabile su CPU
differenti e fortemente legato agli indirizzi
scelti di memoria centrale - Difficolta elevata di comprensione di un simile
programma in quanto molto distante dal livello
astratto della progettazione
94Linguaggi di programmazione
- Un linguaggio di programmazione diverso dal
linguaggio macchina non e direttamente
interpretabile dalla CPU si richiede una fase
aggiuntiva di traduzione in linguaggio macchina. - Lobiettivo e quello di definire linguaggi
formali astratti di facile uso e comprensione da
parte dellutente con cui scrivere programmi
eseguibili dal computer. - I linguaggi di programmazione si distinguono il
linguaggi a basso o alto livello a seconda del
grado di astrazione - Assembler versione simbolica del linguaggio
macchina e differente per tipi diversi di CPU - Fortran (Formula Translator) adatto ad
applicazioni scientifiche - Cobol dotato di operatori gestionali ed
economici - Basic semplice e diffuso linguaggio per uso
generale - C capace di gestire strutture complesse di dati
ma anche di operare a basso livello con
lhardware - Lisp orientato allelaborazione di strutture
simboliche a lista e utilizzato in applicazioni
di intelligienza artificiale - Prolog linguaggio logico di relazione tra i
dati. Non e basato sul modello funzionale
dellalgoritmo - Java diffuso linguaggio di programmazione ad
oggetti operante su rete.
95I programmi Traduttori
- Compilatori producono una versione Object del
Source riutilizzabile senza la necessita di
ulteriore traduzione - Interpreti traducono una istruzione del Source
alla volta generando la relativa codifica in
linguaggio macchina che viene immediatamente
eseguita. - Non essendo prodotto alcun Object, future
esecuzioni del Source richiedono una nuova
traduzione con l'interprete (addirittura le
istruzioni in un ciclo sono reinterpretate di
nuovo ad ogni passaggio!).
Il Programma per la sua esecuzione puo
necessitare di altri programmi occorre un
ulteriore passaggio (la fase di Link, un
programma anch'esso in linguaggio macchina) per
ottenere la versione finale (Exec) pronta per
essere eseguita
96Caratteristiche di un linguaggio di programmazione
- Rilocabilita cioe la caratteristica
dellobject (dovuta al tipo del traduttore) di
poter essere allocato in differenti zone di
memoria - Trasportabilita la proprieta che ha un Source
possa essere eseguito su calcolatori di
differenti, possibile solo se il linguaggio di
programmazione e svincolato dalla struttura
della particolare macchina (dove deve esistere il
particolare traduttore).
97Database
- Indica un archivio, strutturato in modo tale da
consentire la gestione dei dati stessi
(l'inserimento, la ricerca, la cancellazione ed
il loro aggiornamento) da parte di applicazioni - Contiene
- Strutture dati che velocizzano le operazioni
frequenti - Collegamenti con dati esterni, riferimenti a file
locali o remoti non facenti parte del database - Informazioni di sicurezza, che autorizzano solo
alcuni profili utente ad eseguire alcune
operazioni su alcuni tipi di dati - Programmi che vengono eseguiti, automaticamente o
su richiesta di utenti autorizzati, per eseguire
elaborazioni sui dati. Un tipico automatismo
consiste nell'eseguire un programma ogni volta
che viene modificato un dato di un certo tipo.
98Database
- Il dato viene raccolto in record suddivisi in
campi. A seconda del tipo di database il record
ha una sua organizzazione allinterno del
database - Ad es.
- In un database navigazionale
- Record pazientegtcampo nome, campo cognome, campo
eta, campo sesso ecc. - In un database relazionale, le informazioni
vengono divise, ad esempio, nelle tabelle
paziente, "indirizzi", "numeri di telefono" e
solo se i dati sono presenti viene creata, nella
rispettiva tabella, una tupla per ogni "record"
viene definita una "chiave", ovvero un
identificatore univoco della tupla.
99Database
- Data Definition Language (DDL) - consente di
definire la struttura della base di dati e le
autorizzazioni per l'accesso - Device Media Control Language (DMCL) - permette
alla struttura fisica del database di far
riferimento alle particolari unita di memoria di
massa utilizzate dal sistema - Data Manipulation Language (DML) - consente di
interrogare e aggiornare le istanze della base di
dati - Data Control Language (DCL) - permette la
gestione dell'accesso al database con relative
restrinzioni di operazioni come aggiornamento,
selezione e cancellazione - Query language (QL) - permette di interrogare il
database al fine di ritrovare i dati relativi
alla chiave di ricerca impostata dall'utente.
100Database linguaggi
- Linguaggi testuali interattivi, come l'SQL
(Structured Query Language) - Linguaggi testuali interattivi immersi in
linguaggi di programmazione comuni, quali C,
Basic ecc. - Linguaggi testuali interattivi immersi in
linguaggi di programmazione proprietari - Linguaggi grafici e user-friendly, come QBE
(Query By Example), che possono essere utilizzati
anche dai meno esperti.
101Database DBMS
- Database Management System (abbreviato in DBMS)
- un sistema software progettato per consentire la
creazione e manipolazione efficiente di database
(ovvero di collezioni di dati strutturati)
solitamente da parte di piu utenti - Un DBMS e differente dal concetto generale di
applicazione sui database, in quanto e
progettato per sistemi multi-utente. - I DBMS si appoggiano a kernel che supportano
nativamente il multitasking e il collegamento in
rete. Una tipica applicazione per la gestione dei
database non includerebbe, infatti, tali
funzionalita, ma si appoggerebbe al sistema
operativo per consentire all'utente di fruirne
dei vantaggi
102Database architettura
- I tre tipi di organizzazione piu comuni sono
- il modello gerarchico
- il modello reticolare
- modello relazionale (dominante e normalmente
utilizzato con il linguaggio di interrogazione
SQL) - Molti DBMS supportano le API (Application Program
Interface) dell'Open Database Connectivity (ODBC)
o Java Database Connectivity (JDBC, lo standard
per Java), che forniscono ai programmatori
strumenti standardizzati per l'accesso ai database
103Database server
- Un Server di database e la parte del DBMS (e,
per estensione, il server su cui il programma
opera) che si occupa di fornire i servizi di
utilizzo del database ad altri programmi e ad
altri computer secondo la modalita
client/server. Il server memorizza i dati, riceve
le richieste dei client ed elabora le risposte
appropriate.I database server sono complessi
sistemi software concepiti, oltre che per
memorizzare i dati, anche per fornire un accesso
rapido ed efficace a una pluralita di utenti
contemporaneamente e garantire protezione sia dai
guasti che dagli accessi indebiti.