INFORMATICA ………
La parola INFORMATICA indica l’insieme delle
discipline e delle tecniche che permettono la
trattazione automatica delle informazioni che sono
alla base delle nostre conoscenze e delle loro
comunicazioni.
Il termine INFORMATICA è nato nel 1966 in
Francia
dalla
contrazione
delle
parole
INFORmazione e autoMATICA.
INFORMATICA
Elaborazione e
trattamento
automatico delle
informazioni
Informazione
“Sequenza (o stringa) di simboli associata a un
significato”
Possibili supporti fisici per l’informazione:
 suono (conversazioni tra persone)
 onde radio (radio e televisione)
 correnti e tensioni elettriche (cavi telefonici)
 campi magnetici (audiocassette, floppy disk)
 segni su carta (libri, giornali)
Sull’informazione si possono effettuare numerose
operazioni:
 creazione
 trasmissione
 immagazzinamento (archiviazione)
 recupero
 copia
 distruzione
 elaborazione (trasformazione)
Informazione
“Sequenza (o stringa) di simboli associata a un
significato”
I simboli che fanno parte della sequenza vengono
scelti all’interno di un insieme detto alfabeto.
Esempi di alfabeti:
- Alfabeto italiano, 21 simboli (lettere):
{A, B, …., V, Z}
- Alfabeto numerico decimale, 10 simboli (cifre):
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
- Alfabeto telegrafico Morse, 2 simboli:
{., -}
- Alfabeto del Totocalcio, 3 simboli:
{1, X, 2}
Esempi di stringhe composte da simboli tratti da questi
alfabeti, assieme al loro significato convenzionale:
AULA
“ambiente destinato alle lezioni
WANTED
“ricercato”
123
“il numero decimale 123”
TZOCAW
“nessun significato convenzionale”
Da questi esempi risulta evidente la necessità di
regole che associno un significato a queste
stringhe di simboli.
Un siffatto insieme di regole prende il nome di
codice.
Alfabeto: k simboli diversi
Lunghezza della stringa: n posizioni
Numero di configurazioni= k x k x ··· xk=kn
n volte
Nei sistemi per l’elaborazione dell’informazione
viene adottato un alfabeto composto da soli 2
simboli, rappresentati dalle cifre 0 e 1. Tale
alfabeto è detto alfabeto binario.
Una cifra binaria viene definita bit (da binary
digit, “cifra binaria”).
Quindi essendo k=2
configurazioni è 2n.
il
numero
totale
di
Una stringa di 8 bit è definita byte (28=256 valori
diversi)
Quale tipo di oggetti possiamo
rappresentare con delle stringhe binarie?
Numeri, lettere, colori, forme!!!!
Qualsiasi informazione può essere trasformata
in una stringa di bit
A tutti i tipi di informazione corrispondono
codici differenti, che stabiliscono la
corrispondenza fra i valori da rappresentare
e le stringhe di bit che abbiamo a
disposizione.
Tipi di informazioni:
1. Informazione di tipo numerico:
Il dato rappresenta una quantità numerica
2. Informazione di tipo alfanumerico:
Il dato rappresenta un carattere {A, …, Z, a, …, z,
0, …, 9, ;, :, ., @, $, ... }
3. Informazione di tipo logico:
Il dato rappresenta grandezze logiche, cioè
grandezze che possono avere soltanto due valori:
vero o falso. Questo tipo di informazione è
associato
al valore di verità di un determinato
enunciato: vero se l’enunciato è vero, falso se
l’enunciato è falso. Le informazioni di tipo logico
si possono manipolare in maniera simile ai
numeri; la differenza è che invece delle operazioni
aritmetiche (+, -, etc) si utilizzano delle operazioni
logiche (AND, OR, NOT).
L’operazione AND agisce su due operandi. Il valore
dell’AND di due operandi è vero soltanto quando
entrambi gli operandi hanno valore vero.
falso AND falso = falso
falso AND vero = falso
vero AND falso = falso
vero AND vero = vero
L’operazione OR agisce su due operandi. Il valore
dell’OR è vero se almeno uno dei due operandi è vero.
falso OR falso = falso
falso OR vero = vero
vero OR falso = vero
vero OR vero = vero
L’operatore NOT agisce su un solo operando e ha
come valore il contrario del valore dell’operando.
NOT falso = vero
NOT vero = falso
Esempi di Espressioni logiche:
7 è pari OR 7 è dispari
= vero
7 è pari AND 7 è dispari
= falso
NOT l’Italia è una monarchia = vero
4. Informazione di tipo istruzione:
Il dato rappresenta un’operazione da eseguire .
Il codice che associa ad ogni stringa binaria l’azione
da eseguire viene detto linguaggio macchina, che è
interpretabile dalla CPU.
Alcuni tipi di operazioni supportate dal linguaggio
macchina sono: le operazioni aritmetico-logiche tra
due operandi, il trasferimento di controllo (“salto”)
ad un’istruzione che non sia la prossima ed etc…..
5. Informazione di altri tipi:
Il dato rappresenta suoni, immagini, filmati, oggetti
tridimensionali ……...
Elaborazione dei dati
- immissione dei dati nel sistema (dati di input)
- elaborazione dei dati secondo istruzioni di lavoro
ben determinate
- emissione all’esterno del sistema di elaborazione
dei risultati (dati di output)
Dati di
ingresso
Sequenza
di
Operazioni
Dati di
uscita
Esempi di elaborazione…...
Elaborazione numerica
- dati ingresso: i numeri 3 e 4
- elaborazione: moltiplicare 3 per 4
- dati in uscita: il risultato 12
Elaborazione non numerica
- dati ingresso: i numeri del vecchio elenco, i
nomi da inserire
- elaborazione: confrontare ed ordinare i dati
- dati in uscita: nuovo elenco
Ma dove avviene l’elaborazione
dell’informazione?
ISTRUZIONI
DATI
COMPUTER
RISULTATI
COMPUTER è il “sistema per
l’elaborazione dell’informazione”
Questo sistema è costituito da due componenti:
Hardware e Software
Hardware
Software
Insieme di tutti i circuiti
delle macchine e dei
componenti elettronici,
elettrici e meccanici di un
sistema di elaborazione
Insieme dei
programmi operanti
su di esso
Caratteristiche di un computer
 Digitale (o numerico):
- i suoi principi di funzionamento sono fondati su basi
logiche e matematiche
- il sistema ha un numero di stati finito, cioè in ogni
circuito elettronico ci sono idealmente solo due tensioni
diverse possibili ed ogni locazione di memoria può
conservare soltanto un numero finito di stringhe binarie
differenti. In generale, si può intendere come
matematicamente preciso.
 Automatico:
il sistema evolve da uno stato iniziale a uno stato
finale eseguendo automaticamente, senza interventi
esterni, un numero finito di operazioni.
 Elettronico:
sono elettronici i circuiti preposti all’esecuzione delle
istruzioni, così come gli elementi bistabili che
costuiscono le memorie del sistema.
 A programma registrabile:
La sequenza di istruzioni costituenti il programma è
immagazzinata nella stessa memoria dell’elaboratore.
Ciò conferisce ampia flessibilità al sistema, poiché
cambiando il programma registrato si può cambiare
l’elaborazione che viene compiuta.
Unità di Controllo (CU, Control Unit)
Presiede a tutte le operazioni eseguite dall’elaboratore,
interpretando le istruzioni prelevate in sequenza dalla memoria
centrale e inviando alle specifiche unità i segnali abilitanti.
Unità logico-aritmetica (ALU, Arithmetical Logical Unit)
Esegue le operazioni aritmetiche e logiche richieste dall’unità di
controllo.
Memoria centrale (RAM, Random Access Memory)
Insieme ordinato di celle destinate a memorizzare le istruzioni
costituenti il programma e i dati oggetti dell’elaborazione.
Unità di Ingresso (Input devices)
Impiegate per immettere il programma in fase di caricamento e i
dati in fase di esecuzione.
Unità di Uscita (Output devices)
Impiegate per presentare i risultati dell’elaborazione.
Il processore
Il processore è detto CPU (Central Processing
Unit, unità centrale di elaborazione)
ALU
Registri
Interni
Unità di
Controllo
I registri servono per memorizzare i dati sui quali
il processore sta operando, come ad esempio i
risultati intermedi dei calcoli.
Memory CACHE
C
A
C
H
E
RAM
BUS
ALU
CU
CPU
La memoria CACHE serve a limitare il numero
di accessi alla RAM.
L’accesso alla RAM richiede l’accesso al BUS
di comunicazione (molto tempo).
Il tempo di accesso a un dato presente nella
CACHE è simile al tempo di accesso ai registri
interni della CPU.
Microprocessore
Le tecnologie per la lavorazione dei materiali
semiconduttori hanno consentito di integrare le
varie componenti della CPU in un unico circuito
integrato (chip).
 CISC (Complex Instruction Set Computer):
interpreta un set di istruzioni (300-400)
 RISC (Reduced Instruction Set Computer):
interpreta un set di istruzioni molto ridotto,
dove ciascuna istruzione può essere eseguita in
tempi molto brevi rispetto ai processori CISC
MEMORIA
I tipi di memoria:
- Memoria Centrale (RAM)
- Memorie di massa
- ROM (Read Only Memory)
Caratteristiche:
- tempo di accesso: il tempo necessario a compiere
una singola operazione di lettura o scrittura
- capacità: la massima quantità di informazioni
memorizzabili
- persistenza: la capacità di mantenere le informazioni
memorizzate in assenza dell’alimentazione elettrica --volatili e permanenti.
MEMORIA - Gerarchie di memorie
Le funzioni di memoria di un elaboratore sono
distribuite in una gerarchia con il principio di
allocare negli strati più bassi le informazioni che
vengono richiamate più spesso e gestire il loro
trasferimento fra i diversi strati.
periferiche
Liv.2 Memorie di massa
Cache
Liv.1 Memoria centrale
Capacità e
tempo di
accesso
crescenti
Cache
Liv.0
Registri di CPU
centro
La memoria cache, che si interpone fra due livelli
della gerarchia, ha lo scopo di ricordare le ultime
informazioni richiamate dalla memoria più
periferica. Infatti, se c’è un nuovo accesso allo
stesso dato, quest’ultimo sarà richiamato dalla
memoria più veloce (meno periferica) piuttosto che
da quella più lenta (più periferica) .
Memoria Centrale
La RAM consiste in un insieme ordinato di locazioni
(anche dette celle) numerate in successione. Ogni
locazione è identificata dal suo numero d’ordine, che
prende il nome di indirizzo della locazione.
0
1
2
3
n-2
n-1
…..
RAM di n byte vista come successione di celle
Indirizzo di memoria: Posizione occupata da una
locazione nell’insieme ordinato che costituisce la
memoria.
Spazio degli indirizzi: L’insieme degli indirizzi
specificabili su un certo sistema di elaborazione. La
sua dimensione è 2n, dove n è la lunghezza in bit delle
stringhe binarie usate dalla CPU per indicare un
indirizzo in RAM.
- Il tempo necessario per accedere a una locazione
è indipendente dal suo indirizzo (che si tratti della
prima o dell’ultima locazione) e dipende solo dal
tipo di RAM.
Questa caratteristica si definisce accesso casuale
(e ciò è messo in evidenza dal termine RAM).
Altri dispositivi hanno invece il vincolo di non
poter accedere ad un dato senza aver prima letto
tutti i dati precedenti (accesso sequenziale)
- L’operazione di scrittura in una locazione
consiste nell’alterare lo stato dei singoli bit che
la costituiscono in modo da registrare la
sequenza di 0 e 1 da memorizzare. Tale
operazione è distruttiva.
- L’operazione di lettura di una locazione
consiste nel riprodurre (copiare) lo stato dei
singoli bit che la costituiscono nei bit
corrispondenti di un’altra locazione o registro.
Tale operazione è non distruttiva perché
l’informazione letta viene preservata e può
essere letta di nuovo
Altri tipi di memoria
Le memorie di massa sono dischi rigidi, floppy disk,
CD-ROM, nastri ed etc.
La ROM (Read Only Memory):
E‘ elettronica e ad accesso casuale come la RAM.
E’ permanente e a sola lettura: una volta che le
informazioni vi sono state memorizzate non è più
possibile modificarle.
I chip di ROM (che vengono inizializzati in fabbrica
all’atto della produzione) contengono software
specializzato:
- gestione di periferiche;
- set aggiuntivi di caratteri per stampanti;
- programma di avvio del sistema (boot loader)
Periferiche
- Unità di ingresso
- Unità di uscita
- Interfacce o porte
- Memorie di massa
Le memorie di massa
Sono periferiche con funzioni di memoria ausiliaria
I supporti magnetici usati sono:
- nastri (bobine o cassette), rimovibili, accesso
sequenziale;
- dischi floppy (floppy disk), rimovibili, accesso
casuale;
- dischi rigidi (hard disk), fissi o rimovibili, accesso
casuale.
Le memorie magnetiche hanno le seguenti
caratteristiche:
- persistenza;
- elevata capacità, fino a diversi Gbyte;
- costi contenuti;
- tempi di accesso elevati, soprattutto per i nastri.
E’ da precisare che …..
- le informazioni residenti nelle unità di memoria di
massa devono essere copiate nella RAM prima di
poter essere elaborate dalla CPU.
- i risultati dell’elaborazione presenti in memoria
centrale devono essere copiati nelle unità di memoria
di massa se vogliamo che siano immagazzinati
permanentemente.
Quindi le memorie di massa sono unità di I/O e unità
di memoria ausiliaria.
RAM
Memorie di
massa
CPU
Flusso di controllo
Flusso di dati
Disco magnetico
Il disco è ricoperto da uno strato di materiale capace
di conservare i campi magnetici.
La superficie è divisa in cerchi concentrici, detti
tracce, e in spicchi, detti settori.
Prima di essere utilizzato un disco deve essere
formattato (per marcare su ogni traccia i punti di
inizio dei settori e altri valori che servono a
temporizzare la rotazione del disco.
Esempio di 6 tracce e 8 settori:
Dischi a lettura ottica
CD-ROM: sono dispositivi di sola lettura; infatti
non è possibile scrivere dati senza utilizzare un
masterizzatore.
Sono in materiale rigido ricoperti da un sottile
strato di metallo.
Hanno elevata capacità.
Le interfacce o porte
Sono dispositivi elettronici che consentono di
collegare le più disparate apparecchiature
periferiche al BUS di sistema, alla RAM o alla
CPU.
Interfacce parallele: trasferiscono i caratteri con
numerosi fili lunghi pochi metri. Hanno 8 fili
separati per i dati (più diversi altri per segnali di
controllo) e quindi trasmettono un byte (8 bit) in
parallelo. [Esempio: stampante]
Interfacce seriali: trasferiscono i dati bit a bit. Il
cavo di collegamento è costituito da pochi fili e
permettono di trasferire caratteri su cavi molto
lunghi. [Esempio: collegamento del modem]
Unità di ingresso
Servono ad immettere il programma in fase di
caricamento e i dati in fase di esecuzione.
- tastiera;
- mouse;
- penna ottica;
- floppy disk drive (unità a floppy);
- hard disk drive (unità a disco rigido);
- CD-ROM (lettore di CD-ROM);
- scanner;
- modem;
- telecamera;
- scheda per la connessione in rete locale (Ethernet);
- microfono.
La tastiera serve ad immettere testo o programmi (80-100
tasti):
- caratteri alfanumerici (cifre, maiuscole, minuscole);
- segni di interpunzione;
- caratteri speciali ($, >, <, @,…);
- tasti speciali (ESC, CTRL, DEL,…);
- il tasto ENTER, che invia la linea di testo al sistema;
- tasti cursore ( , , , );
- tasti funzione (F1, F2,…) che sono programmabili
- Il mouse e la penna ottica sono dispositivi di
puntamento.
- Lo scanner serve a digitalizzare un’immagine
che, immagazzinata in memoria, può essere
elaborata in vari modi. Funziona come una
fotocopiatrice.
- Il modem traduce i dati digitali presenti in
memoria in segnali adatti ad essere trasmessi
lugo una linea telefonica (modulazione) oppure
fa la traduzione opposta. Quindi funziona come
periferica di input ed output.
- La scheda per la connessione diretta in rete
locale serve a collegare tra di loro sistemi di
elaborazione diversi. Si parla di ethernet perché
la rete (net) è eterogenea potendo essere
composta da sistemi e periferiche diverse. Anche
questa periferica funziona come periferica di
input ed output.
Unità di uscita
Servono a presentare i risultati ottenuti dall’
elaborazione. Quindi sono periferiche di output tutte
quelle che ricevono dati dalla CPU o dalla RAM
- monitor;
- stampante;
- plotter;
- floppy disk drive e hard disk drive;
- masterizzatore di CD-ROM;
- modem;
- interfacce varie;
- scheda per la connessione in rete locale;
-dispositivi audio.
Esistono monitor che funzionano solo in modo
testo e monitor grafici.
Le tecnologie più diffuse per i monitor sono:
- CRT (Cathode Ray Tube, tubi a raggi catodici)
- LCD (Liquid Crystal Display, display a
cristalli liquidi)
- Plasma display
In modo testo i monitor possono visualizzare 24 o 25
linee di 80 caratteri.
In modo grafico possono visualizzare diagrammi,
disegni e immagini. In questo caso lo schermo consiste
in una matrice di pixel (una griglia di puntini
luminosi).
Le capacità grafiche di un video display dipendono
anche dalle caratteristiche dell’adattatore grafico,
anche detto scheda grafica. Si tratta di un dispositivo
composto da circuiti elettronici per la generazione dei
segnali elettrici necessari per pilotare il video display.
Oltre a tali circuiti, la scheda grafica contiene anche
della memoria RAM dedicata che serve a memorizzare
l’immagine attualmente mostrata sullo schermo (la
video RAM).
Un sistema per l’elaborazione dell’informazione
consiste di due componenti :
l’hardware ed il software
Si può parlare di una macchina reale, che è
costituita dall’hardware e di una macchine
virtuali costituite dalla macchina reale +
software.
La
macchina
reale
esplica
le
funzioni
fondamentali del sistema di elaborazione.
Essa è in grado di effettuare un grande
numero di operazioni elementari in tempi
molto ridotti rispetto a quelli umani
Costantini Susan - (Hardware e Software – 2005)
Costantini Susan - (Hardware e Software – 2005)
La macchina reale è programmabile
esclusivamente in linguaggio macchina ed è,
pertanto, molto scomoda da utilizzare
direttamente: infatti, la programmazione in
linguaggio macchina è ardua e poco efficace.
E’ difficile adattare la logica sintetica del
pensiero umano a quella analitica ed
elementare della macchina reale.
Le difficoltà maggiori:
- è necessario pianificare accuratamente
l’impiego della memoria;
- i codici operativi vanno riferiti utilizzando il
formalismo rigoroso della macchina;
-bisogna gestire programmi di notevole
complessità, composti da un elevatissimo numero
di istruzioni elementari, con conseguente elevato
rischio di commettere errori;
- un programma realizzato in linguaggio
macchina non funzionerà su hardware diverso da
quello utilizzato per la sua stesura
Costantini Susan - (Hardware e Software – 2005)
Per superare queste difficoltà si realizzano degli
strati di software che vanno a ricoprire la
macchina reale.
macchina reale + software--->macchina virtuale
Software:
- Software di base: Insieme di programmi necessari
per lo stesso funzionamento del sistema che
costituiscono macchine virtuali di basso livello.
-Software applicativo: Programmi orientati alla
risoluzione di problemi specifici utilizzati
direttamente dall’utente finale.
Le macchine virtuali sono orientate alla
rappresentazione più efficace (cioè più vicina
all’uomo) di problemi specifici da risolvere.
La macchina reale è invece ciò
fisicamente possibile la soluzione.
che rende
Costantini Susan - (Hardware e Software – 2005)
Schema macchine virtuali ad alto livello
Richiedono grandi quantità
(memoria e tempo di calcolo)
di
risorse
Le macchine virtuali di livello più basso (e
quindi dal software di base) comprendono la
gestione delle periferiche e la possibilità di
programmare impiegando linguaggi simbolici
Costantini Susan - (Hardware e Software – 2005)
Il sistema operativo
È una collezione di moduli software che gestiscono
le risorse hardware e software e controllano lo
svolgimento delle diverse procedure di elaborazione.
Le macchine virtuali di livello più basso sono tutte
realizzate da moduli di sistema operativo.
Fra i vari moduli c’è un supervisore o kernel che risiede
stabilmente in memoria centrale,ossia viene caricato una
tantum all’atto dell’accensione del sistema.
Gli altri moduli, residenti in memoria di massa, vengono
richiamati dal supervisore e caricati in memoria centrale
quando devono svolgere i compiti specifici di loro
competenza
Costantini Susan - (Sistema operativo – 2005)
I compiti del sistema operativo:
1. Gestione delle risorse disponibili
Ogni sistema elaborativo consiste di un processore,
memoria centrale, schermo, interfacce, stampanti,
tastiera, mouse. Il S.O. deve fare in modo che le
richieste per accedere a tali risorse vengano servite
in maniera ottimale (come l’esecuzione di vari
programmi, le code di stampa, l’accesso ai file su
disco..)
2. Gestione delle periferiche
Per ogni periferica presente nel sistema operativo
ha un modulo chiamato driver. I driver di periferica
sono programmi specializzati nel tradurre richieste
formulate dall’utente in una forma comprensibile
dalla periferica. (Es. Driver per una stampante)
3. Controllo dell’esecuzione dei programmi
Quando si ci propone di eseguire un programma,
esso risiede in memoria di massa; ma sappiamo che
per essere eseguito deve trovarsi in memoria
centrale. Viene avviato un modulo di S.O. chiamato
loader, che si occupa di copiare il programma dalla
memoria di massa nella RAM.
Costantini Susan - (Sistema operativo – 2005)
4. Interazione con l’utente
Uno dei moduli all’interno del S.O è l’interprete di
comandi, anche detto shell. Esso è un interprete che
risponde i comandi forniti dall’utente tramite la
tastiera o il mouse e li traduce uno ad uno in comandi
di livello più basso che portino a termine le azioni
specificate dall’utente.
Esempio:
1. La shell di MS-DOS con comandi quali DIR, per
listare i file contenuti in una directory, o COPY, per
copiare i file (shell che ricevono i comandi in forma
testuale).
2. Alcune shell interpretano gesti compiuti
dall’utente mediante il mouse o altri dispositivi di
puntamento (shell visuale in Windows)
Costantini Susan - (Sistema operativo – 2005)
(a) Monoprogrammazione, monoutenza: il sistema serve un
solo utente per volta ed è in grado di eseguire un solo
programma per volta
(b) Multiprogrammazione, monoutenza: il sistema serve un
solo utente per volta ed è in grado di eseguire più
programmi contemporaneamente.
(c) Multiprogrammazione, multiutenza:
(a)
(b)
(c)
INPUT
ELABORAZIONE
OUTPUT
INPUT
ELABORAZIONE
OUTPUT
INPUT
ELABORAZIONE
OUTPUT
INPUT
ELABORAZIONE
OUTPUT
UTENTE 1 UTENTE 2 UTENTE 3 UTENTE 4 UTENTE 5 UTENTE 6
Costantini Susan - (Sistema operativo – 2005)
Multiprogrammazione, multiutenza:serve più utenti
contemporaneamente. Il S.O. impiega una tecnica basata
sulla suddivisione del tempo macchina detta time sharing
per assegnare le risorse del sistema ai vari utenti.
Ogni utente ha l’impressione di avere la CPU
interamente a propria disposizione, mentre quello che
succede è che la CPU passa rapidamente da un processo
all’altro.
Fig III.9
Costantini Susan - (Sistema operativo – 2005)
I sistemi operativi più diffusi:
MS-DOS Questo S.O. viene caricato da disco,
invece, di risiedere in ROM. Esso implementa la
monoprogrammazione per singolo utente, con delle
limitatissime capacità di multiprogrammazione.
Windows Inizialmente non si trattava di un sistema
operativo ma di un programma applicativo che
aggiungeva al sistema operativo (MS-DOS) una
macchina virtuale di alto livello nella quale far
girare altro software applicativo. Oggi è il più
diffuso S.O. ed implementa la multiprogrammazione
in monoutenza e permette la condivisione di risorse
fra elaboratori connessi in rete.
Unix Fu il primo sistema operativo ad essere scritto
quasi interamente in un linguaggio ad alto livello (il
C). Unix permette la multiprogrammazione e
multiutente; l’accesso al sistema è possibile anche
attraverso terminali remoti.
Costantini Susan - (Sistema operativo – 2005)