3. Software - Insegnamento di Informatica

3. Software
Insegnamento di Informatica
Elisabetta Ronchieri
Corso di Laurea di Economia, Universitá di Ferrara
I semestre, anno 2014-2015
Elisabetta Ronchieri (Universitá)
Insegnamento di Informatica
I semestre, anno 2014-2015
Argomenti
Software
Diritto d’autore
Software di Base
Sistema Operativo
Software di comunicazione
Software di utilitá
Software applicativo
Interfacce
Linguaggi di Programmazione
File
Utilitá del SO
Formattazione
Frammentazione
Altro
1 / 39
Argomenti
Software
Diritto d’autore
Software di Base
Sistema Operativo
Software di comunicazione
Software di utilitá
Software applicativo
Interfacce
Linguaggi di Programmazione
File
Utilitá del SO
Formattazione
Frammentazione
Altro
2 / 39
Software
I
É necessario al funzionamento del computer.
I
É un componente immateriale del computer.
I
É un insieme complesso di programmi, caratterizzati da
sequenze di istruzioni.
I
É distribuito su appositi dischi o Internet.
I
É scritto utilizzando appositi linguaggi come C, C++, Python,
Fortran e Java.
I
É, in genere, sotto copyright (diritto d’autore) e EULA1
(licenza).
Si compone delle seguenti parti:
I
I
I
1
Software base;
Software applicativo.
EULA sta per End User License Agreement.
3 / 39
Software
4 / 39
Argomenti
Software
Diritto d’autore
Software di Base
Sistema Operativo
Software di comunicazione
Software di utilitá
Software applicativo
Interfacce
Linguaggi di Programmazione
File
Utilitá del SO
Formattazione
Frammentazione
Altro
5 / 39
Copyright
I
Senza copyright un software non puó essere usato, distribuito
e modificato.
I
La licenza permette ad un utente di usare un certo software
sotto alcune condizioni.
I
In genere ogni software é dotato di licenza che deve essere
accettata da chi lo richiede prima di usare il software.
Per garantire una circolazione del software piú libera é nato il
copyleft che concede all’utente piú diritti delle EULA.
I
I
Il software deve essere ridistribuito con la stessa licneza con cui
é stato ottenuto.
6 / 39
Terminologia software
Termine
Significato
Softwre open source
Ogni software di cui é possibile ottenere il codice sorgente legamente.
Software free (libero)
Ogni software con licenza copyleft.
Spesso é anche gratuito.
In genere é anche open source.
Software proprietario
Ogni software con delle restrizioni di utilizzo, modifica, redistribuzione, etc.
Non é quindi un software free.
É spesso a pagamento.
Freeware
Software proprietario gratuito.
Shareware
Software proprietario a pagamento usabile gratuitamente per un periodo di tempo (e.g. license evaluation).
Pubblico dominio
Software disponibile a chiunque senza nessun copyright.
7 / 39
Argomenti
Software
Diritto d’autore
Software di Base
Sistema Operativo
Software di comunicazione
Software di utilitá
Software applicativo
Interfacce
Linguaggi di Programmazione
File
Utilitá del SO
Formattazione
Frammentazione
Altro
8 / 39
Software Base
I
I
É necessario al funzionamento del computer.
Si compone delle seguenti parti:
I
I
I
2
Sistema Operativo (SO)2 quali Windows, Linux e MacOS;
Software di comunicazione per gestire la rete telematica ed
interagire con essa;
Software di utilitá per far funzionare o far riconoscere al
sistema operativo componenti hardware o periferiche.
In inglese Operating System (OS).
9 / 39
Sistema Operativo
I
I
I
I
I
I
I
I
I
Garantisce l’operativitá di base del computer coordinando le
risorse hardware di processamento, memorizzazione e
periferiche.
É un insieme di programmi che operano direttamente al di
sopra dell’hardware e consentono l’utilizzo di tutte le
funzionalitá dell’elaboratore.
Permette all’utente di usare software piú specifici come quelli
applicativi.
Gestisce e controlla le parti hardware del computer.
Gestisce l’archiviazione (memorizzazione) e accesso ai file
tramite il filesystem.
Puó predisporre piú di un’interfaccia software (grafica o
testuale) per accedere alle risorse hardware del sistema quali
dischi, memoria e I/O.
É eseguito prima di qualsiasi altro programma.
É fatto caricare al momento dell’accensione del computer.
L’utente vede la macchina attraverso il SO.
10 / 39
Sistema Operativo: BIOS
I
Al momento dell’accensione, l’elaboratore cerca innanzitutto il
BIOS (Basic Input Output System), sistema fondamentale di
input/output.
I
BIOS é un piccolo programma registrato permanentemente su
un chip di memoria ROM.
I
BIOS é una via di mezzo tra software ed hardware quindi
spesso viene indicato con il termine firmware.
Svolge una serie di importanti funzioni:
I
I
I
I
I
interpreta i caratteri immessi dalla tastiera;
visualizza i caratteri sullo schermo;
gestisce le comunicazione che avvengono tramite le porte del
computer;
controlla l’integritá del sistema ogni volta che viene avviato.
I
BIOS fornisce un collegamento tra hardware e software.
I
Se si sostituisce l’hardware di un elaboratore basta aggiornare
il BIOS.
11 / 39
Sistema Operativo: Interprete dei comandi
I
La porzione del sistema operativo riservata all’interpretazione
dei comandi ha la funzione di ricevere dalla tastiera/mouse
l’input dell’utente e di interpretarlo.
Esempio:
I
I
trascinando un file sull’icona dell’applicazione che é in grado di
elaborarlo dall’applicazione.
Il SO traduce le richieste dell’utente in opportune sequenze di
bit da sottoporre alla macchina fisica.
12 / 39
Sistema Operativo: Sistema multitasking
SO é in grado di portare avanti l’esecuzione di piú programmi con
una sola CPU.
13 / 39
Sistema Operativo: Sistema multithreading
14 / 39
Sistema Operativo: Altro
I sistemi multiutenti
I
Si permette a piú utenti di interagire con la macchina.
I sistemi multiprocessori
I
il sistema riesce a gestire pi processori.
Altro:
I
controlla continuamente il sistema ed in caso di disfunzioni
avvisa l’utente;
I
assegna ad ogni programma un proprio spazio in memoria in
modo che non possa influenzare gli altri programmi;
I
regola l’alimentazione di energia in base alle necessitá;
I
controlla batteria nei portatili;
I
gestisce UPS (Uninterruptible Power Supply), gruppo di
continuitá di alimentazione continua dell’elaboratore.
15 / 39
Come confrontare SO
Puó essere utile considerare le seguenti caratteristiche:
I
monotasking o multitasking;
I
monothreading o multithreading;
I
interfaccia utente a caratteri o grafica;
I
sicurezza alta o bassa;
I
capacitá di elaborazione (8, 16, 32, 64 bit);
I
portabilitá (non dipende da uno specifico microprocessore);
I
proprietario (funziona con un solo computer) o aperto.
Esempi: MS-DOS monoutente, monotasking; UNIX, MacOS,
WindXP multiutenti e multitasking.
16 / 39
Software di comunicazione
I
É l’insieme dei programmi che si occupano di supportare la
comunicazione tra macchine collegate in rete.
I
Permette la comunicazione tra due o piú computer collegati
tra loro.
I
Condivide le risorse tra computer connessi in rete locale:
risorse software (dati, programmi); risorse hardware
(stampanti, dischi etc.).
I
Supporta il collegamento remoto: configurazione e gestione
del modem; configurazione e gestione di una scheda di rete.
I
Usa protocolli per uno scambio corretto di dati e messaggi,
quali ad esempio telnet (per apertura di una sessione remota);
ftp (per il trasferimento di file); mail (per la posta elettronica).
17 / 39
Software di utilitá
I
É una evoluzione del software applicativo.
I
Integra le funzioni del sistema operativo.
I
Permette agli utenti di eseguire delle operazioni di base quali:
copia, cancellazione, stampa di file; configurazione del sistema;
visualizzazione contenuto directory (cartella); compressione
dei file su disco; antivirus (protezione dai virus informatici).
I
Contiene programmi diagnostici quali quelli per migliorare le
prestazioni e configurare il sistema.
I
Contiene programmi di backup per la duplicazione dei file su
nastro o disco.
I
Contiene programmi di disinstallazione per rimuovere le
applicazioni.
I
Contiene programmi per operazioni quotidiane quali
calcolatrice e datario.
18 / 39
Argomenti
Software
Diritto d’autore
Software di Base
Sistema Operativo
Software di comunicazione
Software di utilitá
Software applicativo
Interfacce
Linguaggi di Programmazione
File
Utilitá del SO
Formattazione
Frammentazione
Altro
19 / 39
Software applicativo
I
É scritto in linguaggi di programmazione di alto livello.
I
Fa svolgere all’utente compiti specifici quali scrivere lettere o
gestire la contabilitá.
I
Progettato e sviluppato per essere riconosciuto e supportato
dal sistema operativo.
I
Si compone di programmi che si aggiungono al sistema
operativo per permettere al computer di svolgere attiivitá
specifiche.
I
Esempi: elaborazione di testi (es. Miktex), foglio elettronico
(es. RGUI), elaborazioni immagini (es. Photoshop), creazione
sito web (es. Frontpage), navigazione (es. Firefox) e posta
elettronica (es. Thunderbird).
I
Puó avere mercato orizzontale (applicazioni generiche come
Office), verticale (applicazioni specifiche) o personale (es.
software Grid degli esperimenti LHC).
20 / 39
Argomenti
Software
Diritto d’autore
Software di Base
Sistema Operativo
Software di comunicazione
Software di utilitá
Software applicativo
Interfacce
Linguaggi di Programmazione
File
Utilitá del SO
Formattazione
Frammentazione
Altro
21 / 39
Interfacce utente
I
Rappresenta l’interazione
uomo macchina.
I
Appare sullo schermo non
appena si accende un
computer.
I
Grazie all’evoluzione del
computer sono state
introdotte interfacce
software.
22 / 39
Le interfacce a caratteri
I
Il numero di caratteri visualizzati era fisso: A − Z , a − z,
0 − 9, # . . . (fino a 256 caratteri).
I
Poiché il corrispondente SO non gestiva la grafica ogni
programmatore doveva inventare un proprio modo per definire
i comandi.
I
Le interfacce a caratteri sono piú rapide e richiedono meno
memoria rispetto a quelle grafiche, ma sono piú difficili da
utilizzare.
23 / 39
Interfacce grafiche utente
I
In genere identificate con l’acronimo GUI (Graphic User
Interface)
I
Attualmente disponibili con interfacce piú intuitive, quali MS
Windows, X Windows e KDE di Unix.
Le funzionalitá comuni:
I
I
I
I
I
I
visualizzano sullo schermo delle finestre sovrapposte, ognuna
delle quali puó contenere un programma applicativo;
l’utente puo passare da un compito all’altro in modo veloce;
per eseguire un comando basta puntare l’icona che lo
rappresenta sul desktop digitale e fare clic con il mouse;
impiegano la tecnologia WYSIWYG
(WhatYouSeeIsWhatYouGet) per i documenti;
i comandi sono gli stessi per tutti i programmi.
24 / 39
Altre interfacce
Le interfacce a stilo:
I
usate per gli elaboratori tascabili;
I
si usa una stilo su di uno schermo sensibile.
Le interfacce touchscreen:
I
usate negli aeroporti, musei, bancomat;
I
con un dito si puntano le icone presenti sullo schermo.
Le interfacce conversazionali:
I
comandi vocali;
I
ancora in fase di perfezionamento.
25 / 39
Argomenti
Software
Diritto d’autore
Software di Base
Sistema Operativo
Software di comunicazione
Software di utilitá
Software applicativo
Interfacce
Linguaggi di Programmazione
File
Utilitá del SO
Formattazione
Frammentazione
Altro
26 / 39
Linguaggi di Programmazione
I
Un programma é formato da un insieme finito di istruzioni che
possono essere eseguite da un processore per conseguire un
risultato.
I
Un programma É scritto in un linguaggio formale e
caratterizzato da una sintassi ben definita.
I
Esempi di linguaggi di programmazione: Fortran, C++,
Python, Java.
I
Per ogni linguaggio di programmazione esistono ambienti
integrati di sviluppo software caratterizzati da editor,
traduttore, debugger.
I
La scrittura di un algoritmo in un linguaggio deve essere
comprensibile ad un elaboratore.
I
Le istruzioni sono trasmesse al computer in un codice detto
linguaggio macchina.
27 / 39
Traduttore di linguaggio
I
Ogni elaboratore esegue solo il suo linguaggio macchina.
I
I linguaggi macchina sono complessi, poco espressivi, scritti in
notazione binaria, incomprensibili.
I
L’uomo usa i linguaggi evoluti non eseguibili dalla macchina.
Occorre un apposito traduttore che converta il codice di
programmi scritti in un particolare linguaggio di
programmazione (programma sorgente) nella corrispondente
rappresentazione in linguaggio macchina (programma
eseguibile):
I
I
I
compilatore che produce un programma tradotto, equivalente
all’originale ma scritto in linguaggio macchina: elaboratore
esegue la traduzione del programma e non l’originale;
interprete che esegue il programma, traducendo le istruzioni
del programma decodificate ed eseguite in successione.
28 / 39
Vantaggi / Svantaggi
I
La compilazione é una esecuzione rapida, mentre
l’interpretazione decodifca ogni volta.
I
L’interpretazione giunge all’esecuzione in modo piú
immediato.
I
L’interpretazione semplifica il porting dei programmi tra
sistemi operativi diversi senza ricorrere a compilatori diversi.
29 / 39
Bytecode
I
Prodotto da soluzioni miste di compilazione/interpretazione.
I
Programma tradotto dal suo linguaggio originario in un
linguaggio intermedio detto bytecode (ogni codice occupa 1
byte) non lontanissimo dal linguaggio macchina.
I
Bytecode é poi eseguito da un interprete presente su varie
macchine.
I
Il programma puó rimanere lo stesso visto che sulle varie
macchine viene eseguito il bytecode.
I
Possibile poiché l’interprete funge da macchina virtuale.
I
JAVA usa questa soluzione.
I
Per migliorare l’efficienza l’interprete é affiancato da un
compilatore per tradurre il bytecode.
I
Dalvik virtual machine é usato per applicazioni su android.
30 / 39
Argomenti
Software
Diritto d’autore
Software di Base
Sistema Operativo
Software di comunicazione
Software di utilitá
Software applicativo
Interfacce
Linguaggi di Programmazione
File
Utilitá del SO
Formattazione
Frammentazione
Altro
31 / 39
Gestione di file
I
Al momento del salvataggio ai file viene assegnato un nome di
file: nome + . + estensione.
I
Nome puó contenere spazi a seconda del SO: es. in Windows
é possibile ma non in DOS.
I
I file sono memorizzati sul disco fisso e sono logicamente
organizzati in cartelle, ossia directory.
I
Molti sistemi sono dotati di piú unitá di memoria distinte
tramite una lettera o un nome: es C per il SO, D unitá di
lavoro, E lettore DVD, etc.
I
Nel caso di Windows si usa l’unitá C per installare programmi,
mentre i dati dell’utente possono essere memorizzati nell’area
associata all’utente C : /Utenti/ < username > o in altra
unitá se presente sul SO.
32 / 39
Gestione di file
I
Le unitá sono organizzate in cartelle formando degli alberi:
I
I
I
Per reperire un file memorizzato in una cartella é necessario
seguire un certo percorso (dalla radice alla foglia).
I
I
l’unitá é radice;
il file é la foglia.
il percorso del file in una cartella o sottocartella.
I file vengono gestiti da appositi programmi di gestione file
33 / 39
Azioni sui file
34 / 39
Argomenti
Software
Diritto d’autore
Software di Base
Sistema Operativo
Software di comunicazione
Software di utilitá
Software applicativo
Interfacce
Linguaggi di Programmazione
File
Utilitá del SO
Formattazione
Frammentazione
Altro
35 / 39
Formattazione
I
Permette l’archiviazione dei dati.
I
Viene creata una directory chiamata tabella di allocazione dei
file (FAT)
I
FAT registra la localizzazione di tutti i file su disco.
I
Quando il documento é salvato, il SO riesce ad indirizzare
gruppi di settori detti cluster.
I
I cluster sono la piú piccola unitá di memoria indirizzabile dal
computer.
I
Il SO cerca nella FAT i cluster ancora vuoti e vi memorizza il
documento.
I
L’indirizzo del cluster é usato per reperire nuovamente il
documento.
36 / 39
Frammentazione
I
I dati di un file vengono salvati utilizzando cluster adiacenti.
I
In fase di rimozioni e aggiunta di file, parti di file sono sparsi
in cluster localizzati in varie aree del disco.
I
Tale frammentazione introduce un rallentamento delle
funzioni del computer.
I
Per risolvere si effettua l’operazione di deframmentazione del
disco:
I
La deframmentazione sposta i dati sul disco fino a riavere le
porzioni del file in cluster adiacenti.
37 / 39
Altro
Lo scanning del disco
I
risolve alcuni problemi legati ai file.
L’eliminazione dei file e il cestino.
Utilitá multimediali
I
controllo del volume
I
lettore CD.
38 / 39
Per ulteriori letture
Dennis P. Curtin, Kim Foley, Kunl Sen, Cathleen Morin,
Informatica di Base, Cap. 5, 6, 7, 12, 19, McGraw-Hill (2012)
39 / 39