INFORMATICA Scienze e Tecniche Psicologiche C. Gena, C. Picardi, J. Sproston 1 INFORMATICA CdL in...
-
Upload
noelia-fois -
Category
Documents
-
view
215 -
download
0
Transcript of INFORMATICA Scienze e Tecniche Psicologiche C. Gena, C. Picardi, J. Sproston 1 INFORMATICA CdL in...
1INFORMATICA
Scienze e Tecniche Psicologiche
C. Gena, C. Picardi,J. Sproston
INFORMATICACdL in Scienze e Tecniche Psicologiche
Parte IIISoftware e Sistema Operativo
(Come usiamo un Computer?)
2INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sul libro...
Console, Ribaudo, Avalle: Introduzione all’Informatica.
Capitolo 4: tutto Capitolo 5:
Introduzione tutta 5.1 tutto 5.2 fino al 5.2.1 escluso 5.3 tutto ma:
di Partizioni Fisse, Partizioni Variabili, Segmentazione, Paginazione, Swapping e Demand Paging è sufficiente sapere su che principio si basano e quali sono le differenze (ciò che è svolto sui lucidi).
Va invece saputa bene la parte iniziale di 5.3.1 e 5.3.2 e la differenza fra Allocazione Contigua e Allocazione Non Contigua.
5.4 tutto 5.5 no 5.6 tutto
3INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Il software
Il processore esegue istruzioni scritte in linguaggio macchina
Istruire un computer (cioè scrivere un programma) direttamente in linguaggio macchina sarebbe (al giorno d’oggi) impossibile
Il linguaggio macchina dipende molto dalle componenti fisiche
Bisogna conoscere in dettaglio la struttura fisica della macchina
Macchine diverse possono avere linguaggi macchina diversi
Si è perciò introdotto il concetto di macroistruzione
Insieme di istruzioni macchina che esegue un compito
4INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Macroistruzione
Macroistruzione porzione di programma che esegue un compito ben preciso
Quando il programmatore vuole dire alla macchina di eseguire quel compito non scrive tutte le istruzioni in linguaggio macchina
Scrive solo il nome della macroistruzione Uno speciale programma chiamato compilatore traduce
poi la macroistruzione nelle corrispondenti istruzioni macchina
Chi ha scritto il compilatore doveva ovviamente conoscere il linguaggio macchina!
Le macroistruzioni sono ovviamente parametriche Come con le istruzioni macchina si specifica insieme al
compito anche il dato su cui deve essere eseguito
5INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Un esempio
Macroistruzione “Visualizza X Y”: MOSTRA SULLO SCHERMO L’IMMAGINE CHE SI TROVA
AGLI INDIRIZZI DI MEMORIA DA X A Y1. ripeti le seguenti istruzioni per tutti i numeri N che vanno
da 0 a X-Y:a. trasferisci nel registro PincoPallo il contenuto della cella di
memoria all’indirizzo X+Nb. scrivi il contenuto del registro PincoPallo nella cella N della
memoria video
2. manda al video il segnale di visualizzare l’immagine Per visualizzare un’immagine da 10 KB all’indirizzo
di memoria 234 scrivo: Visualizza 234 10473
6INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Macchina virtuale
L’insieme delle macroistruzioni definisce il comportamento di una macchina virtuale
virtuale non reale, inesistente infatti non c’è una macchina che esegue direttamente
quelle istruzioniLe istruzioni vengono tradotte nel linguaggio macchinaIl linguaggio macchina è il linguaggio della macchina reale
Si dice che la macchina reale implementa la macchina virtuale
Questo avviene tramite la traduzione delle istruzioni da un linguaggio all’altro
Vantaggio: macchine reali diverse possono implementare la stessa macchina virtuale
Uniformità di linguaggio programmi portabili
7INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Gerarchie di macchine virtuali
Posso portare oltre questo discorso “super-macro-istruzioni”
programmi composti da più macroistruzioni che svolgono attività ancora più complesse
Tradotte in macroistruzioni, a loro volta tradotte in istruzioni macchina
Esempio: Una super-macro-istruzione che deve mostrare un
filmato usa più volte la macro istruzione che mostra la singola immagine
In pratica aggregando sempre di più le istruzioni ottengo macchine virtuali di livello sempre più alto
8INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Astrazione
Macchina Virtuale Liv. N+1(applicativi)
Macchina Virtuale Liv. N (linguaggi di programmazione
ad alto livello)
Macchina Virtuale Liv. 1 (macroistruzioni)
Macchina Fisica (Linguaggio Macchina)
Maggiore astrazione dalle caratteristiche fisiche della macchina
Maggiore facilità d’uso
Maggiore rapidità nell’istruire la macchina in compiti complessi
9INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Astrazione
Macchina Virtuale Liv. N+1(applicativi)
Macchina Virtuale Liv. N (linguaggi di programmazione
ad alto livello)
Macchina Virtuale Liv. 1 (macroistruzioni)
Macchina Fisica (Linguaggio Macchina)
Informatico
Utente
10INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Il ruolo del Sistema Operativo
Automatizza la gestione di molti compiti contribuendo ad alzare il livello di astrazione
È fondamentale nell’ultimo livello di astrazione Permette all’utente di usare un computer senza conoscere in
dettaglio i suoi meccanismi e senza saperlo programmare!L’utente gestisce le attività del computer attraverso il sistema
operativoEsegue programmi già scritti per lui dai programmatori
Macchina Virtuale Liv. N+1(applicativi)
Macchina Virtuale Liv. N (linguaggi di programmazione
ad alto livello)
Macchina Virtuale Liv. 1 (macroistruzioni)
Macchina Fisica (Linguaggio Macchina)
SISTEMA OPERATIVO
11INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Cosa fa il sistema operativo?
1. Avvia il computer2. Permette di avere in esecuzione più programmi
contemporaneamente Gestione del processore come “distribuire” il suo tempo fra
programmi diversi? Gestione della memoria principale come “distribuire” il suo spazio fra
programmi diversi?
3. Gestisce la memoria secondaria4. Permette agli utenti di interagire con il computer
Gestione del sistema operativo stesso Installare (e disinstallare) programmi Configurare il computer e il sistema operativo
Attività vera e propria: Mandare in esecuzione un programma con cui reare nuovi documenti o
elaborare documenti esistenti Eliminare e rinominare documenti creati e riorganizzarne la disposizione Utilizzare le periferiche
12INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Cosa fa il sistema operativo?
1. Avvia il computer2. Permette di avere in esecuzione più programmi
contemporaneamente Gestione del processore come “distribuire” il suo tempo fra
programmi diversi? Gestione della memoria principale come “distribuire” il suo spazio fra
programmi diversi?
3. Gestisce la memoria secondaria4. Permette agli utenti di interagire con il computer
Gestione del sistema operativo stesso Installare (e disinstallare) programmi Configurare il computer e il sistema operativo
Attività vera e propria: Mandare in esecuzione un programma con cui reare nuovi documenti o
elaborare documenti esistenti Eliminare e rinominare documenti creati e riorganizzarne la disposizione Utilizzare le periferiche
13INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Avvio dell’elaboratore
Il sistema operativo viene mandato in esecuzione al momento dell’accensione del computer
Questa fase prende il nome di bootstrap In questa fase una parte del sistema operativo
viene caricata nella memoria principale
14INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Avvio dell’elaboratore
In genere questa parte del sistema operativo comprende:
I programmi per la gestione del processoreI programmi per la gestione della memoriaI programmi per la gestione dell’input/outputI programmi per la gestione delle risorse hardwareI programma per la gestione del file systemUn programma che crea l’interfaccia verso l’utente
15INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Avvio dell’elaboratore
Una parte del sistema operativo deve essere sempre mantenuta in memoria principale e deve essere sempre pronta per l’esecuzione
012345
N
S.O.
spazioutente
16INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Cosa fa il sistema operativo?
1. Avvia il computer2. Permette di avere in esecuzione più programmi
contemporaneamente Gestione del processore come “distribuire” il suo tempo fra
programmi diversi? Gestione della memoria principale come “distribuire” il suo spazio fra
programmi diversi?
3. Gestisce la memoria secondaria4. Permette agli utenti di interagire con il computer
Gestione del sistema operativo stesso Installare (e disinstallare) programmi Configurare il computer e il sistema operativo
Attività vera e propria: Mandare in esecuzione un programma con cui reare nuovi documenti o
elaborare documenti esistenti Eliminare e rinominare documenti creati e riorganizzarne la disposizione Utilizzare le periferiche
17INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Esecuzione dei programmi
Quando si scrive un comando (oppure si clicca sull’icona di un programma) ….
C:> print foo1.doc
C:> oppure
18INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Esecuzione dei programmi
Quando si scrive un comando (oppure si clicca sull’icona di un programma), il sistema operativo:
Cerca il programma corrispondente sulla memoria secondaria Copia il programma in memoria principale …
Processore
Stampante Memoria secondaria
Memoria principale
19INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Esecuzione dei programmi
Quando si scrive un comando (oppure si clicca sull’icona di un programma), il sistema operativo:
Cerca il programma corrispondente sulla memoria secondaria Copia il programma in memoria principale Imposta il registro Program Counter con l’indirizzo in memoria
principale della prima istruzione del programma
20INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sistemi mono-utente, mono-programmati
Un solo utente può eseguire un solo programma alla volta
È forzato a “sequenzializzare” i programmi Il programma viene lanciato, eseguito e quindi terminato Ma il processore viene sfruttato al meglio?
21INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sistemi mono-utente, mono-programmati
No, il processore non viene sfruttato al meglio: si spreca molto tempo
Il processore è molto più veloce dei supporti di memoria secondaria e delle altre periferiche
Passa la maggior parte del suo tempo in attesaDurante l’attesa si dice che il processore è un uno stato
inattivo (idle)
22INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Esempio 1
Un processo è costituito da 1000=103 istruzioniOgni istruzione richiede 10-6 secondi per essere eseguita dal
processoreTempo totale di esecuzione: 103 * 10-6 = 10-3 = 1 millisecondo
A metà esecuzione è richiesta la lettura di un dato dal disco. Il tempo di lettura è 1 millisecondo
Tempo totale di esecuzione = 2 millisecondi Idle time = 1 millisecondo: 50% del tempo totale di
esecuzione è tempo sprecato
23INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Esempio 2
Un processo è costituito da 1000=103 istruzioniOgni istruzione richiede 10-6 secondi per essere eseguita dal
processoreTempo totale di esecuzione: 103 * 10-6 = 10-3 = 1 millisecondo
A metà esecuzione è richiesta un dato al’utente. Il tempo di reazione è 1 secondo
Tempo totale dell’esecuzione = 1001 millisecondi Idle time = 1 secondo: 99,9% del tempo totale di esecuzione
è tempo sprecato
24INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Esecuzione sequenziale
Processo P1 Processo P2
Processore
inizio fine inizio fine
esecuzione in attesa
attivo idle
25INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Esecuzione sequenziale
Supponiamo che il nostro sistema sia un bar in cui il barista serve diversi clienti
Il barista è corrispondente del processore, i clienti sono l’equivalente dei processi da eseguire
Esecuzione mono-programmati:
Ordinare Preparareil caffé
ConsumarePagare
Ordinare Preparareil caffé
ConsumarePagare
Client 1 Client 2
26INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Soluzione
In realtà:
Ordinare(C1)
Preparareil caffé (C1)
Pagare(C1)
Ordinare(C2)
Preparareil caffé (C2)
Pagare(C2)
Client 1
Client 2
27INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Soluzione: sistemi multiprogrammati
Quando il processore è nello stato di idle lo si può sfruttare per eseguire (parte di) un altro processo
Quando un processo si ferma (per esempio in attesa di un dato dall’utente) il processore può passare ad eseguire le istruzione di un altro processo
Il sistema operativo si occupa dell’alternanza tra i processi in esecuzione
28INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sistemi multiprogrammati
Dal punto di vista dei processi
Dal punto di vista del processore
P1
P2
esec P1 esec P2
29INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sistemi multiprogrammati
Più programmi sembrano essere eseguiti “contemporaneamente”
In realtà in esecuzione c’è sempre un solo processo
Ma, se l’alternanza è molto frequente, si ha un’idea di simultaneità
30INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sistemi multiprogrammati
Un processo può trovarsi in tre diversi stati: in esecuzione, in attesa, pronto
esecuzione
attesapronto
Quando sta utlizzandoil processore
Quando è in attesa del verificarsidi un evento esterno
Quando è potenzialmente in condizione di poter utilizzare il processore che è occupato da un altro processo
31INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Creazione di un processo
pronto
Quando un processo viene creato vienemesso nello stato di pronto: in tale stato rimane fino a quandonon arriverà il suo turno
creazione
32INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Pronto Esecuzione
esecuzione
pronto
scambio esecuzione
creazione
Quando il processore si libera, il primo processo pronto viene mandato in esecuzione
33INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Uscita dall’esecuzione
esecuzione
prontocreazione
Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni
34INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Terminazione
esecuzione
pronto
terminazione
Il processo terminala sua esecuzionee abbandona il sistema
creazione
1
35INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Esecuzione Attesa
esecuzione
attesapronto
terminazione
Il processo deve aspettare che qualche evento esterno si compia (caricamento da disco, input dell’utente,etc)
richiesta I/Oo risorse
creazione
2
36INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Attesa Pronto
esecuzione
attesapronto
terminazione
Una volta che l’evento atteso si è verificato, il processo tornerà ad essere pronto e dovrà aspettare il suo turno
richiesta I/Oo risorse
creazione
2
I/O terminato orisorsa disponibile
37INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Esecuzione Pronto
esecuzione
attesapronto
richiesta I/Oo risorse
terminazioneIl processore decide “arbitrariamente” di lasciare spazio ad un altro processo. scambio
esecuzione
creazione
3
I/O terminato orisorsa disponibile
38INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sistemi multiprogrammati
In quali casi è opportuno fermare un processo e concedere il processore ad un altro processo? Se un processo non si ferma mai in attesa di input/output
o di una risorsa Se più utenti vogliono usare il computer
In questi casi è necessario far sì che il processore sia distribuito tra i processi dello stesso utente e di utenti diversi
Si parla di scheduling del processore
39INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sistemi multi-utente
Più utenti possono usare allo stesso tempo il computer
… perché il processore viene assegnato periodicamente ai processi dei vari utenti (per esempio ogni 10 o 100 millisecondo)
All’aumentare del numero di processi e del numero di utenti le prestazioni del sistema possono degradare
40INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Gestione dei processi
Per gestire un insieme di processi “contemporaneamente” attivi il sistema operativo mantiene la tabella di processi
Per ogni processo vi è un descrittore nel quale sono memorizzate informazioni come:
L’identificatore del processoL’identificatore dell’utente proprietarioLo stato del processoEcc.
Queste informazioni servono per realizzare l’operazione di cambio di contesto
41INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Gestione dei processi
Cambio di contesto: Quando un processo rilascia il processore, le
informazioni sul suo stato vengono memorizzate nel suo descrittore all’interno della tabella dei processi
In questo modo, quando tornerà nuovamente in esecuzione, il processo potrà ripartire dal punto in cui era stato interotto
42INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Cosa fa il sistema operativo?
1. Avvia il computer2. Permette di avere in esecuzione più programmi
contemporaneamente Gestione del processore come “distribuire” il suo tempo fra
programmi diversi? Gestione della memoria principale come “distribuire” il suo spazio fra
programmi diversi?
3. Gestisce la memoria secondaria4. Permette agli utenti di interagire con il computer
Gestione del sistema operativo stesso Installare (e disinstallare) programmi Configurare il computer e il sistema operativo
Attività vera e propria: Mandare in esecuzione un programma con cui reare nuovi documenti o
elaborare documenti esistenti Eliminare e rinominare documenti creati e riorganizzarne la disposizione Utilizzare le periferiche
43INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Gestione della memoria
Due problemi fondamentali: Multiprogrammazione
Più programmi in memoria contemporaneamenteCome lasciare a ciascuno il suo spazio senza che si
modifichino i dati a vicenda per errore? Programmi e/o dati di grandi dimensioni
Alcuni programmi potrebbero essere troppo grandi per essere contenuti in RAM
Oppure i dati che essi elaborano potrebbero essere troppo grandi
Esiste un modo che permetta a programmi in queste condizioni di funzionare ugualmente?
44INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Partizioni
Per tenere più programmi in memoria contemporaneamente
Si divide la memoria in sezioni chiamate partizioni In ogni partizione un programma con i suoi dati
Una partizione è individuata da Un indirizzo di inizio partizione (base) Un indirizzo di fine partizione (limite)
45INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Partizioni
Quando il processore genera un indirizzo... Una unità specifica (MMU) gli somma il valore della base
In questo modo si “sposta” tutto ciò che il programma fa nell’area di memoria di sua comptetenza
Inoltre la MMU controlla che non superi il valore del limite
I programmi non possono interferire fra di loro
46INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Partizioni fisse vs. variabili
Partizioni fisse: Dimensione delle partizioni decisa a priori una volta per tutte Problema: spreco di spazio di memoria
All’interno di ciascuna partizione (perché il processo probabilmente sarà un po’ più piccolo della partizione) Frammentazione interna
Complessivo (perché potrei avere tante partizioni libere tutte troppo piccole per contenere il mio processo, che però potrebbe stare in memoria se la partizione fosse unica) Frammentazione esterna
Partizioni variabili: Dimensione delle partizioni decisa al momento del caricamento
del processoOvviamente più difficile da gestire della precedente, ma più
flessibileLa frammentazione esterna esiste comunque
47INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Allocazione non contigua
Partizioni in generale poco flessibili Se non azzecco la dimensione giusta per la partizione il
programma potrebbe non riuscire a girare! La memoria potrebbe avere abbastanza spazio per un
programma, ma non contiguamenteTanti spazi liberi ciascuno di dimensioni troppo piccole
Sistema più flessibile: allocazione non contigua
I programmi (e i relativi dati) vengono spezzettati Le tecniche per ottenere questo sono ovviamente molto
sofisticate Si deve in pratica memorizzare per ciascun pezzo di
programma dove esso viene a trovarsi in memoria
48INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Segmentazione vs. Paginazione
Segmentazione: Il processo viene suddiviso in base ai contenuti
Posso separare la parte contenente le istruzioni da quella contenente i dati
Possono esserci analoghi criteri per suddividere ulteriormente, ad es. tipi di dati o pezzi di programma che vengono usati in momenti diversi
Problema: gestione di segmenti di dimensioni diverse piuttosto complicata
Paginazione: Il processo viene diviso in pagine di uguale dimensione La memoria viene divisa in frame [inglese, significa cornice] (simili
alle partizioni) della stessa dimensioneAd ogni pagina è assegnato un frameUna zona particolare della memoria (tabella delle pagine) contiene
le associazioni fra pagine e frame
49INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Memoria virtuale
Permette di avere in esecuzione un insieme di processi la cui dimensione complessiva supera la capacità della memoria
Due tecniche principali Swapping Paginazione
Entrambe basate sull’idea di usare la memoria secondaria come deposito temporaneo per ciò che non sta in RAM
Ovviamente questo causa dei rallentamenti nell’esecuzione
50INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Swapping
I processi sono in esecuzione uno alla volta Quando un processo non è in esecuzione posso toglierlo
temporaneamente dalla RAM e metterlo in memoria secondaria
Quando ritorna in esecuzione lo riporto in RAM spostando eventualmente un altro processo
51INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Paginazione
Nella paginazione il processo è diviso in pagine e la memoria in frame
La tabella delle pagine associa ad ogni pagina un frame Ma qualche pagina potrebbe anche non avere nessun
frame, ed essere temporaneamente depositata sul disco fisso!
Quando una pagina serve al processore, viene “promossa” in RAM a scapito di un’altra
Il sistema operativo adotta tecniche particolari per cercare di “intuire” quali pagine non serviranno più per un po’ e possono essere spostate su disco, e quali invece serviranno quasi subito per cui conviene tenerle in RAM.
52INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Thrashing
Se la memoria è troppo piccola per l’insieme di programmi caricato il processore va in thrashing:
Passa più tempo a spostare i processi dalla memoria secondaria alla RAM (e vicecersa) che a eseguire i programmi
Il computer rallenta tantissimo e non è più utilizzabile Si capisce che il computer è in thrashing perché sebbene
sembra non stia facendo nulla il disco è continuamente utilizzato
Unica soluzione: aspettare che abbia finito di “macinare” e quindi chiudere uno o più programmi.
53INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Cosa fa il sistema operativo?
1. Avvia il computer2. Permette di avere in esecuzione più programmi
contemporaneamente Gestione del processore come “distribuire” il suo tempo fra
programmi diversi? Gestione della memoria principale come “distribuire” il suo spazio fra
programmi diversi?
3. Gestisce la memoria secondaria4. Permette agli utenti di interagire con il computer
Gestione del sistema operativo stesso Installare (e disinstallare) programmi Configurare il computer e il sistema operativo
Attività vera e propria: Mandare in esecuzione un programma con cui reare nuovi documenti o
elaborare documenti esistenti Eliminare e rinominare documenti creati e riorganizzarne la disposizione Utilizzare le periferiche
54INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Gestione della memoria secondaria
La memoria secondaria serve per memorizzare programmi e dati in modo permanente.
Il concetto centrale è quello di file (=archivio, dossier) File insieme di informazioni omogenee che vengono
memorizzate insieme e a cui viene associato un nome che permetta di reperirle
File di programma contengono istruzioni che possono venire eseguite dal processore.
File di dati detti anche documenti, contengono i dati dell’utente.
File system parte del sistema operativo che si occupa di gestire e strutturare le informazioni memorizzate sulla memoria secondaria
55INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Dal punto di vista dell’utente
File di programma Un programma è solitamente fatto da più file.
Uno di questi è chiamato “principale” o “eseguibile”. Installazione (copiatura “ordinata” dei file che costituiscono il
programma, registrazione del nuovo programma presso il sistema operativo)
Disinstallazione (cancellazione dei file e de-registrazione) Esecuzione (caricamento in memoria del file principale del
programma e creazione del processo corrispondente) Documenti
A seconda del tipo di documento (immagine, testo, etc) esso potrà essere creato e elaborato con programmi specifici
Il file system permette inoltre di intervenire sulla organizzazione dei documenti
In realtà permette di intervenire anche sulla organizzazione dei file di programma, ma conviene lasciarli stare!
56INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Organizzazione dei file
I file devono essere organizzati in memoria secondaria perché sia facile reperirli!
Immaginiamo ciascun file come un documento cartaceo e la memoria secondaria come un armadio: non è una buona idea impilare tutti i documenti nell’armadio in modo casuale!
Il primo passo è associare a ciascun file una denominazione che permetta di identificarlo univocamente
Le denominazioni dei file hanno solitamente questa forma:
Il nome è scelto da chi crea il file, e dovrebbe permettergli di ricordare con facilità cosa esso contenga
L’estensione viene solitamente scelta dal programma con cui viene creato il file, e identifica la tipologia di informazioni i n esso contenute
NOME.EXT
57INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Denominazione dei file
Chi crea il file ne sceglie il nome Alcune regole:
Scegliere nomi che abbiano senso (no “a”, “mio”, “documento”...)Non usare nei nomi caratteri speciali (no”segni di punteggiatura,
simboli, etc) Successivamente è possibile modificarlo
Non si devono modificare i nomi dei file di programma ma solo dei documenti!
L’estensione identifica il tipo di file, ed è solitamente di tre lettere
“.lib”, “.dll”, “.exe” sono estensioni tipiche dei file di programma Per i documenti, dipende dal tipo di documento
Es. “.txt” testo, “.bmp” immagine bitmap, etc È il programma con cui creiamo i documenti che stabilisce
l’estensione, solitamente è meglio non modificarlaModificare l’estensione non cambia il tipo di documento, così come
cambiare il vostro nome non vi trasforma in un’altra persona!
58INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Organizzazione dei file
Se i file sono molti, dargli un nome non è sufficiente a reperirli con facilità (ed è difficile non usare due volte lo stesso nome!)
In un armadio useremmo delle cartellette o dei raccoglitori per dividere i documenti in modo logico...
Anche nel file system esiste il concetto di cartella (in inglese, folder o directory)
Una cartella è file speciale che funziona come un contenitore Una cartella può contenere dei file, e anche delle altre cartelle
(chiamate in questo caso sotto-cartelle)A differenza del caso dell’armadio, si possono mettere cartelle
dentro altre cartelle sino a che si vuole! Due file in due cartelle diverse possono anche avere lo stesso
nome: a distinguerli è la cartella di appartenenza
Questo porta alla organizzazione gerarchica dei file
59INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Organizzazione gerarchica
La cima della gerarchia è l’unità di memoria secondaria Windows usa le lettere dell’alfabeto per identificare le diverse
unità: es. C hard disk, D cd o dvd, E penna usb,...
C
60INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Organizzazione gerarchica
La cima della gerarchia è l’unità di memoria secondaria Windows usa le lettere dell’alfabeto per identificare le diverse
unità: es. C hard disk, D cd o dvd, E penna usb,... All’interno dell’unità si trovano file e cartelle...
C
Programmi
Documenti
config.log
Sistema
...
61INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Organizzazione gerarchica
La cima della gerarchia è l’unità di memoria secondaria Windows usa le lettere dell’alfabeto per identificare le diverse
unità: es. C hard disk, D cd o dvd, E penna usb,... All’interno dell’unità si trovano file e cartelle... ...all’interno dei quali si trovano altri file e cartelle, etc.
C
Programmi
Documenti
config.log
Sistema
...
Claudia
Cristina
ElabTesti
ElabImg lucidi.ppt
libro.txt
lucidi.ppt
spese.xls
musica...
...
62INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Organizzazione gerarchica
C
Programmi
Documenti
config.log
Sistema
...
Claudia
Cristina
ElabTesti
ElabImg lucidi.ppt
libro.txt
lucidi.ppt
spese.xls
musica...
...
ALBERO DEL FILE SYSTEM
63INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Visualizzazione
64INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Pathname
Pathname = nome del percorso Indica il percorso da seguire per raggiungere un file in
memoria secondariaSpecifica l’unità (es.: “C”)la sequenza di cartelle che bisogna aprire per trovare il file
(es.: “Documenti” quindi “Claudia” )Il nome del file (es.: “lucidi.ppt”)
C
Programmi
Documenti
config .log
Sistema
...
Claudia
Cristina
ElabTesti
ElabImglucidi. ppt
libro. txt
lucidi. ppt
spese. xls
musica...
...
65INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Formato del pathname
C
Programmi
Documenti
config .log
Sistema
...
Claudia
Cristina
ElabTesti
ElabImglucidi. ppt
libro. txt
lucidi. ppt
spese. xls
musica...
...
C:\Documenti\Claudia\lucidi.ppt
66INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Formato del pathname
C
Programmi
Documenti
config .log
Sistema
...
Claudia
Cristina
ElabTesti
ElabImglucidi. ppt
libro. txt
lucidi. ppt
spese. xls
musica...
...
C:\Documenti\Claudia\lucidi.ppt
Nome dell’unità di memoria secondaria, seguito dai due punti (:)
67INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Formato del pathname
C
Programmi
Documenti
config .log
Sistema
...
Claudia
Cristina
ElabTesti
ElabImglucidi. ppt
libro. txt
lucidi. ppt
spese. xls
musica...
...
C:\Documenti\Claudia\lucidi.ppt
Nomi delle cartelle nell’ordine in cui devono essere aperte
68INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Formato del pathname
C
Programmi
Documenti
config .log
Sistema
...
Claudia
Cristina
ElabTesti
ElabImglucidi. ppt
libro. txt
lucidi. ppt
spese. xls
musica...
...
C:\Documenti\Claudia\lucidi.ppt
Per finire, nome del file vero e proprio
69INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Formato del pathname
C
Programmi
Documenti
config .log
Sistema
...
Claudia
Cristina
ElabTesti
ElabImglucidi. ppt
libro. txt
lucidi. ppt
spese. xls
musica...
...
C:\Documenti\Claudia\lucidi.ppt
I diversi elementi sono separati dal carattere \chiamato backslash
70INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Formato del pathname
71INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Manipolazione dei file
Un insieme di operazioni minimale:Creazione di un fileCancellazione di un fileCopia o spostamento di un fileVisualizzazione del contenuto di un fileStampa di un fileModifica del contenuto di un fileRinomina di un fileVisualizzazione delle caratteristiche di un file
72INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Operazioni sulle cartelle
Per organizzare gerarchicamente i file, il sistema operativo deve fornire all'utente un insieme di operazioni per:
creare una nuova directoryrimuovere una directoryrinominare una directoryelencare il contenuto di una directorycopiare o spostare i file da una directory ad un'altra
73INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Organizzazione fisica dei file
L’organizzazione del file system vista fino ad ora è di tipo puramente logico
Cioè fa vedere come il file system “fa vedere” i propri contenuti all’utente per permettergli di manipolarli
Organizzazione fisica: I file (e le cartelle) occupano dei blocchi su disco
Il sistema operativo deve sapere quali sono i file memorizzati sul disco sapere dove si trovano (in quali blocchi) per poterli
reperire ottimizzare lo spazio su disco (cioé evitare di sprecare
spazio inutilmente)
74INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sapere quali sono i file memorizzati sul disco e dove si trovano
Device directory Una tabella memorizzata in una porzione prefissata del disco che contiene un elenco di file descriptor
I file descriptor sono numerati sequenzialmente Ciascun file o cartella ha il suo file descriptor che contiene le
info su di essoPer ciascun file nome, dimensione, data di creazione e ultima
modifica, ... e soprattutto: dove si trova su discoPer ciascuna cartella nome, dimensione, data di creazione e ultima
modifica, ... e soprattutto: l’elenco dei file descriptor (tramite i loro numeri d’ordine) dei file e delle cartelle in essa contenuti
75INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sapere quali sono i file memorizzati sul disco e dove si trovano
Esempio: C:\Documenti\Claudia\lucidi.ppt
76INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sapere quali sono i file memorizzati sul disco e dove si trovano
Esempio: C:\Documenti\Claudia\lucidi.pptVado nella device directory del disco C; il primo file descriptor è
quello della cartella principale.
77INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sapere quali sono i file memorizzati sul disco e dove si trovano
Esempio: C:\Documenti\Claudia\lucidi.pptVado nella device directory del disco C; il primo file descriptor (0) è
quello della cartella principale.Cerco nel file descriptor 0 l’elenco dei contenuti della cartella, trovo
che “Documenti” corrisponde al file descriptor 7
78INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sapere quali sono i file memorizzati sul disco e dove si trovano
Esempio: C:\Documenti\Claudia\lucidi.pptVado nella device directory del disco C; il primo file descriptor (0) è
quello della cartella principale.Cerco nel file descriptor 0 l’elenco dei contenuti della cartella, trovo
che “Documenti” corrisponde al file descriptor 7Cerco nel file descriptor 7 (che corrisponde a “Documenti”) e trovo
che “Claudia” corrisponde al file descriptor 22
79INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sapere quali sono i file memorizzati sul disco e dove si trovano
Esempio: C:\Documenti\Claudia\lucidi.pptVado nella device directory del disco C; il primo file descriptor (0) è
quello della cartella principale.Cerco nel file descriptor 0 l’elenco dei contenuti della cartella, trovo
che “Documenti” corrisponde al file descriptor 7Cerco nel file descriptor 7 (che corrisponde a “Documenti”) e trovo
che “Claudia” corrisponde al file descriptor 22Cerco nel file descriptor 22 (che corrisponde a “Claudia”) e trovo
che “lucidi.ppt” corrisponde al file descriptor 18
80INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sapere quali sono i file memorizzati sul disco e dove si trovano
Esempio: C:\Documenti\Claudia\lucidi.pptVado nella device directory del disco C; il primo file descriptor (0) è
quello della cartella principale.Cerco nel file descriptor 0 l’elenco dei contenuti della cartella, trovo
che “Documenti” corrisponde al file descriptor 7Cerco nel file descriptor 7 (che corrisponde a “Documenti”) e trovo
che “Claudia” corrisponde al file descriptor 22Cerco nel file descriptor 22 (che corrisponde a “Claudia”) e trovo
che “lucidi.ppt” corrisponde al file descriptor 18Cerco nel file descriptor 18 (che corrisponde a “lucidi.ppt”) e, dal
momento che si tratta di un file, trovo la sua collocazione fisica su disco (ad esempio blocco 300)
81INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sapere quali sono i file memorizzati sul disco e dove si trovano
Esempio: C:\Documenti\Claudia\lucidi.pptVado nella device directory del disco C; il primo file descriptor (0) è
quello della cartella principale.Cerco nel file descriptor 0 l’elenco dei contenuti della cartella, trovo
che “Documenti” corrisponde al file descriptor 7Cerco nel file descriptor 7 (che corrisponde a “Documenti”) e trovo
che “Claudia” corrisponde al file descriptor 22Cerco nel file descriptor 22 (che corrisponde a “Claudia”) e trovo
che “lucidi.ppt” corrisponde al file descriptor 18Cerco nel file descriptor 18 (che corrisponde a “lucidi.ppt”) e, dal
momento che si tratta di un file, trovo la sua collocazione fisica su disco (ad esempio blocco 300)
Trovo anche che il file è grande 4 kB, cioè 4 blocchi, quindi so che per portarlo in memoria devo trasferire i blocchi 300, 301, 302 e 303
82INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Ottimizzare lo spazio su disco
Allocazione contigua: Il file è memorizzato in una sequenza di blocchi uno
consecutivo all’altro. Il file descriptor memorizza l’indirizzo del primo blocco + la
dimensione del file (numero di blocchi) Problemi:
Se il file cresce di dimensioni e il primo blocco successivo non è libero devo spostarlo tutto da un’altra parte
Cancellando (o spostando) i file si creano dei buchi che è difficile riempire perché non è detto che si trovino file della dimensione giusta
È possibile ovviare a questi problemi con la compattazione: periodicamente si riordina il contenuto del disco per riunire i buchi liberi Però la compattazione è lunga da effettuare.
83INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Ottimizzare lo spazio su disco
Allocazione sparsa: I blocchi che compongono il file possono trovarsi sparsi per il
disco Come fare a sapere in quali blocchi si trova il file?
Due metodi principali: Allocazione (sparsa) indexata: il file descriptor contiene
l’elenco di tutti i blocchi. Ad es. per un file di 3 blocchi: 300, 275, 423Ci si complica la vita con i file descriptor, le cui dimensioni
dovrebbero allungarsi o accorciarsi insieme al file! Allocazione (sparsa) linkata: il file descriptor contiene
l’indirizzo del primo blocco (es. 300). In fondo a ciascun blocco che compone il file c’è l’indirizzo del blocco successivo.
L’accesso ai file diventa sequenziale (ossia per accedere al quarto blocco di un file devo prima leggermi i tre precedenti)
Le tecniche più moderne adottano combinazioni di questi due metodi
84INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Cosa fa il sistema operativo?
1. Avvia il computer2. Permette di avere in esecuzione più programmi
contemporaneamente Gestione del processore come “distribuire” il suo tempo fra
programmi diversi? Gestione della memoria principale come “distribuire” il suo spazio fra
programmi diversi?
3. Gestisce la memoria secondaria4. Permette agli utenti di interagire con il computer
Gestione del sistema operativo stesso Installare (e disinstallare) programmi Configurare il computer e il sistema operativo
Attività vera e propria: Mandare in esecuzione un programma con cui creare nuovi documenti o
elaborare documenti esistenti Eliminare e rinominare documenti creati e riorganizzarne la disposizione Utilizzare le periferiche
85INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Cosa può fare l’utente grazie al S.O.?
Gestione del sistema operativo stesso Installazione di nuovi programmi (e disinstallazione) Configurazione del sistema
Attività vera e propria: Mandare in esecuzione un programma Tramite il programma, creare nuovi documenti o
elaborare documenti esistenti Manipolare il file system:
Eliminare documenti creatiRiorganizzare la disposizione dei documentiRinominare documenti esistenti
Accesso alle periferiche
86INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Astrazione
Macchina Virtuale Liv. N+1(applicativi)
Macchina Virtuale Liv. N (linguaggi di programmazione
ad alto livello)
Macchina Virtuale Liv. 1 (macroistruzioni)
Macchina Fisica (Linguaggio Macchina)
Informatico
Utente
Sistema operativo
87INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Ricapitolando: il Software
Sistema operativo (software di base) Viene fornito a corredo dell’hardware Programmi speciali per eseguire operazioni di base che
determinano in generale il comportamento del computerpermettono facilità d’uso da parte di un utente che
eventualmente non ne conosca la struttura fisica Consente l’esecuzione del software applicativo
Software applicativo Ciascun applicativo permette di elaborare dati di natura
diversaeditare testi, creare fogli elettronici, elaborare immagini
Richiede la presenza del sistema operativo
88INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Una visione complessiva
89INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Sistema Operativo indispensabile (senza il SO
il computer non funziona) dal SO dipendono le
funzioni comuni atutti i programmi
Esempi di sistemi operativi su PC: Windows XP, Unix
Programmi Applicativi opzionali necessari per funzioni specifiche
(come scrivere, archiviare dati …) compatibili con il software di base Esempi: Word, Excel, Access
Programmi applicativi e sistema operativo
90INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Software applicativo
Classificazione in base all'uso
91INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Software di produttività
Videoscrittura
92INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Software di produttività
Fogli elettronici
93INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Software di produttività
Database
94INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
copyright vs copyleft
classificazione interessante (del software in generale e quindi anche degli applicativi):
copyright o software proprietario è coperto da diritti d'autore una volta venutone in possesso non posso copiarlo,
modificarlo, rivenderlo… Commerciale occorre acquistarlo Shareware gratuito solo per un periodo di prova Freeware disponibile gratuitamente
senza copyright o open source software di pubblico dominio non coperto da diritti di autore posso modificarlo come voglio, migliorarlo, adattarlo alle
mie esigenze...
95INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Il manifesto del software libero
L'espressione "software libero" si riferisce alla libertà dell'utente di eseguire, copiare, distribuire, studiare, cambiare e migliorare il software. Più precisamente, esso si riferisce a quattro tipi di libertà per gli utenti del software:
Libertà di eseguire il programma, per qualsiasi scopo Libertà di studiare come funziona il programma e adattarlo alle
proprie necessità. L'accesso al codice sorgente (open-source) ne è un prerequisito.
Libertà di ridistribuire copie in modo da aiutare il prossimo Libertà di migliorare il programma e distribuirne pubblicamente
i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio. L'accesso al codice sorgente ne è un prerequisito.
(R. Stallman)
96INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Open-source
Dalla lettura del manifesto emergono tre concetti fondamentali
Accesso al codice sorgente la traduzione letterale di software OPEN SOURCE è proprio software a "codice sorgente aperto"
libertà di copia e ridistribuzione libertà di modifica per adattamento alle proprie esigenze
o per migliorare il programma in séla disponibilità del codice sorgente, ossia del Dna del
software, consente sia la sua libera circolazione, sia processi di modifica, produzione, ridistribuzione, evoluzione e riuso
97INFORMATICA
Scienze e Tecniche PsicologicheC. Gena, C. Picardi,
J. Sproston
Open-source
Tipici fraintendimenti rispetto al software libero. Il software libero è spesso gratuito MA non è detto che
lo sia. Esistono programmatori che vengono retribuiti per aggiornare, modificare, adattare programmi liberi il loro lavoro deve essere pagato!
Si paga una licenza che permette di usare il software libero come precedentemente visto.
Il software gratuito non è per forza libero. Molte aziende divulgano software proprietario gratuitamente per vendere altri prodotti, per attirare nuovi clienti o per porre fuori gioco un concorrente.
Si ha gratuitamente l’utilizzo del software, ma non si può modificarlo, ridistribuirlo, etc