cos’ È l’informatica - raffaella lanzarotti...
TRANSCRIPT
1
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
COS’ È L’INFORMATICA
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Informatica
Algoritmi e strutture dati
Linguaggi di programmazione
Architetture dei calcolatoriIntelligenza
artificiale
Ingegneria del software
Basi di dati e sistemiper il ritrovamento delle informazioni
Visionee robotica Computazione
numerica e simbolicaSistemi operativi
2
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Verso una definizione di informatica…
• L’informatica è la scienza della rappresentazione e dell’elaborazione dell’informazione
• Progetto e realizzazione di calcolatori elettronici• Progetto e uso di applicazioni• Gestione di informazioni/dati…• …
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Association for Computing Machinery(ACM)
L’informatica è lo studio sistematico degli algoritmiche descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e
applicazione
3
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
GLI ALGORITMI
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Algoritmo(da AL-KHOWARIZMI, 825 dc):
• una descrizione non ambigua di un numero finito dioperazioni, la cui esecuzione termina in un tempo finito
• In senso lato, una procedura che eseguita passo a passorisolve, entro un determinato periodo di tempo, un problema.
NB: il concetto di algoritmo prescindedall’esistenza del calcolatore
4
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Esempi
• Algoritmi (o procedure):• per calcolare il Massimo Comun Divisore• per costruire modellini di aerei (espressi nei fogli di
istruzioni)• per azionare la lavatrice• per suonare una melodia al piano (espressa in un
insieme di simboli negli spartiti)
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Algoritmo per calcolare l'ipotenusa
• Date le misure x e y di due cateti di un triangolorettangolo:• Calcola x2
• Calcola y2
• Calcola z= x2 + y2
• L'ipotenusa è data dalla radice quadrata di z: ipotenusa i=√z
5
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Chi è l’esecutore dell’algoritmo?
• Se vogliamo automatizzare l’esecuzione degli algoritmi, dobbiamo rappresentarli e comunicarli al calcolatore in un linguaggio a lui comprensibile e non ambiguo:
Linguaggi di programmazione
Algoritmo Programma CODIFICA
• Programma: sequenza di istruzioni scritte in un linguaggio di programmazione comprensibile e non ambiguo per il calcolatore
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Linguaggio macchina
• I calcolatori sanno eseguire un insieme limitato di semplici operazioni• Somma due valori• Sottrai due valori• Copia un valore in memoria…
• Le istruzioni altro non sono che sequenze di 0 e 1 (l’alfabeto del calcolatore) che codificano il codice dell’operazione da eseguire e gli operandi:
0010000001101010010001010010100011
6
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Traduzione dei linguaggi
• Il concetto di traduzione dei linguaggi ha permessol’evoluzione dei linguaggi verso sistemi simbolicipiù espressivi e più facilmente manipolabili daiprogrammatori
• Il programmatore scrive un programma in un linguaggio ad alto livello senza preoccuparsi dellamacchina che esegue il programma
• Un apposito programma, il compilatore, traduce poi tutti i programmi scritti in uno specificolinguaggio ad alto livello in linguaggio macchina
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Sintassi
• Sistema di regole formali che definiscono il linguaggio• Consente di stabilire se un’istruzione è ben formata• È corretto scrivere: se x + n > m allora STOP ?
• Facilitano il compito al programmatore• I programmi devono essere tradotti nel linguaggio
nativo della macchina
7
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Diversi livelli di espressività
• Linguaggio Macchina: • 001010001110000
• totalmente illeggibile per l’uomo• Perfettamente non ambiguo per la macchina
• Linguaggio Assembly• LOAD x
• ADD y
• STORE z
• simbolico del linguaggio macchina
• Linguaggio ad alto livello, (es PASCAL)• semiperimetro := base + altezza;
• Le istruzioni corrispondono ad azioni più articolate• Richiedono uno sforzo di codifica inferiore da parte del programmatore
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Evoluzione dei linguaggi
• Anni ’50: primi linguaggi ad alto livello• FORTRAN, ALGOL, COBOL
• Anni ’60: linguaggi orientati al problema• LISP, APL, SNOBOL,
• Anni ’70: metod. di programmazione• PASCAL, Modula-2, C, Prolog,
• Anni ’80: programmazione a oggetti. • SmallTalk, Objective-C, C++, Java
8
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
IL SOFTWARE DI SISTEMA
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Software (sw)
• L’esecuzione di programmi è lo scopo di un elaboratore• L’insieme dei programmi che un elaboratore può eseguire
rappresenta il software in dotazione all’elaboratore
• Distinguiamo due principali categorie di software:
• sw di sistema
dedicato alla gestione del calcolatore• sw applicativo
dedicato a specifiche esigenze applicative
9
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
L’architettura generale
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Il sw applicativo
• Il sw applicativo è costituito dall’insieme di programmi che “fanno svolgere” al calcolatore una serie di funzionalità rivolte principalmente agli utilizzatori finali:• Videoscrittura• Fogli elettronici• Posta elettronica• Browser• Compilazione 740• Visualizzazione molecole• Video giochi• …
10
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Il sw di sistema
• Il sw di sistema è costituito da un insieme di programmi il cui scopo è:• Gestire le risorse del sistema• Permettere l’esecuzione di programmi• Controllare l’ I/O, rilevando malfunzionamenti• Gestire la memorizzazione e la sicurezza dei dati
• Appartengono al sw di sistema• Il sistema operativo• I compilatori• I driver per i dispositivi di I/O
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Il Sistema Operativo (S.O.)
• Il S.O. è un software di sistema che realizza due funzionalità:1. Gestisce le risorse fisiche di un elaboratore
(come la CPU, la RAM e le periferiche)1. Esecuzione simultanea di più programmi2. Protezione dei dati
2. Presenta all’utente un’interfaccia che rende più facile l’uso del calcolatore a programmatori e utenti finali
11
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Il sistema operativo
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Il sistema operativo
• Il sistema operativo viene fornito insieme all’elaboratore• E’ memorizzato su CD, ma all'atto dell'installazione
viene trasferito su Hard Disk• Ogni elaboratore può essere utilizzato solo se vi è stato
preventivamente installato un sistema operativo
12
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Il sistema operativo
• I sistemi operativi più diffusi in ambiente PC sono:• Windows 98/NT/2000/XP• Linux• MacOs
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Il sistema operativo
• Ogni sistema operativo è contraddistinto oltre che dalnome anche dalla release, o versione• Es:• Windows 2000• Windows XP
13
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Il sistema operativo
• Ogni nuova release di sistema operativo viene rilasciataper • correggere errori presenti nella release corrente• aggiungere nuove funzionalità alla release corrente
• Modifiche sostanziali implicano nuove versioni, modifiche minori nuovi livelli di aggiornamento
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Il sistema operativo
• Gli aggiornamenti di sistema operativo, o più in generaledi sw, vengono chiamati• Patch nel mondo Unix• Service pack nel mondo Windows• Update nel mondo MacOSX
• Gli aggiornamenti vengono in genere distribuitiattraverso CD o attraverso la rete
14
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Il sw applicativo
• Anche il software applicativo è caratterizzato da un numero di versione
• Ogni versione di sw applicativo è compatibile solo con certe versioni di sistema operativo
• Prima di usare un sw applicativo è necessario verificare la versione di SO di cui si dispone
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Struttura logica
• Data la sua complessità, il S.O. è suddiviso logicamentein strati funzionali, dove ciascuno strato:• offre dei servizi agli strati superiori• nasconde i dettagli degli strati inferiori
• Ciascuna funzionalità realizza una macchina virtuale
• macchina le cui componenti sono le funzionidisponibili a quel livello
15
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Struttura logica
nucleo
HW
gestore della memoria
gestore delle periferiche
Interprete dei Comandi (Shell, GUI)
Programmi Utente
file system
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Interprete dei comandi
nucleo
HW
gestore della memoria
gestore delle periferiche
programmi utente
file system
Interprete dei Comandi (Shell, GUI)
16
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Interprete dei comandi
• E’ l’interfaccia di alto livello verso l’utente mediante la quale si chiede l’esecuzione dei programmi o di comandi. Può essere:• A caratteri sulla “linea di comando”• Shell Unix• MS DOS
• Grafica con finestre e icone • Macintosh• KDE/Gnome, MacOSX, Windows
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Interprete dei comandi
17
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Interprete dei comandi
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Gestore delle periferiche
nucleo
HW
gestore della memoria
Gestore delle Periferiche
interprete dei comandi (Shell, GUI)
programmi utente
file system
18
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Gestore delle periferiche
• Parte del sistema operativo che permette il corretto funzionamento delle periferiche (es. stampante, video, mouse, tastiera…)• Aggiunta/rimozione periferica• Controllo degli accessi• Controllo funzionamento
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Gestore delle periferiche
19
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Gestore della memoria
nucleo
HW
Gestore della Memoria
gestore delle periferiche
interprete dei comandi (Shell, GUI)
programmi utente
file system
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Gestore della memoria
• Permette la condivisione della memoria tra programmi eseguiti “simultaneamente”• assegnare la memoria ai programmi da eseguire • fisica e/o virtuale
• spostare i programmi in memoria sul disco per fare posto a quelli nuovi
• caricare i programmi da disco in memoria• assicurare che programmi diversi usino aree di
memoria separate e impermeabili per evitare errori
20
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Nucleo
Nucleo
HW
gestore della memoria
gestore delle periferiche
interprete dei comandi (Shell, GUI)
programmi utente
file system
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Nucleo
• Soddisfa le richieste delle varie applicazioni attive:• Utilizza le risorse del computer• Le coordina
• Passa i risultati alla Shell e da questa all’utente mediante le periferiche di output
21
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - File system
nucleo
HW
gestore della memoria
gestore delle periferiche
interprete dei comandi (Shell, GUI)
programmi utente
file system
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - File system
• Componente del S.O. che provvede alla gestione delleinformazioni memorizzate su disco
• Fornisce le seguenti funzioni• Memorizzazione• Aggiornamento• Cancellazione
22
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File system - I dischi
• In un sistema sono generalmente presenti tre tipi di unitàdisco:• Hard Disk• Floppy• CD
• In ambiente Windows, ciascuna unità è contraddistintada una lettera seguita da due punti, es. C: D: …
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File system - I dischi
23
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File system - I file
• Le informazioni sono memorizzate su disco in appositi contenitori chiamati FILE o documenti
• Ogni file è univocamente contraddistinto da un nome
• Il contenuto di un file è definito dall’utente proprietario del file
• Le modalità di accesso sono definite dall’utente (lettura, scrittura, esecuzione per sé e per gli altri utenti)
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File System - Formato dei file
• I dati manipolati da un programma vengono codificati in un formato che consenta di salvare:• i dati stessi,• le informazioni relative alla loro rappresentazione.
• Per interpretare correttamente il contenuto di un file, un programma deve riconoscerne ed interpretarne il formato.
24
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File System - Formato dei file
• Il formato di un file viene esplicitato aggiungendo un’opportuna estensione al suo nome:
<nome>.<estensione>• L’estensione in genere è composta da tre o quattro
caratteri (es: .doc .xls .txt .c .ps .pdf)• L’uso delle estensioni è solo una convenzione
• comodità per l’utente• il sistema operativo usa le informazioni sulla natura
del file presenti all’inizio del file stesso
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File System - Formato dei file
25
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File System - Operazioni sui file
• I file possono essere• creati• rinominati• aggiornati• aperti/chiusi• cancellati
• Sui file è possibile operare direttamente dall’interno delle applicazioni o dall’interprete dei comandi• rinomina, cancellazione, apertura
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File System - Permessi sui file
• Gli utenti possono specificare i seguenti permessi di accesso ai file relativamente a vari gruppi di utenti• Read (R) indica se possono essere letti i contenuti di
un file o di una cartella• Write (W) indica se è possibile modificare il
contenuto di un file o di una cartella• Execute (X) indica se è possibile eseguire un file o
posizionarsi all’interno di una cartella
26
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Le directory o cartelle
• Oltre ai file dati esiste un altro tipo di file:
le directory o cartelle o folder
• Sono dei contenitori logici di file
• Scopo: fornire all’ utente uno strumentoper organizzare i propri file
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Directory
27
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Gerarchie di directory
• Le cartelle possono a loro volta contenere altre cartelle, che possono contenere altre cartelle e così via
• Si parla di Gerarchia ad Albero
• Il livello più alto è detto radice
C:
\Progetti \foto \Documenti
\Sicilia \Casa \laurea
Amici.jpg …
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
I path name dei file
• Ogni file all’interno del file system è individuato in base alla sua posizione nell’albero, cioè al cammino (pathname o path) che si deve percorrere per raggiungerlo a partire dalla radice• Per esempio la foto “Amici.jpg” è individuata dal
seguente cammino: C:\foto\Sicilia\
• I file di dati sono sempre all’estremità dell’albero, per questo sono detti foglie
28
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
Gerarchie di directory
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File system
Il file system gestisce anche la struttura fisica dei dischi e deve quindi:• trovare spazio sufficiente (non necessariamente
contiguo) per memorizzare i file• attivare il trasferimento dei dati• aggiornare opportune tabelle che poter accedere ai file
29
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File System - Operazioni sulle cartelle
• Crea• Creare una cartella ed assegnarle un nome
• Rinomina• Modificare il nome di una cartella
• Apri• per accedere al contenuto di una cartella
• Cancella• Rimuovere una cartella e tutto il suo contenuto• la cartella viene spostata nel cestino
• Sposta• Sposta la cartella in un altro punto della
struttura gerarchica
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
File System - Visualizzazione
• Quando si accende il personal computer ci si trova davanti una scrivania (desktop) su cui compaiono cartelle e documenti
• In Windows• La radice della struttura gerarchica è il desktop• I nodi di un pathname sono separati da \• Ogni disco è individuato da una lettera (es C:)
30
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Utenti e privilegi
• Un sistema operativo che consente l’uso di un computer a più utenti prevede diverse tipologie di utenti• Amministratore• può fare qualsiasi operazione per poter gestire il sistema
• Utente comune• Ha delle limitazioni per contenere i danni che potrebbero
fare (rimuovere file di sistema, cancellare dati di altri utenti, cambiare l’ordine della coda di stampa, ecc.)
• Ospite• Ancora più limitazioni
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Utenti e privilegi
• L’amministratore del sistema può installare il swapplicativo in modo che tutti gli utenti lo possano usaree che il sw possa accedere alle risorse di cui ha bisogno
• Gli utenti comuni possono accedere solo ai propri file e installare localmente nelle proprie cartelle swapplicativo al quale gli altri utenti non possono accedere
31
© Alberti, Boldi, Bruschi, Bucalo, Ferrari, Gaito, Lanzarotti, Palano,Provetti, Rosti, Zanaboni
S.O. - Utenti e privilegi
• L’amministratore di sistema può aggiungere nuoviutenti nel sistema o disabilitare quelli esistenti
• Gli utenti comuni non possono farlo perchè non hanno “privilegi” a sufficienza nel loro profilo