Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Informatica fondamenti, Dispense di Fondamenti di informatica

Dispense basi informatica utili per l’esame

Tipologia: Dispense

2025/2026

In vendita dal 01/07/2026

vicky-465
vicky-465 🇮🇹

3 documenti

1 / 25

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA APPLICATA
INTRODUZIONE ALL’INFORMATICA
CHE COS’È L’INFORMATICA?
L'informatica è la disciplina scientifica che si occupa dello studio, dell'elaborazione e della
gestione automatica delle informazioni. Il termine deriva dalla contrazione delle parole
"informazione" e "automatica".
Il termine fu coniato in Francia nel 1962 da un ingegnere di nome Philippe Dreyfus come
contrazione delle parole information automatique (Informazione Automatica).
Nonostante sia spesso associata all'uso dei computer, l'informatica è una scienza ben più
ampia. I computer sono solo gli strumenti che permettono di mettere in pratica i suoi principi.
PRINCIPALI SETTORI DI APPLICAZIONE
• Sanità digitale
L'informatica applicata migliora la gestione sanitaria con soluzioni digitali innovative e sistemi
di diagnosi avanzati.
• Informatica per l'industria
Soluzioni informatiche automatizzano processi industriali aumentando efficienza e
produttività nelle fabbriche moderne.
• Commercio digitale
Le tecnologie digitali trasformano il commercio migliorando la gestione delle vendite e
l'esperienza cliente.
• Telecomunicazioni
L'informatica supporta le telecomunicazioni con infrastrutture digitali avanzate e
comunicazioni rapide.
ICT (Information and Communication Technologies)
L'ICT è l'insieme di tutti gli strumenti, i sistemi e le applicazioni che permettono di:
• Elaborare (Information Technology - IT)
• Archiviare
• Gestire
• Trasmettere e Ricevere (Communication Technology - CT)
Quindi l’insieme di:
• Hardware: Computer, smartphone, server, tablet, sensori, e tutte le apparecchiature fisiche.
• Software: Applicazioni, sistemi operativi e programmi per l'elaborazione dei dati.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Anteprima parziale del testo

Scarica Informatica fondamenti e più Dispense in PDF di Fondamenti di informatica solo su Docsity!

INFORMATICA APPLICATA

INTRODUZIONE ALL’INFORMATICA

CHE COS’È L’INFORMATICA?

L'informatica è la disciplina scientifica che si occupa dello studio, dell'elaborazione e della gestione automatica delle informazioni. Il termine deriva dalla contrazione delle parole "informazione" e "automatica". Il termine fu coniato in Francia nel 1962 da un ingegnere di nome Philippe Dreyfus come contrazione delle parole information automatique (Informazione Automatica). Nonostante sia spesso associata all'uso dei computer, l'informatica è una scienza ben più ampia. I computer sono solo gli strumenti che permettono di mettere in pratica i suoi principi. PRINCIPALI SETTORI DI APPLICAZIONE

- Sanità digitale L'informatica applicata migliora la gestione sanitaria con soluzioni digitali innovative e sistemi di diagnosi avanzati. - Informatica per l'industria Soluzioni informatiche automatizzano processi industriali aumentando efficienza e produttività nelle fabbriche moderne. - Commercio digitale Le tecnologie digitali trasformano il commercio migliorando la gestione delle vendite e l'esperienza cliente. - Telecomunicazioni L'informatica supporta le telecomunicazioni con infrastrutture digitali avanzate e comunicazioni rapide. ICT (Information and Communication Technologies) L'ICT è l'insieme di tutti gli strumenti, i sistemi e le applicazioni che permettono di:

  • Elaborare (Information Technology - IT)
  • Archiviare
  • Gestire
  • Trasmettere e Ricevere (Communication Technology - CT) Quindi l’insieme di:
  • Hardware: Computer, smartphone, server, tablet, sensori, e tutte le apparecchiature fisiche.
    • Software: Applicazioni, sistemi operativi e programmi per l'elaborazione dei dati.
  • Reti e Infrastrutture di Comunicazione: Internet, reti telefoniche fisse e mobili, Wi-Fi, e i protocolli che consentono la trasmissione dei dati. La differenza tra dato e informazione La differenza fondamentale tra Dato e Informazione risiede nel loro contesto e nel loro significato. Un esempio pratico, consideriamo questi due elementi: Dati grezzi:
  • 180
  • 37,
  • Rosso Questi numeri e parole sono solo simboli. Non sappiamo a cosa si riferiscano. Sono dati. Informazione (risultato dell'elaborazione):
  • "L'auto in arrivo viaggia a 180 km/h."
  • "La temperatura corporea del paziente è di 37,5°C." In questo caso, i dati sono stati interpretati e contestualizzati (auto, corpo umano, traffico) e quindi sono diventati informazioni, utili per agire o prendere una decisione. SOFTWARE E PROGRAMMAZIONE Importanza del software Il software è essenziale per sviluppare applicazioni digitali che risolvono problemi e migliorano l'efficienza. Programmazione È il processo di scrivere le istruzioni (codice) che il computer deve eseguire. La programmazione serve a creare proprio il software. Linguaggi di programmazione principali I linguaggi più usati includono Python, Java e C++, ognuno con caratteristiche adatte a diversi progetti. Caratteristiche dei linguaggi di programmazione I linguaggi si differenziano per sintassi, funzionalità e ambiti d'uso, influenzando le soluzioni informatiche realizzate.
  • Information hiding È un principio della programmazione e dell’ingegneria del software secondo cui ogni parte di un sistema deve nascondere i dettagli interni del proprio funzionamento e mostrare all’esterno solo ciò che è necessario.

Linguaggi a basso livello Pochissima astrazione → mostrano dettagli vicini all’hardware. Esempi: C (medio-basso), Assembly (molto basso) Caratteristiche:

  • maggiore controllo sull’hardware
  • più difficili da scrivere
  • più veloci e ottimizzabili Pionieri del Calcolo: Macchina differenziale La "Macchina di Babbage" si riferisce ai progetti di due calcolatori meccanici ideati dal matematico britannico Charles Babbage (1791–1871), considerato il padre del computer.
  • Scopo : Eliminare gli errori umani nel calcolo e nella stampa di tabelle matematiche (logaritmi, ecc.).
  • Funzionamento : Utilizzava il metodo delle differenze finite per eseguire calcoli complessi tramite una serie ripetuta di sole addizioni meccaniche.
  • Stato : Non completata da Babbage, ma in seguito dimostrata funzionante secondo i suoi progetti. Pionieri del Calcolo: La macchina analitica
  • Importanza : È il progetto del primo computer programmabile universale della storia.
  • Architettura : Prevedeva componenti analoghe a quelle di un computer moderno:
  • Mulino (Mill): L'unità di calcolo (CPU).
  • Magazzino (Store): La memoria.
  • Controllo: Basato su schede perforate per inserire sia dati che istruzioni (programma).
  • Contributo Chiave : Ada Lovelace riconobbe il suo potenziale universale (non solo per i numeri) e scrisse il primo algoritmo, diventando la prima programmatrice.
  • Stato : Rimase un progetto teorico a causa della mancanza di fondi e dei limiti tecnici dell'epoca. Pionieri del Calcolo: Ada Lovelace Ada Lovelace intuì che la macchina analitica, a differenza di quanto pensasse Babbage, che la vedeva solo come un calcolatore numerico, poteva essere usata per andare oltre il mero calcolo e manipolare simboli di qualsiasi tipo (ad esempio per comporre musica, traducendo le note in regole matematiche).

Scrisse una serie di note in cui descrisse un algoritmo destinato a essere elaborato dalla macchina di Babbage, un insieme di istruzioni che anticipava il concetto di programmazione sequenziale e che è riconosciuto come il primo programma per computer mai scritto. L’ALGORITMO Un algoritmo è una sequenza finita e ordinata di istruzioni o passi ben definiti, che devono essere eseguiti per risolvere un problema o raggiungere un obiettivo specifico. Caratteristiche fondamentali di un algoritmo:

  • Finitezza : Deve terminare dopo un numero finito di passi.
  • Ordine: i passi devono essere eseguiti in un ordine preciso.
  • Ben definita: ogni istruzione è chiara e non ambigua (es. "aggiungere 200g di farina", non "aggiungere un po' di farina").
  • Per risolvere un problema: l'obiettivo è preparare un piatto specifico.
  • Deterministico : Per gli stessi dati di input, deve produrre sempre lo stesso output. Ogni passo deve essere definito in modo univoco.
  • Generalizzabile : Deve essere applicabile a un'intera classe di problemi, non solo a un caso specifico.
  • Effettività : Ogni operazione deve essere sufficientemente semplice da poter essere eseguita in pratica (anche da un esecutore umano con carta e penna).
  • Input/Output : Deve accettare zero o più input (dati di partenza) e produrre uno o più output (i risultati). Nell'informatica, gli algoritmi sono il cuore di ogni programma. Un programmatore prima definisce l'algoritmo (come risolvere il problema passo dopo passo) e poi lo traduce in un linguaggio di programmazione che il computer può capire ed eseguire. Diagrammi di flusso I diagrammi di flusso (flowchart) servono a rappresentare graficamente un algoritmo o un processo, usando simboli standardizzati. Ogni simbolo ha un significato preciso. 1. Terminatore Forma grafica: Ovale oppure rettangolo con bordi arrotondati (“pillola”) Significato:
    • Indica l’inizio o la fine di un processo/algoritmo. 2. Processo / Azione

un essere umano. Questo test ha stabilito la base per l'intera disciplina dell'Intelligenza Artificiale (IA), che è un'estensione diretta del concetto di computazione a processi cognitivi complessi. Il test consiste in questo: Una persona umana (l’esaminatore) comunica attraverso una tastiera con due interlocutori:

  1. un essere umano
  2. una macchina L’esaminatore non sa chi è chi perché la comunicazione è solo testuale. Se l’esaminatore non è in grado di distinguere chi è la macchina e chi è l’umano, allora la macchina ha superato il Test di Turing. In altre parole, la macchina dimostra una intelligenza conversazionale comparabile a quella di un umano. IL PENSIERO COMPUTAZIONALE Di che si tratta? È un processo mentale e logico-creativo per formulare problemi e trovare soluzioni in un modo che possa essere compreso ed eseguito efficacemente da un agente di elaborazione delle informazioni (che sia un essere umano o un computer). Questa metodologia non consiste nel pensare come una macchina, ma nell'applicare concetti e strategie tipici dell'informatica per risolvere problemi complessi. Le Radici del Concetto Il termine "Pensiero Computazionale" fu coniato e reso popolare da due figure chiave:
  • Seymour Papert: Usò l'espressione per la prima volta nel suo libro del 1980, Mindstorms, associandolo all'apprendimento attraverso i linguaggi di programmazione.
  • Jeanette Wing: Ha formalizzato e definito il concetto nel 2006, descrivendolo come un'abilità fondamentale per tutti, al pari di leggere, scrivere ed eseguire calcoli. I Pilastri (Come si manifesta) Il Pensiero Computazionale si articola in quattro fasi operative:
  1. Scomposizione (Decomposition): Suddividere il problema in parti più semplice ("Divide et impera").
  2. Riconoscimento di Modelli (Pattern Recognition): Identificare somiglianze e regolarità.
  3. Astrazione (Abstraction): Concentrarsi sui dettagli essenziali, ignorando quelli irrilevanti.
  1. Algoritmo (Algorithm Design): Progettare una sequenza precisa di istruzioni per automatizzare la soluzione. La tesi di Church-Turing Definizione della tesi La Tesi di Church-Turing sostiene che ogni algoritmo può essere eseguito da una macchina di Turing. Questa idea è la base della teoria della computabilità. Importanza per l’informatica La tesi è fondamentale per l'informatica teorica, perché definisce i limiti di ciò che può essere calcolato tramite algoritmi. Accettazione e limiti Sebbene non sia dimostrabile formalmente, la tesi è universalmente accettata come base per lo studio dei modelli computazionali. MACCHINA DI VON NEUMANN La macchina di Von Neumann si basa su CPU, memoria e dispositivi di input/output integrati in un unico sistema. Dati e istruzioni sono conservati nella stessa memoria, facilitando la gestione e la flessibilità della programmazione. Questo modello ha rivoluzionato la progettazione dei computer, rendendo possibile la programmazione avanzata e lo sviluppo tecnologico. Il calcolatore Le funzionalità chiave di un computer sono tre: elaborazione (l'esecuzione di operazioni logiche e aritmetiche sui dati), memoria (il salvataggio di dati e istruzioni) e interazione (la gestione dell'input di informazioni e dell'output dei risultati). A livello costruttivo, il computer si distingue per due importanti attributi:
  • Modularità : Sfrutta componenti standard; ciò significa che in caso di guasto è sufficiente sostituire la parte difettosa con un'altra di pari funzionalità.
  • Scalabilità : I moduli (le singole parti) possono essere sostituiti con altri componenti compatibili, consentendo così di aggiornare o potenziare il sistema nel tempo. Hardware vs Software Componenti fisiche del computer L’hardware comprende tutte le parti tangibili e visibili di un computer, come monitor e tastiera.
  • È rappresentato con onde quadre (passaggi netti tra 0 e 1). 4. Immunità al rumore Analogico
  • Bassa resistenza al rumore. Il rumore degrada il segnale e la qualità diminuisce facilmente. Digitale
  • Alta resistenza al rumore. Il rumore può essere filtrato e il segnale può essere rigenerato , mantenendo buona qualità. Informazione e codifica Per essere elaborata da un calcolatore, l'informazione deve essere innanzitutto memorizzata attraverso un processo di codifica. Con l'avvento dei calcolatori elettronici e l'esigenza di codificare un gran numero di entità sotto forma di dati, è stato necessario affinare e approfondire le metodiche per la rappresentazione dei dati, garantendo in particolare:
  • Efficienza: Utilizzo del minor numero possibile di bit (la più piccola unità di informazione) per rappresentare il dato.
  • Uniformità/Non Ambiguità: Che a ogni combinazione di bit corrisponda un solo ed unico dato (e viceversa), evitando doppie interpretazioni.
  • Facile Manipolabilità: Possibilità di effettuare operazioni e manipolazioni del dato (come somme, confronti logici, ecc.) in modo rapido ed efficiente da parte dell'hardware. LA TEORIA DELL’INFORMAZIONE: CLAUDE SHANNON 1937 : Fondamenti dell'Era Digitale. Nella sua tesi di Master al MIT, dimostrò che l'Algebra di Boole poteva essere usata per progettare e ottimizzare i circuiti digitali (relè e interruttori). Questo lavoro pose le basi per la progettazione di tutti i moderni sistemi di elaborazione digitale. 1948 : La Nascita della Teoria dell'Informazione Inoltre:
  • Pubblicò il saggio fondamentale "A Mathematical Theory of Communication" (Una Teoria Matematica della Comunicazione).
  • Stabilì il quadro teorico per la misurazione e la trasmissione efficiente dell’informazione. Introdusse e coniò il termine "Bit" (binary digit) come unità elementare dell'informazione. - Definì il concetto di Entropia dell'Informazione (misura dell'incertezza/ridondanza).
  • Elaborò i teoremi che definiscono i limiti massimi della velocità di trasmissione dei dati (Capacità di Shannon).
  • Considerato il fondatore della teoria matematica della Crittografia.
  • Importanti studi sul Teorema del Campionamento (Nyquist-Shannon). FONDAMENTI DELL’ALGEBRA DI BOOLE L’algebra di Boole è un sistema matematico creato da George Boole nell’Ottocento. È alla base della logica digitale, dei circuiti elettronici e del funzionamento dei computer. L'algebra di Boole analizza variabili che assumono solo valori 0 o 1, fondamentali per la logica digitale. Operazioni logiche principali Le operazioni logiche di base sono tre, AND, OR e NOT, sono i mattoni fondamentali per costruire espressioni logiche e circuiti elettronici semplici:
    • AND L’uscita è 1 solo se tutti gli ingressi sono 1.
    • OR L’uscita è 1 se almeno uno degli ingressi è 1.
    • NOT Inverte il valore della variabile:
    • NOT 0 = 1
    • NOT 1 = 0 Da AND, OR e NOT si costruiscono altre operazioni logiche, come NAND, NOR, XOR etc. Applicazioni nell'informatica L'algebra di Boole permette la progettazione di circuiti logici e reti digitali, essenziale per dispositivi elettronici e computer. Le porte più comuni L’INFORMAZIONE DIGITALE L'informazione digitale è il cuore della nostra epoca, definita l'Era Digitale o l'Informational Age. Si riferisce a qualsiasi dato o contenuto rappresentato, elaborato, trasmesso e memorizzato utilizzando un formato binario (combinazioni di 0 e 1, il bit). A differenza dell'informazione analogica (come un vinile o una vecchia fotografia), l'informazione digitale è discreta e facilmente manipolabile, replicabile e distribuibile in modo quasi istantaneo.
  • 10 cifre (0, 1, 2, …, 9);
  • Segni di punteggiatura (,. ; :! ”? ’ ^ \…);
  • Segni matematici (+, - , , : , ±, { , [ , >, …);
  • Caratteri nazionali (à, è, ì, ò, ù, ç, ñ, ö, ...);
  • Altri segni grafici (©, @, €, $,…). Codifica dei Simboli e Definizione di Codice Per poter rappresentare un numero sufficiente di simboli (ad esempio, circa 220 caratteri, che includono lettere, numeri e punteggiatura) sequenze di bit è necessario utilizzare
  • Con 8 bit (ovvero 1 Byte) si ottengono 2 = 256 combinazioni distinte, sufficienti per codificare tali 220 simboli richiesti.
  • L'insieme delle regole che stabilisce la corrispondenza univoca tra ogni sequenza (o stringa) di bit e il simbolo che essa rappresenta, prende il nome di codice Codice ASCII, un esempio La parola Computer in codice ASCII diventa:
  • C= 01000011
  • o= 01101111
  • m= 01101101
  • p= 01110000
  • u= 01110101
  • t= 01110100
  • e= 01100101
  • r= 01110010 01000011 01101111 01101101 11100000 01110101 01110100 01100101 01110010 Il Sistema di Numerazione Decimale Il sistema di numerazione decimale (o in base 10) è un sistema posizionale. Questo significa che il valore di ogni singola cifra all'interno di un numero dipende strettamente dalla sua posizione. Esempio: Il Numero 402 Notazione Compatta: (Sistema Posizionale) 402 Notazione Esplicita (con potenze di 10): Il numero è la somma dei prodotti tra ciascuna cifra e la potenza di 10 corrispondente alla sua posizione:
  • (4 x 10^2 ) + (0 x 10^1 ) + (2 x 10^0 )
  • Sviluppo: (4 x 100) + (0 x 10) + (2 x 1) = 400 + 0 + 2 = 4 02 Sistemi di Numerazione e Basi Sistema Base Cifre
  1. La Flessibilità della Notazione Posizionale La notazione posizionale non è limitata alla sola base dieci, ma può essere applicata a qualunque base (b), dando origine a diversi sistemi di numerazione. Per ogni base di numerazione (b), si utilizza un numero di cifre uniche pari a b. Ad esempio, la base 10 usa 10 cifre (da 0 a 9), e la base 2 (binario) usa 2 cifre (0 e 1).
  2. Le Basi Fondamentali in Informatica In informatica e in elettronica digitale, si utilizzano prevalentemente tre sistemi di numerazione posizionali per ragioni di efficienza e sintesi. Il Sistema di Numerazione Binario (Sistema Posizionale) Il sistema di numerazione binario (o in base 2), allo stesso modo del decimale, è un sistema posizionale. Questo significa che il valore di ogni singola cifra all'interno di un numero dipende strettamente dalla sua posizione. Esempio: Il Numero 101 Notazione Compatta: 101 Notazione Esplicita (con potenze di 2)  Il numero è la somma dei prodotti tra ciascuna cifra e la potenza di 2 corrispondente alla sua posizione: (1 x 2^2 ) + (0 x 2^1 ) + (1 x 2^0 ) Sviluppo: (1 x 4) + (0 x 2) + (1 x 1) = 4 + 0 + 1 = 5 Conversione da base b a base 10 Per convertire un numero da una qualunque base 𝑏 alla base 10, è sufficiente rappresentarlo esplicitamente: Сп-1Сп-2... С₁ CoCn-1bn-1 + Cn- 26 - 2+...+C₁b² + Cob° dove ogni cifra C₁e[0, b[ per i = 0, 1,...n- 1 (ad esempio, per b=8 ogni cifra, in decimale, assume valore appartenente a [0,7]). Conversione da base 10 a base 2 Per convertire un numero decimale in una qualsiasi base n, è necessario trovare tutti i resti delle successive divisioni del numero per la base n. Ad esempio, per trovare il valore binario del numero 210, basta dividere 210 per la base 2 ripetutamente fino a ottenere zero come risultato. I resti devono essere letti dall'ultimo verso il primo. Capacità di Elaborazione e Grandezza dei Numeri La dimensione della parola (in inglese, word size) corrisponde tipicamente al numero di bit che i registri interni della CPU (Unità Centrale di Elaborazione) possono gestire in una singola operazione e al numero di bit che il bus dati può trasferire in una sola volta. I registri sono piccole “celle di memoria super veloci” all’interno della CPU. Se un processore ha una word size di:
  • 8 bit → ogni registro può contenere 8 bit
  • 32 bit → ogni registro contiene 32 bit

Nella base di numerazione b disponendo di n cifre, si possono rappresentare soltanto i numeri da 0 a 𝒃 n- 1 Rappresentazione dei numeri con segno Per rappresentare i numeri con il loro segno (interi positivi e negativi) esistono due possibili modi:

  • Rappresentazione in modulo e segno
  • Metodo del complemento a due Rappresentazione in modulo e segno Nel primo metodo, dati n bit, il bit a sinistra si riserva al segno, lasciando gli altri n-1 alla rappresentazione del numero. Di solito si considera 0 per il segno più e 1 per il segno meno: 0000 0101₂ = 5₁₀ 1000 0101₂ = - 5₁₀ Questo metodo, anche se molto semplice, presenta l’inconveniente che esistono due zeri: 1000 0000 0000 0000 Utilizzando n bit e riservandone uno al segno, l'applicazione della formula precedente porterà alla rappresentazione del seguente intervallo: da – (2 n-^1 - 1) a 2 n-^1 - 1. Dove, come detto, n vale o 16, permettendo quindi la rappresentazione dei numeri da - 32. a +32.767, o 32, con rappresentazione dei numeri da - 2.147.483.647 a 2.147.483. Completamento a due Il secondo metodo è quello del complemento a 2: Dato un numero composto da n bit, la rappresentazione in complemento a due si ottiene invertendo gli 1 in 0 e gli 0 in 1 (complemento a 1) e poi sommando 1 al risultato ottenuto. In questo caso, ad ogni numero (senza segno) vengono aggiunti degli zeri a sinistra, fino a raggiungere un byte. Se il numero è positivo, si lascia invariato; se è negativo, si converte in complemento a due (ottenendo sempre il primo bit 1 come in precedenza). È ovvio che in questo caso 00000000 e 10000000 hanno significati differenti Operazioni con i binari (somma) Per procedere con la somma tra binari, come operazioni in colonna, occorre tenere conto delle seguenti indicazioni: 0 + 0 = 0 + 1 = 1 + 0 = 1

1 + 1= 1 con riporto, di conseguenza 1 1 1 + 1 = Operare l'addizione di due interi rappresentati con questo metodo non richiede processi speciali se essi sono di segno opposto, e il segno viene determinato automaticamente. Facciamo un esempio addizionando 15 e-5: 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 + = 0 0 0 0 1 0 1 0 Operazioni con i binari (sottrazione) Per procedere con la sottrazione tra binari, come operazioni in colonna, occorre tenere conto delle seguenti indicazioni: Prestito di 1 dal primo disp. A sx come nel decimale 0 - 0 = 0 - 1 = 1 - 0 = 1 1 - 1 = 0 La sottrazione potrebbe essere eseguita aggiungendo il complemento a due del sottraendo al minuendo, questo procedimento è poco utilizzato in quanto porta più complicazioni rispetto alla semplice costruzione di un circuito per la sottrazione. Come per l'addizione però, il vantaggio del complemento a due è l'eliminazione della necessità di esaminare i segni degli operandi per determinare quale operazione sia necessaria. Per esempio, sottrarre - 5 a 15 è come aggiungere 5 a 15, ma questo è nascosto dal complemento a due: 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 = 0 0 0 1 0 1 0 0 Operazioni con i binari Dal momento che un computer è in grado di compiere solo somme e confronti, ci serve una procedura che consenta di convertire ogni operazione in somma (o sequenze di somme). SOTTRAZIONI La sottrazione può essere convertita in somma nel modo seguente 25- 14 = 25 + (- 14) MOLTIPLICAZIONI La moltiplicazione può essere convertita sommando un fattore, per sé stesso, tante volte quanto è il valore assunto dall’altro fattore (in genere si sceglie il minimo tra i due) 25 x 3 = 25

  • 25 + DIVISIONE La divisione può essere ottenuta sottraendo il divisore al dividendo e iterando il procedimento fino a quando il risultato non diventi minore dello stesso divisore 10 : 3 ---> 10 3 = 7 3 = 4 3 = 1 Il numero di sottrazioni effettuate corrisponde al risultato mentre il valore finale ottenuto, indica il resto della divisione. Overflow

La CPU è un circuito integrato complesso che esegue le istruzioni del programma, elabora dati e controlla tutte le altre componenti. È composta principalmente da:

  • Unità di Controllo (CU) : preleva le istruzioni dalla memoria (Fetch), le decodifica (Decode) e genera i segnali per gli altri componenti.
  • Unità Aritmetico-Logica (ALU) : esegue calcoli matematici (somma, sottrazione, ecc.) e logici (AND, OR, NOT).
  • Registri : memorie velocissime integrate nella CPU che contengono temporaneamente istruzioni, indirizzi e dati. Tra i principali: o Program Counter (PC) : indirizzo della prossima istruzione. o Instruction Register (IR) : istruzione attualmente eseguita. o Accumulator (ACC) / Registri Generici (GPR) : operandi e risultati intermedi. o Registro di Stato (SR / PSW) : flag sul risultato delle operazioni. Oltre a queste unità, le CPU moderne hanno:
  • Cache : memoria molto veloce che memorizza dati e istruzioni usati più frequentemente.
  • Bus di Sistema : collegano la CPU alla RAM e alle periferiche, suddivisi in bus dati, indirizzi e controllo. I processori multicore integrano più CPU in un singolo chip, aumentando la capacità di elaborazione parallela. Il ciclo Fetch-Decode-Execute Questo ciclo è la sequenza fondamentale con cui la CPU esegue le istruzioni. Si articola in tre fasi:
  1. Fetch (Prelievo) : La CPU preleva l’istruzione successiva dalla RAM, usando il Program Counter (PC) per determinare l’indirizzo. L’istruzione viene caricata nell’Instruction Register (IR) e il PC viene aggiornato.
  2. Decode (Decodifica) : L’unità di controllo interpreta l’istruzione (opcode) e individua gli operandi necessari, prelevandoli dalla memoria o dai registri della CPU.
  3. Execute (Esecuzione) : L’ALU esegue l’operazione richiesta. Il risultato viene salvato in un registro o in memoria, e il Program Counter viene aggiornato in caso di salto condizionato o incondizionato. Clock e velocità del processore

Il clock è l’impulso elettrico che sincronizza tutte le operazioni della CPU. Ogni ciclo di clock permette l’apertura e chiusura dei transistor per elaborare dati.

  • 1 Hz = 1 ciclo al secondo
  • 1 MHz = 1 milione di cicli al secondo
  • 1 GHz = 1 miliardo di cicli al secondo Non sempre più GHz significano più velocità: è fondamentale anche l’ IPC (Instructions Per Cycle) , ovvero quante istruzioni vengono completate per ciclo. Memoria RAM La RAM è volatile e ad accesso casuale. Funziona come “tavolo di lavoro” per i dati e i programmi in esecuzione. La RAM agisce da intermediario tra CPU e memoria di massa, garantendo tempi di accesso molto rapidi. Caratteristiche principali: capacità, frequenza, latenza, tipo (DDR4, DDR5).
  • MAR (Memory Address Register) : contiene l’indirizzo della cella da leggere o scrivere.
  • MDR (Memory Data Register) : contiene temporaneamente il dato trasferito da o verso la memoria. ROM La ROM è non volatile e a sola lettura. Contiene il firmware necessario all’avvio del computer, come BIOS o UEFI e driver di base. Esistono vari tipi di ROM: PROM, EPROM, EEPROM, Flash Memory. Cache La cache velocizza l’accesso ai dati più frequentemente usati, sfruttando la località temporale e spaziale.
  • L1: molto veloce, piccola, dedicata a ciascun core.
  • L2: intermedia, più grande di L1.
  • L3: più vicina alla RAM, condivisa tra i core, più lenta ma di maggiore capacità. Memoria secondaria La memoria secondaria è permanente o semi-permanente, e può essere:
  • Magnetica : HDD e nastri magnetici. Economici e capienti, ma meccanici e lenti.
  • Stato solido (Flash) : SSD, chiavette USB, schede SD. Veloci, resistenti, silenziosi.
  • Ottica : CD, DVD, Blu-Ray. Accesso tramite laser, riscrivibili o solo lettura.