dispense di “bioingegneria e informatica medica”...prodotto in serie e a basso costo. il...

114
Università degli Studi di Perugia Corso di Laurea in Medicina e Chirurgia Docente: Pier Giorgio Fabietti Dispense di “Bioingegneria e Informatica Medica” II a Parte Anno Accademico 2009-2010

Upload: others

Post on 16-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Università degli Studi di Perugia Corso di Laurea in Medicina e Chirurgia

Docente: Pier Giorgio Fabietti

Dispense di

“Bioingegneria e Informatica Medica”

II a Parte

Anno Accademico 2009-2010

1

TIPOLOGIE DI ELABORATORI

Il primo elaboratore elettronico digitale, chiamato ENIAC, fu presentato nel

1946 all’Università della Pennsylvania, conteneva 18.000 valvole termoioniche,

pesava trenta tonnellate e occupava una superficie di 160 metri quadrati. I primi

computer furono commercializzati una sessantina di anni fa. Le loro unità centrali

di elaborazione (CPU, Central Processing Unit), progettate su commissione e

costruite manualmente, erano enormi e molto costose. Poiché queste macchine si

surriscaldavano molto facilmente, venivano tenute in ambienti con aria

condizionata e dovevano essere raffreddate ad acqua come i motori delle auto.

Erano talmente costose e complicate che venivano usate soltanto dalle grandi

imprese e vi avevano accesso solo persone molto qualificate. Gli altri impiegati le

utilizzavano soltanto per inserirvi dei dati da elaborare (dati di ingresso o input) e

per ritirare i lunghi elaborati stampati che costituivano il risultato della loro

elaborazione (dati in uscita o output). Nel 1969 M.E. Holf, ingegnere di una

piccola azienda, la Intel, riuscì a ridurre le dimensioni delle imponenti CPU a

quelle di un chip della grandezza di un francobollo che, al contrario delle prime,

costruite in esemplari unici, era estremamente facile da riprodurre. Si trattava del

primo microprocessore che, nonostante non fosse di uso generale come quelli

odierni, ha il merito di aver dato il via ad una vera e propria rivoluzione

tecnologica che ha cambiato la vita di milioni di persone. Oggi i microprocessori

vengono prodotti meccanicamente con l’efficienza di una catena di montaggio:

costano poco, sono piccoli, affidabili e soprattutto potenti. Ormai si trovano non

solo all’interno degli elaboratori dove ce ne può essere più di uno, ma anche in

posti assolutamente impensabili. Tutti i microprocessori sono dotati di un orologio

incorporato che ne determina la velocità di funzionamento.

Il computer è il centro nevralgico di quasi tutti i moderni sistemi

informativi. Gli elaboratori più potenti, utilizzati nei centri di calcolo delle grandi

aziende, dei ministeri e delle università, sono i supercomputer, i mainframe e i

minicomputer.

2

Supercomputer

I supercomputer sono i più potenti elaboratori disponibili. Hanno numerose

applicazioni tecniche e scientifiche, come l’elaborazione delle previsioni del

tempo, la progettazione di automobili e la creazione di effetti speciali

cinematografici di assoluto realismo. Alla fine degli anni ‘90 Intel ha creato il

primo supercomputer in grado di eseguire più di un trilione di operazioni al

secondo, una prestazione tre volte superiore a quella dell’elaboratore più veloce

costruito in precedenza. Mentre altri computer in genere hanno un unico

processore che effettua un calcolo per volta, questo supercomputer è dotato di più

di 7.000 processori capaci di eseguire altrettante operazioni contemporaneamente,

in base ad una procedura di elaborazione parallela. In un secondo può effettuare

un numero di operazioni pari a quelle che 265 milioni di persone riuscirebbero ad

eseguire in 125 anni utilizzando una calcolatrice manuale. La visualizzazione

grafica dei dati numerici esige spesso una notevole potenza di prestazione che può

essere fornita solo da un supercomputer. Attualmente uno dei supercomputer più

veloci al mondo si chiama Blue Mountain e viene impiegato nei Laboratori di Los

Alamos (Nuovo Messico). Recentemente Intel ha annunciato la costruzione di una

rete di calcolatori (costituita da più di 3300 processori non dislocati nello stesso

luogo, ma collegati da connessioni ad alta velocità) che avrà la potenza di calcolo

di un supercomputer e sarà, quindi, in grado di svolgere 13,6 trilioni di operazioni

in virgola mobile (flop) al secondo (13,6 Teraflops).

Mainframe e server

I mainframe (ora noti come server) in genere sono utilizzati nelle grandi

aziende per svolgere funzioni centralizzate come la gestione della contabilità e il

controllo dei magazzini. Di norma occupano un’intera stanza e sono gestiti da

personale altamente qualificato.

3

Fig. 1 – Mainframe

I supercomputer, i mainframe e i server sono in grado di elaborare i dati

immessi da centinaia e persino migliaia di utenti contemporaneamente, sia che

questi si trovino in uno stesso edificio oppure che siano sparsi in tutto il mondo.

Questo è possibile grazie alla costruzioni di reti di computer alle quali si può

accedere secondo varie modalità.

Minicomputer

I minicomputer (ora chiamati anch’essi server) sono meno potenti dei

mainframe e possono essere di diverse dimensioni, grandi quanto un frigorifero o

sufficientemente piccoli da stare su una scrivania. Sono spesso utilizzati dalle

grandi aziende e dai centri di calcolo delle piccole organizzazioni pubbliche e

private o da divisioni di grandi organizzazioni.

Personal Computer

I personal computer (PC) possono lavorare autonomamente od elaborare

dati ricevuti da altri computer ai quali sono connessi, eseguendo calcoli, creando

elenchi ordinati o rappresentando i dati in forma grafica.

4

Fig. 2 – Personal Computer

Terminali

I terminali, pur essendo simili ai personal computer, offrono delle

prestazioni molto più limitate. Sono dotati soltanto di uno schermo, una tastiera e

dei componenti elettronici necessari per comunicare con il computer a cui sono

connessi e servono esclusivamente ad inviare e ricevere informazioni. Non

essendo in grado di elaborare dati, vengono chiamati terminali stupidi. Esistono

tuttavia dei terminali, detti terminali intelligenti, con una limitata capacità di

elaborazione.

Gli ultimi nati sono i network computer e i network PC. Si tratta di un

incrocio tra i PC veri e propri e i terminali: funzionano come terminali in quanto

ricevono dati e programmi da computer più potenti e come PC sono in grado di

elaborare autonomamente i dati ricevuti.

5

PERSONAL COMPUTER

In genere i supercomputer e i mainframe sono costruiti su commissione ed

essendo molto costosi ne vengono venduti solo pochi esemplari. La diffusione del

calcolatore anche nelle nostre case è dovuta all’invenzione del microprocessore,

prodotto in serie e a basso costo. Il successo di questi computer ha portato a

numerose innovazioni e allo sviluppo di una grande varietà di modelli.

Desktop e workstation

Il personal più diffuso è il desktop, progettato per essere posizionato

permanentemente su una scrivania. Le workstation sono invece dei computer ad

alto rendimento e piccole dimensioni, utilizzate prevalentemente da scienziati,

ingegneri e grafici.

Fig. 3 – Workstation

Notebook

I notebook sono leggeri e maneggevoli, tanto che possono entrare

facilmente in una ventiquattrore; in viaggio funzionano grazie a batterie

ricaricabili, mentre in casa e in ufficio possono essere inseriti in una unità

fondamentale chiamata docking station, che consente di aumentarne il rendimento

fino a raggiungere la potenza dei sistemi desktop più grandi.

6

Fig. 4 – Notebook

I più piccoli

In alcuni casi i notebook sono troppo grandi e per questo motivo sono stati

creati dei computer ancora più piccoli: alcuni, chiamati Organizer, sono usati

soltanto per memorizzare promemoria, date e numeri telefonici; altri, invece, sono

più potenti.

Computer palmari sono i più piccoli in assoluto. Avendo tastiere piuttosto

piccole, non sono molto maneggevoli da usare per scrivere testi o inserire grandi

quantità di dati, ma risultano di grande utilità per molte altre applicazioni: i

commercianti li utilizzano per registrare i loro clienti, altri per eseguire calcoli,

memorizzare appuntamenti e annotare indirizzi e numeri telefonici.

Fig. 5 – Computer Palmare

7

PDA (Personal Digital Assistant) sono tra i modelli più piccoli, privi di

tastiera per essere ancora più maneggevoli: Possono essere dei semplici organizer,

con rubrica telefonica, calcolatrice e calendario, oppure delle unità più potenti in

grado di inviare e ricevere e-mail e persino di navigare in internet.

Fig. 6 – PDA (Personal Digital Assistant)

STRUTTURA DI UN MINICALCOLATORE

I sistemi informativi comprendono un’ampia varietà di dispositivi, tra cui

calcolatori, fax, stampanti, collegamenti di rete e persino trasmettitori satellitari.

Non è necessario comprendere in dettaglio come funzionano questi dispositivi, ma

conoscere i principi che regolano i sistemi digitali è importante anche per chi

vuole semplicemente leggere riviste specializzate di informatica o comprare

apparecchiature per la casa e per l’ufficio. Tra i numerosi dispositivi che fanno

parte delle tecnologie informatiche, il più importante è senza dubbio il computer.

Anche se non riparerete mai il computer da soli, qualche volta vi capiterà di

dover aggiungere dei componenti. Si potrebbe trattare di un’operazione semplice

come collegare una stampante o una operazione complicata (non molto a dire la

verità) come aprire il computer per inserirvi una scheda.

In questi casi può essere utile conoscere i principali componenti presenti

all’interno di un computer (Fig. 7).

8

CLOCK

D. M. A.

R A M

0101110001001

Memoria Programmi

Puntatore a 32 bit

ALU = Unità Logica Aritmetica

PerifericaI

INTERFACCIA

0101010111001

Memoria Dati

000000000001

A. L. U.

0101010111001

0101010111001

Registri Ausiliari

Registro Accumulatore

PerifericaI/O

PerifericaO

R.O.M .

CPU = Central Processing Unit

Struttura del Computer

C. P. U.

Bioingegneriaa.a. 2009/2010

Fig. 7 – Struttura di un minicomputer

La scheda madre

All’interno del computer troviamo la scheda madre, che contiene quasi tutti

i circuiti a cui sono collegati il microprocessore, la memoria, l’alimentatore ed

altri dispositivi ancora.

In un calcolatore si possono distinguere tre parti principali (fig.8):

- L’unità centrale di elaborazione (CPU) che controlla le operazioni del

sistema ed effettua le operazioni aritmetiche e logiche.

- La memoria, ove sono contenuti dati e programmi.

- Il sistema di ingresso/uscita (I/O).

9

Fig. 8 – Scheda madre di un PC prodotto nel 1999

CPU – (Unità Aritmetica, Logica e di Controllo)

L’ unità centrale di elaborazione (CPU) è formata dall’Unità Aritmetica-

Logica (ALU) e dall’Unità di Controllo. La prima effettua le operazioni

aritmetiche (addizione, sottrazione, moltiplicazione, divisione) e logiche

(confronto). Legge i dati dalla memoria centrale, li manipola e restituisce i

risultati alla memoria stessa, utilizzando appositi registri accumulatori. Mentre

l’ Unità di Controllo dell’elaboratore provvede alla decodifica ed alla esecuzione

delle istruzioni. L’unità di Controllo è costituita, tra l’altro, da:

- Un registro delle istruzioni, che contiene ogni istruzione mentre viene

decodificata ed eseguita;

10

- Un registro dell’indirizzo delle istruzioni, che contiene l’indirizzo

dell’istruzione che deve essere successivamente eseguita;

- Un decodificatore, che interpreta le istruzioni ed attiva i circuiti che le

debbono eseguire.

Fig. 9 – CPU su scheda inserita in uno slot di una scheda madre

Memoria Centrale o RAM (Random Access Memory)

La memoria centrale di un elaboratore elettronico può contenere una grande

quantità di dati binari e trasmetterli alle altre parti dell’elaboratore ogni qualvolta

esse ne facciano richiesta. La memoria centrale oggi costituita da chip, negli anni

50 era formata da nuclei di ferrite. Ogni nucleo poteva essere permanentemente

magnetizzato in un verso o nell’altro da un’apposita corrente. Alla

magnetizzazione in un senso veniva attribuito il valore 1, a quella in senso

opposto il valore 0. Pertanto ogni nucleo conteneva un bit.(°)

La dimensione della memoria centrale varia notevolmente da elaboratore ad

elaboratore e ne costituisce un fattore che determina, e spesso limita, le tecniche

di programmazione, i linguaggi da usare, il tipo di lavori che l’elaboratore può

svolgere. A titolo di orientamento, si può affermare che la memoria centrale varia

da alcuni milioni a qualche miliardo di caratteri o byte.(°°)

Altro elemento importante per la caratterizzazione delle prestazioni della

memoria centrale è il suo “tempo di accesso”, cioè il tempo intercorrente fra

11

l’istante in cui avviene la richiesta di un dato e l’istante in cui il dato stesso è letto

o registrato. Anche il tempo di accesso può variare notevolmente (da qualche

microsecondo a decimi di nanosecondo). E’ infine utile ricordare che l’insieme

delle istruzioni costituenti il programma in fase di elaborazione, è interamente

contenuto nella memoria centrale.

L’esistenza del programma memorizzato è infatti una delle caratteristiche

salienti degli elaboratori elettronici, che li differenzia nettamente dalle altre

apparecchiature per l’elaborazione dei dati.

Fig. 10 – Scheda RAM (Random Access Memory)

(°) Bit : Abbreviazione di binary digit, ossia cifra binaria. Una delle due cifre (0 e 1) usate nel sistema binario di numerazione. Il termine è esteso nell’uso alle varie forme di materializzazione di una cifra binaria, quali il nucleo magnetico, un’aureola magnetizzata su un supporto magnetico, un impulso in un circuito.

(°°) Byte: Parola di 8 bit. Essa può contenere un carattere alfanumerico o una rappresentazione numerica compresa fra 0-255.

(1 byte = 8 bit)

(1 K.byte = 1 Kilo-bytes = 1.024 bytes = 8.192 bits)

(1 M.byte = 1 Mega-bytes = 1.048.576 bytes)

(1 G.byte = 1 Giga-bytes = 1.073.741.824 bytes)

12

Sistema di Ingresso/Uscita (I/O)

Normalmente il trasferimento dei dati dalla periferica alla memoria (o

viceversa) avviene in tre passi successivi:

- Dalla periferica alla sua interfaccia.

- Dall’interfaccia all’unità centrale, attraverso un insieme di

collegamenti chiamato I/O BUS (Input/Output BUS).

- Dall’unità centrale (CPU) alla memoria.

Una seconda via per il trasferimento dei dati (DMA: Direct Memory

Access) evita di passare per l’unità centrale ed è usata per le periferiche

particolarmente veloci quali dischi, nastri magnetici e convertitori Analogici-

Digitali ad elevata frequenza di campionamento. Ogni periferica è collegata con

un cavo direttamente ad una cartolina di interfaccia all’interno del calcolatore.

Tale cartolina viene poi inserita in uno degli slots di I/O a ciascuno dei quali è

assegnato un prefissato indirizzo detto Select-code. Il calcolatore può allora

comunicare con una specifica periferica sulla base del suo Select-code. Quando

una periferica è pronta per essere servita (ci si riferisce al trasferimento dati I/O)

la sua interfaccia invia un segnale, detto “interrupt”, all’unità di controllo che

interrompe l’esecuzione del programma corrente (od il servizio ad una periferica

con priorità più bassa) per soddisfare la richiesta di questa periferica.

Le periferiche sono classificate in :

- Periferiche di Input : dispositivi utilizzati per trasmettere informazioni

all’Unità Centrale (es.: Tastiera, mouse, etc.) .

- Periferiche di Input/Output (I/O) : dispositivi utilizzati per trasmettere

informazioni all’Unità Centrale e ricevere informazioni dall’Unità

Centrale (es.: Hard-disk, modem, etc.) .

- Periferiche di Output : dispositivi utilizzati per ricevere informazioni

dall’Unità Centrale (es.: Display, stampanti, etc.) .

13

DISPOSITIVI DI INPUT

Tastiera alfanumerica

La tastiera alfanumerica è il più comune dispositivo di input. Essa trasforma

la pressione di un tasto nel corrispondente codice binario ASCII. Esistono diverse

versioni della tastiera per le diverse nazionalità o per particolari set di caratteri

grafici (vedi fig. 11).

Fig. 11 - Tastiera italiana e tastiera con caratteri dell’alfabeto greco

Mouse

Il mouse è un dispositivo di input grafico che viene spostato su un piano e

provoca lo spostamento di un puntatore sullo schermo del computer. Può essere di

tipo meccanico (con una pallina che gira a contatto con un piano) o di tipo ottico

(che è ancora più preciso sebbene richieda una superficie particolare).

Il mouse è ormai divenuto uno standard di mercato e questo dipende dalle

sue favorevoli caratteristiche ergonomiche. Rispetto alla penna ottica o allo

schermo sensibile al tatto non richiede di lavorare tenendo le mani sollevate, cosa

che a lungo andare stanca. Rispetto al joystick o alla trackball è molto più preciso.

14

Fig. 12 - Mouse

Joystick

Il joystick è una levetta che serve a indirizzare un puntatore sullo schermo.

Utilizzato di preferenza per giochi elettronici non è molto adatto per il disegno in

quanto poco preciso, ciononostante viene adottato da parecchi sistemi in

medicina, come gli ecografi, i TC, le gammacamere computerizzate, etc. .

Fig. 13 - Joystik

Trackball

La trackball è una sfera che viene fatta rotolare su un supporto e aziona un

puntatore sullo schermo. Anch’essa deriva da giochi elettronici, ma è possibile

trovarne in apparecchiature cha lavorano su immagini come TC, ecografi, etc. .

15

Fig. 14 - Trackball

Tavoletta grafica

La tavoletta grafica o digitizer utilizza una stilo a forma di penna che consente

di trasferire al computer i disegni prodotti direttamente sulla tavoletta.

Fig. 15 – Tavoletta grafica

Penna ottica

La penna ottica è il lettore più economico fra i lettori di codici a barre; per

effettuare la lettura la penna va messa a contatto con il codice. Questi codici sono

formati da barre e spazi di diverso spessore e convertiti dai lettori in dati numerici

in modo che le informazioni rilevate possano essere elaborate da un computer. I

lettori di codici a barre sono precisi, veloci ed economici. Queste caratteristiche ne

hanno permesso la diffusione nelle farmacie, nei supermercati ed in molte attività

commerciali.

Sempre più frequente è il loro utilizzo in sanità, come ad esempio nei

16

Laboratori di analisi, nei magazzini farmaceutici ed economali, nelle attività di

accettazione ospedaliera e in alcune fasi di di erogazione di prestazioni sanitarie.

Fig. 16 – Penna Ottica

Penna luminosa

La penna luminosa è un dispositivo che interagisce direttamente con lo

schermo in quanto dotato di una piccola fotocellula che intercetta il pennello

elettronico del monitor e consente al computer di individuarne la posizione. Non

avendo una precisione elevata, la penna luminosa viene utilizzata soprattutto

come dispositivo di puntamento per scegliere aree dell’immagine.

Scanner

Lo scanner è un dispositivo che consente di immettere nel computer un

disegno, una fotografia o una pagina di testo. Una testina scandisce l’immagine

linea per linea e una parte elettronica produce un’immagine nel formato digitale

comprensibile per il computer. Gli scanner possono essere forniti di particolari

programmi OCR (da Optical Chracter Recognition) per il riconoscimento dei

caratteri in una pagina di testo.

Questi strumenti consentono il trasferimento nella memoria del computer di

un enorme patrimonio di testi stampati che altrimenti richiederebbero un lavoro di

battitura molto lungo e costoso.

17

Fig. 17 – Scanner

Telecamera

Una telecamera applicata al computer ha più o meno lo stesso tipo di

applicazioni dello scanner. La differenza sta in una maggiore velocità di

acquisizione offrendo la possibilità di registrare immagini in movimento. Per

contro la precisione è molto inferiore e sono anche frequenti distorsioni

dell’immagine. Le telecamere digitali si possono collegare ad un elaboratore per

visualizzare filmati o registrarli su Hard-disk, CD o DVD.

Fig. 18 – Videocamera, Webcam, Fotocamera

Input vocali

Il microfono è un dispositivo che collegato ad un PC dotato di una scheda

audio, permette di registrare suoni nel computer. Il microfono viene spesso

impiegato per videoconferenze su Internet o reti locali, dove, grazie a specifici

programmi, gli utenti possono dialogare fra loro. E’ inoltre uno strumento molto

utile per i disabili in quanto consente l’utilizzo di speciali software di

18

riconoscimento vocale che permettono di dettare testi al computer e governare

quasi tutte le funzioni del mouse.

riconoscimento vocale

Quando chiamate la compagnia dei telefoni per una informazione, a volte vi

risponde un computer che vi invita a dire il nome dell’utente che dovete chiamare

e vi fornisce il corrispondente numero telefonico. Questo sistema funziona

indipendentemente dall’interlocutore. Di solito invece, i sistemi vocali sono

programmati per riconoscere la voce di un singolo utente. In questo caso è

necessario innanzitutto “allenare” l’elaboratore a riconoscere la vostra pronuncia.

Le parole contenute nel vocabolario del programma (fino a 120.000) vengono

visualizzate sullo schermo una alla volta e devono essere pronunciate ad alta voce

nel microfono. La vostra pronuncia viene quindi digitalizzata, analizzata e messa

in memoria come matrice vocale.

In seguito, quando parlate al computer, le vostre espressioni vocali vengono

immediatamente associate alle matrici presenti in memoria. Quando il computer

trova la matrice corrispondente a una parola, questa viene visualizzata o il

comando corrispondente eseguito. Per analizzare il vostro modo di parlare

vengono utilizzati sia un modello acustico che un modello linguistico. Con il

primo, la vostra pronuncia viene comparata a migliaia di campioni vocali presi da

altre persone, finchè non si ottiene il miglior corrispondente acustico di una

parola, accompagnato da una breve lista di alternative. Con il secondo, invece,

sulla base di analisi statistiche, si determina quale termine è più probabile che

occorra in un determinato contesto nei casi di omofonia (ad esempio “anno” e

“hanno”).

Schede Perforate (non più utilizzate)

La scheda è un rettangolo di cartoncino di circa cm 19x8, divisa in 12 righe

ed 80 colonne. Su ogni colonna viene perforato un carattere secondo un codice

(Hollerith) a 12 bit, un bit per riga. Una perforazione corrisponde al bit 1;

l’assenza di perforazione, al bit O.

Le schede vengono perforate con una macchina perforatrice, che ha una

19

tastiera simile a quella delle macchine da scrivere. Premendo un tasto si perfora

un carattere sulla scheda che, contemporaneamente, avanza di una colonna. La

perforatrice traduce quindi le informazioni in un codice binario e le perfora su

scheda.

Fig. 19 - Scheda a 80 colonne e a 12 righe non ancora perforata e con

prestampato il tracciato del record e le posizioni riservate ai campi

La traslazione dell’informazione dalla scheda alla memoria centrale con

traduzione del codice, da quello di Hollerith a quello usato in memoria, viene

effettuata dal “lettore di schede”. Un’altra unità, “il perforatore di schede”,

trasferisce l’informazione dalla memoria alla scheda (spesso le due unità fanno

parte di un’unica apparecchiatura).

Nastro Perforato (non più utilizzato)

E’ una striscia di carta larga mm 20,5 avvolta su una bobina e lunga fino a m 150

è divisa idealmente in strisce longitudinali, chiamate piste o canali. Ogni carattere

viene rappresentato perforando il nastro trasversalmente in corrispondenza delle

piste, secondo un codice dipendente dal numero delle piste stesse (fig. 20).

Fig. 20 – Nastro perforato

20

DISPOSITIVI DI INPUT/OUTPUT

Memorie di Massa

Fondamentali nel processo di elaborazione ed archiviazione dati sono i

dispositivi di memoria di massa disponibili in due diversi tipi: memorie statiche e

dinamiche. Le memorie statiche non richiedono alcun movimento meccanico per

l’accesso al dato e tipicamente impiegano semiconduttori o nuclei magnetici. Le

memorie statiche sono montate su cartoline simili a quelle della memoria

principale oppure su box separati che contengono anche i circuiti di controllo, di

alimentazione e l’interfaccia. Le memorie dinamiche sono invece memorie che

impiegano un supporto magnetico od ottico, quali ad esempio nastri o dischi, nelle

quali la lettura e la scrittura dei dati dipende da un movimento meccanico.

Unità a Nastro Magnetico

La registrazione su nastro magnetico e la lettura da nastro magnetico

rappresentano operazioni concettualmente molto semplici. Il processo è

rappresentato in fig. 21. Se una corrente elettrica fluisce attraverso la bobina, essa

genera un campo magnetico nel circuito magnetico costituito dalla testina e dal

nastro magnetico compreso fra le sue estremità. In questo modo è possibile

magnetizzare in modo permanente un punto del nastro.

Inversamente, se il punto magnetizzato si muove sotto la testina, nella

bobina si crea una corrente indotta per effetto della variazione di flusso magnetico

concatenato con la bobina stessa. In questo modo è possibile registrare dati su un

nastro magnetico in modo binario: un punto magnetizzato positivamente

corrisponde a "1" logico, un punto magnetizzato negativamente a “0” logico. Di

norma le testine di lettura e scrittura sono costituite da una serie di magneti posti

su di una linea perpendicolare alla direzione di spostamento del nastro magnetico.

Un nastro magnetico può essere magnetizzato in modo analogico oltre che digitale

come si è appena visto. In questo modo la corrente che fluisce nella bobina varia

21

nel tempo in modo continuo anziché impulsivo.

Fig. 21 – Nastro Magnetico

I vantaggi del nastro magnetico sono:

1. elevata velocità di trasferimento dei dati;

2. capacità d’immagazzinare un gran numero di caratteri (in media qualche

decina di miliardi di caratteri.

3. possibilità di uso ripetuto dello stesso nastro per contenere dati diversi;

4. economicità, in relazione alla capacità.

Gli svantaggi sono:

1. per raggiungere un dato sul nastro magnetico occorre esaminare tutti quelli

che fisicamente lo precedono (accesso sequenziale);

2. la presenza di polvere sulla testina di lettura-scrittura o sul nastro stesso

può causare errori;

3. i nastri debbono essere immagazzinati in ambienti accuratamente

controllati.

22

Dischi Magnetici

La memoria a dischi magnetici è costituita da un insieme di dischi uguali

disposti parallelamente, imperniati sullo stesso asse, distanziati fra loro di circa un

centimetro. Le facce dei dischi sono ricoperte di materiale magnetico e suddivise

in piste concentriche (qualche centinaio per ogni faccia di disco). I bit costituenti

il carattere vengono memorizzati in serie su una pista; ogni pista può contenere

migliaia di caratteri. La capacità di una memoria a disco varia da 50 a 500.000

milioni (500 giga) di caratteri. La lettura e la scrittura avvengono per mezzo di

apposite testine, una per ogni faccia di disco, disposte a pettine, in grado di

raggiungere qualunque pista con un solo movimento. Le testine sono installate

sulle “unità a disco magnetico” che trasferiscono le informazioni dal disco

all’unità centrale e viceversa.

Fig. 22 - Dischi magnetici

Il tempo di accesso varia da qualche millisecondo a 10 millisecondi; la

velocità di trasferimento dei dati da 10.000 a 100.000.000 caratteri/sec.

Vantaggi:

1. si possono raggiungere i dati localizzando in maniera semplice la pista su

cui si trovano (accesso diretto);

2. si possono memorizzare grandi quantità di dati;

lettura /scrittura

23

3. i dischi possono essere montati o smontati dall’unità in pochi secondi.

L’unico vero svantaggio da rilevare in passato era l’elevato costo per dischi

di grandi capacità.

Fig. 23 – Dischi Magnetici (Hard-disk)

Dischetti magnetici o Floppy Disk - (non più utilizzati)

Anni fa si è molto diffuso l’impiego di unità a dischi flessibili (“Floppy

Disk”) dato il loro costo contenuto, la loro maneggevolezza, la relativa semplicità

di interfacciamento ed impiego.

In questo tipo di realizzazione il disco è contenuto in un involucro di

materiale plastico che si inserisce nel “drive” dell’unità a floppy disk (fig. 24).

Sono utilizzati per memorizzare informazioni su un supporto magnetico esterno al

24

computer e spostare i dati da un PC ad un altro.

I Floppy variano per formato e densità; il formato standard è quello di 3

pollici e mezzo a doppia faccia e ad alta densità (DS/HD) con una capacità di 1,44

Mega-Bytes. Sui primi PC le dimensioni del floppy disk erano di 5 pollici e un

quarto o di 8 pollici su alcuni minicomputer, i dati potevano essere memorizzati in

semplice o in doppia densità in una faccia o nelle due facce.

Fig. 24 – Dischetto Magnetico da 3 pollici e mezzo (Floppy-disk)

Prima di essere pronti per memorizzare informazioni i dischetti devono

essere formattati, cioè predisposti dal computer per le operazioni di lettura e

scrittura dei dati

Essendo supporti magnetici, i floppy devono essere tenuti lontani da campi

magnetici, esposti a temperature elevate e protetti dalla polvere.

Il loro utilizzo, per limiti di capacità di memoria, è oggi ridotto per la

disponibilità di altre memorie a costi contenuti e notevolmente più performanti

(CD-R; DVD-RW; USB2-FlashPen, etc.)

Cartucce a Nastro Magnetico

Normalmente questi dispositivi vengono utilizzati con minicomputer e

mainframe per operazioni di salvataggio dati (backup). Le cartucce a nastro sono

delle cassette di plastica con all’interno un nastro magnetico di lunghezza

variabile (da 90 a 170 mt) e altezza da 4 o 8 mm. I lettori di queste cartucce si

chiamano tape-streamer. Essi sono gestiti da software proprietari che ad esempio

permettono di fare il backup dei dati ad un’ora prestabilita.

25

Compact Disk

I CD-ROM (Compact Disk – Read Only Memory), simili ai CD utilizzati

per le incisioni musicali, sono supporti ottici per la memorizzazione dei dati. I

CD-ROM, dopo essere stati registrati una prima volta, possono essere utilizzati

soltanto per la lettura delle in formazioni memorizzate. I CD sono costituiti di un

substrato di policarbonato, una pellicola riflettente, e una pellicola protettiva. Tra

il substrato e la pellicola, c’è una pellicola di registrazione composta da un

polimero colorante organico. Differentemente dai CD regolari, una spirale

preincisa è usata per guidare il laser, questo semplifica la progettazione hardware

e assicura la compatibilità dei dischi.

I CD sono di due tipi:

- CD-R

- CD-RW

Fig. 25 – CD-ROM (Compact Disk – Read Only Memory)

I CD-R sono CD-Registrabili e sono WORM (Write Once, Read Multiple,

cioè scrivi una volta, leggi più volte) e funzionano come i CD standard. Il

vantaggio di un CD-R rispetto ad altri media è che può essere letto da un lettore

CD standard. Lo svantaggio è che non può essere riutilizzato.

I CD-RW o CD Riscrivibili possono essere cancellati e riutilizzati tra 1.000

e 100.000 volte, ma tali dischi non funzionano in tutti i lettori.

I CD sono letti da lettori di CD e letti e scritti dai masterizzatori. Entrambi

questi dispositivi usano al posto della testina un raggio laser di determinata

26

frequenza (770-830 nm in lettura e 780 nm in scrittura). Un masterizzatore, in

scrittura, crea una serie di buchi nel colorante organico chiamati “pits”. Gli spazi

tra i pits sono chiamati “lands”. La sequenza di questi codifica l’informazione. La

spirale compie 22.188 rotazioni intorno al CD con circa 600 giri per millimetro.

Se srotolassimo la spirale, sarebbe lunga 5 km circa.

Il CD viene letto e scritto dall’interno verso l’esterno. E il tempo necessario

per scrivere un CD dipende da quanti dati si vuole incidere, e quanto è veloce il

masterizzatore. Per incidere 650 MB di dati s’impiega circa 74 minuti a 1x; 37

minuti a 2x e 19 minuti a 4x, bisogna aggiungere inoltre qualche minuto per

“finalizzare” il disco. Si ricorda che 1x equivale a 150KB/sec, 2x sono

300KB/sec, e così via. La durata dei CD varia da 75 ai 100 anni. Dimensioni e

Capacità:

Dimensioni (cm) Capacità (MB)

CD da 80 mm di diametro 185 ↔↔↔↔ 210 MB

CD da 120 mm di diametro 650, 700, 800, 870, 878 MB

Fig. 26 – Un masterizzatore interno

DVD (Digital Versatile Disk)

I DVD (Digital Versatile Disk) dal punto di vista concettuale sono dei CD

con una capacità molto più ampia. Il processo di scrittura è analogo a quello dei

27

tradizionali CD-R, dove uno degli strati più interni subisce una trasformazione

permanente delle proprie capacità di trasmettere la luce ad opera del raggio

emesso dal laser.

Necessitano di lettori e masterizzatori DVD per essere letti e scritti. e si dividono

in:

- DVD±R

- DVD±RW

- DVD-RAM

Dimensioni e Capacità:

Dimensioni (cm) Capacità (Byte)

DVD da 80 mm di diametro 1,4 GB

DVD (±R; RW; RAM) da 120 mm di diametro da 4,7 a 17 GB

Schermi sensibili al tatto (Touch Screen)

Invece di utilizzare la penna, si usa il proprio dito, la posizione rispetto allo

schermo viene rilevata da fasci di luce infrarossa che vengono interrotti dalla

presenza del dito. Evidentemente è un sistema solo di puntamento e non di

disegno.

28

DIPOSITIVI DI OUTPUT

Monitor

Il monitor, (chiamato anche “video” o “display”) è la periferica di output per

eccellenza, quella che permette di visualizzare le informazioni grafiche e testuali e

vedere il risultato dell’interazione con il computer.

D’aspetto è molto simile a un televisore: uno schermo di differenti misure

nel quale si formano le immagini, e alcuni dispositivi di controllo. Rispetto al

televisore però può vantare una qualità delle immagini nettamente superiore,

soprattutto per quanto riguarda la definizione dei dettagli.

Sul mercato sono presenti diverse tipologie di monitor. In passato i più

popolari erano quelli a tubo catodico (detti video CRT, Cathod Ray Tube – Figura

27); ma negli ultimi anni si sono diffusi gli schermi a cristalli liquidi (detti LCD,

acronimo di Liquid Cristal Display), già utilizzati nei computer portatili (Figura

28), e quelli al plasma.

I monitor a tubo catodico si basano sulla stessa tecnica dei televisori: lo

schermo di vetro rappresenta la parte finale del tubo catodico, una sorta di

ampolla di vetro sottovuoto che si estende per tutta la lunghezza del monitor. Lo

schermo è ricoperto da uno strato di fosfori che, colpiti da fasci di elettroni

prodotti dal cannone elettronico all’interno del tubo catodico, diventano

fosforescenti ed emettono luce.

Fig. 27 – Monitor a Raggi Catodici

29

I monitor a colori hanno tre cannoni che colpiscono rispettivamente i fosfori

blu, rossi e verdi che si trovano sullo schermo, in modo da produrre pixel di

colore corrispondente che, sovrapponendosi, possono formare una grande varietà

di tonalità cromatiche, la cui risoluzione dipende, come detto, dalla scheda video

impiegata.

L’architettura del monitor CRT non consente di visualizzare l’intera

immagine contemporaneamente su tutta la superficie dello schermo. L’immagine

è tracciata progressivamente e ripetutamente partendo dall’alto verso il basso e

seguendo una direzione da destra a sinistra. L’intera schermata viene quindi

ridisegnata continuamente. In termini tecnici la frequenza con cui viene

ridisegnata l’immagine si chiama frequenza di refresh e può arrivare fino a 120

Hz, vale a dire 120 volte in un secondo: in questo modo il computer è in grado di

tenere costantemente aggiornata l’immagine a video. Maggiore è la frequenza di

refresh, più l’immagine è nitida e stabile. Per lavorare senza stancare la vista è

consigliabile una frequenza di 75-80 Hz.

La frequenza di refresh non è assoluta, ma dipende dalla soluzione adottata.

Per esempio un video che raggiunge i 120 Hz alla risoluzione di 640 X 480 pixel

ha un refresh di 90 Hz alla risoluzione di 800 X 600, ma scende a 72 Hz con

risoluzione 1024 X 768 e raggiunge il minimo di 60 Hz con risoluzione 1280 X

1024. Alcuni monitor supportano frequenze di refresh “interfacciate”. In questi

modelli la visualizzazione delle immagini avviene in due passate: la prima per le

righe pari e la seconda per le righe dispari.

Lo schermo dei video CRT può avere varie dimensioni che, come per i

televisori, si misurano in base alla lunghezza in pollici della loro diagonale:

esistono monitor da 14, 15, 17, 19, 20, 21 pollici.

Il monitor attualmente più utilizzato nei PC da casa ha uno schermo da 15”

(pollici). I monitor più grandi (e più costosi) di solito sono di qualità superiore e

sono dedicati al mondo professionale della grafica e dell’editoria elettronica.

30

Fig. 28 – Monitor LCD

I monitor possono adottare varie risoluzioni, in relazione alle loro

caratteristiche e alle prestazioni della scheda video del PC. Per un monitor da 15”,

la risoluzione ideale è di 800 X 600 pixel, per uno da 17”, di 1024 X 768 pixel.

Con un video da 21” è possibile impostare anche una risoluzione di 1280 X 1024

pixel. Con i monitor LCD si utilizzano risoluzioni superiori rispetto a monitor

CRT di pari dimensione. Per esempio, un 15” LCD si utilizza, a livello di

risoluzione, come un 17” CRT, un 18” LCD come un 21” CRT etc.

Fig. 29 – Monitor Tuoch-Screen

Un cenno infine ai monitor tridimensionali che richiedono l’adozione di

occhiali polarizzatori in modo che lo schermo possa apparire alternativamente

all’occhio sinistro e all’occhio destro. In questa modo, differentemente dai primi

tentativi basati sa occhiali con lenti colorate, possono essere conservati tutti i

normali colori. Al momento attuale cominciano a comparire sul mercato le prime

realizzazioni.

31

Sistemi di stampa

I sistemi di stampa permettono di ottenere una documentazione permanente

delle elaborazioni col computer. Infatti i vari tipi di stampa sono anche indicati

come hard copy per contrapposizione all’output su video che dura solamente fin

quando la macchina è accesa.

Le stampanti più comuni collegabili con un minicalcolatore sono Laser e

Getto d’inchiostro, mentre oggi sono meno utilizzate quelle termiche o ad

impatto seriali o parallele.

Stampanti termiche

Di solito sono molto veloci e a basso costo. I caratteri sono formati da una

configurazione di punti prodotti da una testina formata da una matrice di punte

calde che al contatto sensibilizzano la carta termica; presentano l’inconveniente di

perdere lo stampato con il trascorrere del tempo o con l’esposizione della carta a

fonti di calore; sono sconsigliabile per archivi.

Stampati ad impatto

La stampanti ad impatto, così denominate perché la stampa avviene

utilizzando una matrice di aghi che colpendo un nastro ad inchiostro, compongono

i caratteri.

Le stampanti a matrice di punti hanno una testina composta da un insieme

di aghi (tipicamente 9, 18 a 24 aghi) che, spinti in avanti da un solenoide,

colpiscono il nastro e compongono il carattere. Il sistema è semplice ed

abbastanza economico e permette di stampare più tipi di caratteri e anche grafici,

ma la qualità non è elevata poiché risulta sempre più o meno evidente la matrice

di punti di cui è formato il carattere.

- Stampanti ad impatto seriali: questo tipo di stampanti formano un riga di

stampa con l’impressione successiva di un carattere per volta da sinistra a

destra (monodirezionali), da sinistra a destra e da destra a sinistra

32

(bidirezionali, più veloci).

- Stampati ad impatto parallele: questo tipo di stampanti imprimono i risultati

in uscita dal computer a una riga intera per volta.

Fig. 30 – Stampante ad Aghi (Stampante ad impatto seriale)

Stampanti laser

Le stampati laser utilizzano una tecnologia che presenta diversi punti in

comune con le macchine fotocopiatrici. Mentre in queste ultime l’immagine è

raccolta da un obiettivo che sensibilizza la superficie di un tamburo carico

elettrostaticamente il quale poi raccoglie il toner e lo trasferisce alla carta, nelle

stampati laser questa operazione è svolta da un sottilissimo pennello di luce. La

risoluzione è molto elevata, da 300 a 600 punti pollice (quella di una stampante a

matrice è di 70 punti pollice circa), è possibile utilizzare caratteri diversi e

stampare grafici, inoltre le copie successive di una singola pagina sono ottenute

molto velocemente e alla stessa qualità dell’originale come avviene nelle comuni

fotocopiatrici.

Infine, oltre agli altri vantaggi, la stampante laser è molto silenziosa, e

questo non è un particolare trascurabile per l’ergonomia dell’ambiente di lavoro.

L’unico handicap rimane il prezzo elevato, anche se la produzione in grande

serie sta portando a un notevole calo dei prezzi.

33

Fig. 31 – Stampante Laser

Stampanti su film

Comprendono i sistemi di stampa su diapositiva 35 mm e su lastre

radiografiche. In genere viene utilizzato un piccolo monitor e un sistema di lenti

che convoglia l’immagine sul film. Le immagini a colori possono essere realizzate

per esposizione successiva attraverso filtri colorati. Recentemente sono apparse

sul mercato stampanti su film che utilizzano la tecnologia laser con conseguente

altissima risoluzione.

Stampanti a getto d’inchiostro

Una schiera di centinaia di microscopici ugelli spruzzano minuscole gocce o

bolle di inchiostro a base di acqua sulla carta durante lo spostamento del carrello.

Il movimento dell'inchiostro è ottenuto per mezzo di due distinte tecnologie:

- pompe piezoelettriche che comprimono il liquido in una minuscola

camera,

- resistenze elettriche che scaldano bruscamente il fluido facendolo

schizzare dall'ugello.

Entrambi veri prodigi di fluidodinamica sono realizzate con tecnologie di

fotoincisione simili a quelle per la produzione di massa dei circuiti integrati, che

consentono costi per quantità molto contenuti. La risoluzione e la qualità di

34

stampa di queste testine raggiunge livelli paragonabili alla fotografia tradizionale,

ma solamente utilizzando carta la cui superficie sia stata opportunamente trattata

per ricevere l'inchiostro.

Il problema più grave di questa tecnica è l'essiccamento dell'inchiostro nelle

testine, che è frequente causa di malfunzionamenti. Un altro svantaggio è dato

dall'elevato costo per copia stampata se confrontato con le altre tecnologie.

Fig. 32 – Stampante a Getto di Inchiostro

Stampanti Braille

Queste macchine non impiegano inchiostri ma imprimono nella carta i

simboli caratteristici dell'alfabeto Braille per non vedenti. Dispongono di una serie

di punzoni mossi da elettromagneti che perforano o imbutiscono la carta.

Uscita audio

Le uscite audio dal computer sono fondamentalmente di due tipi: suoni e

voce. La generazione di suoni, al di là di particolari applicazioni in ambito

musicale (computer music), è importante come canale integrativo per richiamare

l’attenzione su determinati eventi, un esempio è il classico beep. Nell’ambito delle

applicazioni mediche si può ricordare l’uscita audio degli ecotomografi Doppler e

35

Cardiotocografi. In questo caso l’uscita audio può sostituire l’immagine grafica

dello spettro Doppler, consentendo all’utilizzatore di concentrarsi sull’immagine

della regione analizzata. La generazione della voce o sintesi vocale trova già

innumerevoli applicazioni, specie nel campo della telefonia. Già adesso esistono

sistemi capaci di leggere un testo scritto controllando non solo la pronuncia delle

singole parole, ma anche l’intonazione e la cadenza del discorso.

Fig. 33 – Scheda Audio

Attuatori meccanici

Il risultato dell’elaborazione del computer può essere l’attivazione e il

controllo di un motore elettrico. Una tipica applicazione è il controllo delle

macchine utensili come ad esempio un tornio, per realizzare un oggetto secondo

un modello elaborato interattivamente sullo schermo.

36

TRASDUTTORI

Il trasduttore trasforma una grandezza fisica in un’altra di diversa natura,

normalmente elettrica per i vantaggi che questa rappresentazione offre. I

trasduttori possono essere resistivi, fotoelettrici, elettrochimici, piezoelettrici, etc.

Un trasduttore di pressione ad es. genera una variazione di tensione in modo

proporzionale alle variazioni di pressione.

SEGNALI DIGITALI E ANALOGICI

I segnali analogici sono paragonabili a un’onda e trasmettono un ampio

spettro di informazioni. Il nostro è un mondo analogico. Il corpo umano è

programmato per percepire e interpretare onde luminose analogiche: noi non

percepiamo soltanto i punti massimi e minimi di queste onde, ma anche quelli

intermedi. Quando parliamo, il messaggio viene trasportato da onde analogiche, e

lo stesso accade quando ascoltiamo la musica. Ogni parte dell’onda trasporta

informazioni.

Le onde analogiche sono molto sensibili alle interferenze. Questo ci appare

evidente quando cerchiamo di seguire una conversazione in una stanza rumorosa,

o quando proviamo a sintonizzarci su una stazione radiofonica che ha un segnale

debole.

A differenza dei segnali analogici, i segnali digitali possono assumere solo

due stati, acceso e spento. Per un dispositivo è semplice distinguere questi due

stati, per cui le interferenze, ovvero le informazioni vaganti estranee al messaggio

principale, non influiscono sui sistemi digitali quanto quelli analogici

37

CONVERTITORI A/D E D/A E LORO CARATTERISTICHE

IL Convertitore Anologico-Digitale (A/D) converte un segnale analogico (°)

in un segnale Digitale (°°) offrendo una successione di valori numerici ad un

intervallo di tempo programmabile. (Fig. 34)

Il Convertitore Digitale-Analogico (D/A) (procedimento inverso del

precedente) genera un segnale Analogico sulla base dei valori numerici in Input e

della loro frequenza di campionamento.

Fig. 34 a) Esempio di segnale analogico.

b) Stesso segnale in forma digitale con frequenza di campionamento 10 cps.

__________________________

(°) - Segnale Analogico: o non-logico, o non numerico, è una funzione continua

nel tempo; un esempio può essere la variazione di tensione in funzione del

tempo (fig. 34a). Questo segnale non può essere elaborato dal computer se

non dopo averlo convertito.

(°°) - Segnale Digitale: o logico, o numero, è una successione d’informazioni

numeriche che descrivono per punti le variazioni del segnale nel tempo (fig.

34b).

38

Nonostante il largo impiego di convertitori A/D e D/A nel controllo dei

processi, non esiste una standardizzazione ed inoltre si riscontra spesso diversità

di nomenclatura. E’ quindi difficile per l’utente fare un confronto fra i vari

dispositivi in commercio e spesso si limita a prendere in considerazione i

convertitori forniti dal costruttore del calcolatore di processo.

I parametri da prendere in considerazione sono i seguenti:

� Risoluzione, cioè la minima variazione di ampiezza del segnale analogico

che il convertitore A/D può rilevare; è un parametro legato al numero di bit

della parola (b) e può essere calcolato con l’espressione Vt / 2b dove Vt è il

valore di fondo scala della tensione di ingresso; valori tipici per b sono: 8,

10, 12.

� Linearità, precisione con cui l’uscita risulta direttamente proporzionale

all’ingresso.

� Tempo di conversione, valori tipici sono 10 ÷ 100 µsec.

� Campo di tensione analogica in ingresso, valori tipici sono 0 ÷ 5 e 0 ÷10

Volts.

� Numero degli ingressi, nella maggior parte dei casi i convertitori A/D sono

“multiplexati” per cui possono avere anche un numero di ingressi molto

grande. Valori tipici sono 1÷32. In questo caso il tempo di conversione

deve essere aumentato del tempo di commutazione del multiplexer. Per i

convertitori D/A valgono parametri analoghi.

39

RAPPRESENTAZIONE DEI NUMERI

L’uomo è abituato a pensare i numeri in base 10 (rappresentazione

decimale). Viceversa un computer considera i numeri come stringhe di bit (dove

ogni bit può avere il valore 0 o 1), ed esegue la maggior parte delle sue operazioni

trattando i numeri in base 2 (rappresentazione binaria).

Questo paragrafo traccia una panoramica dei concetti di base della

rappresentazione dei numeri in base 2 (Sistema Binario).

- BINARIO 0 1- DECIMALE 0 1 2 3 4 5 6 7 8 9- ESADECIMALE 0 1 2 3 4 5 6 7 8 9 A B C D E F

SISTEMI DI NUMERAZIONE

0 0 0 0 01 0 0 0 12 0 0 1 03 0 0 1 14 0 1 0 05 0 1 0 16 0 1 1 07 0 1 1 18 1 0 0 09 1 0 0 1

1 0 1 0 1 01 1 1 0 1 11 2 1 1 0 01 3 1 1 0 11 4 1 1 1 01 5 1 1 1 1

DECIMALE BINARIO

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 35 – Sistemi di Numerazione

Le cifre binarie

Digitale deriva dall’inglese “digit”, cifra. Quando compiliamo un assegno,

contiamo il resto, componiamo un numero telefonico, consultiamo l’indice di un

libro e via dicendo, utilizziamo il sistema di numerazione decimale, chiamato

così perché impiega dieci cifre diverse, da 0 a 9, che possono essere combinate tra

40

loro per formare numeri diversi (ad esempio, con le cifre 1 e 9 possiamo ottenere

19, 91, 1919 ecc.)

I computer e gli altri strumenti digitali, invece, rappresentano tutti i numeri

con il sistema di numerazione binario, costituito da due sole cifre, 0 e 1.

Dato che il sistema binario utilizza soltanto le cifre 0 e 1, le informazioni

rappresentate in questo sistema possono essere elaborate secondo vari criteri e con

vari strumenti. Ad esempio, le combinazioni di zero e uno possono essere

rappresentate dalle condizioni acceso/spento, alto/basso, luce/buio, nord/sud,

su/giù, etc. . Tutte queste tecniche sono impiegate nei computer per memorizzare,

elaborare e visualizzare dati.

Come abbiamo visto le cifre 0 e 1 possono essere rappresentate,

memorizzate e visualizzate in diversi modi; tuttavia, perché abbiano un senso è

necessario stabilire un codice preciso. I segnali digitali non sono stati certo i primi

a essere usati per trasmettere informazioni: fin dai tempi più remoti l’uomo si è

servito di tamburi, segnali di fumo, bandiere, ecc.

Un esempio di codice digitale

Naturalmente la trasmissione di un messaggio più complesso richiedeva ben

più di due semplici lanterne. Ad esempio come sarebbe stato possibile avvertire i

volontari nel caso di un inaspettato cambiamento di direzione delle truppe inglesi?

Una soluzione fu trovata da Samuel Morse, che agli inizi dell’ottocento inventò il

telegrafo.

Per mezzo del telegrafo, battendo su un tasto, vengono inviati lungo un cavo

impulsi elettrici che, una volta giunti a destinazione mettono in azione un

dispositivo chiamato ricevitore acustico il quale scatta ogni volta che arriva un

impulso. Anche questo è un processo digitale, perché il ricevitore può essere

utilizzato o meno. Per trasmettere un messaggio, comunque, è necessario un

codice: Morse se ne sviluppò uno basato su scatti intervallati da pause lunghe o

corte, che una volta stampati apparivano come luci o punti. Ad esempio il ben

noto SOS è formati da tre punti tre linee e tre punti.

41

Rappresentazione Decimale

Prima di parlare della rappresentazione binaria, esaminiamo brevemente la

struttura della rappresentazione decimale. La rappresentazione decimale usa le

cifre 0,1,2, … 9. Ad esempio, prendiamo in considerazione il numero:

205

Vediamo che le sue cifre hanno un valore associato alla potenza del 10.

Infatti questo numero può essere pensato come:

2x102 + 0x101 + 5x100 = 205

10 2 10 1 10 0 � peso

2 0 5 � cifre del numero

2 x 10 2 0 x 10 1 5 x 10 0 =

2 x 100 + 0 x 10 + 5 x 1 = 2 0 5

Es.: Sistema decimale con 3 cifre

Base N = 10 3 = 1.000 0 – 999

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

SISTEMI DI NUMERAZIONE

Fig. 36 – Sistema di Numerazione Decimale

Rappresentazione Binaria

Il numero 205 in base 2 è:

11001101

si noti che in base 2, le cifre ammesse sono soltanto “1” e “0”. Quindi la

42

predetta rappresentazione binaria significa:

1x27+1x26+0x25+0x24+1x23+1x22+0x21+1x20

cioè:

128 + 64 + 8 + 4 + 1 = 205

Il concetto di valore di posizione esiste anche nella rappresentazione binaria.

L’unica differenza è che vengono prese in considerazione le potenze del 2 anziché

quelle del 10.

2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 � peso

1 1 0 0 1 1 0 1 � cifre del numero

1 x 2 7 1 x 2 6 0 x 2 5 0 x 2 4 1 x 2 3 1 x 2 2 0 x 2 1 1 x 2 0 =

1 x 128 + 1 x 64 + 0 x 32 + 0 x 16 + 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 2 0 5

Es.: Sistema binario con 8 cifre

Base N = 2 8 = 256 0 – 255

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

SISTEMI DI NUMERAZIONE

Fig. 37 – Sistema di Numerazione Binario

Bit e Byte

L’unità minima del linguaggio digitale è il bit, termine che deriva dalla

contrazione dell’espressione inglese binary digit, cifra binaria. Un bit, proprio

come una lampadina, può assumere soltanto due stati: acceso (corrispondente a 1)

o spento (corrispondente a 0). Per trasmettere una maggiore quantità di dati, si

43

ricorre ad una unità più grande, il byte, che è costituito da otto bit e rappresenta

l’unità fondamentale del linguaggio dei computer. Poiché ognuno degli otto bit ha

due stati possibili, un byte può rappresentare fino a 28= 256 possibili

combinazioni.

Le stringhe di bit vengono solitamente suddivise in gruppi di 8 bit. Un

gruppo di 8 bit considerato come una singola unità di informazione, viene

denominato “byte”.

I bit di un byte sono numerati da 0 (il primo a destra, cioè il meno

significativo) a 7 (il primo a sinistra, cioè il più significativo).

In base a questa convenzione, il numero del bit e la potenza del 2 che

rappresenta sono identici. La seguente tabella fa vedere il numero di posizione di

un bit nell’ambito del byte e il suo valore corrispondente.

Bit = 0 1Byte = 8 Bits

0 1A = 000001

0 11 = 000110

0 0B = 100001

0 0V = 110101

01 1 01 11 Byte 0 0=

2V AMOR 1AI

11 Bytes = 88 BitsBioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

SISTEMI DI NUMERAZIONE

Fig. 38 – bit e Byte e alcune sequenze di caratteri ASCII

44

Dati Alfanumerici

Le stringhe (sequenze di caratteri ASCII) sono utilizzate per memorizzare

informazioni non numeriche, come nomi, indirizzi, codici, ecc. Per esempio la

costante:

“VIA ROMA 12”

è una costante stringa di 11 caratteri. Ogni carattere della stringa (compreso lo

spazio) è memorizzato in un byte e corrisponde a un codice della tabella ASCII. Il

BASIC memorizza la suddetta costante stringa come segue:

Dati Alfanumerici : sequenza di caratteri

esempio di variabile alfanumerica :

DATIAlfanumerici

Numerici

2V AMOR 1AI

0 0V = 110101

11 Bytes = 88 Bits

X$ =

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

SISTEMI DI NUMERAZIONE

Fig. 39 – Esempio di Variabile Alfanumerica

Dati Numerici

Il programmatore può far si che il BASIC memorizzi i numeri come:

- numeri interi (massima velocità di elaborazione, ma limitato campo di

definizione);

45

- numeri in semplice precisione (di uso generale);

- numeri in doppia precisione (massima precisione ma elaborazione più lenta).

0 0X# = 100001

Dati Numerici : Sequenza di cifre binarie

esempio di variabile numerica :

0 0….. 100001

Una variabileNumerica occupa

in semplice precisione : 4 bytes = 32 bits

in doppia precisione : 8 bytes = 64 bits

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

SISTEMI DI NUMERAZIONE

Fig. 40 – Esempio di Variabile Numerica Dal linguaggio umano al linguaggio dei computer e viceversa

Mentre gli elaboratori utilizzano il linguaggio binario, l’uomo comunica

mediante le lingue e si serve del sistema decimale. Di conseguenza, affinché ci

possa essere comunicazione, il computer deve convertire le informazioni che gli

forniamo nel linguaggio binario che è in grado di interpretare, e poi deve

riconvertire i risultati dell’elaborazione in un linguaggio a noi comprensibile.

Quando si digita un carattere o un numero sulla tastiera, l’elaboratore ricerca in

una tabella il numero binario che lo rappresenta e durante l’elaborazione si serve

di quel numero. Al termine dell’elaborazione avviene il processo inverso: il

computer ricerca nella tabella il carattere o il simbolo corrispondente al numero

binario e lo visualizza per l’utente. Le tabelle a cui fa ricorso l’elaboratore sono

chiamate codici.

46

Il codice ASCII è costituito esattamente da 256 caratteri (di cui alcuni sono

comandi) perché gli otto bit contenuti in un byte possono dare soltanto valori

compresi tra 0 e 255. Le varie combinazioni fra questi 8 bit possono dare un

numero binario compreso tra 00000000 e 11111111 o un numero decimale

compreso tra 0 e 255. Ognuno di questi 256 numeri decimali può rappresentare un

carattere, un numero o un comando.

I codici in uso

Il numero binario assegnato a un determinato carattere varia a seconda del

codice utilizzato. In informatica si usano vari sistemi di codifica, tra cui ASCII,

EBCDIC e UNICODE.

• Il codice ASCII, che sta per American Standard Code For Information

Interchange (codice americano standard per l’interscambio di

informazioni), è stato sviluppato dall’ANSI, l’American National Standard

Institute, ed è il codice più diffuso tra i personal computer. Nella tabella in

basso è riportata la codifica di una serie di caratteri nel codice ASCII. La

colonna a sinistra indica le decine e quella in alto le unità. Il simbolo “@”

ad esempio, è il numero 64, mentre “«” è il 174 .

• EBCDIC, acronimo di Extended Binary Coded Decimal Interchange Code

(codice di interscambio esteso BCD) è il codice più usato nei mainframe e

nei server più potenti.

• ASCII e EBCDIC funzionano perfettamente bene per l’inglese, ma per

scrivere i caratteri di altre lingue, come ad esempio il francese, il cinese, o

anche il fenicio e l’antico ebraico, è necessario un codice più esteso. Una

risposta a tale problema è rappresentata dallo standard UNICODE, che con

gli attuali 49194 caratteri è in grado di coprire le principali scritte del

mondo. I programmi che utilizzano UNICODE, come Windows NT, sono

in grado di elaborare e visualizzare sia le lingue moderne che quelle

antiche.

47

CODICE ASCII

La tabella seguente rappresenta in carattere decimale, esadecimale i codici

ASCII..

48

Nota: Tabelle trovate sul sito http://msdn.microsoft.com

49

SOFTWARE

Il Sistema Operativo

Dopo aver esaminato il computer come hardware trattiamo quella parte del

software che è detta di base, vale a dire che è fondamentale per il funzionamento

del calcolatore. Se noi accendessimo ora il nostro elaboratore, non accadrebbe

assolutamente nulla perché essendo capace solo di eseguire programmi, in assenza

di questi diviene un oggetto inutile.

Quando il calcolatore viene venduto, insieme ad esso possono essere

compresi anche una serie di programmi che formano il Sistema Operativo. Senza

il Sistema Operativo il computer sarebbe solo un insieme di fili e circuiti

elettronici non in grado di operare da soli. Il sistema operativo può essere

considerato solo come un insieme di programmi di supporto o come un

programma che interpreta ed esegue i comandi di controllo. In verità il Sistema

Operativo è un insieme di funzioni che servono ad aumentare l’efficienza del

calcolatore.

Mono-utente / Mono-processo

(es.: DOS ; Windows 3.1)

SISTEMI OPERATIVI

Mono-utente / Multi-processo

(es.: OS2 - Windows 95/98/NT/2000/XP/Vista)

Multi-utente / Multi-processo

(es.: Unix, Linux)

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 41 – Classificazione di alcuni Sistemi Operativi

I S.O. sono formati da molti programmi e solo pochi di questi sono visibili

50

all’utente. Questi sono i comandi che servono per scrivere, cancellare o

modificare altri programmi, per stampare dei dati o per produrre delle liste dei

nomi dei programmi o degli archivi esistenti su un disco o su un nastro. Ma questa

è solo la punta dell’iceberg, oltre ai comandi vi sono decine di programmi grandi

e piccoli da cui dipende il funzionamento del calcolatore.

L’MS-DOS

Descriviamo qui, brevemente, il sistema operativo MS-DOS (Microsoft

Disk Operating System) nato per i personal computer IBM nel 1981.

L’MS-DOS è un sistema operativo per microcomputer nato, come già detto,

nell’agosto del 1981 per il PC IBM. Questo S.O. è stato continuamente aggiornato

e migliorato rispetto all’originale versione 1.0 (questo metodo di numerazione è

classico del software: la prima cifra indica la versione, cioè la creazione o il

completo rifacimento di un sistema; le cifre successive indicano le patch, cioè le

riparazioni o le modifiche apportate al sistema originario). Si dice che l’MS-DOS

sia nato come copia semplificata dello Unix che vedremo in seguito. Forse questo

è vero, come è vero che molti dei comandi e l’impostazione generale sono simili,

ma è anche vero che per molte particolarità i due sistemi sono profondamente

diversi. Non dobbiamo dimenticare che il DOS raccoglie anche l’eredità lasciata

dal CPM-86, il sistema operativo dei microcomputer precedenti al personal

computer IBM e basati sul microprocessore Z80 della Zilog. L’importanza di

questo piccolo sistema operativo è chiara se si considerano le oltre 10 mila

applicazioni commercializzate e gli oltre 30 milioni di personal computer che lo

hanno utilizzato.

L’ MS-DOS (più semplicemente chiamato DOS) è un sistema mono-utente

e mono-processo realizzato dalla Microsoft per la gestione dei personal computer.

Considerando i computer di destinazione, l’MS-DOS è di dimensioni

contenute e non offre certamente tutte quelle particolarità e quelle facilitazioni dei

sistemi operativi più complessi. Come si è detto è monoutente, cioè prevede e

gestisce un solo utilizzatore; logico, visto che lavora su macchine nate come

51

personali e, di conseguenza, monoutenti. Non è quindi possibile (salvo artifici

prodotti dai programmi applicativi) eseguire più operazioni contemporaneamente

(dette concorrenti) fatta eccezione della stampa di file che viene gestita in

background, cioè sullo sfondo: mentre l’utente continua a lavorare, la CPU

utilizza le frazioni di secondo libere per gestire l’invio di caratteri alla stampante.

Fino alla versione 3.30 (o 3.31, per quella tradotta in italiano) l’interfaccia del

DOS è stata molto semplice. Questa viene gestita dal programma

COMMAND.COM che legge i caratteri da tastiera e ne consente una limitata

correzione e comprende i comandi elementari eseguendoli. Se una sequenza di

caratteri non è un comando gestito internamente da COMMAND.COM, questo

cerca un programma eseguibile con lo stesso nome; trovatolo, lo carica in

memoria e passa ad esso il controllo, in caso contrario emette un messaggio

d’errore. Le versioni di DOS successive alla 4.0 possiedono un’interfaccia grafica

che consente di vedere sempre i file disponibili e di lanciare i comandi di sistema

in modo molto più agevole.

Il DOS definisce un environment (ambiente), cioè uno spazio di memoria

che contiene delle variabili e delle definizioni necessarie al sistema. Le variabili

definiscono alcune stringhe che DOS usa nel suo lavoro; ad esempio PATH

determina in quali directory (oggi chiamate cartelle nel S.O. Windows) debbano

essere cercati i file eseguibili, mentre PROMPT identifica quale debba essere il

prompt cioè la sequenza di caratteri con la quale il sistema operativo avverte che è

pronto a ricevere degli input.

Ma più l’MS-DOS cresce di capacità, più cresce lo spazio di memoria che

occupa permanentemente. In contrapposizione a ciò, fino alla versione 4.0 il DOS

era ancora limitato alla gestione di 640 K di RAM nonostante la maggior parte dei

PC potessero raggiungere i 16 Mbyte. Per scavalcare questo limite tre costruttori

(Lotus, Intel e Microsoft) hanno definito lo standard LIM (dalle iniziali delle tre

aziende) che definisce le modalità software e hardware attraverso le quali è

possibile usufruire di tutti i 16 Mbyte di memoria centrale.

Il File System di questo sistema operativo è molto semplice. Esso prevede

una struttura organizzata ad albero alla cui base vi è la root directory identificata

52

dal simbolo “\“. Come già accennato nelle note generali sui Files System, la root

directory è un file come un altro e segue le stesse regole di assegnazione di nomi.

Un file DOS ha un nome composto da uno sino a otto caratteri sia numerici che

alfabetici e di interpunzione (punto escluso) indipendentemente dal tipo del

carattere iniziale. Seguono tre caratteri che definiscono l’estensione che è

facoltativa e quasi completamente arbitraria. Abbiamo detto quasi perché il

sistema operativo richiede solamente tre tipi di estensioni: i file. COM ed EXE

sono file compilati ed eseguibili e i BAT sono file di tipo batch (cioè file ASCII di

comandi e direttive DOS). Ciò non toglie che la maggior parte dei programmi non

di sistema imponga delle proprie regole per quanto concerne le estensioni.

Le directory seguono le stesse convenzioni di assegnazione dei nomi. Per

separare il nome di una directory da una subdirectory si usa, anche in questo caso

il simbolo ’\”.

Fig. 42 - Un'immagine... storica: il prompt del DOS

OS/2

L’Operating Sysrem/2 (o OS/2), è l’evoluzione del DOS che la Microsoft

ha progettato per i microcomputer PS/2 della IBM alla fine degli anni ‘80. La

prima release di OS/2 è del 1988.

Con questo Sistema Operativo la Microsoft ha inteso superare quei limiti del

DOS 3.0 che non rendevano possibile il pieno utilizzo dei già allora potenti PC.

53

Come già detto il DOS non consentiva di superare i 640K di memoria, mentre

erano numerosi i programmi che utilizzavano diversi Mega di RAM. Oltre a ciò

va aggiunto che gli utenti dei personal computer si erano abituati a programmi

applicativi molto evoluti basati su interfacce grafiche (GUI) altamente sofisticate

e mal vedevano il vecchio DOS che lavorava esclusivamente in modalità testo.

Già con il DOS 4.0 si era introdotto il DOS-Shell che “portava un po’ di colore”,

ma la concorrenza di altri sistemi basati sulle interfacce grafiche era sempre

pressante. Sotto DOS si sviluppò, nel 1985, Microsoft Windows, un sistema che

portava grafica di alta qualità e multitasking (virtuale) al DOS, ma i limiti di

progettazione del semplice sistema operativo non potevano essere superati.

OS/2 nasce come sistema operativo multitasking per macchine veloci e

dotate di RAM da 3 MB a 64 MB e con dischi di grande capacità. Nella sua

progettazione la Microsoft ha tenuto presente la rapida evoluzione delle

tecnologie e ha incluso un file system detto High Performance File System

(HPFS) non più basato sulla FAT, ma con una struttura molto più simile a quella

di Unix. L’HPFS è predisposto per poter utilizzare dischi ottici WORM e

riscrivibili, ma conserva la capacità di leggere i floppy scritti con il DOS.

Con questo sistema operativo viene utilizzata la GUI chiamata Presentation

Manager (PM) che, nella release 2.0, è divenuta praticamente identica a Windows

3.0. La struttura di questa interfaccia grafica è basata su finestre che possono

essere spostate, modificate nella forma e nei colori, chiuse o minimizzate,

sostituendo ad esse un’icona che ne rappresenta graficamente la funzione. Le

finestre sono gestite dai processi, cioè dai singoli programmi concorrenti, che

svolgono tutto il loro dialogo con l’utente attraverso di esse. Il Dynamic Data

Exchange (DDE) è un metodo che consente a programmi concorrenti di

scambiarsi dinamicamente i dati così due o più applicazioni possono parlare fra di

loro o condividere i dati su cui lavorare. I1 mouse è lo strumento essenziale per

poter utilizzare proficuamente e gradevolmente questa interfaccia grafica evoluta;

lavorare senza di esso non è possibile. Rispetto ai vecchi monitor a colori dei

primi PC l’OS/2 utilizza solo monitor EGA (Enhanced Graphics Adapter,

640x350 a 16 colori) in su, fino alle alte risoluzioni e ai 256 colori, e oltre.

54

Microsoft Windows Microsoft Windows è ormai da diversi anni di gran lunga il più diffuso

sistema operativo per personal computer. Dal 1985 ad oggi, Windows ha

conosciuto diverse versioni, Windows 1.0 (1985), Windows 2.0 (1987), Windows

3.0 (1990), Windows 3.1 (1992); fino ad arrivare nel 1993 ad una versione

professionale chiamata Windows NT (New Tecnology) mono-utente e multi-

processo, e giungere alle più recenti: Windows 95/98 / 2000 / NT / XP/ VISTA .

Fig. 43 - Un computer palmare con Windows CE

Windows, pur essendo abbastanza facile e intuitivo da utilizzare, è

indubbiamente un sistema operativo complesso, che permette di svolgere

moltissimi compiti e moltissime operazioni diverse. Riassumerne in poche parole

le caratteristiche essenziali è dunque un’impresa abbastanza difficile. Vogliamo

provare a cimentarci nell’impresa, cercando di individuarne dieci ‘tratti distintivi’

(molti dei quali sono del resto comuni alla maggior parte dei sistemi operativi

grafici)? Ebbene, facendo riferimento alla versione di Windows 2000, possiamo

forse dire che le dieci caratteristiche di base di Windows, dal punto di vista

dell’utente, sono: (1) uno spazio bidimensionale, o tavolo da lavoro (desktop),

all’interno del quale possono trovare posto (2) le piccole rappresentazioni

grafiche, o icone, che rappresentano dati e programmi. All’interno di questo

spazio si muove anche il (3) puntatore del mouse, utilizzato sia (con un singolo

click) per selezionare le icone degli oggetti – dati e programmi – con i quali

lavorare, sia (doppio click) per aprirli. Il puntatore del mouse è utilizzato anche

per trascinare e appoggiare (drag and drop) gli oggetti con i quali si lavora:

icone, finestre, ecc.; in questo caso, occorre posizionare il puntatore del mouse

sull’oggetto da trascinare, premere il tasto sinistro del mouse, e tenerlo premuto

55

spostando il mouse: l’oggetto trascinato seguirà i movimenti del puntatore, fino a

quando il tasto sinistro non viene rilasciato.

Fig. 44 - Il desktop di Windows 2000, con icone e menu a cascata; al menu principale si accede dal pulsante Start, in basso a sinistra

I programmi vengono eseguiti all’interno di (4) finestre che possono essere

sovrapposte, ridimensionate, spostate, o accantonate temporaneamente sulla (5)

barra delle applicazioni. La chiusura di una finestra corrisponde di norma alla

chiusura del relativo programma. Dell’interfaccia utente fanno parte integrante (6)

menu e (7) pulsanti (attivati attraverso un singolo click del mouse). Un pulsante

posto sulla barra delle applicazioni, detto (8) pulsante di avvio (Start), permette

l’accesso a un menu attraverso cui raggiungere tutti i principali programmi

installati nel computer, e tutte le componenti principali del sistema operativo. Fra

di esse, occorre ricordare innanzitutto la (9) finestra esplora risorse, che permette

la gestione dei file e l’accesso a tutte le risorse del computer, in sede locale (dischi

rigidi e altre memorie di massa, stampanti, etc. ) e remota (rete locale e rete

Internet). Sempre attraverso il menu Start, o attraverso il tasto F1, è sempre

disponibile (10) un sistema d’aiuto (Help) contestuale, che sostituisce ormai i

manuali del sistema operativo.

UNIX

Lo Unix è un sistema operativo che ha avuto molto successo a partire dalla

56

metà degli anni ottanta, ma pochi sanno che è nato quasi per caso ed è diventato di

dominio pubblico solo per l’entusiasmo degli utenti.

Ironia della sorte vuole che Unix sia stato ideato come sistema monoutente

in contrapposizione al sistema Multix, multiutente, mentre è oggi il sistema

multiutente forse più diffuso. La nascita avviene fra il 1969 ed il 1971 nei

laboratori della AT&T (American Telephone and Telegraph) ed è motivata

dall’esigenza di avere a disposizione un sistema operativo, flessibile e facilmente

modificabile, per il computer Digital PDP-7.

UNIX è un sistema operativo multi-processo e multi-utente caratterizzato da

una semplicità, flessibilità e potenza difficilmente raggiunte dai sistemi operativi

precedenti. Uno dei suoi punti di forza è la disponibilità su un gran numero di

macchine differenti grazie al fatto di essere costruito in maniera modulare. La

parte centrale, il kernel, è l’unica parte scritta in assembler e strettamente

dipendente dalla macchina. Questo nucleo gestisce i processi, la memoria, gli

interrupt, le chiamate a funzioni di sistema, l’I/O (Input/Output) verso le

periferiche. Tutto il resto del sistema (quello che l’utente vede) è scritto in C ed è

uguale per tutte le macchine.

UNIX nasce come sistema operativo modulare e flessibile rivolto soprattutto

all’utilizzazione da parte di programmatori professionisti (in effetti, imparare a

muoversi in un ambiente UNIX può essere tutt’altro che facile per i non

specialisti). Pur essendo un sistema operativo a caratteri, le sue capacità di

multitasking e multiutenza, la sua concezione modulare e l’utilizzazione diretta di

un linguaggio di programmazione particolarmente potente, il C, lo rendono tuttora

assai diffuso, anche se in genere a livello di workstation.

Negli ultimi anni, tuttavia, ha raggiunto una notevole diffusione una

versione ‘popolare’ di UNIX denominata Linux, realizzata per iniziativa del

programmatore Linus Torvalds, distribuita gratuitamente e capace di girare su

molte piattaforme diverse (inclusi i normali PC IBM compatibili). Molte

implementazioni di UNIX, compreso Linux, possono costituire la base sulla quale

far girare un sistema operativo grafico evoluto denominato X Windows.

57

I LINGUAGGI DELL’INFORMATICA

Dal linguaggio macchina ai linguaggi ad alto livello.

Accade nell’universo degli esseri umani e, naturalmente, non poteva

avvenire diversamente nel mondo dei personal computer; le macchine

programmabili, create dall’uomo, occupano una torre di Babele nella quale le

differenze tra i vari linguaggi sono tanto sentite almeno quanto nella società

umana. Così come per i linguaggi umani, esistono linguaggi con maggiore

importanza e diffusione, utili per intendersi un po’ dovunque (Inglese, Francese,

etc. ), nella Babele dei computer troviamo alcuni linguaggi protagonisti della

situazione: senza dubbio il più popolare è il BASIC. Ma le analogie non

terminano qui. Nella società umana molti idiomi presentano dialetti o varianti, più

o meno distanti dalla radice originale. Una realtà riconoscibile anche tra i

linguaggi dell’informatica, dove i dialetti e le versioni del BASIC sono numerose

quasi quanto i modelli di computer.

Qualunque discorso relativo ai linguaggi dell’informatica deve partire dal

personaggio centrale: il computer. Sappiamo che si tratta di una macchina la cui

principale caratteristica è quella di accettare una programmazione che gli consenta

di realizzare una notevole varietà di lavori: tanti quanti l’utente sarà in grado di

programmarne.

Data la sua struttura, un insieme di circuiti elettronici in tecnologia digitale,

il computer è in grado di comprendere un linguaggio costituito dai due elementi

minimi dell’informazione: 0, assenza di segnale elettrico, e 1, presenza di segnale

elettrico (in realtà lo zero non è sempre una totale assenza di segnale, ma un

livello basso rispetto all’uno).

A partire da questo alfabeto minimo (0 e 1), si possono costruire parole

(01101110) e, naturalmente, frasi (0011001111100011...) con le quali stabilire

una comunicazione ricca di contenuti.

Riassumendo: il computer, per sua natura, è in grado di dialogare in un

linguaggio che denomineremo linguaggio macchina, costruito a partire dagli

58

elementi minimi dell’informazione: 0 e 1. Questi elementi. i BIT (contrazione

della denominazione inglese BInary digiT: cifra binaria), coincidono con quelli

del sistema di numerazione binaria.

Livelli dei Linguaggi dell’Informatica

Abbiamo già parlato della capacità dei computer di scambiare dati con

l’utente. Per il momento abbiamo visto come sia possibile stabilire una

comunicazione con i suoi circuiti elettronici attraverso il suo linguaggio interno: il

linguaggio macchina. Qualche semplice riflessione su questo mezzo di colloquio

porta subito a conclusioni non troppo favorevoli verso il linguaggio macchina.

Prima di tutto non vi sono dubbi sul fatto che questo sia un linguaggio difficile da

apprendere per l’utente; non solo per la complessità inerente alla struttura del

linguaggio, ma forse di più per il fatto che la sua connessione intima con la

macchina rende necessaria una conoscenza approfondita del suo funzionamento

interno. Inoltre, bisogna ricordare che il computer è una macchina ignorante, che

deve essere istruita con tutti i più piccoli dettagli, un compito arduo se deve essere

portato a termine usando solo sequenze di zero ed uno.

Infine il computer non è altro che uno strumento creato per facilitare il

lavoro dell’uomo, quindi perché l’uomo dovrebbe adattarsi al linguaggio dalla

macchina, se esiste la possibilità di usare linguaggi molto più vicini a quello

umano? Il problema sta soltanto nel creare i traduttori adatti, che convertano le

descrizioni formulate con un linguaggio evoluto in frasi equivalenti del linguaggio

macchina.

Da questa idea nacquero i nuovi linguaggi dell’informatica, più evoluti e più

somiglianti al linguaggio dell’uomo.

Lo sviluppo dai linguaggi fu parallelo all’evoluzione dei computer. Poco a

poco nacquero linguaggi sempre più lontani dalla struttura della macchina e, più

tardi, comparvero i cosiddetti linguaggi ad alto livello, nei quali la sintassi, la

semantica e la pragmatica iniziavano ad assomigliare a quelle dei linguaggi

umani.

59

Attualmente la piramide dei linguaggi dell’informatica è costituita da tre

livelli:

• Linguaggi di alto livello :FortranBasicCobolPascal

CHTMLJava

Compilati - Interpretati

LINGUAGGI DI PROGRAMMAZIONE

• Linguaggi macchina

• Linguaggi Assemby o assemblatori

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 45 – Alcuni linguaggi di programmazione

Linguaggi Macchina

Occupano lo strato inferiore, meno evoluto, dei linguaggi dell’informatica.

Data la stretta connessione con la macchina è ovvio che il linguaggio cambierà a

seconda della macchina considerata.

Bisogna ricordare che il cervello o unità centrale di elaborazione è il

microprocessore; di conseguenza il linguaggio macchina adatto ad un computer

dipenderà dal microprocessore in esso contenuto. In effetti ogni microprocessore

(6502, Z80, 8088, 68000, etc. ) ha un proprio linguaggio macchina.

Linguaggio Assembly o assemblatori

La strato intermedio è occupato dai linguaggi assembly. Il repertorio di

60

elementi che contribuiscono alla composizione di un programma consiste, in

questo caso, in un insieme di simboli che offrono una maggiore comodità d’uso

rispetto alle sequenze di zero ed uno.

Il collegamento con il linguaggio macchina è molto stretto, al punto che

ogni famiglia di microprocessori possiede un proprio linguaggio assembly ed ogni

suo simbolo è in diretta corrispondenza con un simbolo del suo linguaggio

macchina.

Il compito di realizzare e correggere un programma diventa ora più facile

data la comodità di poter impiegare gruppi di lettere per definire le operazioni.

Non ci sono dubbi sul fatto che per incrementare un numero di una unità sia

meglio utilizzare INC A piuttosto che 0011100; ne consegue che la possibilità di

fare errori si riduce notevolmente.

Linguaggi di alto livello

Questi sono linguaggi evoluti che mantengono un notevole parallelismo con

i convenzionali linguaggi parlati. In questo terzo livello la differenza tra i vari

linguaggi non è causata dal microprocessore. I linguaggi d’alto livello più diffusi

(BASIC, PASCAL, FORTRAN, COBOL, LOGO, HTML, JAVA, etc.)

dispongono di diversi traduttori per poter essere convertiti nel linguaggio

macchina di quasi qualunque microprocessore.

I vantaggi sono evidenti: la scrittura di un programma risulta comprensibile

per l’utente e di conseguenza sarà più comoda la sua redazione e la ricerca degli

errori di sintassi. Inoltre il tempo di programmazione si riduce e, cosa molto

importante, si può pensare di far funzionare lo stesso programma su macchine

diverse.

Il BASIC è, senza dubbio, il linguaggio ad alto livello attualmente più

popolare. Un linguaggio di programmazione polivalente che ha generato numerosi

dialetti: a partire dalle versioni rivolte ai principianti fino alle versioni più

sofisticate orientate alla programmazione professionale. Ma non è da qui che parte

61

la storia dei linguaggi dell’informatica. Sono molti i linguaggi che hanno visto la

luce prima e dopo il BASIC: a partire dallo SHORT CODE che fu creato nel 1949

dal Dottor Mendy per la Univac, lo SPEED CODING nato nel 1953 per i

computer IBM, il LOGO (1976), un linguaggio progettato espressamente per

l’insegnamento assistito dal computer, fino ai più recenti, come il “C”, Java, etc. .

I primi linguaggi vennero sviluppati con una particolare attenzione alle

applicazioni matematiche e scientifiche: è il caso del MATHEMATIC, del GAL o

del più noto FORTRAN. Più tardi comparvero i linguaggi rivolti alla

programmazione di attività gestionali, dei quali il più noto è senz’altro il COBOL.

I linguaggi polivalenti o universali comparvero sulla scia del JOVIAL, il

primo linguaggio non specializzato, che vide la luce nel 1959. Ad esso seguirono

ALGOL, PL/1, APL, BASIC, PASCAL, FORTH, ADA, LOGO e molti altri

ancora.

La popolarità dei personal computer ha trascinato con sé alcuni linguaggi di

alto livello, ma ha anche relegato nell’ambito dei mini e dei grandi computer

alcuni classici linguaggi dell’informatica.

62

I PRINCIPALI LINGUAGGI AD ALTO LIVELLO

Linguaggio FORTRAN

(FORmula TRANslation Conversione di formule) Il nome mette in evidenza

il carattere matematico di questo linguaggio, uno dei più antichi tra i linguaggi

attualmente in uso. J. Backus lo sviluppò nel 1956 su un sistema IBM 704. In

passato molto usato, nei settori più disparati.

Linguaggio BASIC

(Beginners All Purpose Symbolic Instruction Code, Codice di istruzioni

simboliche di uso generale per principianti). E’, senza dubbio, il più popolare dei

linguaggi attuali e con un notevole distacco dai restanti linguaggi dell’informatica.

Nacque tra il 1964 e il 1965 presso il Dartmouth College come strumento per

l’insegnamento. Col tempo si sono diffusi diversi dialetti e versioni, al punto che

solitamente ogni fabbricate di computer sviluppa una propria versione di BASIC.

E’ molto difficile trovare un personal computer che non incorpori un interprete

per il BASIC, anche nella versione base. In seguito l’americana Microsoft ha

sviluppato dapprima il famoso MSX-BASIC, poi il Quik Basic ed infine il Visual

Basic, divenendo uno standard affermato.

Linguaggio COBOL

(COmmon Businnes Oriented Language - Linguaggio orientato alla

gestione). Il linguaggio specializzato nei compiti di gestione che ha avuto,

indubbiamente, la maggiore risonanza. Il Dipartimento della difesa degli Stati

Uniti promosse il suo sviluppo nel 1960. Ha avuto una grande diffusione tra i mini

e i grandi computer, ma nel campo dei microcomputer ha subito la concorrenza

del BASIC.

63

Linguaggio PASCAL

(In onore del celebre matematico francese Blaise PASCAL). E’ il

linguaggio strutturato per eccellenza, con una importante presenza nel mondo dei

microcomputer. Fu sviluppato da N.Wirth nel 1969 presso il politecnico di

Zurigo, basandosi sui fondamenti dell’ALGOL. Il PASCAL è un linguaggio che

permette di creare programmi chiari e comprensibili per merito delle sue

caratteristiche di linguaggio strutturato; ad esempio impone di definire

esplicitamente prima del programma, ogni dato in gioco. La versione più

popolare, di questo linguaggio, è quella creata appositamente per i microcomputer

dall’Università Californiana di San Diego: il PASCAL UCSD

Linguaggio C

Uno dei più recenti linguaggi di programmazione ad alto livello. Entro

questa categoria, il C è uno dei linguaggi maggiormente polivalenti e più vicini

alla realtà della macchina. Fu sviluppato originariamente dai Bell Laboratories per

lavorare sul sistema operativo UNIX. La popolarità di questo linguaggio cresce

giorno per giorno, per questo viene considerato unanimemente come uno dei

principali linguaggi di riferimento. La sua struttura semantica e sintattica è stata

edificata a partire da concetti avanzati come strutturazione, gerarchizzazione di

blocchi e controllo di flussi di dati.

Linguaggio LOGO

La prima versione del LOGO fu creata nel 1976 da Seymour Papert, presso

il Massachusetts Institute of Technology ed era ispirata al LISP. LOGO è un

linguaggio ideato per l’insegnamento assistito dal computer. La sua popolarità

deriva in gran parte dalla cosiddetta Turtle Graphics. cioè una serie di comandi

dedicati alla grafica, che fanno uso di un simpatico personaggio (la Tartaruga) per

facilitarne l’apprendimento. Pur essendo decisamente orientato al settore

educativo, non è trascurabile la sua utilità nel campo dell’intelligenza artificiale.

64

Il linguaggio HTML

Le pagine Web non devono essere soltanto belle e accattivanti ma anche

funzionali. Questa funzionalità è determinata da come sono organizzati la

formattazione e il collegamento ad altre pagine, effettuati inserendo nel

documento delle istruzioni nascoste dette tag (marcatori), che fanno parte di uno

speciale linguaggio di formattazione, HTML (Hypertex Markup Language), a sua

volta basato sul linguaggio SGML (Standard Generalized Markup Language), del

quale è un sottoinsieme. Il successo ottenuto da questi linguaggi di formattazione

è dovuto al fatto che non sono legati a uno specifico programma. Tanto per fare

un esempio, mentre un documento formattato in Word non può essere letto da un

altro programma o in un altro sistema se prima non è stato convertito, i tag sono

costituiti da testo e quindi possono essere letti da tutti i programmi. Questo perché

una pagina web, come è ovvio, aspira a raggiungere un pubblico il più vasto

possibile.

Quando formattate una pagina Web, potete inserire un tag

<H1><CENTER> per specificare che la sezione che segue è un titolo in posizione

centrata, oppure un tag leggermente diverso, </CENTER></H1>, per segnalare la

fine di quel tipo di formato. I documenti in formato HTML e i loro marcatori

possono essere visualizzati da qualsiasi programma di editing, e anche nei

browser di norma è presente un comando sorgente che consente di vedere il

codice HTML del documento visualizzato. Un altro linguaggio basato sull’SGML

è l’XML (eXtensile Markup Language); questo linguaggio permette la creazione

di tag personalizzati al fine di consentire lo scambio di informazioni e documenti,

formattati secondo questi tag, tra programmi applicativi diversi.

Linguaggio Java

Java è un linguaggio procedurale nuovo ma già molto diffuso, concepito per

sviluppare applicazioni distribuite in rete. I programmi Java, chiamati applet,

risiedono in genere su un server. Dal server possono essere trasferiti sul proprio

65

computer, dove vengono interpretati da un traduttore detto macchina virtuale Java.

Questo tipo di programma può dunque essere eseguito indifferentemente su ogni

computer, posto che questo sia dotato dell’apposito interprete.

PROGRAMMAZIONE

I calcolatori per uso generale sono in grado di eseguire diverse funzioni

come la lettura dei dati, le operazioni aritmetiche su di essi, il loro trasferimento,

il loro confronto, etc. ma essi non possono da soli, associare tali funzioni nelle

combinazioni necessarie a compiere un determinato lavoro e a risolvere un

determinato problema. Questo lavoro è affidato al programma. Un programma,

per definizione, consiste in un piano sistematico appositamente concepito per

giungere alla soluzione automatica di un problema specifico da parte di un

calcolatore. Nel caso di un problema specifico da sottoporre per la soluzione ad un

calcolatore per uso generale, un programmatore deve prima analizzare il problema

per stabilire in che modo utilizzare il calcolatore per ottenere lo scopo. Presa una

decisione al proposito, si traccia un piano sistematico, detto programma. Un

programma consiste in un elenco sequenziale di istruzioni particolareggiate, che

guida il calcolatore un passo dopo l’altro nella soluzione del problema.

Le fasi principali del lavoro di programmazione sono:

1. capire il problema e definirne la soluzione;

2. determinare la metodologia di risoluzione del problema. Il metodo più

usato è la realizzazione di diagrammi a blocchi o flow-chart;

3. stesura delle istruzioni di programma. La scelta del linguaggio è legata al

tipo di problema che si deve affrontare (Basic, Visual Basic, C, etc. per

problemi scientifici, o Cobol per applicazioni gestionali) e al tipo di

linguaggio che il computer a disposizione può interpretare;

4. memorizzazione del programma;

5. correzione del programma ed esecuzione.

La comprensione del problema (fase 1) è di fondamentale importanza. Nella

66

maggior parte dei casi il programmatore lavorerà in base a delle specifiche

dettagliate preparate per ciascun programma dall’analista. Queste specifiche

comprendono la descrizione dettagliata di tutti i dati in entrata, della elaborazione

da svolgere e dei risultati in uscita dal programma. Il programmatore deve

anzitutto sincerarsi che tutte le possibili situazioni siano state specificamente

previste e che ogni situazione non specificamente considerata possa comunque

essere adeguatamente trattata. Dopo essersi assicurato della adeguata definizione

del problema il programmatore deve quindi pensare alla strategia da adottare per

la redazione del programma.

In relazione alla complessità del problema, alla capacità di memoria

dell’elaboratore ed al tipo di linguaggio da usare il programma può essere scritto o

essere diviso in “routine” o “segmenti”, ognuna dedicata ad una certa sezione

logica del problema.

Sorvolando le fasi 2-3-4, di stesura del diagramma a blocchi, codifica del

programma e memorizzazione dello stesso, che saranno rese esplicite con un

esempio, ci soffermiamo sugli errori del programma.

E’ raro che un programma funzioni correttamente fin dalla prima volta che

lo si metta in esecuzione; questi errori possono essere di due tipi: errori di

“sintassi”, ossia dovuti ad un cattivo uso del linguaggio o codifica del programma,

o errori di “logica” derivanti da una errata interpretazione del problema.

I programmi vengono provati con dei dati di prova, cioè con dei campioni di

quegli stessi dati che il programma troverà normalmente in ingresso e i risultati

così ottenuti vengono confrontati con quelli ottenuti dall’elaborazione manuale

degli stessi. Quando i risultati ottenuti dal programma concordano con quelli

calcolati manualmente, e il programmatore o l’analista è sicuro che sono state

simulate tutte le possibili situazioni in cui è prevedibile che il programma si

imbatta nel suo normale operare allora si può dire che il programma funziona

correttamente. Peraltro anche un programma così collaudato non è utilizzabile se

non è corredato da una documentazione completa e rientra fra i doveri del

programmatore, oltre a prepararla, assicurarsi che essa venga costantemente

aggiornata e messa a disposizione di ogni utilizzatore del programma.

67

Esempio di programmazione:

FASE 1

Si supponga quale semplice esempio di voler stampare la radice quadrata di

tutti i numeri forniti dall’operatore tramite tastiera.

E’ necessario quindi, nel caso in cui l’operatore introduca valori negativi,

stampare un messaggio e continuare l’esecuzione.

FASE 2

Il metodo comunemente usato per giungere alla stesura di una metodologia di

risoluzione di un problema tramite calcolatore è nota come diagramma a blocchi.

Utilizzando i pochi simboli di base riportati alla fine di questo esempio il

problema definito alla fase 1 può essere illustrato dal seguente schema di flusso:

Impostare un numeroImpostare un numero

FASE 2

Rappresentare un messaggiodi errore sul monitor

Rappresentare un messaggiodi errore sul monitorNumero < 0Numero < 0

STARTSTART

Calcolare la radice quadratadel numero

Calcolare la radice quadratadel numero

Stampare la radicequadrata del numeroStampare la radice

quadrata del numero

SINO

PROGRAMMAZIONE

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 46 – Diagramma a Blocchi

68

FASE 3

Seguendo il diagramma a blocchi risulta facile scrivere le corrispondenti

istruzioni di programma utilizzando il Linguaggio BASIC :

10 CLS20 INPUT “Imposta un numero”; X30 IF X<0 GOTO 7040 Y = SQR(X)50 PRINT “Radice quadrata =”; Y60 GOTO 2070 PRINT “Impossibile calcolare la radice quadrata ”80 GOTO 20

PROGRAMMAZIONE

FASE 3

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 47 – Esempio di Programma in BASIC

69

PROGRAMMA : (Basic prime versioni)

10 CLS - Questa istruzione cancella il monitor.

20 INPUT “IMPOSTA UN NUMERO”;X - Con questa istruzione compare sul display il messaggio: IMPOSTA UN NUMERO, ferma l’esecuzione del programma e attende che l’operatore fornisca da tastiera un numero (ad es.: 4 da associare alla variabile X.

30 IF X <0 THEN 70 - Se la variabile X è minore di 0 salta le istruzioni 40-50-60 ed esegue l’istruzione N° 70; altrimenti esegue la successiva (per X=4 esegue la N° 40).

40 Y=SQR(X) - Associa alla variabile Y il valore della radice quadrata della variabile X (nel nostro es. associa ad Y il valore 2).

50 PRINT “RADICE QUADRATA=”;Y - Questa istruzione fa visualizzare il contenuto fra virgolette ed il valore associato alla variabile Y (es.: RADICE QUADRATA = 2)

60 GOTO 20 - Istruzione di salto; ritorna

all’istruzione n° 20.

70 PRINT “VALORE NEGATIVO ” - Visualizza su monitor: VALORE NEGATIVO; (nel nostro esempio non viene eseguita).

80 GOTO 20 - Invia all’esecuzione dell’istruzione n°

20.

90 END - Istruzione di fine programma.

70

FASE 4

Questa fase consiste nell’introdurre in macchina il programma linea per

linea. La linea deve essere impostata sul display e alla fine di ciascuna di esse

deve essere premuto il tasto di memorizzazione.

FASE 5

Dopo aver memorizzato il programma premendo il tasto “LIST” il

calcolatore fornirà una lista del programma; premendo il tasto “RUN” si comanda

l’esecuzione.

Per correggere od inserire istruzioni basta scrivere il numero di linea

corrispondente, la nuova istruzione e premere il tasto di memorizzazione.

SIMBOLI DI USO COMUNE NEI DIAGRAMMI A BLOCCHI

71

VARIABILI

Risulta spesso comodo associare ad una lettera un valore numerico ed

utilizzare la lettera all’interno di una espressione aritmetica. Nel corso di un

programma la lettera può assumere valori numerici diversi, da qui la

denominazione di variabile attribuita ad una lettera utilizzata nel modo illustrato.

Una lettera intesa come variabile può essere ad esempio utilizzata come

locazione di una memoria destinata a contenere una sommatoria di dati in corso di

aggiornamento. Una variabile può inoltre essere utilizzata per memorizzare una

costante che ricorre con frequenza nel calcolo.

Il calcolatore può gestire due tipi di variabili.

- variabili semplici;

- insiemi di variabili (Vettori, Matrici).

Variabili semplici: ciascuna delle 26 lettere maiuscole dell’alfabeto inglese

da A a Z (e in alcuni linguaggi combinazioni di esse) può essere utilizzata come

variabile.

Vettori e matrici: come per le variabili semplici le lettere alfabetiche (e in

alcuni linguaggi combinazioni di esse) rappresentano i nomi di vettori o matrici;

tali nomi sono seguiti da parentesi (quadrate o tonde) che racchiudono gli indici

dei vettori o delle matrici.

I vettori o le matrici devono essere necessariamente dichiarati con una istruzione

di dimensionamento. In questo modo si riserva della memoria per il vettore o

matrice e contemporaneamente vengono azzerati tutti gli elementi.

Es.:

DIM A(4) : Riserva una parte di memoria per 4 elementi del vettore A.

DIM B(4,5) : Riserva una parte di memoria per 20 elementi della matrice B (4

Righe, 5 Colonne).

72

LE RETI LOCALI (LAN)

Anche se per utilizzare le reti non è necessario sapere come funzionano,

conoscerne le caratteristiche può essere utile quando dovete installare il vostro

sistema, scegliere un servizio, utilizzare un’applicazione come la posta elettronica

e via dicendo. Gli elaboratori e gli altri dispositivi hardware che formano una rete

locale possono essere collegati tra loro in vari modi che determinano

l’ architettura o la topologia della rete.

Per architettura non si intende il modo in cui sono disposti i suoi

componenti fisici, ma la modalità di trasmissione dei dati all’interno della rete.

I componenti fondamentali di un’architettura

Gli elementi fondamentali che compongono una rete sono i nodi, i pannelli

di connessione e le dorsali.

Un nodo è un qualsiasi dispositivo hardware del sistema in grado di

comunicare con gli altri dispositivi che fanno parte della rete; può quindi essere

un computer, una stampante, un fax, un modem, una unità per CD-ROM etc.; in

ogni caso il nodo deve essere dotato di una scheda di rete.

I nodi sono collegati tra loro da un pannello di connessione (in inglese hub),

chiamato anche concentratore, che ha la funzione di semplificare la connessione

fisica tra i vari nodi e di instradare i segnali che vengono inviati da un nodo

all’altro.

Una dorsale è un cavo ad alta capacità al quale possono essere connessi più

nodi o concentratori e che ha la funzione di trasportare grandi quantità di dati.

I server

In una rete locale un server è un elaboratore che può essere condiviso dagli

altri computer collegati in rete. In molti casi è il computer più potente del sistema

perché tutti gli elaboratori, detti client, dipendono dal server sia per i programmi e

73

i dati che per le connessioni agli altri computer e dispositivi. I tipi di server più

comuni includono:

Il server gestore di dati (in inglese file server), sul quale si trovano i file e

alcuni programmi applicativi; questo elaboratore gestisce grandi quantità di dati

archiviati in varie memorie di massa, come dischi fissi, CD-Rom, unità a nastro e

altri dispositivi di memorizzazione;

Il server di stampa che memorizza sul disco fisso i dati da stampare finchè

la stampante non è pronta per riceverli;

Il server di comunicazione, che può essere un router (cioè un elaboratore

che instrada i dati tra i vari elaboratori, analogamente a una centrale telefonica per

le telefonate), un fax o un modem attraverso il quale i dati vengono trasmessi tra

un nodo e l’altro o all’esterno della rete, verso altre reti (ad esempio Internet).

L’architettura ad anello

In un’architettura ad anello i nodi della rete sono organizzati secondo una

configurazione a cerchio. Quando un computer invia un segnale, questo passa al

nodo successivo; se il messaggio non è indirizzato a quel nodo, viene ritrasmesso

al nodo seguente e così via finchè non raggiunge il nodo a cui è destinato. In

questa topologia, i computer sono collegati direttamente tra loro: le comunicazioni

passano infatti attraverso un pannello di connessione, all’interno del quale risiede

l’anello.

L’architettura a stella

Nell’architettura a stella i nodi sono collegati a un computer centrale detto

host. Quando un computer della rete invia un segnale, l’host lo instrada verso il

nodo a cui è indirizzato. Le comunicazioni tra i nodi della rete, quindi, non sono

dirette ma passano tutte attraverso l’elaboratore centrale.

74

L’architettura a bus

L’ architettura a bus o lineare, collega tutti i nodi a una linea di trasmissione

principale, secondo una organizzazione che ricorda quella dei componenti di un

elaboratore. Il segnale emesso da un computer viene inviato lungo la linea di

comunicazione ed esaminato da tutti gli altri nodi della rete: solo il nodo

destinatario preleverà il messaggio, mentre gli altri nodi, pur ricevendo il

messaggio, lo ignoreranno. Di norma, i nodi sono collegati tramite dei fili alla

dorsale della rete, che è costituita da un cavo di lunghezza standard con dei

terminatori alle estremità che impediscono la riflessione del segnale.

Le reti paritetiche (peer-to-peer)

La creazione e la gestione di una rete comportano numerose difficoltà e costi

piuttosto elevati. Per evitare questi inconvenienti si può realizzare una rete

paritetica, il cui controllo non è affidato al centro di calcolo aziendale di norma

competente ma è demandato agli utenti. In questa topologia tutti i computer

operano allo stesso livello per cui, diversamente da quanto accade nell’architettura

client/server, i dati non devono passare attraverso un elaboratore centrale. Mentre

lavorate a un foglio elettronico, ad esempio, il vostro computer può gestire le

richieste di stampa provenienti dagli altri elaboratori e inviarle alla vostra

stampante laser.

Le LAN senza fili

Nelle reti locali senza fili, come avviene per la radio e la televisione via

etere, i computer comunicano tramite segnali radio trasmessi da e verso una

stazione centrale collegata alla rete. Questo tipo di trasmissione consente di

spostare un computer portatile all’interno di un edificio, ad esempio, per fare una

presentazione, ed elimina il problema di installare i cavi di collegamento nei

vecchi edifici.

75

SWITCH

LAN

ROUTER

SERVERS

BI 1999

SISTEMA INFORMATIVO OSPEDALIERO

SERVER

HUB

FAST ETHERNET

A

T

METHERNET

HUB

SWITCH

ETHERNET

FAST ETHERNET

SWITCH

HUB

HUB

1°LIVELLO

3°LIVELLO

2°LIVELLO

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 48 – Esempio di LAN

Le reti locali in genere sono distribuite su un’area circoscritta, come ad

esempio un complesso aziendale o un istituto universitario. Per allargare i servizi

di rete a una città, a un paese, o al mondo intero, è necessario collegare le reti

locali tra loro per formare reti di più ampia portata.

76

LE RETI METROPOLITANE (MAN) e GEOGRAFICHE (WAN)

LAN (Local Area Network)LAN (Local Area Network)

WAN (Wide Area Network)WAN (Wide Area Network)

MAN (Metropolitan Area Network)MAN (Metropolitan Area Network)RetiReti

Reti di Comunicazione

Metri - Km

Decine di Km

Decine - Migliaia di Km

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 49 – Classificazione delle Reti di Comunicazione

A seconda dell’area che copre, una rete allargata può essere definita

metropolitana o geografica.

Le reti metropolitane (MAN, Metropolitan Area Network) sono circoscritte

all’area di una città, come ad esempio le reti dei telefoni cellulari.

Le reti geografiche (WAN, Wide Area Network) sono distribuite su aree

molto vaste; alcune parti della rete possono essere connesse tramite cavi, altre

tramite microonde e trasmissioni satellitari. Tipiche reti geografiche sono quelle

telefoniche, ma probabilmente la rete più ampia in assoluto è Internet, che collega

non solo le reti locali ma anche altre reti geografiche.

77

Le reti pubbliche

Molte reti geografiche, create di norma per un uso aziendale, sono private,

vale a dire che vi possono accedere soltanto i dipendenti dell’azienda, i clienti e i

venditori autorizzati. Altre invece sono pubbliche, ossia aperte a chiunque paghi

la tariffa prevista per la connessione. Visti gli elevati costi che l’installazione di

una rete geografica privata comporta, sono ben poche le organizzazioni che ne

possiedono una integralmente. Nella gran parte dei casi infatti, le reti di questo

tipo si appoggiano alle reti pubbliche delle compagnie telefoniche o di altri

operatori commerciali che forniscono servizi legati alle telecomunicazioni.

In alcuni casi, le aziende noleggiano alcune linee, in modo da assicurarsi una

costante capacità di trasmissione (cioè larghezza di banda) e il diritto di generare

una certa quantità di traffico senza subire ritardi. Ciò non esclude che altri clienti

dell’operatore che fornisce servizi possano utilizzare contemporaneamente quelle

stesse linee fisiche.

Le intranet

Molte compagnie utilizzano le tecnologie di Internet per realizzare una

propria intranet, cioè una rete limitata alle dimensioni dell’azienda e accessibile

soltanto ai dipendenti e ad altri utenti autorizzati. Una intranet non serve solo per

far circolare i documenti all’interno della compagnia, ma anche per permettere

agli utenti di condividere programmi, basi di dati e dispositivi hardware. Queste

reti utilizzano lo stesso linguaggio (cioè gli stessi protocolli di comunicazione), gli

stessi programmi e i dispositivi di Internet, ma sono di norma inaccessibili agli

utenti della Rete, perché protette da speciali barriere difensive denominate

firewall.

I firewall

Il pannello metallico che separa l’abitacolo dell’auto dal motore è chiamato

firewall (tagliafuoco) perché ha la funzione di impedire che un eventuale incendio

al motore invada la cabina passeggeri. Lo stesso concetto è stato ripreso nel

campo delle reti informatiche per impedire agli utenti di Internet non autorizzati di

accedere ai file e ai programmi di una rete locale. Quando un computer collegato

78

a Internet è connesso anche a una intranet, viene dotato di un sistema firewall che

rende la rete locale inaccessibile dall’esterno. I fruitori della rete locale hanno

libero accesso alle risorse di Internet ma non possono fornire né servizi di Internet

né di intranet agli utenti esterni al firewall. Se un’azienda intende fornire dei

servizi interattivi deve installare un server gestore di dati al di fuori del firewall.

In questo modo i servizi di posta elettronica e di informazione, le mailing list, etc.

diventano servizi store-and-forward a cui gli utenti esterni possono accedere senza

oltrepassare la barriera del firewall.

Internet

Internet oggi collega tra di loro centinaia di milioni di computer e di utenti.

Si prevede che nel volgere di pochi anni la maggior parte della popolazione

terrestre avrà la possibilità di accedere ed utilizzare Internet. La nascita di Internet

infatti risale ai primi anni ottanta mentre la sua applicazione più popolare - il

World Wide Web - vede la luce soltanto agli inizi degli anni novanta.

Ma qual è la catena di eventi che ha portato alla genesi di questa idea

rivelatasi poi così rivoluzionaria? Quali personaggi hanno contribuito a far sì che

dal computer di casa nostra fosse possibile raggiungere informazioni poste in ogni

parte del mondo con un semplice click del mouse?

Come nel caso della conquista della luna, anche la nascita di Internet trova il

terreno adatto in cui svilupparsi nella sfida tecnologico-militare tra sovietici e

americani che risale agli anni della guerra fredda, un periodo di tensione

internazionale che nasce alla fine della seconda guerra mondiale - con la

spartizione del mondo in due blocchi contrapposti - e termina soltanto nel 1989

con la caduta del muro di Berlino. Durante il 1957 i sovietici mettono in orbita il

primo satellite artificiale della storia, lo Sputnik.

Fig. 50 – Lo sputnik, il primo satellite artificiale

79

Questo evento, al di là della sua enorme importanza tecnica, genera una sorta

di choc tecnologico nel mondo occidentale che fino ad allora aveva basato le sue

certezze sulla supremazia tecnologico militare americana. Infatti un’ ovvia

ricaduta bellica di questo lancio era rappresentata dal fatto che una atomica

sovietica poteva disporre di un vettore in grado di farle raggiungere facilmente un

obiettivo posto in qualsiasi parte del mondo.

L’agenzia ARPA

Le risposte dell’amministrazione USA al lancio dello Sputnik da parte dei

sovietici non si fanno attendere e nel 1958, con lo scopo di coordinare i

finanziamenti per la ricerca tecnologica con ricadute belliche, approva la

costituzione dell’ARPA - Advanced Research Projects Agency – con sede a

Washington, nell’edificio del Pentagono.

Gli interessi dell’agenzia ARPA ben presto si rivolgono alla telematica,

mentre alla neonata NASA, come ben sappiamo, viene affidata la guida della

ricerca aereospaziale.

Lo scopo dell’ARPA, e di conseguenza anche delle principali industrie legate

alla difesa, si concentra su una delle questioni principali che preoccupano in

quegli anni gli Stati Uniti: come impedire che un possibile attacco atomico

interrompa del tutto le comunicazioni nel paese gettando l’America nell’anarchia.

Semplificando, possiamo vedere il problema in questi termini: se una grossa

centrale telefonica viene distrutta tutte le comunicazioni via telefono che la

attraversano sono interrotte. Di conseguenza è sufficiente interrompere i nodi

principali di una rete telefonica per isolare l’intera rete e impedire lo scambio di

informazioni nel paese.

La trasmissione dei dati a pacchetti

Già all’inizio degli anni sessanta, un ingegnere di nome Paul Baran,

dipendente di una industria bellica - la Rand Corporation - trova una interessante

soluzione teorica al problema di come creare una rete di comunicazioni che non

fosse così fragile. L’idea è quella di costruire molti collegamenti alternativi tra

80

due qualsiasi punti in comunicazione. In questo modo, anche se molti di questi

collegamenti vengono improvvisamente a mancare, è sempre possibile trovare una

via di comunicazione percorribile.

Oltre all'idea di una rete decentrata e ridondante, Baran ha un'altra intuizione

geniale: piuttosto che inviare tutto il messaggio su un unico percorso, perché non

dividere questo messaggio in tante piccole parti e fare seguire ad ognuna di queste

la sua strada verso la destinazione? In questo modo, se un percorso si interrompe

mentre trasmettiamo un messaggio, solo un pezzetto – o un pacchetto come si

direbbe oggi - andrà perso, mentre le altre parti del messaggio sceglieranno strade

alternative per giungere a destinazione e potranno quindi essere recuperate e

ricomposte. Considerate che l’idea di dividere un messaggio in tanti pacchetti di

dati indipendenti, chiamata attualmente packet switching, è tuttora alla base dei

protocolli per l’invio di messaggi in rete.

Il progetto Arpanet

La prima realizzazione pratica di un sistema di comunicazione tra computer

basato sulla trasmissione di pacchetti di dati prenderà corpo solo nel 1966, quando

un ingegnere dell’agenzia ARPA, Bob Taylor, propone al suo direttore un

progetto che riguarda la costruzione di una rete di comunicazione tra i computer.

Ovviamente su questo progetto si riversano molte delle idee originariamente

concepite da Paul Baran.

Le specifiche tecniche del progetto sono affidate ad un brillante informatico

di nome Larry Roberts che guiderà per primo la realizzazione del progetto

chiamato Arpanet. Un progetto che, nel volgere di pochi anni, porterà alla nascita

di Internet.

Il 1969 viene spesso ricordato come l’anno dello sbarco sulla luna. Ma nello

stesso anno accade un altro avvenimento molto importante per Internet: nel 1969

infatti vede la luce il primo nucleo di Arpanet che collega tra loro quattro

università americane.

81

Fig. 51 – Il primo nucleo di Arpanet

Negli anni successivi questo embrione si espande fino a collegare una

quarantina di nodi. Ma l'applicazione che forse ha la maggiore influenza

nell'evoluzione successiva della rete nasce per caso, nel marzo del 1972. Un

ingegnere chiamato Ray Tomlinson, per scambiare opinioni con i suoi colleghi

delle altre università installa su Arpanet un semplice sistema di messaggistica su

computer. E’ appena nata la posta elettronica e per la prima volta compare il

famoso simbolo a chiocciola, divenuto in seguito sinonimo di Internet.

La nuova applicazione riscuote un enorme successo tra i ricercatori e

l’attuale direttore scientifico del progetto ARPA, Bob Kahn, spinto da questo

entusiasmo, organizza nello stesso 1972 la prima dimostrazione pubblica.

Da Arpanet a Internet

La dimostrazione pubblica di Arpanet alla International Conference on

Computer Communications del 1972 sulle potenzialità della connessione in rete di

quattro computer ebbe un successo oltre ogni aspettativa. Negli anni successivi

infatti questo primo embrione di Arpanet si espande sempre di più sul territorio

americano e contemporaneamente iniziano a svilupparsi numerose altre reti di

computer indipendenti e più economiche che collegano tra loro università e centri

amministrativi.

La nuova idea che nasce verso la metà degli anni settanta quindi è quella di

creare un sorta di super rete che colleghi tra loro tutte le reti di computer esistenti,

in poche parole Internet. Ma per ottenere questo risultato non basta connettere

fisicamente queste reti di computer tra loro, occorre innanzitutto definire un

linguaggio comune che consenta a tutti i computer di capirsi. Ed è con questo

82

obbiettivo che Cherf e Kahn elaborano le specifiche di un nuovo protocollo per

comunicare su Internet, e lo battezzano Transmission Control Protocol o TCP.

I risultati di questo lavoro vengono pubblicati nel 1974 e l’anno successivo il

nuovo protocollo viene diviso in due parti: il TCP, che gestisce i pacchetti di dati,

e l’IP, che ne regola la trasmissione. E in questa forma questo protocollo

sopravvive ancora oggi e rappresenta il linguaggio universale su cui poggia il

funzionamento di Internet.

Solo nel 1982 però l’uso di questo fondamentale protocollo, il TCP-IP, viene

imposto a tutti i nodi di Arpanet, e la sua diffusione nel mondo si espande a

macchia d’olio. In gran parte dei paesi occidentali, infatti, la possibilità di

connettere reti locali di computer in un'unica Internet mondiale stimola la nascita

di molte nuove reti locali di computer che, grazie al TCP-IP, sono in grado di

comunicare con tutte le altre reti di computer già esistenti e connesse ad Internet.

A questo punto le nuove reti di comunicazione hanno ormai soppiantato la

vecchia Arpanet che ha esaurito la sua funzione propulsiva.

Il protocollo TCP-IP

Internet è una sorta di meta-rete costituita da molte reti telematiche connesse

tra loro. Non ha importanza quale sia la tecnologia che le unisce: cavi, fibre

ottiche, ponti radio, satelliti, o altro. Non è neanche rilevante di che tipo siano i

computer connessi: dal piccolo personal computer al grosso elaboratore, o

mainframe. Punto di forza di Internet, e motivo del suo velocissimo espandersi, è

la sua capacità di “parlare” un linguaggio universale, adatto alla quasi totalità

degli elaboratori esistenti.

Per definire questo linguaggio bisogna considerare che i computer, come

noto, possono usare sistemi operativi, codici di caratteri, strutture di dati spesso

incompatibili tra loro. Per permettere la comunicazione tra l'uno e l'altro è

necessario quindi definire un insieme di regole condivise da tutti i computer.

Questa funzione, nell'ambito della telematica, viene svolta dai protocolli.

Un protocollo di comunicazione definisce le regole comuni che un computer

deve conoscere per elaborare e inviare i bit attraverso un determinato mezzo di

83

trasmissione fisica verso un altro computer. Un protocollo dunque deve

specificare in che modo va codificato il segnale, in che modo far viaggiare i dati

da un nodo all'altro, in che modo assicurarsi che la trasmissione sia andata a buon

fine, e così via.

Nel caso di Internet, l'insieme di protocolli che permettono il funzionamento

di questo complesso sistema di comunicazione telematico, viene comunemente

indicato con la sigla TCP/IP, che è un acronimo per Transmission Control

Protocol/Internet Protocol.

Gli indirizzi su Internet

Per fare in modo che la comunicazione tra due computer su Internet vada a

buon fine, oltre ad un protocollo comune è necessario che ogni singolo computer

abbia un indirizzo univoco, che lo identifichi senza alcuna ambiguità, e che

indichi la via per raggiungerlo tra i milioni di suoi simili presenti sulla rete.

A questo fine ogni computer presente su Internet è dotato di un indirizzo

costituito da una sequenza di quattro numeri, da 0 a 255, separati da un punto

come ad esempio

141.250.60.18

Per capire la logica con cui è composto questo indirizzo pensate a quando

scriviamo un indirizzo su una lettera:

Perugia, Via Verdi, n.60, Paolo Rossi

In questo indirizzo ci sono quattro informazioni: la città, la via, il numero

civico e un nome. Ognuno di questi campi corrisponde ad una comunità sempre

più ristretta fino ad individuare una singola persona con il suo nome e cognome.

Per comporre un indirizzo in Internet invece che di comunità di uomini si

parla di comunità di computer, ovvero di reti e sotto-reti, fino ad arrivare alla fine

dell’indirizzo il singolo computer chiamato host.

84

Fig. 52 – Il Router o Gateway

Ognuna di queste sotto-reti, che usualmente vengono chiamate domini,

dispone di un gateway o router, che si incarica di spedire e di ricevere i pacchetti

di dati che provengono dal suo dominio.

Per indirizzare un pacchetto di dati quindi il computer usa un IP Address,

composto da quattro campi numerici:

141 . 250 . 60 . 18

Perugia - Via Verdi - n.60 - Paolo Rossi

Nel caso del nostro esempio, 141 indica l’indirizzo del dominio-città di

Internet. Il secondo numero, il 250, indica il dominio-strada, mentre il 60 indica il

dominio-n.civico e il 18 rappresenta il nome e cognome del singolo computer.

Fortunatamente Internet usa un sistema chiamato DNS - ovvero Domain Name

Service - per trasformare l’indirizzo numerico usato dai computer in qualcosa di

più comprensibile ad un uomo.

Attraverso il DNS ogni host di Internet può essere dotato di un nome

(domain name). È evidente che per un utente utilizzare dei nomi simbolici è molto

più semplice e intuitivo che maneggiare delle inespressive sequenze di numeri. Ad

esempio, all’host 141.250.60.18 corrisponde il seguente nome:

orione.med.unipg.it.

85

Ricordate quindi che dietro ad ogni indirizzo che vedete su Internet e nel

Web si nasconde un IP address numerico come quello che abbiamo visto.

Computer clienti e computer fornitori

Nei collegamenti Internet c’è un computer cliente ( client ) che chiede delle

informazioni e un computer fornitore ( server ) che li mette a disposizione.E’

proprio su questo principio, chiamato architettura client-server, che si basano

tutte le applicazioni usate su Internet.

Fig. 53 – Client e Server

Il World Wide Web

Il WWW, la più nota applicazione usata su Internet, nasce al CERN, il più

grande centro di ricerca europeo sulla fisica delle particelle elementari, dove

lavorano fisici di tutto il modo che usano quotidianamente la Rete per tenersi in

contatto e scambiarsi opinioni.

E proprio per migliorare questo tipo di comunicazioni un ricercatore di nome

Berners-Lee, nel 1990, propone ai suoi superiori un nuovo modo di utilizzare

Internet che chiama World Wide Web. Al di là del nome, la cosa più interessante

che si può notare nel progetto di Barners-Lee è che in questa proposta sono già

presenti tutte le idee guida che ancora oggi caratterizzano il Web. La prima regola

del Web è che i suoi documenti devono essere scritti in un particolare formato

chiamato ipertesto. In parole povere questo significa che tra le parole del testo

potranno essere inseriti dei riferimenti – link in inglese – ad altri documenti

presenti nel Web. Quando l’utente seleziona uno di questi riferimenti, il

86

documento corrispondente viene richiesto sul Web e visualizzato sul computer

dell’utente.

Questa proprietà delle pagine ipertestuali, pur essendo concettualmente

semplice, ha comportato una vera e propria rivoluzione nel modo di intendere una

rete di calcolatori. Prima dell’ipertesto, infatti, tutto quello che poteva fare

l’utilizzatore di Internet era ricevere o inviare un documento su un altro computer

collegato in rete. Dopo l’ipertesto, tutti i documenti presenti nel Web sono legati

tra di loro da un immensa ragnatela di collegamenti, gli ormai famosi link.

L’utente, seguendo questi link, è in grado di spostarsi istantaneamente da un

documento all’altro attraverso Internet.

Fig. 54 – Collegamenti ipertestuali tra pagine Web

Ricapitolando, quando si fa un click su una di queste parole chiave il browser

automaticamente preleva dal Web la pagina indicata dal riferimento e ce la

mostra, e come avete visto curiosando nel Web, usando la multimedialità, una

pagina può contenere non solo testo scritto ma anche immagini, suoni, filmati e

animazioni. La seconda idea che sorregge il Web è quella di definire un apposito

programma, il browser, che consenta di visualizzare gli ipertesti contenuti nel

World Wide Web.

Questo programma rappresenta qualcosa di completamente nuovo rispetto a

tutto quello che fino ad allora si era visto su un computer. Il browser infatti

rappresenta una sorta di finestra aperta sul mondo del Web e quindi deve essere in

grado di visualizzare non solo testi scritti ma anche immagini, filmati e perfino

suoni. Deve essere un programma multimediale nel senso più ampio del termine e

inoltre deve poter funzionare su qualsiasi tipo di calcolatore utilizzabile in

Internet.

87

I primi esempi di browser che vengono rilasciati gratuitamente dal CERN

sono dei primi anni novanta. La grande svolta avviene nel 1993 quando Marc

Andressen e Eric Brina dell’Università dell’Illinois sviluppano e distribuiscono

gratuitamente Mosaic, il primo browser con un interfaccia grafica, che consente di

visualizzare il contenuto di una pagina Web in modo molto simile a quello attuale.

Questo programma semplice e intuitivo avvicina finalmente alla rete molti nuovi

utenti incuriositi dalle possibilità aperte dal ciberspazio. Da quel momento inizia

l’esplosione del World Wide Web così come lo conosciamo oggi.

Collegarsi a Internet

La connessione tra un computer e Internet generalmente non avviene in

modo diretto. Per collegarsi alla rete infatti il nostro computer si mette in

collegamento, tramite il telefono, con un altro computer, quello del provider. Il

provider, o fornitore di connettività, è un po’ la nostra porta di accesso alla rete:

dispone infatti di un computer sempre acceso e sempre collegato a Internet,

attraverso veloci linee dedicate.

Fig. 55 – Collegamento ad Internet tramite provider

Quando il nostro computer ‘telefona’ al computer del provider, ne diventa un

po’ un’appendice, e sfrutta le sue linee per ricevere informazioni da tutto il resto

della rete.

88

Fino a poco tempo fa l’unico modo possibile per connettersi ad un provider e

navigare in rete era quello di utilizzare un modem, un piccolo dispositivo che

collega fra loro computer e linea telefonica.

Da qualche tempo, però, la situazione è diventata un po’ più complicata

SISTEMA INFORMATIVO OSPEDALIEROSISTEMA INFORMATIVO OSPEDALIERO

ROUTER

ROUTER

ROUTER

MAN / WAN

BI 1999

P.O. POLICLINICO P.O. SILVESTRINI

Via COTANI

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 56 – Esempio di collegamento utilizzando linee telefoniche

perché, anche limitandosi a considerare solo il collegamento telefonico, i possibili

modi di connettersi in rete sono diventati ben tre, ognuno con i suoi vantaggi e

svantaggi in termini di prestazioni e di costo. A complicare ulteriormente la

questione c’è il fatto che ognuna delle tre modalità di connessione richiede un suo

dispositivo particolare per essere utilizzata.

Ma vediamo quali sono e come si chiamano questi tre tipi di modalità per la

connessione:

• Modem (collegamento analogico, linea commutata).

• ISDN (collegamento digitale)

• ADSL (collegamento digitale)

89

Modem

Per chi ha iniziato da poco a navigare nel Web il modo più semplice per

connettersi ad Internet rimane tuttora quello di usare un modem. Questo

dispositivo si collega direttamente alla presa del telefono, esattamente come una

segreteria telefonica. Esistono due tipologie di modem, quelli esterni al computer

e quelli interni. I computer portatili sono oggi già forniti di un modem interno

pronto ad essere collegato ad una linea telefonica. Un modem esterno ha solo il

vantaggio di poter essere utilizzato su più computer collegandolo alla loro porta

seriale RS232.

Parlando di costi, se il provider che utilizziamo si trova nel nostro distretto

telefonico, usare il modem per connettersi ad Internet costa esattamente come

telefonare ad un vicino di casa. Quindi il costo della connessione dipenderà dalla

sua durata e dalle tariffe della compagnia telefonica che abbiamo scelto di

utilizzare. I limiti del modem invece sono essenzialmente due:

• scarsa velocità di trasferimento dei dati con il provider (causa principale

dei lunghi tempi d’attesa per ricevere le pagine Web);

• quando ci si connette ad Internet usando un modem, si isola la linea

telefonica, se si dispone di una linea telefonica tradizionale.

ISDN e ADSL

Sia la rete ISDN, acronimo di Integrated Services Digital Network, che

quella ADSL, acronimo di Asymmetric Digital Subscriber Line, permettono la

trasmissione di dati in forma digitale e garantiscono quindi una velocità molto

maggiore di quella del modem analogico.

Trasmissione in forma digitale significa che il segnale usato dal computer

non viene modulato secondo una determinata onda sonora, come nel caso del

modem, ma codificato e inviato lungo la linea come una lunga sequenza di zero e

uno. Le tre caratteristiche principali di ISDN sono:

90

• elevata velocità di trasmissione, pari a 64 Kbit al secondo per canale (ossia

1 Mb ogni 2 minuti o 70 pagine di documenti solo testo via fax al minuto);

in termini pratici i tempi di attesa si riducono di un fattore 5 rispetto al

modem;

• si può usare la linea telefonica mentre si è connessi ad Internet;

• costi di utilizzo accessibili.

La tecnologia ADSL è l’ultima arrivata e rappresenta una grande novità nel

mondo delle connessioni ad Internet per i seguenti motivi:

• si è sempre connessi alla Rete; non serve chiamare il provider ad ogni

connessione e non si pagano le singole telefonate ma una spesa forfettaria

mensile;

• potenzialmente ha una enorme velocità di connessione, fino a 640 Kbit al

secondo ovvero fino a 10 volte più veloce di ISDN;

• si può usare la linea telefonica mentre si è connessi ad Internet.

Queste nuove connessioni veloci sono ormai accessibili alla massa degli

utenti della Rete e questo ha comportato la vera rivoluzione sulle capacità

multimediali del Web.

91

SISTEMA INFORMATIVO OSPEDALIERO

Un Sistema Informativo Ospedaliero (SIO) o Hospital Information System

(HIS) ha lo scopo di gestire in modo unitario, le sempre più numerose

informazioni prodotte dai vari settori assistenziali, amministrativi e gestionali di

un ospedale.

In realtà solo pochi sistemi riescono ad assolvere compiutamente questa

funzione; di solito gli aspetti più curati sono quelli amministrativi, mentre

raramente l’HIS si fa carico della gestione integrata di procedure diagnostiche,

terapeutiche e riabilitative.

In pratica, la maggior parte dei sistemi ad oggi installati, sono

prevalentemente orientati a finalità amministrativo-finanziarie e rivestono scarsa

utilità sul piano sanitario.

I contenuti informativi gestiti da un HIS possono essere raggruppati in tre

principali classi di dati rispettivamente riferiti a:

1. pazienti (anagrafica, storia amministrativa e clinica, etc.),

2. attività (giorni di ricovero, esami diagnostici etc.)

3. risorse (personale, attrezzature etc.).

Questi insiemi di dati, vengono utilizzati a livello:

1. operativo, per assistere il personale sanitario ed amministrativo nello

svolgimento dell’attività quotidiana;

2. gestionale, per pianificare l’organizzazione delle attività e analizzare il

lavoro svolto;

3. di coordinamento e supervisione, per ottenere informazioni globali.

L'integrazione delle informazioni tra sistemi informativi ospedalieri di tipo

gestionale, apparati elettromedicali e strumenti di diagnostica è una delle strade

fondamentali da percorrere per fornire una migliore assistenza sanitaria ai pazienti

e a tutti gli utenti dei servizi ospedalieri. Nel mondo della sanità l'integrazione tra

sistemi è un problema, per le dimensioni e per le specificità di questo settore,

molto complesso e articolato, e la strada per raggiungere pienamente questo

92

obiettivo è ancora lunga. Attualmente negli ospedali esistono numerosi sistemi

informativi distinti, che gestiscono i dati anagrafici e clinici del paziente e le

immagini diagnostiche. Tra questi sistemi, i principali sono rappresentati dal

software di gestione del CUP (centro unico prenotazioni), dalla gestione degenze

(ADT), dai sistemi di cassa, cui si aggiungono sistemi dipartimentali, quali PACS

e RIS (ovvero Sistema di Archiviazione e Comunicazione delle Immagini

Radiologiche e Sistema Informativo Radiologico), e sistemi di supporto della

piattaforma amministrativa per la gestione di contabilità, approvvigionamenti,

magazzino, farmacia, manutenzione, e le altre attività ‘gestionali' di un ospedale.

Questi sistemi necessitano di condividere informazioni, ma, pur utilizzando

protocolli standard di comunicazione, spesso non sono in grado di scambiarsi dati,

perché gli standard possono presentare conflitti interpretativi e libera scelta di

opzioni.

Nel 1997, per superare questi problemi, la Direzione Bioingegneria operò una

dettagliata analisi del modello organizzativo e informativo dell’Azienda

Ospedaliera di Perugia e sulla base di questa analisi progettò un nuovo modello di

Sistema Informativo Ospedaliero.

Sistema Informativo Ospedaliero

ANAGRAFE DEGLI ASSISTITI

CARTELLE CLINICHE

AMMINISTRAZIONE

AMBULATORIODAY HOSPITAL

LAB. ANALISI

PACSRISREPARTI

ACCETTAZIONE

CUP

PRONTO SOCCORSO

SISTEMA INFORMATIVOOSPEDALIERO

SIS SISTEMA INFORMATIVO SANITARIO

SIO (HIS)

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 57 – SIO integrato dove il fulcro è l’Anagrafe degli assistiti

Il fulcro del modello d’informatizzazione è basato su due punti essenziali:

93

� anagrafe degli Assistiti quale punto di integrazione fra i vari sottosistemi

del Sistema Informativo Ospedaliero e contestualmente quale nodo di

congiunzione con il Sistema Informativo Sanitario Regionale (Figura 57);

� identificazione del paziente al momento del suo ingresso in ospedale.

Il nuovo modello rappresentato schematicamente in Figura 58 prevede la

produzione di un codice durante la procedura di accettazione ospedaliera del

paziente. Tale codice lo accompagnerà per tutto il suo percorso diagnostico-

terapeutico sia questo ricovero, day-hospital o ambulatorio. Ciò è reso possibile se

si prevede l’accettazione del paziente (ADT) direttamente da Reparto per la

degenza programmata, o dal Pronto Soccorso per le urgenze. Questo codice

univoco ci permette di automatizzare compiutamente il Laboratorio di Analisi ed i

vari settori diagnostici, di velocizzare il processo diagnostico e di evitare inutili

duplicazioni di archivi. Un ulteriore obiettivo è di mettere in condizione i Reparti

di collegarsi direttamente al Laboratorio di Analisi, alle Radiologie, alla Farmacia,

al Magazzino ed ai Servizi vari (Dietetico, manutenzioni, etc.) per richiedere

prestazioni, servizi e ricevere in tempo reale referti, immagini ed informazioni

utili alla loro gestione. Questo modello informativo offre la possibilità di

raccogliere contemporaneamente informazioni, in modo codificato ed

informatizzato, utili al Controllo di Gestione, alla Contabilità e alla Direzione

Sanitaria.

In particolare il progetto aveva l’obiettivo di stabilire riferimenti generali,

criteri e standard di base ormai ben consolidati, con la finalità di costruire un

sistema Informativo Ospedaliero aperto, modulare e scalabile con gradualità ed

inoltre superare il concetto di HIS, RIS, PACS, rete per l’emergenza, ADT, etc.

come sistemi separati e di vedere il Sistema Informativo Sanitario come un

sistema integrato e distribuito.

94

Sistema Informativo Ospedaliero - (HIS)

ADT

ADT

PRONTO SOCCORSO

REPARTO DIMISSIONE

Prenot. Ambulat. o Day Hospital

PAZIENTE

R

I

S

LAB

FUNZIONALI

CARTELLA

MAGAZZINO

FARMACIA

FATTURAZ.

ANALISI

ESAMI

CLINICA

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 58 – Possibili percorsi dei dati del paziente e delle attività assistenziali connesse

Oggi, nell’Azienda Ospedaliera di Perugia, molte procedure sono operative e

fra loro integrate, come ad esempio l’ADT da reparto, il Pronto Soccorso, il 118,

il Sistema RIS-PACS (che descriveremo successivamente), la trasmissione e

refertazione remota dei tracciati ECG, l’informatizzazione automatizzata dei

Laboratori di Analisi, non ultimo l’informatizzazione delle Sale Operatorie che

permetteranno non solo agli specialisti di settore di operare in diretta con

l’esterno, trasmettendo/ricevendo suoni ed immagini, ma anche di svolgere in

diretta dalla sala operatoria lezioni volte a studenti e specializzandi raccolti nelle

sale di videoconferenza già predisposte.

Attualmente, per realizzare un'efficace integrazione fra i vari sistemi, è

necessario definire e utilizzare standard di comunicazione; quelli maggiormente

coinvolti nei SIO sono: DICOM3 per l'imaging, ASTM nell'area dei laboratori e

HL7 per le informazioni sanitarie (Anagrafiche, anamnestiche, etc.).

95

HL7HL7

DICOM 3.0 DICOM 3.0

Lo StandardOSI

Lo StandardOSI

SESSIONE

COLLEGAMENTO

RETE

PRESENTAZIONE

TRASPORTO

Gli Standard

FISICO

APPLICAZIONE

Health Level Seven

Digital Imaging andCommunication in Medicine

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 59 – I più diffusi Standard di Comunicazione nei Sistemi Informativi Ospedalieri

Piano di sicurezza e riservatezza

Nella progettazione dei Sistemi Informativi Ospedalieri particolare

attenzione deve essere riservata al problema della sicurezza.

E’ indispensabile garantire l’inviolabilità delle risorse del SIO, e quindi delle

informazioni messe a disposizione degli operatori sanitari attraverso la rete e le

tecnologie informatiche, in particolare:

• la segretezza (la necessità di mantenere segreti alcuni dati);

• l’integrità (i dati non devono essere modificati da soggetti esterni o non

autorizzati);

• la disponibilità (stabilire l’utenza che può accedere alle informazioni).

96

Attacchi a dati estremamente riservati, come possono essere quelli relativi a

referti medici e informazioni private sulla salute del singolo cittadino, devono

comunque essere evitati.

La difesa dell’inviolabilità deve essere garantita attraverso strumenti di

protezione quali:

• host security (rafforzare la sicurezza di ogni macchina in rete utilizzando

gli strumenti hardware e software disponibili);

• Network security (pianificare la struttura della rete in modo da poter

controllare con maggior efficienza sia l’accesso alle proprie macchine che

ai servizi che esse offrono).

Pur raggiungendo un elevato grado di sicurezza garantendo quelli che sono i

servizi tipici di rete come e-mail, ftp, telnet e server web non è possibile

comunque realizzare un sistema di protezione assoluto e quindi, per quelle reti che

necessitano di tecniche di protezione per proteggere dati estremamente riservati,

diventa indispensabile che la gestione e pianificazione sia svolta da strutture in

grado di monitorizzare gli accessi e neutralizzare tempestivamente i tentativi di

violazione.

97

INTRODUZIONE AI SISTEMI INFORMATICI IN RADIOLOGIA

I sistemi informativi, in genere, hanno la funzione di coordinare la raccolta,

la gestione, la presentazione e lo scambio di informazioni.

In un’organizzazione come un ospedale o più specificamente, un reparto di

radiologia, un sistema informatico ha il compito di ottimizzare il flusso delle

informazioni con il fine di aumentare l’efficacia e l’efficienza assistenziale.

Un sistema informatico è la componente automatizzata del sistema

informativo. Nell’accezione normale, si tende a sfumare le distinzioni tra sistema

informativo e sistema informatico, perché non sembra possibile che l’uno possa

esistere senza l’altro.

D’altra parte, un sistema informatico risulta del tutto inutile se non esiste

prima una corretta e precisa opera di raccolta dei dati; in molti casi la mancanza o

l’inesattezza delle informazioni è dovuta a inefficienze organizzative e non a

quelle del sistema informatico.

All’interno dell’ospedale, la radiologia è probabilmente il reparto dove si fa

maggior uso delle tecnologie avanzate; fra queste, l’informatica occupa un posto

di primo piano.

Focalizziamo ora l’attenzione sui principali compiti di un sistema

informativo in radiologia:

� acquisizione in formato digitale, delle immagini fornite dalle diverse

apparecchiature diagnostiche e dei dati ad esse associati;

� elaborazione ed archiviazione di informazioni relative ai diversi momenti

della storia clinica del paziente;

� condivisione in rete di tutte le informazioni di utilità clinica ed

amministrativa.

Per fare in modo che l’intero sistema digitale radiologico funzioni, HIS, RIS

e PACS, devono essere correlati in modo da unire testi, anagrafica ed immagini di

98

uno stesso paziente, ed è per questo che i sistemi vengono gestiti da server

dedicati, che associano i file che altrimenti non dialogherebbero tra loro.

R I S(Radiology Information System)

R I S(Radiology Information System)

P A C S(Picture Archiving Communication System)

P A C S(Picture Archiving Communication System)

H I SH I S

Magazzino

Prenotazione

Gestione Servizio

Diagnostica per Immagini

Statistiche

Refertazione

Gestione e Archiviazionedelle Immagini

Fig. 60 – Le principali funzioni svolte dal RIS e PACS

Sistema Informativo di Radiologia

Il RIS ha la finalità di contribuire alla raccolta, alla gestione e alla

presentazione delle informazioni prodotte nel reparto di radiologia.

Richiesta d’esame: l’arrivo in radiologia della richiesta d’esame, attiva i processi

del RIS, con la raccolta di una serie di informazioni amministrative e di interesse

clinico. Tra le informazioni di carattere amministrativo rientrano l’anagrafica del

paziente, il tipo di esame, l’operatore, la sala e la presenza di eventuali vincoli

temporali all’effettuazione dell’esame (urgente o di routine). La seconda classe di

dati raccolti in questa fase, è rappresentata dalle informazioni di interesse clinico,

che riguardano essenzialmente la ragione per la quale l’esame viene richiesto.

Tutti i dati sono forniti direttamente dal paziente o acquisiti da altri sistemi

informativi.

99

Gestione dell’agenda radiologica: l’aggiornamento dell’agenda avviene sulla

base delle risorse disponibili: sale, personale, apparecchi. Il RIS ricerca,

all’interno dell’archivio, l’eventuale presenza di dati precedenti riguardanti il

paziente in questione, utili per rilevare l’incompatibilità tra esami o segnalare

l’avvenuta esecuzione della prestazione richiesta. A seguito di tali operazioni

viene fissato un appuntamento e prodotto un foglio informativo, che sarà

consegnato al paziente o inviato al reparto, contenente la preparazione necessaria

per poter svolgere gli esami richiesti.

Le principali attività svolte da un reparto di Radiologia, dove il RIS ha un

ruolo fondamentale nella gestione del paziente a fini diagnostici, sono

sinteticamente descritte in Figura 61.

Pianificazione Layout ePianificazione Layout eAccettazioneAccettazione

Fase di EsecuzioneFase di Esecuzionedelldell ’’EsameEsame

Fase CulturaleFase Culturale

Archiviazione eArchiviazione eDistribuzioneDistribuzione

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 61 – Le principali attività svolte dal Reparto di Radiologia

utilizzando il RIS

La Figura 62 descrive in modo dettagliato tutte le fasi del processo

diagnostico, dalla prenotazione dell’esame alla distribuzione delle immagini con

relativo referto medico.

100

PrenotazionePrenotazioneComplessaComplessa

PrenotazionePrenotazioneC.U.PC.U.P

PianificazionePianificazioneDegentiDegenti

PreaccettazionePreaccettazione

Vidimazione ListeVidimazione Liste

AccettazioneAccettazione

Produzione DocumentaleProduzione Documentale

Esecuzione EsameEsecuzione Esame

Completamento EsameCompletamento Esame

RefertazioneRefertazione

Archiviazione e DistribuzioneArchiviazione e Distribuzione

Pianificazione del lavoro ePianificazione del lavoro elayout operativo delle sezioni diagnostichelayout operativo delle sezioni diagnostiche

IdentifIdentif . personale. personale

PACSPACS

PACSPACS

PACSPACS

PACSPACS

PACSPACS

FirmaFirma

GestGest . Magazzino. Magazzino

GestGest . Farmacia. Farmacia

WL di IntegrazioneWL di Integrazione

ProtezionisticaProtezionistica

StatisticaStatistica

PrePre--fetchfetch

Creazione WLCreazione WL

AcquisAcquis . Immagini. Immagini

PACSPACS Aggiorna WLAggiorna WL

VisualVisual . Immagini. Immagini

PACSPACS Aggiorna StatusAggiorna Status

LANLAN ––WANWAN --WEBWEB

Dati Dati AnagrAnagr . . ClinciClinci

Completa DatiCompleta Dati

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 62 – Le attività svolte dal Reparto di Radiologia

Accettazione: l’arrivo del paziente che si presenta per sottoporsi all’esame

diagnostico, fornisce un’ulteriore occasione per rivedere e/o integrare i dati

raccolti fino a quel momento. Una volta che l’esame è definitivamente

autorizzato, il RIS provvede all’accettazione del paziente (da distinguere da

quella allo sportello, che ha significato puramente amministrativo). Se le

apparecchiature diagnostiche digitali sono collegate con un RIS per mezzo di un

protocollo dedicato, definito dallo standard DICOM con il termine di “worklist

management”, l’immissione dei dati del paziente avviene automaticamente, senza

l’intervento dell’operatore.

101

Pianificazione Layout e accettazionePianificazione Layout e accettazione

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 63 – Documentazione prodotta durante l’accettazione del paziente

Esecuzione dell’esame: questa fase coincide con la produzione delle immagini

diagnostiche e le indicazioni associate.

Negli ultimi tempi si è affermata la tendenza a considerare i dati relativi alla

tecnica di acquisizione delle immagini, come parte integrante dell’intero esame.

Ulteriori informazioni riguardanti la tecnica d’esame, sono quelle di tipo

procedurale, come la posizione del paziente o l’eventuale uso e modalità di

somministrazione del mezzo di contrasto.

Se le immagini sono in formato DICOM, tali dati possono essere forniti al

RIS in modo diretto, senza l’utilizzo aggiuntivo di file, evitando la

frammentazione dello studio. Infatti lo standard prevede che in uno spazio

predefinito del file d’immagine (header), vi siano riportate informazioni di tipo

alfanumerico, che oltre all’anagrafica del paziente, includono anche indicazioni di

tipo tecnico e procedurale.

102

Fase di Esecuzione dellFase di Esecuzione dell’’EsameEsame

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 64 – Fase di esecuzione

Refertazione: dopo l’effettuazione dell’esame, la fase dell’interpretazione delle

immagini e della produzione del referto, viene assistita dal RIS con le seguenti

modalità:

1. compilazione di una lista che consenta di stabilire la priorità di

refertazione;

2. visualizzazione degli esami precedentemente eseguiti dal paziente;

3. visualizzazione dei referti degli esami precedenti archiviati in forma

elettronica.

Il referto di solito presenta una struttura di questo genere:

1. descrizione dell’esame effettuato;

2. codice dell’esame;

3. descrizione dei segni radiologici rilevati sull’immagine;

4. ipotesi diagnostica e diagnosi differenziale;

5. codifica diagnostica.

103

Anche nella parte più strettamente clinica (in figura 61 chiamata culturale), il

RIS può offrire un contributo nella compilazione del referto, grazie alla possibilità

di richiamare testi prememorizzati in funzione del tipo di patologia.

Per refertare l’esame, il medico Radiologo utilizza un sistema di refertazione

vocale. E’ sufficiente parlare su un microfono collegato al computer per trasferire

automaticamente, attraverso un software in grado di interpretare le parole del

radiologo, la refertazione vocale in un file di testo.

Fase CulturaleFase Culturale

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 65 – Fase di refertazione

Il medico Radiologo per firmare il referto utilizza la firma elettronica, che

tecnicamente avviene tramite una smart card personale, che inserita nell’apposito

lettore, firma elettronicamente il documento.

Archiviazione: per quanto riguarda l’archiviazione, il RIS provvede alla

conservazione dell’informazione testuale raccolta e generata nel corso del

processo diagnostico. Per l’archiviazione delle immagini, il sistema informatico

utilizzato è il PACS.

104

Fig. 66 – Lettore di smart-card utilizzato per la firma elettronica

Archiviazione e DistribuzioneArchiviazione e Distribuzione

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig.

67 – Fase di distribuzione

Generalmente il RIS mantiene per almeno un anno tutti i referti su memorie

“in linea”. La progressiva riduzione del costo delle memorie digitali, sta

determinando un progressivo abbandono dell’archiviazione fuori linea, con il

mantenimento di tutto l’archivio dei referti in linea.

105

Sistemi di Archiviazione e Comunicazione delle Immagini (PACS)

I PACS sono sistemi per l’archiviazione e la trasmissione di immagini. Le

immagini già in formato digitale vengono direttamente acquisite dalle diverse

modalità di imaging diagnostico, quali radiografie digitali, tomografia assiale

computerizzata, risonanza magnetica, angiografia digitale, medicina nucleare,

videoendoscopia, tomografia ad emissione di positroni, mammografia digitale,

etc. o immagini non digitali dopo essere state digitalizzate da apposite interfacce

(DICA, Direct Image Capture).

ImmaginiDigitali

ImmaginiDigitali

Tomografia Computerizzata (CT)

Tecnologie per l’Acquisizione delle Immagini

Risonanza Magnetica (NMR)

Angiografia Digitale (DA)

Ultrsuoni (US)

Medicina Nucleare (NM)

Videoendoscopia (VE)

Radiografia Digitale (DR)

Risoluzione spaziale: Matrici >= 512 x 512

Profondità: >= 8 bit/pixel

BioingegneriaBioingegneriaBioingegneriaBioingegneriaa.a.a.a.a.a.a.a. 2009/20102009/20102009/20102009/2010

Fig. 68 – Le principali tecnologie che producono immagini direttamente

digitali

A prescindere dalle dimensioni, un sistema PACS è costituito da più

sottosistemi che svolgono le seguenti funzioni:

1. acquisizione delle immagini, che include i sistemi di radiologia digitale come

RM, TAC, i digitalizzatori di pellicole e le interfacce verso le apparecchiature

standard di imaging tradizionali con uscita analogica;

106

2. visualizzazione ed elaborazione delle immagini, questa funzione permette di

visualizzare le immagini sulle varie workstations, sia quelle acquisite in tempo

reale nelle varie modalità, che quelle tratte dall’archivio centrale e di

migliorare la qualità dell’immagine e favorire l’analisi diagnostica;

3. stampa delle immagini, questa funzione permette l’invio delle immagini a

stampanti laser per la copia su pellicola;

4. gestione ed archiviazione, che richiede un DMS (Database Management

System - sistema di gestione di basi di dati) per gestire l’archivio delle

immagini e dei dati ad esse correlati. Il server PACS dapprima archivia le

immagini su una memoria temporanea e successivamente, a refertazione

conclusa, le trasferisce in maniera definitiva sul Juke box centrale;

5. comunicazione di rete, che connette tutti i componenti e permette il

trasferimento di dati e di immagini ai vari reparti e ospedali collegati e, dove

necessario, la comparazione di immagini provenienti da diverse diagnostiche.

Fig. 69 – Jukebox di Archiviazione

Teleradiologia

La teleradiologia rappresenta lo sviluppo tecnologico più recente in ambito

sanitario. Con questa modalità informatica si possono trasmettere immagini

radiologiche, da un sito ad un altro, utilizzando una rete metropolitana (MAN) o

107

geografica (WAN) a differenza di quella utilizzata all’interno del reparto o di un

ospedale (LAN).

Nello specifico, la teleradiologia ha lo scopo di permettere la diagnosi a

distanza (telediagnosi) di esami eseguiti in altra sede.

In altre parole il sistema, ad esempio, permette ad un medico neuroradiologo

che sta svolgendo il suo lavoro nell’ospedale di Perugia di ricevere immagini di

esami neuroradiologici di un paziente traumatizzato inviategli da un collega di

Città di Castello che richiede una consulenza specialistica neuradiologica. In

tempo reale il neuroradiologo analizza le immagini, richiede eventuali nuove

proiezioni, compila il referto e lo trasmette via rete al collega di Città di Castello.

Una volta constatata l’affidabilità delle immagini (ovvero che quelle in

ricezione siano qualitativamente le stesse di quelle in trasmissione) e verificata la

velocità di trasmissione, si può affermare con certezza, che la teleradiologia

garantisce una maggior efficienza diagnostica ed una maggiore efficacia

terapeutica, soprattutto per gli utenti che afferiscono a strutture sanitarie minori.

Vantaggi di una Radiologia Digitale

I benefici di una Radiologia Digitale rispetto ad una radiologia tradizionale

sono evidenti e rappresentano la miglior soluzione in termini di efficacia ed

efficienza assistenziale.

Infatti, un’accettazione più rapida grazie al RIS, la stampa di un esame solo

se necessario, la semplice e rapida archiviazione, la possibilità di trasmettere

immediatamente le immagini ed i relativi referti ai vari reparti od ospedali

collegati, la refertazione vocale effettuata direttamente dal medico radiologo,

riducono i tempi ed ottimizzano le attività di diagnosi con una evidente ricaduta

sul piano assistenziale.

Vengono quasi totalmente eliminati gli errori di impostazione del carico della

dose di radiazioni, grazie alla possibilità di elaborare in post-processing le

radiografie eseguite, evitando di esporre nuovamente il paziente alle radiazioni

ionizzanti.

108

L'INTELLIGENZA ARTIFICIALE

L'intelligenza artificiale è uno dei numerosi campi di dibattito teorico tra

scienziati e filosofi. Per intelligenza artificiale, spesso abbreviata in AI

(dall'inglese Artificial Intelligence), si intende generalmente la possibilità di far

svolgere ad un calcolatore alcune funzioni e alcuni ragionamenti tipici della mente

umana. Nel suo aspetto puramente informatico, comprende la teoria e la pratica

dello sviluppo di algoritmi che rendano le macchine (tipicamente i calcolatori)

capaci di mostrare un'abilità e/o attività intelligente anche se in domini molto

specifici.

L'espressione "Intelligenza Artificiale" è stata coniata dal matematico

americano John McCarthy in seguito ad uno storico seminario interdisciplinare

svoltosi nel New Hempshire nel 1956. Secondo le parole di Marvin Minsky, uno

tra i "pionieri" della I.A., lo scopo di questa nuova disciplina sarebbe stato quello

di "far fare alle macchine delle cose che richiederebbero l'intelligenza se fossero

fatte dagli uomini".

Tali attività e capacità comprendono:

� l'apprendimento automatico (machine learning), utile in contesti quale il

gioco degli scacchi

� la rappresentazione della conoscenza e il ragionamento automatico in

maniera simile a quanto fatto dalla mente umana

� la pianificazione (planning)

� la cooperazione tra agenti intelligenti, sia software sia hardware (robot)

� l'elaborazione del linguaggio naturale (Natural Language Processing)

� la simulazione della visione e dell'interpretazione di immagini, come nel

caso dell'OCR (Optical Chracter Recognition)

La domanda al centro del dibattito sull'intelligenza artificiale è

fondamentalmente una sola: "I computer possono pensare?".

Le risposte sono varie e discordi, ma perché abbiano un senso bisogna prima

determinare cosa significhi pensare. Ironicamente, nonostante tutti siano d'accordo

109

che gli esseri umani sono intelligenti, nessuno è ancora riuscito a dare una

definizione di intelligenza soddisfacente; proprio a causa di ciò, esistono due

principali branche in cui è suddiviso lo studio dell'AI:

� la prima, detta intelligenza artificiale forte, sostenuta dai funzionalisti,

ritiene che un computer correttamente programmato possa essere veramente

dotato di una intelligenza pura, non distinguibile in nessun senso importante

dall'intelligenza umana. L'idea alla base di questa teoria è il concetto che

risale al filosofo empirista inglese Thomas Hobbes, il quale sosteneva che

ragionare non è nient'altro che calcolare: la mente umana sarebbe dunque il

prodotto di un complesso insieme di calcoli eseguiti dal cervello;

� la seconda, detta intelligenza artificiale debole, sostiene che un computer

non sarà mai in grado di essere equivalente a una mente umana, ma potrà

solo arrivare a simulare alcuni processi cognitivi umani senza riuscire a

riprodurli nella loro totale complessità.

Rimanendo nel campo della programmazione "classica", basata su linguaggi

simbolici e lineari, in cui la grande velocità di calcolo dei processori moderni

supplisce alla carenza di parallelismo, sicuramente assume una posizione

dominante l'AI debole, in quanto si può facilmente constatare come un computer

elabori una serie di simboli che non comprende e si limiti ad eseguire i suoi

compiti meccanicamente.

Bisogna tuttavia riconoscere che, con la diffusione sempre maggiore di reti

neurali, algoritmi genetici e sistemi per il calcolo parallelo la situazione si sta

evolvendo a favore dei sostenitori del connessionismo.

A detta di alcuni esperti del settore, però, è improbabile il raggiungimento,

da parte di un computer, di una capacità di pensiero classificabile come

"intelligenza", in quanto la macchina stessa è "isolata" dal mondo, o, al massimo,

collegata con esso tramite una rete informatica, in grado di trasmettergli solo

informazioni provenienti da altri computer. La vera "intelligenza artificiale",

perciò, potrebbe essere raggiungibile solo da robot (non necessariamente di forma

umanoide) in grado di muoversi (su ruote, gambe, cingoli o quant'altro) ed

110

interagire con l'ambiente che li circonda grazie a sensori ed a bracci meccanici.

Spesso, difatti, anche nell'uomo, l'applicazione dell'intelligenza deriva da qualche

esigenza corporea, perciò è improbabile riuscire a svilupparne un'imitazione senza

un corpo.

Inoltre, finora, nel tentativo di creare AI, si è spesso compiuto un errore che

ha portato i computer all'incapacità di applicare il buonsenso e alla tendenza a

"cacciarsi nei pasticci". L'errore consiste nel non considerare a sufficienza il fatto

che il mondo reale è complesso e quindi una sua rappresentazione lo sarà

altrettanto. Non solo sarà complessa, ma sarà anche incompleta, perché non potrà

mai includere tutti i casi che il robot potrà incontrare. Perciò, o immettiamo nel

cervello artificiale una quantità enorme di informazioni corredate da altrettante

regole per correlarle (il che originerà, probabilmente, un vicolo cieco logico alla

prima difficoltà incontrata), oppure lo mettiamo in condizione di imparare. La

chiave dell'AI, sembra proprio essere questa: l'imitazione della sua analoga

naturale, tenendo ben presente l'importanza dei processi evolutivi nello sviluppo

delle caratteristiche morfologiche e comportamentali di un individuo e nella

formazione di ciò che viene definito "senso comune".

Vincenzo Tagliasco, ricercatore al Laboratorio integrato di robotica avanzata

presso la facoltà di Ingegneria dell'Università di Genova, ci fa notare che

nell'evoluzione delle macchine intelligenti si è cercato di saltare intere generazioni

di macchine più modeste, ma in grado di fornire preziosi stimoli per capire come

gli organismi biologici interagiscono con l'ambiente attraverso la percezione, la

locomozione, la manipolazione. Ora, per fortuna, c'è chi segue un approccio più

coerente: prima di insegnare a un robot a giocare a scacchi, è necessario

insegnargli a muoversi, a vedere, a sentire. Insomma, anche nel robot intelligente

occorre creare una "infanzia", che gli consenta di mettere a punto autonomi

processi di apprendimento e di adattamento all'ambiente in cui si troverà ad agire.

È necessario quindi riprodurre due evoluzioni parallele: una che da costrutti più

semplici porti alla produzione di macchine sempre più complesse e sofisticate,

un'altra, tutta interna alla vita del singolo automa, che lo faccia crescere

intellettualmente, dandogli modo di apprendere, da solo o sotto la supervisione

111

umana, le nozioni necessarie al suo compito ed alla formazione di un'autonomia

decisionale.

Questo modo di procedere e' sintetizzato in una discplina di recente sviluppo

come branca dell'IA. Stiamo parlando di Artificial Life - A.I., la cui prima

proposta si deve a Chris Langton. Comprendendo in tale disciplina la robotica

avanzata si può anche introdurre lo studio della robotica evolutiva.

L'intelligenza artificiale, continuando lungo le attuali direttrici di sviluppo,

diverrà sicuramente un'intelligenza "diversa" da quella umana, ma, probabilmente,

comparabile a livello di risultati in quei campi dove è necessario applicare

capacità di scelta basate su casi precedenti, nozioni generali e "ragionamento".

È invece molto difficile immaginare un computer in grado di filosofeggiare

ed esprimere concetti e dubbi riguardo l'origine o il senso della vita.

112

I SISTEMI ESPERTI

Il termine sistema esperto identifica una categoria di programmi informatici

che, dopo essere stati opportunamente istruiti, sono in grado di dedurre nuove

informazioni da un insieme di informazioni di partenza.

Un sistema esperto si fonda sulla competenza umana registrata nella

cosiddetta base di conoscenza (ad esempio sotto forma di regole), aggiornabile in

base all'esperienza. Come avviene per l'esperto umano, il sistema esperto può

operare su dati qualitativi e incompleti. Può infatti utilizzare forme di

ragionamento approssimato, attraverso tecniche probabilistiche o facendo ricorso

alla cosiddetta "fuzzy logic", reso spesso come logica sfumata, un tipo di logica a

più valori.

Ciò che rende diversi i sistemi esperti da altri algoritmi di intelligenza

artificiale è che un sistema esperto è sempre in grado di spiegare logicamente le

sue decisioni, mentre ciò non è vero per esempio nelle reti neurali.

I sistemi esperti si dividono in due categorie principali:

Sistemi esperti basati su regole

I sistemi esperti basati su regole ricevono in ingresso un insieme di

informazioni con le relative deduzioni e estraggono delle regole che, dato un

nuovo insieme di dati, dovrebbero permettere ai sistemi di estrarre le relative

deduzioni. Per esempio, l'insieme di dati di partenza potrebbe essere costituito dai

dati anagrafici di alcuni conducenti e le relative macchine di appartenenza. Le

deduzioni fornite sarebbero il grado di pericolosità come conducenti. Dato questo

insieme il sistema esperto sarebbe in grado di estrarre delle regole che classificano

gli utenti a seconda della loro pericolosità presunta.

Sistemi esperti basati su alberi

Un sistema esperto basato su alberi, dato un insieme di dati ed alcune

deduzioni, creerebbe un albero che classificherebbe i vari dati. Nuovi dati

verrebbero analizzati dall'albero e il nodo di arrivo rappresenterebbe la deduzione.

113

È da notare che un sistema esperto non è "intelligente" nel senso comune

della parola, ossia in modo creativo. Le deduzioni di un sistema esperto non

possono uscire dall'insieme di nozioni immesse inizialmente e dalle loro

conseguenze. Ciò che li rende utili è che, come i calcolatori elettronici, possono

maneggiare una gran quantità di dati molto velocemente e tenere quindi conto di

una miriade di regole e dettagli che un esperto umano può ignorare, tralasciare o

dimenticare. La forma di rappresentazione basata su regole di produzione è ideale

per un’area d’interesse in cui vi sia un’importante conoscenza empirica che debba

ancora essere codificata in una struttura formale e di principi. Questo è

sicuramente il caso del campo della diagnosi e del trattamento di infezioni di cui

si occupa Mycin.

Oltre alla possibilità d’integrare tipi diversi di conoscenza, si può elaborare

una miscela «povera» di fatti mediante l’aggiunta di un componente numerico, il

quale esprime il grado di relazione che si crede esista tra loro (fattore di certezza).

L’architettura del sistema di produzione e il sistema di considerazione

probabilistica si sono dimostrati di notevole successo per quanto riguarda il loro

utilizzo nella risoluzione di problemi diagnostici all’interno di aree d’interesse in

cui predomini la conoscenza empirica.

Vi sono tuttavia dei punti deboli.

In primo luogo, ad esclusione dell’albero di contesto, ogni struttura causale

all’interno della conoscenza codificata nelle regole di produzione non viene

esplicitamente rappresentata, e così non è né visibile all’utente né direttamente

disponibile per l’elaborazione.

Un secondo problema è che, mentre il semplice processo di ragionamento è

progettato per essere comprensibile ad un utente, non è finalizzato a modellare i

processi realmente adottati dagli esperti umani.

Il risultato è che approcci di questo tipo sono efficacissimi per delle diagnosi

all’interno di aree d’interesse ristrette e ben definite dove l’utente abbia già

un’idea ragionevole della soluzione. Sono meno efficaci nei casi in cui le

soluzioni siano molto complesse o l’utente stia lavorando con una relativa

ignoranza delle soluzioni possibili.