Elementi di informatica e reti di calcolatori
C. Pilato
Lezione 1: introduzione all’informatica
Informatica -> deriva dall’informazione, si tratta di gestione dell’informazione. Ad es. anche Facebook che fa gestione e rappresentazione dell’informazione. Anche Amazon,
VIDEO -> evoluzione dei brand dal 200. Il primo era Coca-Cola. 2018: le prime 4 società sono sistemi di informatica. Apple-Google-Amazon-Microsoft
Rappresentazione e elaborazione dell’informazione
Arte (aspetti artistici e creativi) e scienza (aspetti rigorosi e formali)
L’informatica è deterministica, ad es. dei un quadro l’unica cosa che si può esportare a livello deterministico sono ad. Dimensioni, colori, che sono comunque aspetti rigorosi e formali. Tutto quello che coinvolge una parte di soggettività non è più informatica.
-> È ovunque, abbiamo una serie di dati che possiamo organizzare di qualsiasi tipo.
L’informazione è parte della vita umana, collezione strutturata di dati (osservazioni, fatti entità fisiche o concettuali).
L’informatica comprende una conoscenza sistematica di tecniche/metodi per rappresentare l’informazione e rielaborare l’informazione.
Rappresentazione dell’informazione è diversa dall’informazione stessa.
I calcolatori elettronici permettono
- Un’elaborazione sistematica, veloce e pratica dell’informazione.
- Una rielaborazione efficace dell’informazione.
Informazione - è parte di ogni attività umana
Rappresentazione - astrarre i concetti importanti da quelli trascurabili, per modellare opportunamente le modalità di interesse.
Elaborazione e gestione - uso e trasformazione dell’informazione in modo funzionale agli obiettivi
Calcolatore elettronico - strumento per l’elaborazione automatica dell’informazione.
L’informatica è più una scienza
La scienza deve avere un approccio rigoroso e sistematico, quindi
Calcolatore
Strumento elettronico che elabora un’informazione
Il concetto di elettronico si basa sulla corrente e sulla traduzione di una sequenza di 0 e 1.
A questo punto tutto si basa su questo - l’informazione, come la elabori, come la gestisci e come il calcolatore funziona, quindi anche come la rappresenta e la gestisce -> utilizzo un algoritmo e utilizzo argomenti di memoria per le informazioni che sto elaborando.
Elaborazione
Per calcolo si intende un’
1
- Informazioni di ingresso. Numeri/ immagini
- Algoritmo. Il calcolatore esegue un o un insieme di algoritmi
- Elementi di memoria. Utilizzando per immagazzinare le info che sta elaborando
- Informazioni in uscita e le loro rappresentazione. Non è solo quello a video. Si tratta anche di sistemi diversi come quelli ad es. dei guida assistita, che sono di uscita perché interagiscono con l’esterno.
Il calcolatore è una macchina, uno strumento fisico che deve essere:
- Veloce (vantaggio rispetto all’analitico),
- Ampia memoria
- Programmabile (non sempre cosa vera) perché magari si può cambiare la funzionalità (es. pc) -> magari è addirittura la stessa funzionalità che viene eseguita con parametri diversi, es. classico è la lavatrice che da un certo punto di vista è un calcolatore -> c’è la selezione del programma, ha due uscite (display e quella fisica) e la funzionalità che di per sé è programmabile. -> è da un algoritmo
Ma
- Non è intelligente. Fa ciò per cui è programmato nel modo in cui è stato programmato.
- Non è in grado di ragionare: non c’è mai un ragionamento, c’è un algoritmo che interpreta i dati e fornisce le informazioni. Magari impara, ma se è così è per un algoritmo più sottile che magari lo porta ad aggiornarsi grazie ad una memoria. L’intelligenza che noi percepiamo non è la macchina che ragiona, è deterministico. ma è un algoritmo ->
- Non è in grado di capire un problema o dare una soluzione.
Algoritmo
Sequenza finita di operazioni elementari eseguibili e non ambigui che giunge certamente a determinazione
L’algoritmo permette di risolvere uno specifico compito o problema.
Se vogliamo trasferire questo concetto ad un calcolatore elettronico dobbiamo considerare che
- I passi devono essere eseguiti con precisione, non ci devono essere ambiguità, né risultati diversi
- I passi sono comprensibili ad uno specifico esecutore (il calcolatore)
Problemi che riguardano la gestione e l’elaborazione dell’informazione.
Vedremo come passare dalla specifica di un problema alla sua soluzione automatica attraverso l’uso di un calcolatore.
- La specifica è una descrizione semi-formale del problema
- È necessario passare dalla specifica ad un algoritmo che risolve il problema dato.
- Affinché l’algoritmo trovato sia eseguibile dal calcolatore dovrà essere definito in un linguaggio comprensibile al calcolatore stesso
- Capiremo come rappresentare l’informazione
Parlando di algoritmo parliamo di:
Dati che sono oggetti, informazioni su cui opera l’algoritmo, che possono essere dati o forniti dall’utente o presi dal sistema o che l’algoritmo ha interamente all’inizio, informazioni ausiliarie che sono fornite dal sistema?, risultati parziali o finali, poiché a volte è molto più semplice separare il calcolo in tanti calcoli elementari
I dati possono essere variabili o costanti
Operazioni: elaborazioni da effettuare sui dati.
Calcoli, confronti, assegnamenti, acquisizioni, emissioni, ecc. a volte bisogna adattarsi al sistema, ad. Esempio riadattandolo o rielaborando le informazioni in un modo diverso consentito dall’algoritmo.
Flusso di controllo: specifica delle possibili successioni dei passi dell’algoritmo.
La correttezza dei risultati dipende non solo dalla corretta esecuzione delle singole operazioni, ma anche dalla corretta sequenza con cui sono eseguite
2
Flusso di controllo
La descrizione a priori di tutte le possibili sequenze nell’esecuzione dei passi dell’algoritmo, in particolare di operazioni in alternativa e di operazioni da ripetere più volte ciclicamente
Flusso di esecuzione
La sequenza di operazioni effettivamente seguita durante una particolare esecuzione dell’algoritmo e che dipende dagli specifici valori che i dati assumono in quell’esecuzione
Rappresentazione di un algoritmo
- Descrizione di tutte le possibili sequenze di operazioni da eseguire per risolvere il problema dato
- Descrizione del flusso di controllo, delle operazioni eseguibili, e degli oggetti su cui agiscono le singole operazioni
- Deve essere comprensibile in modo univoco sia da parte del programmatore che dell’esecutore
Le variabili
La variabile è un “contenitore” di valori
- Ad una variabile è sempre associato un valore alla volta
- La variabile non può essere vuota (al massimo non è inizializzata e quindi contiene un valore “a caso”)
La variabile è identificata tramite un nome simbolico
- Le operazioni descritte nell’algoritmo possono essere eseguite di volta in volta sui diversi valori assegnati alle variabili (formulazione generale dell’algoritmo)
Possiamo eseguire due operazioni su una variabile:
- Lettura: recuperiamo il valore contenuto
- Scrittura: salviamo un nuovo valore
3
Elementi grafici, operazioni, condizioni
Negli schemi a blocchi e sono rappresentate in modo testuale e tramite simboli che rappresentano gli operatori aritmetici, di confronto, ecc.
Assegnamento: = valore
- Il valore dell’espressione a destra dell’operatore di assegnamento è copiato nella variabile a sinistra,
- Es: x = 6, y = x, z = x+6, …
Operatori aritmetici: +, -, * , /, %
- Eseguono l’operazione sui due operandi specificati
- Gli operandi possono essere variabili o costanti
- Producono un valore numerico
- Es: a + 5, 3 + 6, w + x, ...
- Con operandi interi sono definite le operazioni / “divisione intera” e % “resto della divisione intera”
Operatori di confronto: >, <, ==, >=, ...
- Eseguono l’operazione sui due operandi specificati
- Gli operandi possono essere variabili o costanti
- Producono un valore logico (vero o falso)
- Es: x > 5, y <= x, ...
Operatori logici: and, or, not
- Eseguono l’operazione sui due operandi specificati
- Gli operandi possono essere variabili o costanti
- Producono un valore logico (vero o falso)
- Sono utilizzanti principalmente per esprimere condizioni complesse
Espressioni
- È possibile comporre gli operatori sopra specificati per ottenere espressione e condizioni complesse che restituiscono un risultato
- Es.: x+y>10 and y<3
Procedure di input/output: Leggi(X), Scrivi(N)
4
- Permettono di acquisire dati dall’utente e visualizzare risultati
Parametro
- Agiscono sul specificato che può essere una variabile o una costante
- Leggi(x) legge un dato da tastiera e lo salva nella variabile x
- Tali procedure possono essere usate solo
- Scrivi(y) mostra a video il valore contenuto nella variabile y
- Negli appositi blocchi
Esercizio
Si disegni il diagramma di flusso di un algoritmo che chiede all’utente un valore intero e visualizza il suo valore assoluto
L’iterazione
Una delle due frecce uscenti da un blocco condizionale può essere diretta verso un precedente blocco nel flusso di controllo
In questo modo è possibile esprimere l’iterazione di un insieme di istruzioni (corpo del ciclo) Il corpo del ciclo è ripetuto un numero di volte finito
La ripetizione è controllata dalla valutazione della condizione di permanenza del ciclo
Esercizio
Disegnare il diagramma di flusso di un algoritmo che acquisisce un numero intero e verifica se questo è positivo; in caso la condizione non sia verificata ripete l’acquisizione. Una volta letto un valore valido, l’algoritmo lo visualizza
Proprietà degli algoritmi
Procedimento sequenziale: l’algoritmo è un un passo dopo l’altro secondo un ordine specificato (flusso di esecuzione)
A ogni passo, il successivo deve essere uno e uno solo, ben determinato (determinismo)
Univoco ambiguità) I passi elementari devono essere eseguiti in modo dall’esecutore (non
- Cioè i passi elementari devono essere descritti in una forma eseguibile e comprensibile dall’esecutore
L’algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso (finitezza)
L’esecutore deve terminare in tempo finito per ogni insieme di valori in ingresso (terminazione)
5
Ogni operazione deve:
- Essere elementare cioè non ulteriormente scomponibile (atomicità)
- Terminare entro un intervallo finito di tempo
Es.: calcolare le cifre decimale di, NO!
- Produrre un effetto osservabile → Stato prima dell’esecuzione stato dopo l’esecuzione
- Produrre lo stesso effetto ogni volta che viene eseguita a partire dalle stesse condizioni iniziali (effettività)
Es. la somma di due numeri dati deve restituire sempre lo stesso risultato
Le operazioni elementari sono definite in base all’esecutore dell’algoritmo
L’esecutore deve essere in grado interpretarle ed eseguirle
- Es: moltiplicazione o somme ripetute?
La descrizione di un algoritmo per un esecutore deve avere una formulazione generale:
- La soluzione individuata non deve dipendere solo da valori predefiniti dei dati
- Gli algoritmi prevedono particolari passi destinati ad acquisire i valori dei dati da utilizzare ed elaborare in ogni specifica esecuzione
- In altre parole l’algoritmo risolve una classe di problemi
Esempio
- Un algoritmo per calcola il prodotto di due numeri per somme ripetute non eseguirà tale calcolo solo per due valori predefiniti MA sarà in grado di eseguire il calcolo per una qualsivoglia coppia di numeri acquisiti dall’utente
Correttezza
- L’algoritmo ottiene la soluzione del compito cui è preposto
- L’esecutore eseguirà l’algoritmo a prescindere che sia giusto o sbagliato; è compito del programmatore garantire che l’algoritmo sia corretto
Efficienza
- L’algoritmo perviene alla soluzione del problema nel modo più veloce possibile e/o usando la minima quantità di risorse fisiche
6
01/03/19 Lezione 2: architettura dei calcolatori
Sistema informatico
Ampia gamma di strumenti utilizzati per svolgere algoritmi in modo automatico.
Es. computer, portatile, smartphone, data center, qualunque osa che svolge un algoritmo con un interazione -> es. un elettrodomestico
Macchina di Von Neumann
Macchina di Van Neumann -> macchina che fa un’interazione
Cpu, memoria centrale, memoria secondaria/memoria di massa, uno o più un input, un output.
Il bus che fa da collegamento.
+ tre linee: linea di indirizzi, di dati, di controllo.
Solitamente è diviso su Il motivo per cui ci sono 3 linee è che sarebbe possibile usarne solo 1, però tre permettono molta più velocità. Il calcolatore quando può applicando risorse può eseguire operazioni in parallelo. -> è già un vantaggio rispetto alla persona. (noi tendenzialmente facciamo una cosa alla volta)
Perché a volte è utilizzato in sistema meno raggiungibile? -> I costi aumentano, è tutto più difficile, però si ha più protezione si hanno anche prestazioni maggiori
Hardware
Hardware Componenti fisiche: circuiti, schede, memorie, periferiche, stampanti, monitor…
Tutta la parte fisica, dischi, monitor, scheda -> ciò che è basato sull’elettricità, quindi scambio di info, o sistemi magnetici, o corrente, o proprietà fisiche es, della stampante.
Software
Software Programmi eseguibili: istruzioni e dati che consentono all'hardware di compiere determinate funzioni
Ciò che riguarda le proprietà e i programmi. Istruzioni e dati che permettono all’hardware di compiere determinate funzioni.
Non sono unità scindibili, l’uno non può esistere senza l’altro e devono essere complementari, progettati insieme.
Tutti i sistemi elettronici possono essere rappresentati con l’architettura di Von Neumann, la prima metafora matematica che lo ha definito. È molto semplice
C’è un cpu che prende informazioni e regola il flusso di controllo - è un esecutore, una memoria e un elemento di ingresso a cui vengono inseriti. La parte di ingresso e di uscita non sono necessariamente schermi e display.
7
Elementi principali
CPU o Unità di elaborazione
- Elabora dati, coordina trasferimento dei dati
- Esegue i programmi, cioè interpreta ed esegue le loro istruzioni
RAM o Memoria Centrale
- Memorizza dati e programmi in esecuzione
- Capacità limitata
- Volatile
- Accesso all’informazione molto rapido
Memoria secondaria o memoria di massa
- Memorizza grandi quantità di dati e programmi
- Persistente
- Accesso molto meno rapido della memoria centrale
- Con la RAM e la cache della CPU forma una gerarchia di memoria
Unità periferiche (I/O)
- Comunicazione con l’ambiente esterno
- Tastiera, mouse, video, altoparlanti, stampanti
- L’ambiente esterno non è sempre un utente umano (impianti industriali, robot, strumenti di controllo)
Bus di sistema
- Collega i componenti e consente scambio di dati
CPU
Contiene gli elementi circuitali che regolano il funzionamento del calcolatore:
- L’orologio di sistema (clock) permette di sincronizzare le operazioni temporizzando il funzionamento del calcolatore
- L’unità di controllo è responsabile della decodifica e dell’esecuzione delle istruzioni. È la parte che “dirige” l’esecuzione di tutte le altre parti
- L’unità aritmetico-logica (ALU) realizza le operazioni aritmetiche e logiche eventualmente richieste per l’esecuzione dell’istruzione. È priva di facoltà di scelta
- I registri sono piccole memorie velocemente accessibili, utilizzate per memorizzare risultati parziali o informazioni necessarie al controllo. L’insieme dei valori contenuti nell'insieme di tutti i registri in un dato istante dell’elaborazione viene chiamato contesto
8
I registri della CPU
- Registro contatore di programma (PC) contiene l’indirizzo di memoria della prossima istruzione da eseguire
- Registro istruzione corrente (CIR) contiene l’istruzione correntemente in esecuzione
- Registri operandi (A, B) contiene gli operando su cui eseguire la prossima operazione con la ALU
- Registri di lavoro contengono i dati utilizzati di frequente nelle operazioni o risultati intermedi (in genere i registri operandi e i registri di lavoro sono stati uniti in un’unica struttura contenente una serie di registri chiamato banco di registri)
- Registro di stato (SR) contiene alcune informazioni sull’esecuzione dell’ultima operazione della ALU (bit di overflow, bit di segno, bit zero)
- Registro indirizzi (AR) contiene un indirizzo di memoria in cui fare un’operazione di lettura/scrittura
- Registro dati (DR) contiene un dato da trasferire alla memoria o ricevuto dalla memoria
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti Elementi di informatica
-
Esercitazione Elementi di reti di telecomunicazione
-
Informatica - elementi
-
Elementi di informatica - Appunti completi