vuoi
o PayPal
tutte le volte che vuoi
Memorie Secondarie: Non volatili, per archiviazione a lungo termine (es.
o dischi rigidi, SSD).
Memorie Esterne: Dispositivi rimovibili (es. USB, hard disk esterni).
o
5. Periferiche
Input: Tastiera, mouse, scanner.
o Output: Monitor, stampante, altoparlanti.
o I/O misti: Touch screen, dispositivi multifunzione.
o
Classificazione dei Calcolatori
1. Classificazione in base all’architettura:
Architettura Von Neumann:
o Memoria unica per dati e istruzioni.
Semplice ma soggetta al "collo di bottiglia" della memoria.
Architettura Harvard:
o Memorie separate per dati e istruzioni.
Prestazioni migliori ma più complessa.
2. Classificazione in base al numero di processori:
SISD (Single Instruction Single Data):
o Un processore esegue un’istruzione su un dato alla volta.
SIMD (Single Instruction Multiple Data):
o Un’istruzione eseguita su più dati (es. GPU).
MIMD (Multiple Instruction Multiple Data):
o Più processori eseguono istruzioni indipendenti su dati distinti.
3. Classificazione in base all’uso:
Computer Personali (PC): Uso individuale.
o Server: Gestione di risorse condivise.
o Mainframe: Grandi volumi di elaborazione dati.
o Supercomputer: Alte prestazioni per calcoli complessi.
o
Tipi di Memorie
1. Memoria Primaria:
RAM, ROM, Cache.
o
2. Memoria Secondaria:
HDD, SSD.
o
3. Memorie Esterne:
USB, SD card.
o
Pipeline e Parallelismo
1. Pipeline
Tecnica che suddivide un'operazione in più fasi eseguite
o contemporaneamente.
Aumenta le prestazioni senza incrementare la velocità del clock.
o
2. Parallelismo
A livello di istruzione: Esecuzione di più istruzioni simultaneamente (es.
o multi-core).
A livello di dati: Esecuzione della stessa istruzione su dati diversi (es.
o SIMD).
Unità di Elaborazione Grafica (GPU)
Specializzata per calcoli paralleli massivi.
Ideale per applicazioni grafiche e scientifiche (es. AI, simulazioni).
Sistemi di Input/Output (I/O)
Gestiscono l'interazione tra il calcolatore e il mondo esterno.
Controller: Hardware dedicato alla gestione di una periferica.
DMA (Direct Memory Access): Trasferimento diretto tra memoria e periferica
senza coinvolgimento della CPU.
Tecnologie Moderne
1. Processori Multi-Core:
Più core in un singolo chip per migliorare il parallelismo.
o
2. Memorie SSD (Solid State Drive):
Veloci e senza parti meccaniche.
o
3. Cloud Computing:
Archiviazione ed elaborazione remota.
o
4. Quantum Computing:
Basato sui qubit, offre potenza di calcolo superiore per problemi complessi.
o
Gestione della Memoria
La gestione della memoria è cruciale per garantire un utilizzo efficiente delle risorse e
supportare più processi in esecuzione.
Tipologie di Gestione della Memoria
1. Memoria Contigua:
I processi sono caricati in blocchi contigui di memoria.
o Può essere suddivisa in:
o Partizioni Fisse: Dimensioni dei blocchi predefinite.
Partizioni Variabili: Blocchi di memoria adattabili alle dimensioni del
processo.
2. Memoria Non Contigua:
I processi sono suddivisi e caricati in blocchi separati.
o Tecniche principali:
o Paginazione: La memoria è divisa in pagine (processi) e frame
(RAM).
Segmentazione: La memoria è suddivisa in segmenti logici (es.
codice, dati, stack).
3. Memoria Virtuale:
Usa lo spazio su disco per simulare memoria RAM.
o Supporta processi più grandi della memoria fisica disponibile.
o
Swapping
Processo di trasferimento di un processo tra memoria principale e disco per liberare
spazio nella RAM.
Può causare rallentamenti noti come thrashing quando il sistema passa troppo
tempo a scambiare processi.
Sistemi di Interconnessione
I sistemi di interconnessione permettono la comunicazione tra le diverse componenti di un
calcolatore, come CPU, memoria e periferiche.
Tipologie di Interconnessione
1. Bus Singolo:
Tutte le componenti condividono un unico canale.
o Economico ma con limitazioni di velocità.
o
2. Bus Multipli:
Canali separati per specifiche componenti (es. bus dati e bus I/O).
o Maggior velocità e parallellismo.
o
3. Reti On-Chip (NoC):
Utilizzate nei sistemi multi-core per interconnettere i core tramite una rete
o interna.
Gestione dei Processi
Un processo è un programma in esecuzione che richiede risorse (CPU, memoria, I/O) per
completarsi.
Stati di un Processo
1. Nuovo: Il processo è in fase di creazione.
2. Pronto: In attesa di essere eseguito dalla CPU.
3. In Esecuzione: La CPU sta elaborando il processo.
4. Bloccato: In attesa di risorse (es. I/O).
5. Terminato: Il processo ha completato l’esecuzione.
Scheduling dei Processi
Lo scheduling decide quale processo deve essere eseguito dalla CPU:
1. First-Come, First-Served (FCFS): Ordine di arrivo.
2. Shortest Job Next (SJN): Priorità ai processi più brevi.
3. Round Robin (RR): Assegna una quantità di tempo fissa a ciascun processo.
4. Priority Scheduling: Basato su priorità assegnate ai processi.
Dispositivi di Input/Output e Controller
I dispositivi I/O sono gestiti da controller hardware che fungono da intermediari tra
periferiche e CPU.
Tipologie di Comunicazione I/O
1. I/O Programmatico: