COS'É UN COMPUTER?
Immagine non trovata

Un computer (o elaboratore) è una macchina automatizzata in grado di eseguire complessi calcoli matematici ed eventualmente altri tipi di elaborazioni dati.
In particolare il computer nasce esclusivamente come macchina in grado di eseguire calcoli matematici e, solo a partire dalla seconda metà del XX secolo, evolve in macchina in grado di eseguire le elaborazioni dati più varie.
Nel corso della storia, l'implementazione tecnologica di questa macchina si è modificata profondamente sia nei meccanismi di funzionamento (meccanici, elettromeccanici ed elettronici), che nelle modalità di rappresentazione dell'informazione (analogica e digitale) che in altre caratteristiche (architettura interna, programmabilità, ecc.).
Ci si riferisce comunemente al computer come ad un dispositivo elettronico e digitale, programmabile a scopo generico, costruito secondo il modello teorico-computazionale della cosiddetta macchina di Turing e la cosiddetta architettura di von Neumann.
Sebbene i computer programmabili a scopo generico siano oggi i più diffusi, esistono in specifici ambiti di applicazione modelli di computer dedicati (automazione industriale, domotica, ecc.).
Il computer nasce storicamente come macchina per automatizzare alcune capacità della mente umana come ad esempio il calcolo e la capacità di memorizzazione potenziandone la portata e applicandole alla soluzione di particolari problemi scientifici e ingegneristici.

COME FUNZIONA
Immagine non trovata Immagine non trovata

A differenza della mente umana, intesa come attività del cervello, che è in grado di affrontare e risolvere problemi nuovi a mezzo di facoltà cognitive come intuizione e ragionamento, il computer, in quanto macchina, pur partendo ugualmente da dei dati in input, è invece un semplice esecutore di ordini, compiti o istruzioni impartite dall'esterno per risolvere determinati problemi d'interesse attraverso un algoritmo di risoluzione del problema stesso in modo tale che a partire da determinati input produca determinati output attraverso elaborazione degli stessi.
Esso nasce dunque per eseguire programmi o applicazioni: un computer senza un programma da eseguire è inutile.
Il computer, in quanto esecutore, ha dunque bisogno di essere istruito o programmato dall'esterno per mano competente di un programmatore: questi comunica/interagisce con la macchina attraverso i linguaggi di programmazione ad alto, medio o basso livello di astrazione (linguaggio macchina), che si differenziano tra loro secondo vari paradigmi di programmazione.
Queste parti immateriali che consentono l'utilizzo di programmi vengono comunemente chiamate software in contrapposizione all'hardware che è invece la parte fisica (elettronica), nel senso di materiale e tangibile, degli elaboratori e che consente l'esecuzione dei programmi stessi.
Tutto ciò che si può ottenere con l'utilizzo accoppiato di strumenti informatici o risorse hardware e software costituisce un'applicazione informatica. Tutto il resto, oltre ad hardware e software, sono i dati presenti nella memoria del computer, compresi all'interno di file e directory ed utilizzati in input dai programmi stessi per l'espletamento in output del particolare servizio richiesto dall'utente.
Ovviamente quando si lavora su un computer scompare agli occhi dell'utilizzatore il funzionamento hardware interno della macchina interfacciandosi con essa unicamente tramite il linguaggio di programmazione ad alto livello oppure grazie all'interfaccia utente del software stesso garantendo così quella grande flessibilità di utilizzo anche a chi non ne conosce i principi fisico-elettronici di funzionamento e che costituisce, assieme alla potenza di elaborazione, a quella di memorizzazione e alla riprogrammabilità, la chiave di successo dei computer stessi. Questo processo di astrazione a partire dal livello fisico è comune a tutta l'informatica.
Il programma o software di base di gran lunga più importante per un computer (se previsto nell'architettura generale) senza il quale la macchina non potrebbe funzionare è il sistema operativo, che si occupa di gestire la macchina, le sue risorse hardware e le altre applicazioni che vi sono eseguite. Fornisce così all'utente un'interfaccia (grafica o testuale) con la macchina gestendo o coordinando in maniera efficiente le operazioni di Input/Output comandando le rispettive periferiche di sistema, gestendo le operazioni di esecuzione dei programmi applicativi assegnandovi di volta in volta le risorse hardware necessarie al processamento (scheduling) ed infine gestendo l'archiviazione e l'accesso ai dati memorizzati attraverso il cosiddetto file system.
Dal punto di vista hardware il computer inoltre è un sistema elettronico digitale (programmabile) che elabora cioè tutti i dati in formato digitale o numerico ovvero come sequenze di 0 e 1 corrispondenti a due livelli di tensione (alto e basso) corrispondenti a loro volta ai due stati fisici di interruttore aperto e chiuso.
La logica elettronica interna di funzionamento è dunque basata sull'Algebra di Boole. Il linguaggio dell'hardware è propriamente un linguaggio macchina ovvero sequenze di bit cui si associano per semplice codifica i linguaggi a più alto livello.
Ovviamente l'immissione dei dati in input alla macchina elaboratrice è di tipo alfa-numerico decimale per cui è necessaria un'operazione di traduzione o codifica delle informazioni in binario; viceversa per ottenere una visualizzazione in output dei risultati dell'elaborazione è necessaria una traduzione o codifica inversa da binario ad alfa-numerico decimale. Tale codice è generalmente il codice ASCII.
A larghe linee la progettazione di sistemi di elaborazione a livello hardware ricade in massima parte nel campo dell'ingegneria informatica (la quale a sua volta afferisce conoscenze dall'ingegneria elettronica), mentre lo sviluppo software è affidato in massima parte al campo dell'informatica pura. Pur tuttavia i confini tra le due discipline non sono rigidi bensì spesso assai sfumati.

HARDWARE
Immagine non trovata Immagine non trovata

Con il termine hardware, in ingegneria elettronica e informatica, si indica la parte fisica di un computer, ovvero tutte quelle parti elettroniche, elettriche, meccaniche, magnetiche, ottiche che ne consentono il funzionamento.
La macchina elaboratrice è adagiata all'interno di un case e viene alimentata elettricamente da un'unità (alimentatore), interna o esterna che fornirà al sistema le giuste tensioni elettriche alle sue diverse componenti, nei termini della potenza e stabilità richieste.
Il case è il telaio che meccanicamente sostiene la componentistica e che al suo interno contiene i componenti del computer.
Il sistema di raffreddamento serve per espellere l'aria calda prodotta dai componenti del computer e di essi ne esistono di vari tipi.
L'alimentatore è l'elemento che fornisce energia al PC, e nel caso delle versioni portatili può essere sostituito da alcune batterie. Esso può spegnersi in modo automatico o manuale.
La scheda madre è una parte fondamentale di un moderno personal computer: sotto forma di scheda elettronica principale raccoglie in sé tutta la circuiteria elettronica e i collegamenti di interfaccia tra i vari componenti interni principali del PC (CPU, memoria e le altre schede elettroniche montate o alloggiate sopra) comprendendo quindi anche i bus di espansione e le interfacce verso le periferiche esterne. È responsabile dunque della trasmissione e temporizzazione corretta di molte centinaia di segnali diversi, tutti ad alta frequenza e sensibili ai disturbi, tra processore e RAM, schede di espansione e periferiche esterne attraverso i vari bus di sistema. La sua buona realizzazione è quindi un fattore chiave per le prestazioni e l'affidabilità dell'intero computer.
La CPU è un circuito integrato riprogrammabile dall'utente tramite programma applicativo ed è il "cervello" vero e proprio del computer, ovvero il dispositivo che ha il compito di elaborare (processing) le informazioni (dati) provenienti dalla memoria centrale decodificando ed eseguendo le istruzioni operative in codice macchina del programma e appartenenti al set di istruzioni fondamentali specifiche della CPU (instruction set), oltre che coordinare le altre unità di processamento secondarie (coprocessore). Si suddivide in Unità di Controllo (Control Unit) ed Unità Logico Aritmetica (ALU). La sua struttura o architettura è stata soggetta ad evoluzione nel tempo, integrando progressivamente quantità sempre maggiori di transistor, arricchendosi di memoria interna detta cache di primo livello, aumentando la dimensione del bus dati e integrando più di una struttura esecutiva delle istruzioni, detta pipeline, aumentando così il grado di 'parallelismo'. Nelle ultime versioni si hanno più CPU che coesistono insieme sullo stesso circuito integrato, detto quindi processore multicore, ad esempio dual-core, quad core o octa-core a seconda che ospiti due, quattro o otto processori in parallelo.
La ROM è una tipologia di memoria informatica non volatile in cui i dati sono memorizzati tramite collegamenti elettronici fisici e stabili. Il suo contenuto non è modificabile durante il normale funzionamento, ma può esserlo, con diverse tecniche, in fase di costruzione, di progettazione o di prototipazione.
La RAM è un tipo di memoria volatile caratterizzata dal permettere l'accesso diretto a qualunque indirizzo di memoria con lo stesso tempo di accesso. La memoria ad accesso casuale si affianca ad altre tipologie di memoria come la memoria ad accesso sequenziale e alla memoria ad accesso diretto. Per le sue caratteristiche viene utilizzata come memoria primaria nei più comuni computer.
La memoria secondaria affianca la memoria centrale, è più lenta ma riesce a mantenere i dati scritti per un tempo indefinito. Essa è costituita in genere da dischi magnetici (es. disco rigido, floppy disk) o dischi ottici (es. CD, DVD). Una promettente evoluzione è rappresentata dai supporti a stato solido, detti anche SSD: sono molto simili alle schede di memoria, hanno velocità di lettura più elevate rispetto ai dischi magnetici, ma attualmente sono molto costosi.
Collegate tramite slot e socket alla scheda madre (e quindi alla CPU) sono le schede di espansione che costituiscono dunque le periferiche interne del computer. Tra queste la più importante è la scheda video che è l'elemento hardware che si occupa dell'elaborazione delle immagini e della loro visualizzazione sul monitor. Altre schede d'espansione sono la scheda audio, la scheda di rete, la scheda Bluetooth, la scheda Wi-Fi e la scheda di memoria.
Le Periferiche di Input-Output sono necessarie per comunicare in input con la macchina impartendo istruzioni e visualizzare all'utente i risultati dell'elaborazione, alcuni esempi di queste periferiche sono la tastiera, il mouse, il monitor, la stampante, il modem.
Il computer non potrebbe funzionare senza il bus di sistema. Questo è infatti il collegamento (parallelo) fra le varie componenti di un computer: CPU, chipset, scheda video, periferiche, eccetera. Esistono 3 tipi fondamentali di bus che, assieme, formano il bus di sistema:Bus indirizzi, Bus Dati e Bus controlli.