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.
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.
vuoi
o PayPal
tutte le volte che vuoi
1. L’ARCHITETTURA DI VON NEUMANN
L’architettura di Von Neumann, che nasce durante la seconda Guerra
mondiale, è un modello per le macchine di calcolo che utilizza un’unica
struttura che contiene sia il set di informazioni necessarie alla macchina per
funzionare, sia i dati richiesti o generati dal processo.
Essa è però un modello, non qualcosa di materiale: Von Neumann ha infatti
realizzato un documento nel quale spiegava come, secondo lui, dovessero
essere fatti i calcolatori.
Questo tipo di architettura è composta dai seguenti elementi:
- CPU (Central Processing Unit – Unità di Elaborazione Centrale, ovvero
il microprocessore): questa unità svolge le operazioni sia di controllo e
coordinamento che di elaborazione. Il linguaggio utilizzato da questa
unità è il linguaggio macchina o assembler, che consiste nell’insieme
delle istruzioni che la CPU è in grado di eseguire.
Nella struttura della CPU sono riconoscibili tre sottoinsiemi principali:
Unità Aritmetico-Logica (ALU): che si occupa delle operazioni di
tipo aritmetico e logico sui dati di ingresso;
Registri: celle di memoria interne alla CPU che vengono usate per
immagazzinare le informazioni necessarie per l’esecuzione delle
istruzioni; questi registri sono una memoria a breve termine;
Control Unit (CU): che coordina le varie unità di memoria
nell’esecuzione dei programmi.
- Memoria Centrale: questa memoria è destinata a contenere i
programmi in esecuzione e i relativi dati (è un database, cioè una
raccolta di dati).
Essa è composta da:
RAM (Random-Access Memory): questo tipo di memoria e
costituita da diverse celle e l’accesso ad una cella non richiede la
lettura delle precedenti. Essa è di tipo volatile, in quanto il suo
contenuto viene perso quando il calcolatore viene spento. Inoltre
questa memoria può essere riscritta (es. memoria cache –
memoria che si usa quando si sta lavorando);
ROM (Read Only Memory): questa memoria è simile in quanto a
costruzione alla memoria RAM, ma a differenza di quest’ultima, il
suo contenuto non viene perso allo spegnimento del calcolatore e
non può essere riscritta (i suoi dati vengono conservati fino al
termine della vita del calcolatore stesso) – (es. PROM –
Programmable Read Only Memory – es. hard-disk);
- Memoria di Massa: questo tipo di memoria è destinata a contenere
grandi quantità di dati non utilizzati frequentemente, ma che devono
essere mantenuti in modo persistente, anche dopo lo spegnimento del
calcolatore. La memoria di massa è caratterizzata dalla sua non-volatilità
e dalla velocità di accesso, ma anche da un grande volume di
memorizzazione.
Le memorie di massa possono essere realizzate con tecnologie
magnetiche (i dischi magnetici) o ottiche (i dischi ottici, come CD-ROM,
CD-RW e DVD).
- Periferiche di Input e di Output: le periferiche sono dispositivi
ausiliari con i quali il calcolatore interagisce con l’ambiente esterno, al
fine di acquisire i dati da elaborare o memorizzare o per trasferire i
risultati memorizzati. Le periferiche sono connesse al calcolatore
mediante unità driver, che gestiscono la codifica e il trasferimento dei
dati con l’ambiente esterno: questi driver hardware sono delle schede
inserite nel calcolatore e connesse direttamente al bus mediante
connettori.
Il collegamento con le periferiche si realizza tramite porte di
ingresso/uscita predisposte sulla scheda stessa e accessibili
dall’esterno (tra queste periferiche rientrano anche le memorie di
massa).
Esempi di dispositivi di Input: tastiera (che trasforma la pressione su
ogni tato in un segnale elettrico corrispondente al segnale digitato, che
viene poi inviato all’unità centrale per la sua elaborazione e quindi al
video che lo visualizza in modo che l’utente possa verificare ciò che ha
digitato), i dispositivi di puntamento (mouse, joystick, touchpad, track-
ball, penna ottica), scanner, microfono, fotocamera, telecamera, guanti,
nuovi dispositivi a 3D.
Esempi di dispositivi di Output: video (volatile - classicamente costituito
da un Tubo a Raggi Catodici – CRT (Cathode-Ray Tube), attualmente
schermo molto piatto –AMD (Advanced Micro Devices)), casse (volatile),
stampante (permanente), dispositivi audio-video, modem (dispositivo
che consente di trasferire dati da un calcolatore a un altro utilizzando
una connessione telefonica analogica. Esso converte i segnali digitali in
forma analogica in modo che possano transitare sulla linea telefonica e
un altro modem li ritrasforma in segnali digitali all’altro capo della linea.
- Periferiche di connessione in rete: quelle periferiche che permettono
di connettersi ad Internet, come la chiavetta wifi; esse vengono collegate
al calcolatore tramite delle porte, cioè l’interfaccia tra la CPU e le
periferiche.
Una caratteristica di queste periferiche è la larghezza di banda, che si
riferisce alla quantità di dati trasferiti nell’unità di tempo (cioè quanto è
veloce a trasmettere dati)
- Bus: il bus è una linea alla quale sono contemporaneamente connesse
tutte le componenti del calcolatore e che consente il trasferimento di dati
tra tali componenti (è costituito da fili – es. chiavetta inserita, fa in modo
che parli con la PCU);
- Memoria Cache/Memoria di Supporto: questa è una memoria piccola
e veloce, che contiene un sottoinsieme delle informazioni memorizzate
nella memoria più grande. I dati che essa contiene sono utilizzati con
frequenza. Questa memoria si trova tra la CPU e la memoria centrale.
Dati un calcolatore, si possono costruire reti di calcolatori.
Quando si costruisce una rete wifi, essa è costituita da diversi access point,
cioè quei punti dai quali si può accedere alla rete. Ogni access point copre una
certa area: si possono mettere più punti d’accesso in modo tale da realizzare
un’extended service set, che dovranno essere collegati ad una struttura
cablata, in fibra ottica.
L’hotspot è il locale pubblico che offre il collegamento ad internet (es
Cattolica).
La gestione delle risorse di un calcolatore è garantita dall’insieme di
programmi, cioè i software, installati sul calcolatore a livelli successivi.
Il primo livello di software è il sistema operativo, un insieme coerente di
programmi che permettono di utilizzare il calcolatore e tutte le sue periferiche.
Il sistema operativo costituisce il primo strato di software che viene caricato in
memoria al momento dell’avvio (es. Linux, Windows); di conseguenza, tutti i
programmi che vengono installati successivamente, dipendono dai servizi
fondamentali offerti dal sistema operativo.
Il sistema operativo fornisce inoltre le Interfacce di Programmazione
Applicativa (API), per connettere i programmi applicativi ai programmi per il
controllo delle varie periferiche, per la gestione della memoria e dei vari
processi, per l’aggiornamento del file system, per l’accesso alla rete attraverso
protocolli.
Un sistema operativo si compone di tre parti:
- Interfaccia utente (shell): queste è dedicata al dialogo con l’utente;
può essere di tipo testuale (se i comandi vengono digitati sulla tastiera)
oppure grafica (come la GUI –Graphic User Interface-, che permette di
scegliere comandi e avviare programmi tramite icone e menu);
- File system: utilizzato per la gestione dei file;
- Kernel (nucleo): che si occupa de trasferimento di dati fra le diverse
componenti del sistema (es. disco fisso, memoria RAM); esso riceve e
invia i comandi tramite la shell e gestisce la CPU.
Oltre al sistema operativo esistono però anche altri software:
- Software di base: costituito da un insieme di software che coprono le
esigenze di base degli utenti (es. tastiera, browser) pronti per l’uso,
senza che debbano essere installati;
- Software applicativo: sono tutti quei software per i quali è invece
necessaria l’installazione.
2. La programmazione
I software devono essere programmati dai programmatori traggono la loro
origine dall’implementazione degli algoritmi.
Come abbiamo visto, un algoritmo è una descrizione esplicita di un processo
(cioè che elenca tutti i procedimenti di quel processo), cioè una sequenza finita
di operazioni eseguibili meccanicamente:
- sequenza finita: in quanto un algoritmo non può essere costituito da una
serie infinita di elementi;
- operazioni eseguibili meccanicamente: in quanto questo deve essere
eseguito da una macchina, senza richiedere l’intervento umano per
prendere decisioni, a meno che sia l’algoritmo stesso a chiederlo.
Per implementazione di un algoritmo si intende quindi il trasformare
l’algoritmo in un linguaggio eseguibile dalla macchina.
I programmi vengono sviluppati in un linguaggio di programmazione, cioè
un linguaggio formale definito per permettere al programmatore di specificare
che tipo di dati un calcolatore dovrà trattare, come questi dati verranno
trasmessi e che azioni compiere in certe circostanze.
Esistono numerose tecniche di sviluppo di programmi, anche se un qualunque
programma è fondato su tre concetti chiave:
- variabile: cioè il nome di dato o insieme di dati, cui corrisponde sempre
un numero di locazioni di memoria per contenere i dati;
- istruzione: dichiarativa del tipo di dati; dichiarativa del tipo di dati (es.
numeri interi); assegnazione di un valore a una variabile (es. 12); in
input/output riferita ad un’operazione aritmetica e a un richiamo di
funzione (che permettono all’utente di scrivere e di leggere in date aree
di memoria);
- struttura di controllo: un programma ha delle istruzioni che gli
permettono di decidere cosa fare a fronte di determinati eventi (come
decidere l’ordine di esecuzione delle operazioni oppure decidere cosa fare
quando l’utente clicca col mouse su un determinato punto).
Programmare significa quindi esprimere algoritmi in un linguaggio di
programmazione, attraverso l’implementazione di un algoritmo.
La prima fase della programmazione prevede che il programmatore scriva un
file di testo scritto in linguaggio di programmazione, chiamato programma
sorgente, che sarà poi trasformato in linguaggio comprensibile alla macchina
(codice binario).
Dopo di che si possono utilizzare:
- compilatore: è colui che traduce il programma sorgente, scritto in
linguaggio di programmazione, in un linguaggio macchina (esso è detto
codice oggetto, che è eseguibile per la macchina). Il compilatore non
esegue però direttamente il programma, ma si limita solamente a
tradurlo i