SOFTWARE, FILE
E DATO
1
INFORMATICA GENERALE
SOFTWARE
Software (sw) = programmi
Le famiglie:
Sw di base o di sistema
Sw applicativo
Sw da Internet
Sw di utilità
2
INFORMATICA GENERALE
SOFTWARE DI BASE (O DI SISTEMA)
Software di base = programmi che rendono utilizzabile il
computer e ne arricchiscono le funzionalità
Il sw di base include:
1. Sistema operativo (SO)
2. Compilatori, linker, loader
3. Interpreti
3
INFORMATICA GENERALE
SOFTWARE APPLICATIVO
Tutti i programmi utilizzati dall’utente per la
propria attività
4
INFORMATICA GENERALE
SOFTWARE DI UTILITÀ
Sono programmi applicativi utilizzati per mantenere in
efficienza il sistema informatico e migliorarne le
prestazioni.
- BACKUP
- ANTIVIRUS
- DIAGNOSTICI – analizzano lo stato fisico del
computer e rilevano I vari possibili problemi
(Scandisk, Defrag)
5
INFORMATICA GENERALE
SOFTWARE DA INTERNET
Sono programmi applicativi resi disponibili dalle aziende
per farsi pubblicità e per vendere i propri software:
-
Freeware
Shareware
Adware
Pubblico dominio
6
INFORMATICA GENERALE
SISTEMA OPERATIVO:
FUNZIONALITÀ
1. Gestire le risorse della macchina in simbiosi con il
BIOS
(CPU, memoria, dispositivi di I/O, file)
2. Dialogare con l’utente (interpreta tutti i comandi
forniti dall’utente e li traduce in Linguaggio Macchina)
3. Gestire l’istallazione e l’uso dei programmi applicativi
7
INFORMATICA GENERALE
1. GESTIONE DELLE
RISORSE
SO mono e multiutente  Protezione delle informazioni;
Multiprogrammazione o multitasking  Più attività possono (o
debbono) essere svolte
“contemporaneamente”
Competizione per le risorse  Parallelismo e concorrenza
8
INFORMATICA GENERALE
2. DIALOGO CON L’UTENTE
Interazione basata su comandi testuali
9
INFORMATICA GENERALE
2. DIALOGO CON L’UTENTE (2)
10
INFORMATICA GENERALE
2. DIALOGO CON L’UTENTE (3)
Interazione mediante interfaccia grafica
11
INFORMATICA GENERALE
DIALOGO CON L’UTENTE (4)
12
INFORMATICA GENERALE
Dispositivi
Esistono diversi dispositivi elettronici che per
gestire la loro complessità si sono dotati di un
sistema operativo.
Palm m505
Sendo z100
Nokia 7650
Tra questi, agende
elettroniche e
telefoni cellulari
sono alcuni esempi.
Sistemi operativi:
un po’ di storia
Sistemi operativi: storia
I primi sistemi operativi sono stati progettati
negli anni ’50 per i calcolatori allora disponibili.
Consistevano in poche centinaia di istruzioni per
il caricamento del programma in memoria
centrale e per la produzione, su un dispositivo di
output, dei risultati dell’elaborazione.
L’interfaccia era quella comune
interruttori e spie luminose.
allora
I comandi venivano impartiti in codice binario.
–
Sistemi operativi: storia
Anni ’60, alla AT&T nasce UNIX, capostipite di
una numerosa e varia famiglia di sistemi
operativi.
Anni ’70, iniziano a diffondersi i primi micro
computer.
Anni ‘80, a Seattle venne sviluppato il sistema
operativo QDOS (Quick and Dirty Operating
System).
Sistemi operativi: storia (DOS)
Dopo pochi mesi, un’altra ditta di Seattle, la
Microsoft di Bill Gates, ne acquista i diritti per
rivendere il DOS ad un cliente importante.
Il cliente è l’IBM, che nel 1981 lancerà il primo PC,
dando il via alla rivoluzione dei personal computer.
Sistemi operativi: storia (Win & Mac)
1984, lancio dell’Apple Macintosh, e del suo
sistema operativo a interfaccia grafica, il System
1.0
http://it.wikipedia.org/wiki/Storia_del_Mac_OS#Pre-System_6
L’anno successivo, il 1985, la Microsoft lancia la
prima versione di Windows.
http://it.wikipedia.org/wiki/Windows#Storia_di_Microsoft_Win
dows
Sistemi operativi: storia (Linux)
Nel 1991 uno studente finlandese, Linus
Torvalds, sviluppò il kernel per un
sistema operativo basato su una variante
di UNIX.
Lo distribuì in rete secondo la GNU
General Public License, una licenza che
ne consentiva l’uso, la redistribuzione e
la modifica (a certe condizioni).
Iniziò a ricevere da subito contributi da
altri sviluppatori.
Sistemi operativi: storia (Linux)
Nasceva così Linux, una delle varianti UNIX oggi
più diffuse. Il kernel di Linux è continuamente
aggiornato, e disponibile anche gratuitamente.
Uno dei punti di forza di questo sistema è la
comunità che lo supporta, e la filosofia su cui si
basa, quella del software libero.
SISTEMA OPERATIVO:
ARCHITETTURA
Modello cosiddetto “a buccia di cipolla” (o
semplicemente a strati):
1. Ogni strato realizza una “macchina virtuale”
2. Usa le funzionalità della macchina sottostante
3. Fornisce servizi alla macchina che segue nella gerarchia
4. Gestisce delle risorse mediante politiche invisibili ai livelli superiori
21
INFORMATICA GENERALE
IL MODELLO A STRATI
Hardware
Gestione CPU (nucleo)
Gestione Memoria
Gestione I/O
Gestione file (file system)
Interprete dei comandi
22
INFORMATICA GENERALE
Livelli
L’hardware è dunque “ricoperto” da una serie di
strati di software.
Ciascun livello:
– usa le funzionalità di quello
sottostante
– fornisce servizi al livello che segue
nella gerarchia
– gestisce delle risorse mediante
politiche invisibili ai livelli superiori
Macchine virtuali
Si crea, in questo modo, una gerarchia di
“macchine virtuali”.
• l’esperto che scrive un sistema
operativo vede il sistema come un
insieme di risorse fisiche da
comandare direttamente;
• colui che progetta un ambiente
di programmazione vede la
macchina come l’insieme delle
funzioni messe a disposizione dal
sistema operativo;
Macchine virtuali
• l’utente che usa un linguaggio di alto
livello per progettare un programma
applicativo vede l’elaboratore come
l’insieme delle funzionalità messe a
disposizione dall’ambiente di
programmazione;
• per l’utilizzatore di un programma
applicativo, infine, il sistema appare
virtualmente come l’insieme dei
comandi che può fornire alla macchina
per soddisfare le sue esigenze.
Macchine virtuali
Riassumendo: l’utente finale del sistema
interagisce solo con il livello più esterno
della gerarchia.
Idealmente, l’utente finale è ignaro di tutti
i dettagli delle operazioni svolte dai livelli
inferiori.
Potrebbe (sempre idealmente) essere a
conoscenza solo delle operazioni che è
interessato ad effettuare.
Gestione CPU
Il livello più basso è quello del kernel (nucleo).
Questa parte del sistema operativo si occupa di
gestire l’esecuzione dei programmi.
Un programma in esecuzione è
detto processo.
Il kernel distribuisce le
risorse di calcolo tra i
vari processi attivi.
Gestione CPU
Una prima distinzione è dunque tra quei sistemi
che eseguono un processo per volta e quelli in
grado di gestirne diversi “contemporaneamente”.
Questi ultimi sono detti multitasking.
Gestione memoria
La memoria è una risorsa essenziale e limitata.
Essenziale, perché ogni programma in esecuzione
(processo) deve essere “caricato” in memoria, e
così i dati su cui opera.
Limitata - nei sistemi
moderni possono essere
attivi più processi nello
stesso tempo.
Gestione memoria
Dal momento che la memoria di sistema (RAM) è
una risorsa finita, nell’allocarla ai vari processi il
sistema operativo deve risolvere vari problemi:
• trovare spazio per i vari processi;
• “rilocare” il codice caricato in
memoria;
• ridurre la frammentazione.
Memoria virtuale
L’elaboratore può disporre, in apparenza, di una
quantità di memoria maggiore di quella fisica
installata.
L’utilizzo di una memoria secondaria (su disco)
per estendere la memoria di sistema consente di
parlare di memoria virtuale.
Gestione memoria: swapping
Il sistema operativo può riservare un’area
di un disco per lo swapping.
D
A
B
C
A
B
C
D
C
D viene caricato
in memoria.
In memoria sono presenti A, B,
e C. D non trova spazio.
C viene copiato su un
disco dal gestore della
memoria.
Gestione Input/Output
L’accesso alle periferiche di I/O viene gestito dal
sistema operativo insieme ai driver di periferica.
Questi sono programmi specifici
per ciascun dispositivo che si
colleghi all’elaboratore
(stampanti, scanner
dischi…).
Gestione Input/Output
L’interazione tra un programma e una periferica è
standardizzata. Un programma di elaborazione
testi, ad esempio, può inviare un comando di
stampa senza curarsi del tipo di stampante
collegata al computer.
Spetta al sistema operativo
smistare la richiesta al driver
della stampante.
Gestione Input/Output
A questo livello è implementato anche un sistema
di gestione degli errori di I/O (ad es. dischetto
mancante o danneggiato, carta esaurita, ecc.).
Anche il controllo dell’ordine di
accesso ai dispositivi è cruciale. Il
sistema operativo deve prevenire, o
risolvere, eventuali conflitti.
Gestione file
Il file system è il modo in cui il sistema operativo
organizza i file (documenti) sulle unità di
memorizzazione.
Un file è un’astrazione
che rappresenta un
insieme di byte
logicamente collegati.
Gestione file: funzioni
Il file system deve mettere a disposizione diverse
funzioni per la manipolazione dei file:
• creazione/eliminazione
• lettura/scrittura/esecuzione
• coordinamento accessi contemporanei
• controllo degli accessi (nei sistemi
multiutente)
Inteprete dei comandi (shell)
L’interprete dei comandi è quella parte del
sistema operativo che riceve ed elabora le
istruzioni impartite da un utente.
E’ possibile utilizzare lo
stesso sistema operativo
con shell differenti.
Questo può rendere
molto diverso il modo di
impartire comandi.
Inteprete dei comandi (shell)
La shell è dunque lo strato più esterno di un
sistema operativo. Di fatto, rappresenta
l’interfaccia tra utente e sistema.
MacOS X
Windows XP
Linux – KDE 3.0
Sistemi operativi: implicazioni
La scelta di un sistema operativo ha un’importanza
sia teorica che culturale.
Un sistema operativo non è solo una realizzazione
ingegneristica, ma rispecchia in qualche misura la
filosofia che scegliamo di adottare nel nostro
rapporto con il computer.
Bisogna dunque guardarsi dal considerare il sistema
operativo come una sorta di “dato” tecnologico: si
tratta, piuttosto, del risultato di un processo che ha
anche fondamentali aspetti culturali e comunicativi.
Inteprete dei comandi (shell)
L’interprete dei comandi è quella parte del
sistema operativo che riceve ed elabora le
istruzioni impartite da un utente.
Inteprete dei comandi (shell) e interfaccia
L’interprete dei comandi” o “shell”
(letteralmente “guscio”), rappresenta lo strato
più esterno di un sistema operativo.
Interfaccia
L’interfaccia è il mezzo attraverso il quale
l’utente invia comandi alla shell.
Esistono diverse interfacce possibili per
l’interazione uomo-macchina. Il loro successo
dipende, oltre che da un’accurata progettazione,
dal tipo di utente cui sono rivolte.
Interfacce
Due sono i tipi di interfaccia più diffusi per
interagire con un computer:
• Interfacce a caratteri, dette “a riga di
comando” (CLI, command line interfaces)
• Interfacce grafiche (GUI, graphical user interfaces),
in particolare di tipo WIMP (Windows, Icons, Menus,
Pointing device)
Xerox Star
Interfacce grafiche: Magic Cap
Magic Cap, della General Magic
Interfacce grafiche: BOB
Microsoft BOB (1995).
Interfacce grafiche: Macintosh
L’interfaccia grafica dell’Apple Macintosh: il Finder (ver. 0.97)
Interfacce grafiche: Windows 1.0
Un’interfaccia per il DOS: Windows 1.0
Interfacce grafiche: Windows 3.1
Un’interfaccia
per il DOS:
Windows 3.1
Interfacce grafiche: Windows 95
Interfacce grafiche: Windows vista
Interfacce grafiche
Macintosh
Windows
Linux (KDE)
NUCLEO E GESTIONE
DEI PROCESSI
Richiesta da soddisfare  Programma in esecuzione 
Processo
Uso di un foglio elettronico
Stampa di un documento
Ricezione di dati da modem
…
Stati di un processo:
Running
Ready
Waiting
54
INFORMATICA GENERALE
SCHEDULING (SCHEDULAZIONE)
DEI PROCESSI
1. Coda dei processi
2. Politica di assegnazione della CPU
3. Sincronizzazione ed interruzioni
Running
Fine quando
Ready
CPU allocata
Richiesta
Risorsa
Waiting
55
INFORMATICA GENERALE
Risorsa
allocata
GESTIONE DELLA MEMORIA:
ESEMPIO
Processi in esecuzione concorrente:
A. Sistema operativo (WinNT: > 30MB)
B. Word processor (Winword: 48 MB)
C. Browser di rete
(Netscape: 612 MB)
D. Posta elettronica (Eudora: 1.54 MB)
….
Problemi specifici (tutti correlati):
1. “trovare spazio” per i programmi
2. “rilocare” il codice (programma)
3. evitare/ridurre la frammentazione
56
INFORMATICA GENERALE
FRAMMENTAZIONE: ESEMPIO
1)
2)
S.O.
S.O.
Nuovo processo
A
B
A
B
C
C
Il processo B
termina
3)
S.O.
A
La memoria libera
complessiva sarebbe
sufficiente per D
C
57
INFORMATICA GENERALE
Nuovo processo:
non trova spazio
D
FRAMMENTAZIONE: UNA
SOLUZIONE
 Si “compatta” la memoria (copiando C “più in alto”)
S.O.
S.O.
A
A
C
C
Nuovo problema: “aggiustare”, nel programma copiato,
i riferimenti (eventuali) ad istruzioni e
dati in memoria
 “rilocare” il codice
58
INFORMATICA GENERALE
ALTRE TECNICHE DI GESTIONE
DELLA MEMORIA
Swapping
 memorizzazione di processi pronti o
in attesa in un’area della memoria di
massa (non sulla RAM, ma sul hard-disk)
Paginazione
 suddivisione di un programma in
pagine logiche (e della memoria centrale
in pagine fisiche)
Memoria virtuale
 swapping + paginazione (in prima
approssimazione)
59
INFORMATICA GENERALE
SWAPPING
Nuovo processo
1)
D
S.O.
A
B
C
C viene
copiato
su disco
Tempo
D viene
caricato in memoria
2)
S.O.
A
B
D
Area di
Swap
60
INFORMATICA GENERALE
D
PAGINAZIONE
1)
2)
S.O.
S.O.
Nuovo processo
A
B
3)
A
B
C
C
4)
S.O.
Nuovo processo
A
Il processo B
termina
S.O.
A
D
C
C
61
INFORMATICA GENERALE
Pagine fisiche
non adiacenti
PAGINAZIONE (2)
Proc A
0
1
2
Memoria
fisica
(RAM)
3
4
Proc B
0
1
2
Proc C
0
1
62
INFORMATICA GENERALE
0
1
2
3
4
5
6
7
8
9
GESTIONE DELLE PERIFERICHE
(I/O)
Componente fisica:
1. Dispositivo di I/O (inclusi dischi e nastri)
2. Scheda di I/O (collegata al bus)
Inoltre:
3. Componente “logica” (software)
4. Programma driver
5. Installazione
6. Manuale
7. Plug&Play (PnP)
63
INFORMATICA GENERALE
DRIVER LOGICI
1. sono programmi del S.O.
2. driver “standard”
3. driver forniti da costruttori di periferiche
4. nascondono la struttura fisica
5. comandi di I/O
6. standardizzano l’interazione
stampante laser e stampante inkjet
floppy, hard disk e CD ROM
64
INFORMATICA GENERALE
COMANDI DI I/O
65
INFORMATICA GENERALE
IL SISTEMA OPERATIVO MS-DOS
MS-DOS = Microsoft Disk Operating System
Sistema monoutente e “monotasking”
Interazione con l’utente tramite comandi testuali
L’interprete dei comandi è detto SHELL
66
INFORMATICA GENERALE
ESEMPI DI INTERAZIONE IN DOS
67
INFORMATICA GENERALE
ESEMPI DI INTERAZIONE IN DOS
(2)
68
INFORMATICA GENERALE
ESEMPI DI INTERAZIONE IN DOS
(3)
69
INFORMATICA GENERALE
FILE (MANAGEMENT) SYSTEM
1. Creazione e cancellazione dei file
2. Modifica e aggiornamento
3. Protezione dei file e modalità di accesso
4. Copia, spostamento, creazione di collegamenti, ecc.
5. Gestione della memoria di massa
70
INFORMATICA GENERALE
ORGANIZZAZIONE DEI DATI SULLE MEMORIE DI MASSA
Ogni “entità referenziabile ” su disco è un file
1. un programma
2. un insieme di dati utilizzati da un programma
3. una base di dati (o un archivio)
4. un grafico
I file sono identificati da un nome (filename)
nome
Estensione
Esempi: tesi.doc, sort.tif, sort.exe
71
INFORMATICA GENERALE
ANCORA SUI FILE
Regole per i nomi
1. lunghezza massima (256 caratteri)
2. “case sensitive” o “insensitive”
3. caratteri speciali
4. Informazioni ausiliarie
a. lunghezza file
b. data creazione e modifica
c. diritti di accesso
72
INFORMATICA GENERALE
ORGANIZZAZIONE LOGICA DI UN
FILE SYSTEM
Struttura ad albero (file system gerarchici)
Radice dell’albero
Nodo interno
Foglia
Ai nodi e alle foglie possono essere associate informazioni
73
INFORMATICA GENERALE
ORGANIZZAZIONE LOGICA DI UN
FILE SYSTEM (2)
Struttura ad albero
La radice è un’unità disco (o una partizione di unità)
I nodi interni sono cartelle (directory)
Le foglie sono file
Una cartella può contenere file e/o altre cartelle
 percorso di identificazione di un file
 c:\Mauro\Didattica\InfGen\algoritmi.ppt
74
INFORMATICA GENERALE
ORGANIZZAZIONE LOGICA DI UN
FILE SYSTEM (3)
Esempio
C:
WinNT
Programmi
Mauro
Didattica
Ricerca
Personale
InfGen
Tesi
75
INFORMATICA GENERALE
algoritmi.ppt
hardware.ppt
Software.ppt
STRUMENTI GRAFICI DI
ESPLORAZIONE DI UN F.S.
76
INFORMATICA GENERALE
DIRECTORY CORRENTE PER UN
APPLICATIVO
77
INFORMATICA GENERALE
DIRECTORY CORRENTE PER UN
APPLICATIVO (2)
78
INFORMATICA GENERALE
DIRECTORY CORRENTE PER UN
APPLICATIVO (3)
79
INFORMATICA GENERALE
DIRECTORY CORRENTE PER UN
APPLICATIVO (4)
80
INFORMATICA GENERALE
DIRECTORY CORRENTE PER UN
APPLICATIVO (5)
81
INFORMATICA GENERALE