Estratto del documento

Capitolo 1 – Introduzione all’informatica

Termine informatica e telematica

Il termine “informatica” è stato introdotto alla fine degli anni ’60 e deriva dal termine francese informatique, o informatione automatique, ossia informazione automatica. È la scienza della rappresentazione ed elaborazione dell’informazione, nonché lo studio sistematico degli algoritmi che descrivono la stessa (dalla teoria all’applicazione).

La telematica è, invece, una disciplina a metà strada fra l’informatica e le telecomunicazioni che studia le tecniche e i protocolli per la trasmissione di dati, ovvero le tecnologie su cui si basano le reti di calcolatori e con cui i calcolatori comunicano tra di loro.

Algoritmo

Un algoritmo è un elenco preciso di operazioni, comprensibili da un esecutore, che definisce una sequenza finita di passi, i quali risolvono classi di problemi. Esempio: tutte le operazioni necessarie per compiere una telefonata, per prelevare denaro dal bancomat o per iscriversi ad un esame.

  • Finito: deve portare alla soluzione del problema in un numero finito di passi;
  • Generale: fa riferimento a classi di problemi e non a problemi specifici;
  • Ripetitivo: con gli stessi dati si deve ottenere lo stesso risultato;
  • Non ambiguo: le azioni, anche se eseguite da persone diverse aventi gli stessi dati, devono portare allo stesso risultato;

Proprietà:

  • Corretto: deve risolvere il problema senza difettare in alcun passo fondamentale;
  • Efficiente: deve risolvere il problema nel modo più veloce possibile usando la quantità minima di risorse fisiche;

Un algoritmo comunica con l’ambiente acquisendo dati (soggettivi) e restituendo risultati. Esso è composto da istruzioni che operano sui dati acquisiti, tramite un linguaggio preciso e comprensibile all’esecutore (calcolatore/uomo/computer..).

Dati -> istruzione -> esecutore -> risultati.

I linguaggi di programmazione, necessari per scrivere gli algoritmi sotto forma di programmi comprensibili dall’esecutore, sono diversi: Fortran (il più vecchio), Cobol, Pascal, C, Ada, C++ e Java (il più recente).

Applicazioni in ambito giuridico

In ambito giuridico è possibile distinguere tra:

  • Informatica legislativa: nella fase anteriore alla produzione delle norme lo scopo dell’informatica è quello di aiutare il legislatore nel raccogliere ed elaborare i dati necessari a conoscere la materia che sarà regolata da nuove norme, e supportare la valutazione preventiva della fattibilità dell’atto normativo. Nella fase di produzione delle norme, il supporto informatico viene impiegato per garantire l’applicazione delle norme utili ad una buona formulazione dei testi legislativi. L’applicazione dei modelli e dei criteri redazionali costituiscono la legistica. La legistica, combinata all’informatica, costituisce la legimatica (informatizzare le conoscenze relative alle tecniche legislative). Nella fase successiva alla produzione delle norme, il supporto informatico viene usato per operare un controllo ed un monitoraggio sugli effetti derivanti dall’entrata in vigore della legge (dati ricavati da indagini empiriche).
  • Informatica giudiziaria: fa riferimento allo studio, ideazione e realizzazione di applicazioni informatiche dirette ad automatizzare le attività degli uffici giudiziari. Vi sono vari rami come l’informatica giudiziaria documentaria (creazione di banche dati giurisprudenziali), decisionale (sistemi di aiuto nella decisione dei problemi giuridici), gestionale amministrativa (gestione del personale degli uffici giudiziari), gestionale (gestione dei procedimenti giurisdizionali).
  • Informatica amministrativa: rappresenta un supporto verso le banche dati pubbliche, le interfacce con il cittadino, la dematerializzazione della documentazione, la contabilità.
  • Informatica per le professioni legali: l’informatica serve ad automatizzare la gestione degli uffici degli avvocati e dei notai.
  • Informatica per la didattica giuridica: l’informatica ha come obiettivo la produzione di programmi di supporto all’apprendimento.
  • Altre applicazioni: applicazioni numeriche (rappresentano il calcolo automatico per statistiche, previsioni meteo), applicazioni gestionali (realizzazione di sistemi informativi integrati come per le banche le società finanziarie), servizi telematici (connubio tra informatica e telecomunicazione come navigatori, bancomat), automazione industriale (tecnologia che gestisce macchine e processi riducendo l’intervento umano), controllo di impianti industriali ed embedded (utilizzo dell’informatica per il controllo automatico di un processo industriale).

Capitolo 2 – Architettura di un calcolatore

Codifica delle informazioni

Un calcolatore elabora diversi tipi di dati come numeri (naturali, interi, reali, frazionari), testi, immagini e suoni che comunque devono essere tutti trasformati in bit. La più piccola unità di informazione elaborabile da un calcolatore infatti è il bit (Binary Digit).

Un byte è una sequenza di bit pari a 8 bit (es. 00001010) e può essere utilizzato per 28 differenti sequenze di 1 o di 0. I byte possono essere raggruppati in parole di 13, 32, 64, 128 bit a seconda dell’età e della potenza del calcolatore.

Codifica dei caratteri

I caratteri vengono codificati in sequenze di bit utilizzando codici di traduzione. Il più noto codice di traduzione è l’ASCII (American Standard Code for Information Interchange). L’ASCII Standard è codificato su 7 bit e quindi può rappresentare 128 caratteri diversi. L’ASCII esteso invece è codificato su 8 bit e quindi può rappresentare 256 caratteri diversi.

L’ASCII codifica i caratteri alfanumerici (lettere maiuscole, minuscole, numeri, compreso lo spazio), i simboli (punteggiatura, @, *..), alcuni caratteri di controllo che non rappresentano simboli visualizzabili (TAB, RETURN..). Altri codici di traduzione sono il TF8, UTF, UNICODE.

Codifica delle immagini

Le immagini sono codificate come sequenza di bit. La digitalizzazione consiste nel passaggio dall’immagine alla sequenza binaria. Si può dire che l’immagine è suddivisa in una griglia di punti detti pixel e ogni pixel è descritto da un numero (8,16,24,32) che ne rappresenta il colore e quindi una sequenza di bit. Una foto è un enorme quantità di bit infatti è molto “pesante”.

Le dimensioni dell’immagine sono larghezza e altezza e si misurano in pollici. La risoluzione è data come il numero di pixel per pollice (dpi - dot per inch). Maggiore è la risoluzione, maggiore è la qualità. La traduzione di codifica in bit avviene tramite TIFF (Tagged Image File Format), PNG (Portable Network Graphics), GIF (Graphics Interchange Format), JPEG (Joint Photografic Experts Group).

Per ridurre lo spazio occupato da un’immagine, è possibile utilizzare due tecniche di compressione diverse:

  • Tecniche lossless: non provocano perdita di informazioni (adatte per foto e immagini con ampie aree monocromatiche);
  • Tecniche lossy: provocano una perdita di informazione (adatte per foto e immagini a molti colori).

Sistemi di numerazione

Le quantità numeriche vengono espresse utilizzando il sistema di numerazione decimale che si chiama così perché utilizza 10 cifre (0-9). Si tratta di un metodo di tipo posizionale poiché ogni cifra ha un peso in accordo con la sua posizione. Es. 123, è uguale a 100+20+3.

Esistono anche altri sistemi come quello binario utilizzato in informatica (numeri in base 2), sistema ottale (numeri in base 8), sistema esadecimale (numeri in base 16 quindi dallo 0 al 9 e poi dalla A alla F).

Un numero naturale viene rappresentato come segue:

n0a = cifra più significativa; a = cifra meno significativa; n= m-1; m=rappresenta le cifre di cui è composto il numero; a è contenuto in (0,1,…,p-1); p=è la base

Per convertire un numero da binario a decimale:

Pnnn-1nn-11100N = a * p + a * p + … + a * p + a * p dove n=m-1

Per convertire da base 10 a base 2 si utilizza il metodo delle divisioni successive, che consiste nel prendere il numero da convertire e dividerlo per la base considerata, prenderne il quoziente e dividerlo ancora per la base e così via, fino a che non si ottiene come risultato un quoziente pari a 0. Si legge sempre dal basso verso l’alto.

1010 2352 42 = 10101010

2171 13 = 11018

042 010 11 è un numero negativo, 0 è un numero positivo.

Esempi: -3=111 -2=110 -1=101 -0=100 +0=000 +1=001 +2=010 +3=011

Per la somma binaria è importante ricordare che si parte dalla colonna a destra per arrivare a sinistra.

0+0=0 0+1=1 1+0=1 1+1=1 (riporto 1) (riporto1)+1+1=0(riporto 1)

Esempi: 101010+001010=110100 00111+010101=100100

Algebra di Boole

L’algebra dell’inglese George Boole è un particolare tipo di algebra in cui le variabili e le funzioni possono avere solo valori 0 e 1. Generalmente è utilizzata nei linguaggi di programmazione per la definizione di criteri decisionali.

Si rappresenta vero con l’input 1 e falso con l’input 0 e si prendono in considerazione tre operatori: AND (operatore binario), OR (operatore binario), NOT (operatore unario). NOT ha la massima precedenza nelle espressioni booleani, poi segue AND ed infine OR. Ancora prima di queste precedenze è necessario seguire le parentesi.

A B A AND B NOT A A B A OR B
0 0 0 1 0 0
0 1 0 1 0 1
1 0 0 1 0 1
1 1 1 0 1 1

Architettura sistemi informatici

Un sistema informatico è un oggetto complesso, costituito da molte parti che interagiscono tra loro. Distinguiamo due macro componenti che sono l’hardware ed il software.

  • Hardware -> insieme dei dispositivi fisici, elettronici e meccanici che costituiscono l’elaboratore, la parte tangibile. Ricordiamo unità di elaborazione o processore (CPU), memoria centrale, memoria secondaria, unità periferiche, bus di sistema.
  • Software -> insieme delle applicazioni, dette programmi, finalizzate allo svolgimento di particolari attività. Ricordiamo il software di sistema e software applicativo. Il primo è il cosiddetto sistema operativo che interagisce facilmente con l’hardware (Microsoft Windows Xp, Linux, Mac osx). Il software applicativo è formato dall’insieme dei programmi che permettono lo svolgimento di un compito (pacchetto Office della Microsoft, Firefox browser che permette la navigazione, Eudora che gestisce la mail).

La macchina di Von Neumann

Nel 1944, il ricercatore John Von Neumann, realizza un documento che sintetizza l’architettura di un calcolatore. Gli elementi cardine dello stesso sono:

  • Presenza di un dispositivo di memorizzazione in cui è possibile rappresentare con la stessa codifica, dati e istruzioni;
  • Utilizzo dell’aritmetica binaria invece che decimale;
  • Realizzazione di un calcolatore universale;
  • Separazione netta tra dispositivo di memorizzazione e dispositivo di elaborazione.

Nella macchina di Von Neumann si distinguono 4 elementi fondamentali:

  1. Unità di elaborazione: contiene i dispositivi elettronici in grado di acquisire, interpretare ed eseguire istruzioni di programma. Analizzando meglio…

L’unità di elaborazione, CPU (Central Processing Unit), estrae istruzioni dalla memoria, le esegue e le trasferisce verso i dispositivi di input/output del computer grazie ai bus di sistema. La CPU è composta dai seguenti componenti:

  • Unità di controllo (CU): La Control Unit è la componente della CPU che esegue e coordina l’esecuzione dei programmi informatici;
  • Unità aritmetico logica (ALU): È la parte della CPU a cui è affidata l’esecuzione dei calcoli logico-aritmetici. Aritmetici come sottrazione, addizione, moltiplicazione, divisione e logici quando le operazioni contengono condizioni e criteri decisionali come l’algebra di Boole.
  • Clock: unità di controllo della CPU la quale stabilisce i tempi secondo cui vengono eseguite le operazioni, si misura in hertz (cicli di impulsi al secondo);
  • Registri: sono locazioni utilizzate per memorizzare dati, istruzioni o indirizzi all’interno della CPU. Si distinguono Registro dati (contiene il dato attualmente oggetto di elaborazione ed il risultato al termine dell’esecuzione), Registro indirizzi (indirizzo della cella di memoria da selezionare per il trasferimento di un dato dalla CPU), Registro istruzione corrente (contiene istante per istante, l’istruzione che risulta in esecuzione da parte dell’elaboratore), Contatore di programma (contiene l’indirizzo della prossima istruzione del programma in esecuzione), Registro di interruzioni (contiene informazioni relative allo stato di funzionamento delle periferiche), Registro di stato (riporta i risultati delle operazioni svolte dalla ALU).
  1. Memoria centrale: contiene le informazioni necessarie all’esecuzione di un programma, cioè istruzioni e dati. Si misura in byte. Analizzando meglio…

La memoria centrale contiene la RAM, Random Access Memory che accoglie “il materiale di lavoro” su cui l’elaboratore deve lavorare. Contiene informazioni a breve e medio termine, è di dimensioni ridotte ed è volatile, i dati si perdono allo spegnimento del pc.

La memoria centrale contiene anche la ROM, Read Only Memory, costituita da una o più zone di memoria persistenti sulle quali non è possibile scrivere: vengono inizializzate dal costruttore del calcolatore con dati e programmi che servono a far funzionare il sistema. Non è un limite, bensì un vantaggio, poiché così vengono installati programmi che servono a far funzionare il sistema e che l’utente non può modificare.

  1. Periferiche: permettono lo scambio delle informazioni fra l’elaboratore e il mondo esterno (es. mouse). La memoria di massa è inclusa nelle periferiche e contiene informazioni a lungo termine, è di dimensioni maggiori ed è permanente.
  1. Bus di sistema: opera il collegamento tra due unità funzionali, delle quali una trasmette dati e l’altra li riceve. Il trasferimento avviene tra l’unità di elaborazione e l’interfaccia di una specifica periferica o con la memoria. È in genere sotto il controllo dell’unità di elaborazione, detta master, che seleziona l’interconnessione da avviare e indica le unità funzionali da attivare, detti slave, ed in quale momento.

Le linee di bus vengono a loro volta suddivise in tre categorie:

  • Bus di dati: trasferisce dati dall’unità master (unità di elab.) all’unità slave o viceversa;
  • Bus di indirizzi: trasferisce il contenuto del registro indirizzi alla memoria centrale;
  • Bus di controlli: trasferisce dall’unità master all’unità slave un codice corrispondente all’istruzione da eseguire e ha poi il compito di controllare che l’operazione sia stata effettuata.

Per effettuare un’operazione di lettura (fetch), l’unità di elaborazione (cpu) deve:

  1. Caricare l’indirizzo della parola che desidera leggere nel registro e trasmetterlo alla memoria centrale (ram) tramite il bus di sistema.
  2. Richiedere un’operazione di lettura inviando il comando tramite il bus controlli.

La memoria allora:

  1. Esegue l’operazione di lettura e sposta, tramite il bus dati il contenuto della parola nel registro dati.
  2. Segnala all’unità di elaborazione, tramite il bus controlli, che l’operazione è terminata e che il dato richiesto è nel registro dati.

Per effettuare un’operazione di scrittura, l’unità di elaborazione (cpu) deve:

  1. Caricare l’indirizzo della parola che desidera scrivere nel registro indirizzi e trasmetterlo alla memoria centrale (ram) tramite il bus di sistema.
  2. Caricare il dato da scrivere in memoria nel registro dati (tramite il bus dati il contenuto del registro dati viene trasferito alla memoria centrale).
  3. Richiedere un’operazione di scrittura inviando il comando tramite il bus controlli.

La memoria allora:

  1. Esegue l’operazione di scrittura e sposta il contenuto del registro dati ricevuto tramite il bus dati nella parola indirizzata.
  2. Segnala all’unità di elaborazione che l’operazione è terminata.

Capitolo 3 – Reti di calcolatori e sistemi distribuiti

Segnale

Il segnale è una grandezza fisica (acustica, elettrica, ottica, elettromagnetica..) variabile nel tempo che può essere utilizzata per trasmettere informazioni.

Individuiamo il segnale analogico, di tipo sinusoidale, che può assumere infiniti valori in un determinato intervallo, variando con continuità. Es. l’onda acustica generata dalla voce.

Ancora vi è il segnale digitale che può assumere un numero di valori limitato in un insieme discreto, variando fra tali valori in istanti temporali precisi.

Il segnale periodico varia ciclicamente nel tempo. Le variabili descrittive sono il periodo T (misurato in secondi), la lunghezza d’onda (misurata in metri), l’ampiezza (misurata in Volt per la tensione, in Ampere per la corrente etc.) La frequenza di un segnale si misura in hertz ed indica quanti cicli di segnale sono stati compiuti in un periodo. F= 1/T

Trasmissione dati

La trasmissione dei dati consente di collegare calcolatori e periferiche e avviene mediante cavi in rame, fibre ottiche e onde elettromagnetiche.

I parametri più significativi nel caratterizzare i mezzi di trasmissione sono:

  • Velocità di trasmissione (bit per secondo, o bps). La velocità degli attuali canali di trasmissione si...
Anteprima
Vedrai una selezione di 8 pagine su 35
Riassunti informatica 10 CFU Pag. 1 Riassunti informatica 10 CFU Pag. 2
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Riassunti informatica 10 CFU Pag. 6
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Riassunti informatica 10 CFU Pag. 11
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Riassunti informatica 10 CFU Pag. 16
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Riassunti informatica 10 CFU Pag. 21
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Riassunti informatica 10 CFU Pag. 26
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Riassunti informatica 10 CFU Pag. 31
1 su 35
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 elisabcdegh 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à telematica Unitelma Sapienza di Roma o del prof Distante Damiano.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community