Estratto del documento

Dipense informatica

Storia e terminologia

L'informatica è una scienza che si occupa del trattamento delle informazioni mediante gli elaboratori elettronici. Gli obiettivi che l'informatica si pone di raggiungere sono:

  • Progettare ed usare macchine in grado di trattare le informazioni senza l’intervento dell’uomo e in modo automatico
  • Individuare nuovi ambiti applicativi
  • Individuare e progettare nuovi strumenti per rendere i calcolatori fruibili anche ai non addetti ai lavori
  • Studiare tecniche e metodi per ottimizzare l’uso del calcolatore e approfondire gli aspetti concettuali legati al loro uso

Oggetto di studio dell’informatica sono i calcolatori, nati dall’esigenza di eseguire meccanicamente operazioni ripetitive, e gli algoritmi, nati per definire procedure meccaniche ed automatiche per la risoluzione di problemi. Le origini del computer sono molto più antiche di quanto si possa pensare. Sebbene il calcolatore, come lo conosciamo oggi, sia stato inventato dopo la II guerra mondiale, l’uso degli strumenti per il calcolo matematico si riscontra già nelle antiche civiltà con l’introduzione delle prime nozioni matematiche e strumenti molto semplici come l’abaco. Quelli più comuni sono: l’abaco russo, giapponese, cinese e il pallottoliere occidentale.

Nel 1623, Schickard progettò il primo modello di calcolatore per sommare, sottrarre, moltiplicare e dividere, ma non fu mai costruito. La prima macchina che permise di addizionare e sottrarre fu la Pascalina, inventata nel 1642 dal filosofo e matematico francese Blaise Pascal e in seguito perfezionata da Leibniz. A lui si deve la rappresentazione dei numeri binari utilizzando le cifre 0 e 1 e successivamente descrisse le regole dell’aritmetica binaria.

Un contributo indiretto ma comunque importante si deve a Jacquard nell’evoluzione dei calcolatori che nel 1804 presentò un sistema di schede perforate in grado di automatizzare le lavorazioni dei telai. Le schede perforate influenzeranno lo sviluppo dell’elaborazione automatica e spinsero Babbage e altri inventori a creare un meccanismo capace di immettere dati e programmi di calcolo nelle macchine.

Lo sviluppo dei moderni calcolatori richiese l’introduzione della programmazione, che permise di cambiare i calcolatori in modo radicale. L’idea di calcolatore programmabile si concretizzò con Babbage, che descrisse il primo calcolatore digitale automatico, la cosiddetta Macchina Analitica, basata sull’utilizzo di schede e nastri perforati simili a quelli di Jacquard. Essa rappresentava un progetto innovativo, ma la complessità e la precisione richiesta per i suoi meccanismi resero impossibile la sua concreta realizzazione. Babbage realizzò anche la Macchina delle Differenze in grado di svolgere calcoli più specializzati e di stamparli su tavole matematiche sfruttando il metodo di calcolo delle differenze.

Ad entusiasmarsi alle ricerche di Babbage fu Ada Lovelace, che scrisse il primo software informatico della storia e per questo è stata, in assoluto, il primo programmatore. Ada descrisse la macchina analitica di Babbage come uno strumento programmabile, in grado di agire in base a delle istruzioni generali.

Mark I fu la prima macchina di calcolo elettro-meccanico costruita nel 1939 da Aiken, mentre il calcolatore elettronico ABC (Atanasoff Berry Computer) fu progettato nel 1940. Il primo calcolatore elettronico nacque sotto la spinta di esigenze belliche degli USA che s’impegnarono ad incrementare le ricerche per la realizzazione di calcolatori più veloci e dal 1943 finanziarono la progettazione e la realizzazione di un calcolatore elettronico. Il risultato fu l’ENIAC, il primo grande calcolatore elettronico basato sull’uso di valvole termoioniche.

Nel 1944 Von Neumann cominciò a collaborare al progetto dell’ENIAC e si rese conto che la programmazione effettuata mediante la riconfigurazione d’interruttori e di cavi era lenta, faticosa e poco flessibile. Così il progetto dell’ENIAC fu modificato in modo da permettere la memorizzazione interna del programma. Von Neumann fu il primo a descrivere l’architettura dei calcolatori in termini logico-funzionali secondo uno schema basato su: CPU, suddivisa in unità operativa ALU ed unità di controllo; unità di memoria RAM; unità di Input e Output e il BUS, un canale che collega i computer fra loro. Nacque così l’idea di un calcolatore a programma memorizzato e si avviò il progetto EDVAC che si concluse nel 1952.

I calcolatori fabbricati fino al 1959 erano costituiti da valvole che consumavano molto con un elevato rischio di surriscaldamento, mentre i calcolatori fino al 1970 erano dotati di circuiti integrati e i microcomputer muniti di una memoria che utilizzava la tecnologia dei semiconduttori. I calcolatori si classificano secondo il numero degli utenti che vi possono accedere contemporaneamente, la capacità di memoria, la velocità, l’affidabilità e il costo. I computer possono essere divisi in alcune categorie secondo le loro caratteristiche principali.

  • Mainframe: computer molto grandi, complessi, potenti e costosi. Sono impiegati esclusivamente dalle grandi aziende, nelle banche e in generale in strutture che hanno bisogno di elaborazione molto elevata per gestire i terminali degli utenti, e prevedono l’accesso contemporaneo da parte di centinaia di utenti.
  • Minicomputer: elaboratori dal costo più ridotto e possono essere acquistati da medie e grandi aziende. Essi permettono un accesso contemporaneo da parte di alcune decine di utenti.
  • Workstation: dotate di un’architettura per scopi professionali e di un’elevata capacità di elaborazione. Esse sono accessibili solo da pochi utenti contemporaneamente e sono impiegate soprattutto nei laboratori di ricerca e nelle università.
  • Personal Computer: impiegati soprattutto come elaboratori di testo, per reperire e gestire informazioni. Sono dotati di una buona capacità di elaborazione e accessibili da un utente per volta.
  • Supercomputer: molto potenti e costosi e per questo in via di estinzione, utilizzati in ambienti con necessità di calcolo avanzato.
  • Sistemi Multiprocessore: dotati di una grande capacità di elaborazione e di un buon rapporto costo/prestazione, utilizzati soprattutto per l’elaborazione scientifica.

L'hardware

Tutti i computer hanno bisogno di un software, ossia un equipaggiamento logico, costituito dai programmi che permettono al calcolatore di svolgere un insieme di funzioni e dell’hardware, ossia la parte fisica di un elaboratore, cioè le parti magnetiche, ottiche, meccaniche ed elettroniche che gli consentono il funzionamento. L’hardware si suddivide in parte attiva, costituita dal processore, e in parte passiva, formata dalla memoria, da canali di documentazione e dai dispositivi Input e Output.

Una parte fondamentale dell’elaboratore, oltre alla CPU, alla memoria, alle periferiche congiunte attraverso il Bus, è la Scheda Madre, una piastra che fa da supporto per tutti i componenti interni del computer. Su di essa s’inseriscono: il processore, la memoria RAM e le varie schede di espansione che permettono alle periferiche e ai componenti di sistema di dialogare fra loro. Il processore è composto da: Datapath, un insieme di circuiti in grado di operare e manipolare i dati e il Controller, un insieme di circuiti che interpretano un comando e fa eseguire ad altri componenti le sue istruzioni.

Ogni microprocessore ha un proprio linguaggio macchina, ossia il linguaggio in cui sono scritti i programmi eseguibili e per questo ogni macchina può riconoscerli solo se scritti nel suo stesso linguaggio. Un parametro caratteristico di un processore è la durata del ciclo di CLOCK. Il clock è un segnale periodico utilizzato per sincronizzare il funzionamento dei dispositivi elettronici digitali. Esso rappresenta il tempo richiesto dal microprocessore per compiere un’operazione elementare. L’unità di misura è l’hertz ed i suoi multipli kHz/mgz/ghz. Maggiore è la frequenza del clock e maggiori sono le operazioni che possono essere eseguite nello stesso periodo.

La memoria di un computer svolge l’importante funzione di magazzino per programmi e dati. Una memoria può essere considerata come una sequenza finita di celle che contengono una serie finita di bit, gestiti a gruppi di 8 bit, detti byte. La capacità di memoria è espressa in Kb, MB, GB, TB. Per ragioni di costi ed efficienza, la memoria di un elaboratore è distribuita su diversi dispositivi hardware che costituiscono il Sistema o Gerarchia Memoria. Ai livelli più alti di questa gerarchia si collocano le piccole memorie più veloci e quindi più costose; mentre ai livelli più bassi, le memorie grandi più lente e quindi più economiche. I livelli di memoria presenti in un elaboratore sono generalmente: i Registri, le Cache, la Memoria Centrale e i Dischi.

In base alla volatilità delle memorie, distinguiamo le memorie volatili e non volatili. Le memorie volatili perdono il loro contenuto nel momento in cui manca la corrente elettrica. Una memoria volatile è la RAM, la memoria ad accesso casuale. Le memorie non volatili, invece, sono in grado di mantenere le informazioni, anche se non vi è la corrente elettrica. Una memoria non volatile è la ROM, che non varia nel tempo e non è accessibile all’utente. Essa contiene tutte le istruzioni che controllano gli elementi del computer all’atto dell’accensione.

Tutti i dispositivi che mettono in comunicazione il computer con l’esterno, costituiscono l’interfaccia del calcolatore e sono dette periferiche o dispositivi periferici di Input/Output. I dispositivi di Input permettono all’utente di introdurre le informazioni e i dati necessari per l’elaborazione. Sono: il mouse, la tastiera, il joystick, lo scanner e il microfono. I dispositivi di Output acquisiscono le informazioni e, dopo averle tradotte in un formato consono e comprensibile all’ambiente esterno, le visualizzano e le riproducono. Sono dispositivi output: il video, la stampante e l’altoparlante.

Ogni periferica è costituita da:

  • Un componente visibile, il DEVICE
  • Un componente elettronico di controllo, il DEVICE-CONTROLLER che può controllare più dispositivi per volta
  • Un componente software, il DEVICE-DRIVER

Il device-controller impartisce i comandi al dispositivo fisico e ne controlla la corretta esecuzione. Esso è posto su un circuito esterno all’unità periferica, ma all’interno del Chassis. I comandi impartiti dal controller al device avvengono attraverso dei connettori ed il loro formato, i codici di errore definiscono l’interfaccia fra il device e il dispositivo. Ogni periferica è caratterizzata da registri e comandi e affinché funzioni correttamente è necessario che questi siano predisposti ed impartiti esattamente. I controller di tutte le periferiche devono essere collegati al processore, per eseguire i suoi comandi e questa funzione è svolta da uno o più BUS che permettono alle periferiche di dialogare tra loro, tramite connessioni realizzate con appositi cavi.

Esistono diversi tipi di interfacce BUS, come: l’USB, un Bus seriale esterno, flessibile, semplice, facilmente espandibile, economico e capace di fornire alimentazione ai dispositivi quali tastiera, mouse, fotocamere ecc.; l’SCSI è un collegamento per dispositivi interni o esterni al computer, come dischi rigidi, CD, DVD, stampanti, scanner; il FIREWIRE ha molte similitudini con l’USB. Esso collega periferiche esterne come l’hard disk, scanner, videocamere e fotocamere. Altre sono: l’RS232, l’RS432, il CENTRONICS, IEEE 488, SHUGART, IDE, EIDE, SATA, SATA2, PS/2 e l’ATA. I BUS più usati sono: l’ISA, ZORRO, PCI, USB, SCSI, FIREWIRE, PCI-X, PCI EXPRESS, ATA e SERIAL ATA.

Il software

Il software è una sequenza ordinata d’istruzioni scritte in un linguaggio comprensibile da un elaboratore e da esso eseguibile. Un insieme di programmi costituisce il Sistema Software. Il FIRMWARE è un software integrato nell’hardware, con lo scopo di avviare il componente e consentirgli d’interagire con altri tramite protocolli ed interfacce. Il software di sistema è costituito da: il Sistema Operativo responsabile del controllo diretto e della gestione delle risorse hardware e software ed ha il compito di renderle virtuali ai Software Applicativi; e dal software di Servizio, ossia programmi che permettono di interfacciare le risorse dell’elaboratore.

Il Sistema Operativo permette all’utente d’interagire con la macchina, attraverso la gestione delle informazioni contenute nel file system, l’interfaccia utente e l’accesso alla macchina da parte di più utenti. I Sistemi Operativi più diffusi sono: Windows, Linux e MacOS, che forniscono agli elaboratori diverse interfacce grafiche. L’interfaccia di Windows è costituita da cartelle, dalla barra degli strumenti, da icone, finestre e menù pop-up. Le icone sono visualizzate con un’immagine o con un nome, possono essere selezionate, trascinate e con un doppio clic si lancia un’applicazione da cui si apre una cartella o un file. I comandi possono essere impartiti secondo diverse modalità scelte dall’utente: selezionando un’opzione da un menù o dalla barra degli strumenti, dalla tastiera, con il mouse o tramite trascinamento dell’icona. Le cartelle sono oggetti di finestre che possono essere aperte, ridimensionate, ridotte ad icona, chiuse e possono contenere menù o bottoni.

Costituiscono il software di Servizio: i compilatori, i driver I/O e le utility. I compilatori sono programmi che traducono le istruzioni scritte in un linguaggio di programmazione ed il Codice Sorgente in un altro linguaggio. Il compilatore prende in ingresso un programma su cui esegue delle operazioni in modo da ottenere, in assenza di errori, il codice oggetto. In genere essi sono in grado di riconoscere alcuni errori presenti nel programma e in alcuni casi può suggerire il modo per correggerli. I compilatori dividono l’operazione in:

  • FRONT END: con il quale si traduce il sorgente in un linguaggio intermedio
  • BACK END: con il quale avviene la generazione del codice oggetto

Lo stadio di Front End si suddivide in:

  • Analisi lessicale, attraverso cui il compilatore divide il codice sorgente in pezzi detti Token
  • Analisi sintattica attraverso cui si esegue il controllo sintattico sui token
  • Analisi semantica che si occupa di controllare il significato delle istruzioni presenti nel codice in ingresso. Controlli tipici di questa fase sono il Type Checking, ossia controllare che gli identificatori siano stati controllati prima di essere utilizzati ed infine si genera il codice intermedio

Anche lo stato di Back end si divide nella fase dove si ottimizza il codice intermedio e in cui si genera il codice Target espresso in linguaggio macchina. Il driver di I/O è l’insieme di procedure scritte in Assembly, che permettono al Sistema Operativo di interagire con un dispositivo hardware attraverso un’interfaccia. In questo modo l’hardware, costruito da produttori diversi, può essere utilizzato in modo intercambiabile, ma non è possibile utilizzare driver scritti per un sistema operativo su uno differente poiché l’interfaccia, generalmente, è diversa. Il Windows Driver Model è un’architettura standard secondo cui sono scritti la maggioranza dei driver per i Sistemi Operativi e s’identificano dall’estensione .SYS.

Con l’espressione Interfaccia Utente, s’intende tutti i dispositivi che si pongono fra la macchina e l’utente e che permette all’utente di poter gestire con semplicità il sistema. I processi che caratterizzano l’interfaccia utente sono:

  • L’interfaccia presenta i dati
  • L’utente li visualizza attraverso la grafica
  • Si immettono i dati tramite i dispositivi input
  • L’interfaccia calcola l’algoritmo ed infine mostra l’esito del percorso fatto dall’utente attraverso un output

Le interfacce possono essere a linea di comando o grafiche. Le interfacce a linee di comando permettono all’utente di interagire scrivendo linee di comando. L’utente dovrà comporre i comandi in linee di testo che rispettino una precisa sintassi e dopo aver composto una riga, bisognerà convalidarla con Invio. Così il programma analizza il comando e se questo è stato composto in modo corretto, lo esegue.

L’interfaccia grafica, la GUI, è un’applicazione software che si occupa del dialogo con l’utente del sistema, utilizzando un ambiente grafico, cioè, consente all’utente di interagire con il computer manipolando graficamente degli oggetti. La GUI, nei sistemi operativi moderni, è concepita come un sistema in cui siano presenti: schermo, icone che possono rappresentare file, directory e finestre. Attualmente tutti i software operativi sono dotati di un’interfaccia grafica con la quale è possibile compiere operazioni anche complesse, senza il bisogno di avere una conoscenza approfondita del computer.

Le interfacce sono subordinate da alcuni fattori, quali:

  • Ergonomia: una scienza che si occupa della reciprocità fra gli elementi di un sistema e la funzione per cui sono progettati, ossia migliorare la soddisfazione dell’utente e le prestazioni del sistema. Essa si occupa della teoria, dei principi, dei dati e dei metodi applicati per la progettazione della GUI. L’ergonomia cognitiva si occupa dell’interazione tra uomo e strumenti per l’elaborazione delle informazioni, suggerendo soluzioni per migliorarli.
  • Usabilità: definita dall’ISO, l’efficacia, l’efficienza e la soddisfazione con le quali determinati utenti raggiungono determinati obiettivi in certi contesti. L’usabilità fa sì che si aumenti la produttività e la sicurezza, si riduca il supporto degli utenti e dei costi, ottenendo più vendite.
Anteprima
Vedrai una selezione di 3 pagine su 9
Informatica - Riassunto esame, prof. Cevenini Pag. 1 Informatica - Riassunto esame, prof. Cevenini Pag. 2
Anteprima di 3 pagg. su 9.
Scarica il documento per vederlo tutto.
Informatica - Riassunto esame, prof. Cevenini Pag. 6
1 su 9
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Exxodus di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi della Basilicata o del prof Cevenini Giorgio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community