INFORMATICA
INFORMATICA
Hardware e software
Un calcolatore di solito è suddiviso in:
1. Hardware: il termine hardware indica la struttura fisica dei dispositivi, costituita da
componenti elettronici ed elettromeccanici che svolgono specifiche funzioni nel
trattamento e nella trasmissione delle informazioni;
2. Software: il termine indica il livello logico (in contrapposizione con quello fisico
dell’hardware), cioè l’insieme delle istruzioni che consentono all’hardware di
svolgere i propri compiti.
Il computer
È una macchina che elabora le informazioni attraverso una sequenza di tanti calcoli.
È un elaboratore/calcolatore elettronico digitale.
1. Elaboratore: è una macchina in grado di rappresentare ed elaborare dati in base ad
una serie di istruzioni (formulate e memorizzate in modo da poter essere eseguite
automaticamente).
2. Elettronico: indica che il computer utilizza componenti elettronici.
3. Digitale: indica che il computer elabora e memorizza informazioni rappresentate
mediante due simboli: 0 e 1 (con queste due cifre, usate in combinazioni diverse, si
possono rappresentare tutti i dati: parole, numeri, immagini, filmati ecc.).
Architettura di un calcolatore: Von Neumann
Lui era un matematico e il suo obiettivo era quello di creare una macchina che lo
aiutasse a effettuare i calcoli (equazioni difficili, integrali). Quindi inventò una
macchina con questo scopo (1945). Il modello che crea è chiamato “architettura di
Von Neumann”, che è formato da 4 sottosistemi: interfaccia, memorizzazione,
elaborazione e connessione/comunicazione. Il suo obiettivo era la realizzazione di un
calcolatore universale (general purpose). Il modello di Von Neumann è un modello
teorico, ma nella pratica questo diventa un modello fisico dove i 4 sottosistemi
assumono 4 terminologie specifiche:
1. Memoria centrale;
2. Unità centrale di elaborazione (CPU);
3. Interfacce di ingresso e uscita (o delle periferiche);
4. Bus.
La memoria centrale
Memorizza e fornisce l’accesso a dati e programmi (per “centrale” si intende
l’importante ruolo che essa svolge). Consiste in un insieme di unità elementari di
memorizzazione, dette locazioni o celle (o anche word)(ciascuna cella è individuata da
un indirizzo). La tecnologia utilizzata per la memoria centrale è quella dei dispositivi a
semiconduttori, che la fanno apparire come una matrice di bit (simboli 0 e 1) (ogni bit
è presente come stato (alto o basso) di tensione). È anche detta memoria ad accesso
casuale o Random Access Memory (RAM), perché qualsiasi cella può essere
letta/scritta in un tempo mediamente costante.
Le caratteristiche fondamentali della memoria centrale sono:
1. Accesso diretto all’informazioni (è immediato: non bisogna passare per altri
sistemi);
2. Velocità elevata;
3. Volatilità: quando il computer viene spento, i dati e i programmi presenti nella
memoria centrale vengono cancellati (i tipi di memorie chiamate “persistenti”
mantengono i dati anche senza l’alimentazione elettrica es. la memoria secondaria
come l’hard disk o la pendrive).
Il bus
Trasferisce dati e informazioni di controllo tra le componenti suddette. È paragonabile
ad un’autostrada a tre corsie la cui particolarità è che il casello non si apre in qualsiasi
momento, ma ad orari precisi, per evitare lo scontro di informazioni (questo significa
che le operazioni si succedono in modo sincrono, rispetto alla cadenza imposta da un
orologio di sistema: clock). Ogni corsia ha una sua funzione specifica: una dedicata al
controllo, una agli indirizzi e una ai dati. È fisicamente realizzato mediante un insieme
di connettori elettrici.
Memorizzazione
Un’unità di memoria fornisce due sole operazioni: memorizzazione di un valore
(operazioni di scrittura) e accesso al valore memorizzato (operazioni di lettura).
Le memorie sono dispositivi per “lo stoccaggio” (conservare, memorizzare) delle
informazioni.
In ogni elaboratore vi sono generalmente tre tipi di memorie:
1. I registri: contengono informazioni necessarie all’elaborazione della singola
istruzione;
2. La memoria centrale: contiene i dati e istruzioni attualmente elaborati dal
processore;
3. Le memorie di massa: contengono dati e programmi che non sono oggetto di
elaborazione immediata.
Modalità di accesso
1. Accesso sequenziale: prima di leggere una cella è necessario rileggere tutte quelle
che la precedono;
2. Accesso diretto: dato l’indirizzo di una cella, essa può essere ceduta in modo
immediato;
3. Accesso misto: le celle sono organizzate in blocchi, ogni blocco è costituito da un
certo numero di celle, si ha accesso diretto ai blocchi e accesso sequenziale alle
celle all’interno di un blocco. Es. il disco magnetico (hard disk) ha un accesso misto
(possibile domanda).
Gerarchie di memoria
In base ai parametri di capacità e velocità di accesso, le
memorie possono essere collocate a diversi livelli di una
gerarchia.
Approfondimento: ROM
La RAM (Random Access Memory, memoria a lettura casuale) consente di scegliere
una qualsiasi cella di memoria per una operazione di lettura e scrittura. In genere, gli
elaboratori hanno anche una o più zone di memoria sulle quali non è possibile
scrivere: ROM (Read Only Memory, memoria a sola lettura). Il contenuto è preservato
da guasti o scritture operate da programmi scorretti. Il contenuto della ROM è
persistente. Le ROM vengono inizializzate dal costruttore del calcolatore con dati e
programmi che servono a far funzionare il sistema. Le ROM hanno alcune
caratteristiche dell’hardware (non possono venire modificate durante l’esecuzione) e
altre del software (possono essere programmate). Il software contenuto nelle ROM
prende il nome di firmware, “a cavallo” fra hardware e software.
L'Unità di Elaborazione: CPU
La sua funzione è quella di eseguire i programmi contenuti nella memoria centrale
prelevando, decodificando ed eseguendo una dopo l'altra le istruzioni che li
costituiscono. Contiene gli elementi circuitali che regolano il funzionamento
dell'elaboratore. Principali elementi circuitali:
1. Orologio di sistema (Clock);
2. Unità aritmetico-logica (ALU);
3. Registri (R);
4. Unità di controllo (CU).
Orologio di sistema: Clock
La CPU è un dispositivo sincrono che viene regolato da un "orologio" (o clock), il quale
sincronizza le operazioni rispetto ad una data frequenza: le attività della CPU hanno
inizio in corrispondenza di tempi ben precisi stabiliti del clock (impulsi di clock). Quindi
stabilisce quante istruzioni al secondo possono essere eseguite dalla CPU.
1. Una CPU attuale lavora a N GHz. Segue un ritmo di N miliardi di impulsi al secondo.
Ad esempio: una CPU che lavora 3 GHz riceve 3 miliardi di impulsi al secondo.
2. La frequenza di clock determina la velocità di elaborazione del computer. Più alta è
la frequenza di clock, maggiore è la velocità di elaborazione.
3. La velocità e la potenza di un computer dipendono anche dalla larghezza del bus:
quantità di "dati" che il processore è in grado di ricevere ed elaborare
simultaneamente (dimensione dei registri: tipicamente 32 o 64 bit).
Registri
Sono dispositivi di memorizzazione che consentono un accesso molto veloce ai dati
contenuti. Hanno dimensioni prefissate. Alcuni registri hanno funzioni specifiche:
1. Il registro PC (Program Counter): che individua tramite indirizzo barra link la
prossima istruzione da seguire (qui succede una cosa diversa: non visualizziamo
direttamente l’istruzione, ma il link che ci porta all’istruzione);
2. Il registro IR (Instruction Register): che contiene l’attuale istruzione da eseguire.
Lo stato della CPU è rappresentato dalle informazioni memorizzate negli opportuni
registri:
1. Dati da elaborare: contenuti nei registri dati (DR);
2. Istruzione da eseguire: contenuta nel registro IR;
3. Indirizzo in memoria della prossima istruzione da eseguire -> contenuto nel
registro PC;
4. Anomalie/eventi verificatisi durante l'elaborazione -> contenuti nei registri di Stato
o flag.
Unità di controllo: CU
Il coordinamento tra le varie parti del calcolatore è svolto dall’unità di controllo (CU).
Questa è una componente dell’unità centrale di elaborazione. Ogni componente del
calcolatore segue solo le azioni che gli vengono richieste dall’unità di controllo. Il
controllo consiste nel coordinamento dell’esecuzione temporale delle operazioni.
Istruzioni di base della CPU:
1. Eseguite dalla ALU: somma (da cui sottrazione), scorrimento (shift)(tramite le
operazioni di somma e di shift è possibile ricavare moltiplicazione e divisione),
operazioni logiche (riguardano solo 2 valori: 0 e 1) e operazioni di confronto.
2. Operazioni di accesso alla memoria (non eseguite dalla ALU): trasferimento di un
dato da un’allocazione di memoria ad un’altra e trasferimento dalla memoria al
registro della CPU o dal registro della CPU alla memoria.
Il linguaggio
Il linguaggio è formato da:
1. Alfabeto: collezione di simboli grafici, aventi di solito un ordine ben preciso, che
servono a rappresentare le parole di una lingua;
2. Vocabolario (o lessico): insieme delle parole ammissibili di una lingua;
3. Grammatica: insieme di regole utili alla corretta costruzione di frasi, sintagmi e
parole;
4. Semantica: studia il significato delle parole (semantica lessicale), degli insiemi
delle parole, delle frasi (semantica frasale) e dei testi.
(possibile domanda: cosa caratterizza un linguaggio?: risposta: questi 4 elementi)
Codifica binaria
Il computer ha un linguaggio binario. Usiamo
solo due simboli: 0, 1 (bit).
(Es. 5 bit: 5 volte o ‘0’ o ‘1’: es. 10110)
Es.: l’interruttore che ha due sole possibilità:
acceso (ON, 1) o spento (OFF, 0).
(con 2 bit sono in grado di rappresentare 4 stati, con 3 bit posso rappresentare 8
stati…)
L’algoritmo
È il procedimento che mi permette di risolvere qualsiasi tipo di problema. Quindi è una
sequenza di istruzioni che consentono di risolvere un problema. È importante che ogni
istruzione: sia precisa (e non ambigua); che deve poter essere eseguita in un tempo
finito (alcune istruzioni quando non sono scritte bene possono non finire mai); che una
o più istruzioni non dovrebbero essere ripetute all'infinito assicurando quindi che il
procedimento termini; e che dopo aver eseguito tutte le istruzioni vengano ottenuti i
risultati.
Gli algoritmi non servono solo a risolvere problemi, ma anche a fare la somma di
numeri, a trasmettere dati in internet, fare ricerche nel web, fare processi economici
ecc.
Un algoritmo deve essere eseguito da qualcuno. Nel caso dei computer viene eseguito
dal computer stesso (con il linguaggio binario). Colui che esegue l'algoritmo viene
chiamato esecutore. L'esecutore può essere anche automatico.
Tipi di logaritmi
1. Gli algoritmi possono essere di due tipi: di tipo deterministico e di tipo
probabilistico. Un algoritmo si dice deterministico quando ad un ingresso
corrisponde sempre la stessa uscita (a un imput corrisponde sempre lo stesso
output). Classico esempio è la somma di numeri. Un
algoritmo si dice probabilistico quando ad uno stesso
ingresso non corrisponde sempre la stessa uscita.
Classico esempio è il lancio dei dadi.
2. Inoltre un algoritmo può essere efficace ed
efficiente. Un algoritmo è efficace quando risolve un
problema; è efficiente quando risolve il problema
utilizzando il minor numero di risorse.
Il linguaggio di programmazione
Nel mondo esistono tantissimi linguaggi. Nel 2017 quello più utilizzato era chiamato
Java. Oggi è il Python. Ogni linguaggio di programmazione dispone di un insieme di
parole chiave (keyword es. printf), ed è caratterizzato da due componenti
complementari:
• Sintassi: insieme delle regole che specificano come comporre istruzioni ben formate;
• Semantica: specifica il significato di ogni istruzione ben formata.
Il traduttore che mi permette di passare dal terzo livello al primo livello si chiama
compiler. I linguaggi di terza generazione sono molto più ampi rispetto a quelli delle
generazioni precedenti.
Software
Il termine software si riferisce ad un insieme di programmi (es. word).
Un pacchetto (o suite) software rappresenta un gruppo di programmi che risolvono
uno specifico problema o effettuano uno specifico lavoro (es. microsoft office).
La maggior parte del software può essere classificato in due categorie principali:
1. Software di Sistema, progettato per controllare il funzionamento di un sistema di
elaborazione (computer system) e talvolta per estenderne le capacità di calcolo;
2. Software Applicativo, progettato per risolvere uno specifico problema o per
occuparsi di uno specifico compito.
Le comunicazioni
Le comunicazioni coinvolgono diversi dispositivi che comunicano gli uni con gli altri.
Due oggetti/persone per poter comunicare devono conoscere il linguaggio del mezzo
con cui avviene la comunicazione. Necessitano anche di strumenti (es. telefono,
telegrafo ecc) che hanno un loro linguaggio.
Le reti wireless
Un sistema wireless trasporti i dati mediante segnali radio (quindi senza il bisogno di
fili), quindi sfruttano le radiazioni elettromagnetiche. La radiazione è un’onda di
frequenza particolare misurata in Hz, MHz o GHz. I dispositivi Ethernet wireless
operano a frequenze intorno ai 2,4-2,5 GHz o 5 GHz. I tre sistemi wireless ampiamente
usati sono: Bluetooth (pensato per le trasmissioni a brevi distanze); RFID (piccoli
sistemi di trasmissione e ricezione che trasferiscono l’identificazione come flusso di
bit); e GPS (importante sistema wireless a senso unico. I satelliti GPS inviano dati
precisi e ricevitori secondo le loro posizioni).
La storia di Internet
Internet nasce negli anni 60 allo scopo di collegare computer situati a grandi distanze
geografiche. Nel 1969, il Dipartimento della Difesa commissionò ARPANET, con lo
scopo di promuovere la ricerca per un piano di rete nazionale militare; il primo
collegamento fu stabilito tra due computer dell’Università della California (UCLA) e
dello Stanford Research Institute. ARPANET fu progettata sin dall'inizio per resistere
bene in caso di difficoltà e per evitare problemi di traffico. Non è una rete gerarchica,
per cui la strada per collegare due punti non è sempre la stessa, ma viene decisa man
mano, in base a quella che è più conveniente. Chi decide la strada da percorrere è un
computer che si chiama router.
Internet è gestita da un gruppo di volontari, conosciuto come ISOC (Internet Society).
Secondo il rapporto annuale dell’Unione internazionale delle telecomunicazioni (Uit),
istituzione dell’Onu, nel 2021, sarebbero circa 4,9 miliardi le persone utilizzano il Web.
I pilastri di Internet
I tre pilastri su ci si poggia la rete Internet sono: nomi e indirizzi, percorsi e accordi.
Gli indirizzi che consentono l'identificazione di reti e computer (l'equivalente di una
rubrica
telefonica). Bisogna essere in grado di trovare percorsi tra calcolatori che non sono
connessi direttamente. Bisogna inoltre essere d'accordo sul modo in cui le
informazioni sono formattate e si muovono (gli accordi riguardano: i formati dei dati,
chi comunica per primo, possibili risposte, come vengono trattati gli errori…). Internet
è gestita mediante protocolli. Un protocollo è l’insieme di regole per interagire con
un'altra parte.
Internet: indirizzamento
1. Ogni computer deve avere un indirizzo che lo identifichi in modo univoco tra tutti
gli altri presenti su Internet. Tale numero, detto indirizzo IP, può essere di 32 o 128
bit. Normalmente un'autorità centrale assegna un blocco di indirizzi IP consecutivi
all'amministratore, che li distribuisce ai singoli dispositivi. Uno schema globale e
gerarchico di indirizzamento identifica univocamente ogni utente ovunque
localizzato nel mondo: l’email. Es. “[email protected]” identifica l’utente Mario
Casillo con un account su un calcolatore il cui indirizzo di rete è rappresentato da
ciò che sta a destra di at, @; il calcolatore è situato nell’Università di Salerno
(unisa), in Italia (it).
2. Questo schema di indirizzamento viene chiamato DNS (Domain Name System).
Questo associa l’indirizzo logico a quello fisico.Negli USA, l’ultima parte non
identifica lo stato, ma il tipo di sito: commerciale (.com), universitario (.edu),
governativo (.gov), militare (.mil), organizzazioni no profit (.org).
3. Nella rete Internet due computer si parlano/si scambiano informazioni attraverso
un protocollo che si chiama TCP/IP (Transmissione Contro Protocol/Internet
Protocol).
Internet: percorsi
Deve esserci un meccanismo per trovare un percorso per ogni pacchetto, dall'origine
alla destinazione. Se ne occupano i router, che si scambiano continuamente
informazioni su quale dispositivo è connesso all'altro e le usano per inviare ciascun
pacchetto in arrivo al router più vicino alla destinazione finale.
Internet: gli accordi
Bisogna inoltre essere d'accordo sul modo in cui le informazioni sono formattate e si
muovono (gli accordi riguardano: i formati dei dati, chi comunica per primo, possibili
risposte, come vengono trattati gli errori…).
L’URL
Uniform Resource Locator (URL) identifica una risorsa indicando l’indirizzo presso cui
reperirla. Gli URL consistono di 3 parti (divise dello /): il nome del protocollo da
utilizzare per l’accesso alla risorsa (es. http, ftp, mailto, …); il nome del computer dove
noi troviamo la pagina (si può usare sia l’IP address che il nome logico); il percorso ed
il nome della risorsa (detto pathname).
Esempio: http://webs.students.dsc.unibo.it/calendario.html
ftp://cs.unibo.it/pub/techreports/2000_01.ps.gz
Dove ftp:// è il protocollo
cs.unibo.it/pub/techreports è il percorso
2000_01.ps.gz è la risorsa
Esistono due modalità di ricerca di un argomento: o con il Web Search Engine (sono i
motori di ricerca es. google) o con il Subject Tree (es. yahoo, galaxy einet).
Web Search Engine
I motori di ricerca si basano su database di pagine indicizzate.
Ogni pagina viene archiviata con alcune parole chiavi associate.
Questa ricerca avviene attraverso due tipologie:
1. Full text indexing: tutte le parole presenti nella pagina vengono considerate parole
chiave.
2. Selective text indexing: solo le parole ritenute più importanti vengono considerate
parole chiave.
Le pagine vengono visitate dai motori di ricerca tramite strumenti detti spider.
Comunque il programma spider non riesce a visualizzare tutte le pagine che esistono
nel mondo perché solitamente queste appartengono al dark web.
Headers
<H1> Titolo 1 </H1> ... <H6> Titolo 6 </H6>
Permettono di indicare quali parti di testo vengono usate come titoli.
H1, ..., H6 sono usati anche per controllare le dimensioni dei caratteri: H1 corrisponde
a caratteri grandi, mentre H6 a caratteri piccoli.
Aggiungere i commenti
<!-- testo del commento -->
Non viene visualizzato dal browser e contiene informazioni di varia natura (ad
esempio, per spiegare parti di codice).
(possibile domanda: che cos’è un commento in un linguaggio di programmazione?
Sono le note che noi scriviamo per capire il senso del programma, ma che non
vengono eseguite dal computer).