Sei sulla pagina 1di 2

dispensa a cura di

P s ic olog ia @S pir itua lCon nec tion.it

Modello Von Neumann


Esso prevede un sottosistema chiamato processore deputato all'elaborazione dei dati ed uno chiamato memoria dove vengono
immagazzinati sia i dati che le istruzioni per operare su di essi.
Non meno importanti sono i componenti adibiti all'interfacciamento
con il mondo esterno chiamati dispositivi di Input\Output.
Infine vi è un canale comune chiamato BUS attraverso cui tutti i
sottosistemi vengono messi in comunicazione.

La Memoria nel modello di Von Neumann


E' la componente più importante insieme alla CPU e consente la conservazione sia di dati che di istruzioni, difatti si divide in
memoria dati e memoria istruzioni. Nel modello in oggetto la memoria si presenta a diversi livelli secondo una gerarchia che vede in
cima tipi di memorie elettroniche piccole, veloci e volatili ad accesso casuale ( come i registri interni al processore, la memoria cache
e la memoria centrale ram ), e più in basso memorie di massa lente ma più capienti in cui vengono conservati i dati in modo
permanente ( vedi ad esempio i nastri magnetici ad accesso sequenziale, ed i dishi magnetici o hard disk ad accesso misto ).
Possiamo inoltre suddividere le memorie in base alla possibilità di lettura e scrittura ( RAM, EPROM, Flash ) o sola lettura ( ROM ).

Il BUS
I principali tipi di bus sono: ISA ( 16bit a 8MB/s ), PCI ( 32bit a 133MB/s ), SCSI ( 4MB/s ), USB ( 1.5MB/s ), PCI-X ed iSCSI.
Il Bus si divide in 3 componenti: Il "bus indirizzi" che è unidirezionale e permette la selezione di un'unità all'interno del sistema.
La sua larghezza ( 16/32/64 bit ) determina il numero di celle di memoria indirizzabili.
Il "bus dati" invece è bidirezionale e permette la ricezione\trasmissione tra due unità del sistema.
Le "linee di controllo" permettono la comunicazione diretta tra la cpu e le unità del sistema.

CPU e sua struttura


La Central Processing Unit si occupa di elaborare ( o meglio interpretare ) informazioni codificate in linguaggio macchina, ovvero in
binario. Nel processore ritroviamo più sottosistemi ognuno con una funzione diversa :
- La ALU esegue operazioni di tipo logico-aritmetico durante la fase di execute.
- L'Unità di Istruzione estrae e decodifica le istruzioni successive a quella in esecuzione.
- L'Unità di Controllo coordina tutte le unità del sistema durante l'esecuzione dei programmi.
- L'Unità di Indirizzo esegue appunto il calcolo dell'indirizzo.
- I Registri, ovvero celle di memoria interne al processore, memorizzano gli operandi delle operazioni ed altre informazioni di
controllo su queste ultime. In particolare abbiamo un registro contatore, uno delle istruzioni, uno MAR ed uno MDR.

Tecniche di bilanciamento Memoria\Processore


Sono tecniche introdotte per bilanciare il problema legato alla velocità di elaborazione del processore e capacità di memoria.
Esse si dividono in 3 tipologie : Allargamento Bus dati, Caching e Prefetching\Pipelining.
Il primo sfrutta un parallelismo di tipo spaziale per poter estrarre più informazioni alla volta ( sia dati che istruzioni ) ed è
applicabile solo nel caso in cui le sequenze che il processore dovrà elaborare in maniera procedurale siano prevedibili.
Il caching è un meccanismo che permette di aumentare la velocità di accesso del processore alla memoria, attraverso il
caricamento dei dati usati più di recente e quelli ad essi contigui, in una memoria secondaria "cache" estremamente piccola e
veloce, situata tra processore e memoria centrale.
Il prefetching sfrutta un parallelismo di tipo temporale che permette appunto di sovrapporre temporalmente
l'elaborazione dell'attuale istruzione con l'estrazione della successiva.
Infine il pipelining che sfrutta anch'esso un parallelismo di tipo temporale permette l'esecuzione di molteplici
istruzioni in parallelo affidandole ad unità indipendenti chiamate pipeline.

Modello ISO\OSI
E' ( o meglio era ) lo standard per la stratificazione protocollare delle reti di calcolatori ed è costituito da 7 strati:
Fisico, Collegamento, Rete, Trasporto, Sessione, Presentazione, Applicazione. Di cui l'ultimo è il livello più alto e rappresenta
l'interfaccia tra macchina ed utente, ed il primo è quello più basso dove avviene la codifica dell'informazione digitale in segnale
fisico. Ogni strato tratta unità informative chiamate "PDU", composte da un'informazione "SDU" ed un'intestazione "PCI".

TCP\IP
Sviluppato inizialmente in ambito militare ma poi lasciato nelle mani di volontari, è ad oggi lo standard per la stratificazione
protocollare delle reti di calcolatori, in sostituzione dell'OSI, offrendo rispetto a questo una maggiore flessibilità riguardo le
tecnologie ed i protocolli delle sottoreti che interconnette.
Esso è composto da due protocolli: il TCP gestisce i flussi dati in modo orientato alla connessione, recuperando e risequenziando
eventuali pacchetti persi ed indirizzando i singoli processi allo strato applicativo. Il protocollo IP o "Internet Protocol" è uno strato
aggiuntivo ed è responsabile dell'instradamento dei dati tra reti diverse.
Le classi di indirizzi IP
A: 0.x.x.x > 127.x.x.x <> In binario il primo bit è sempre uguale a 0
B: 128.x.x.x > 191.x.x.x <> In binario il primo bit è uguale a 1 ed il secondo a 0
C: 192.x.x.x > 223.x.x.x <> In binario i primi due bit sono uguali a 1 ed il terzo a 0
D: 224.x.x.x > 239.x.x.x <> In binario i primi tre bit sono uguali a 1 ed il quarto a 0
E: 240.x.x.x > 255.x.x.x <> In binario i primi cinque bit sono uguali a 1

Indirizzo ip ( classe B ) in notazione decimale dotted: 159.100.8.18


Indirizzo ip ( classe B ) in notazione binaria: 10011111.01100100.00001000.00010010

Protocollo CSMA\CD
Il Carrier Sense Multiple Access \ Collision Detection o anche IEEE 802.3 è lo standard utilizzato nelle reti LAN di tipo Ethernet.
Il CSMA regola il traffico dati tra le varie stazioni della rete attraveso meccanismi di ascolto e ritardo delle trasmissioni sul canale bus,
senza adottare particolari accorgimenti contro le collisioni. Si è dovuto quindi affiancare al CSMA il protocollo CD che adotta una
tecnica del tipo "ascolta prima e durante la trasmissione" e che permette una sensibile riduzione di numero e durata delle collisioni.

RAID di dischi
La Redundant Array of Indipendent Disks è una tecnica di controllo dei dischi che consente un aumento di prestazioni ed affidabilità.
Le diverse tipologie di Raid combinano alcuni meccanismi di base come lo Striping ( usato nel RAID 0 ) che permette velocità in
lettura\scrittura superiori grazie alla distribuzione del blocco dati su più dischi invece che su uno solo; il Mirroring ( usato nel RAID 1 )
in cui ogni disco viene duplicato e quindi esiste una copia di sicurezza per ogni blocco dati, aumentando sensibilmente l'affidabilità
del sistema; infine abbiamo i Blocchi di parità, ovvero blocchi di informazioni riassuntive che consentono di ricostruire, ove possibile,
informazioni andate perse a causa di errori.

Tecniche crittografiche e meccanismo di generazione della Firma Digitale


Le tecniche crittografiche moderne si suddividono in due categorie: algoritmi simmetrici in cui viene utilizzata la stessa chiave
generata dall'algoritmo per cifrare e decifrare il documento, e che quindi sarà comune a mittente e destinatario.
Algoritmi asimmetrici o chiave pubblica in cui ogni utente dispone di una coppia di chiavi di cui una verrà resa pubblica ed una
rimmarrà privata, senza possibilità di risalire da una all'altra e viceversa.
Una delle applicazioni più significative degli algoritmi asimmetrici è rappresentato dalla Firma Digitale, introdotta nella normativa
Italiana per la prima volta nel 1997. L'algoritmo per la generazione della firma si compone di due fasi, nella prima è coinvolto solo il
documento da firmare, che viene sottoposto alla procedura di Hashing la quale genera un'impronta di dimensioni fisse.
Nella seconda fase, questa impronta verrà cifrata con la chiave privata dell'utente generando un documento con Firma Digitale.

Flow Chart di un algoritmo


MAX e MIN tra gli elementi di un array di 10 elementi

ATTENZIONE: i valori numerici presenti nelle celle non sono in ordine, ma sono casuali, ecco perchè è necessario incrementare di
volta in volta il valore che assegnamo ad ( i ) suggerendo al programma la cella da prendere in esame all'interno
dell'array ! Quindi se inizialmente ( i ) ha un valore di ( 1 ) diremo al programma di confrontare la prima cella con la
seconda ... e così via fino all'ultima. Solo alla fine di queste verifiche sapremo davvero chi è il MIN o il MAX.