software e so - di.unito.itpozzato/informatica/software e so.pdf · il software • l’hardware da...

Post on 07-Jun-2020

10 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Software e Sistema Operativo

Queste slides sono un adattamento di quelle di Luca Anselma, cui va il mio ringraziamento

Il Software

• L’hardware da solo è soltanto un insieme di ferro, plastica e silicio e non è sufficiente per il funzionamento dell’elaboratore

• Occorre utilizzare il software:

– un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici in un oggetto in grado di svolgere funzioni di varia natura

• I computer sono programmabili: possono svolgere compiti diversi in base a istruzioni contenute nei programmi

3

Il Software

• L’utilizzo diretto dell’hardware è complicato:

– l’utente dovrebbe sapere programmare

– il programmatore dovrebbe conoscere l’hardware e il relativo linguaggio macchina

– ogni programma dovrebbe essere scritto come sequenza di bit

– modifiche hardware richiederebbero la riscrittura (parziale) del programma

Non accettabile!

4

Il Software

Occorre fornire all’utente un meccanismo per: –astrarre dall’organizzazione fisica per:

•usare nello stesso modo (o in modo simile) macchine (hardware) diverse

•avere un semplice linguaggio di interazione

–avere un insieme di programmi applicativi per svolgere diversi compiti: elaborare testi, navigare in Internet, ecc.

5

Il Software• I computer moderni raggiungono questi obiettivi mediante la definizione di

macchine virtuali realizzate al di sopra della macchina hardware reale

macchina virtuale

HW

Utente

6

Macchine virtuali

• La macchina virtuale:

–consiste in un livello software creato sull’hardware

– fornisce le funzionalità desiderate ed è facile da utilizzare

–è virtuale in quanto non esiste fisicamente, ma viene realizzata mediante il software (sistema operativo o software di base)

7

Macchine virtuali• L'utente interagisce con la macchina virtuale con un

linguaggio ad alto livello (interfaccia grafica/testuale)

macchina virtuale

HW

Utentelinguaggio ad alto livello

linguaggio macchina

• La macchina virtuale traduce ogni comando ad alto livello nell'opportuna serie di comandi per l’hardware: astrazione

8

Il sistema operativo

Sistema Operativo: insieme di programmi che interagiscono e cooperano tra di loro per:

• gestire efficientemente il computer e le sue periferiche

• creare un ambiente virtuale per facilitare l'interazione uomo-macchina

9

Il sistema operativo

Esempio: stampa di un file che si chiama “Documento”

A livello fisico questa operazione è complessa e richiede operazioni coordinate dalla CPU

Per fortuna, il s.o. fornisce all'utente un comando di stampa:

print Documento

10

Il sistema operativo

Il s.o. esegue un comando seguendo i seguenti passi:

1. verifica se si tratta di un comando valido

2. lo traduce per la macchina fisica

3. eseguito il comando,

a) fornisce un riscontro all’utente e

b) si pone in attesa di un nuovo comando da parte dell’utente

11

Il sistema operativo

macchina virtuale 1

HW1

Utente

macchina virtuale 2

HW2

Utente

medesimo linguaggio ad

alto livello

diversi linguaggi macchina

• Macchine fisiche diverse possono essere utilizzate in modo simile costruendo al di sopra macchine virtuali

• Ogni m. v. fornisce il medesimo linguaggio ad alto livello…

• …e traduce i comandi in modo diverso, in funzione del tipo di hardware

12

Struttura a livelli del s.o.• Il s.o. ha una struttura a cipolla, ogni livello:

– “astrae” il livello inferiore, nascondendone la complessità e

– fornisce servizi al livello superiore

• In questo modo si può usare il computer senza conoscere i dettagli dei dispositivi elettronici

kernel: gestione del processore, della memoria, dei dispositivi di I/O

hardware

……

14

Funzioni svolte dal sistema operativo (1)

• Accensione e configurazione della macchina (bootstrap)

• Gestione del processore

• Gestione della memoria (principale e virtuale)

• Linguaggio ad alto livello per l’interazione con l’utente

• Gestione e accesso alle informazioni su memoria secondaria (File system)

15

Funzioni svolte dal sistema operativo (2)

• Gestione e uso ottimale delle risorse di input/output (dischi, stampanti, …)

• Supporto per la comunicazione tra elaboratori

• Supporto per i programmi applicativi (installazione, accesso alle risorse di sistema)

• Ambienti di programmazione (ad es. Java, C++, Basic, COBOL)

16

Funzioni svolte dal sistema operativo (1)

• Accensione e configurazione della macchina (bootstrap)

• Gestione del processore

• Gestione della memoria (principale e virtuale)

• Linguaggio ad alto livello per l’interazione con l’utente

• Gestione e accesso alle informazioni su memoria secondaria (File system)

17

Il bootstrap

Bootstrap = Avvio dell’elaboratore

Primo problema:

• La CPU esegue esclusivamente programmi in memoria principale

• RAM volatile ! vuota quando si accende il computer

Come fare?

Prima soluzione:

Mettere i programmi in memoria secondaria

18

Il bootstrap

Secondo problema:

• Per caricare i programmi da memoria secondaria usiamo il file system (cioè il sistema operativo)

• Ma il s.o. risiede in RAM ! RAM volatile ! vuota quando si accende il computer

Come fare?

Seconda soluzione:

Usiamo un piccolo programma (BIOS), molto semplice, che ha il compito di caricare (la prima parte de) il s.o. da memoria secondaria

19

Il bootstrap

Terzo problema:

• La CPU esegue esclusivamente programmi in memoria principale

• RAM volatile ! vuota quando si accende il computer

Come fare?

Terza soluzione:

Memorizziamo il BIOS in una parte della memoria principale non volatile: la ROM

20

Il bootstrap

Dubbio:

Non possiamo memorizzare direttamente il s.o. in ROM?

Risposta:

No, perché la ROM è a sola lettura: ha senso memorizzarvi esclusivamente programmi/dati che non è necessario cambiare

Applicativi e s.o. devono potere essere variati e aggiornati (upgrade, patch, …)

21

Il bootstrapRiassumendo:

Bootstrap: all’accensione della macchina, un programma (il BIOS) in ROM cerca sulla memoria secondaria il s.o. e ne carica una parte in RAM

22

Il bootstrap

• Ordine tipico di ricerca:

1. Floppy disk

2. CD/DVD

3. Hard Disk

• Questo ordine è utile per installare un s.o. o per live cd (un live cd contiene un s.o. che non necessita di installazione su hard disk)

23

Avvio dell’elaboratoreIn seguito, viene caricata la prima parte del s.o.

24

Avvio dell’elaboratore

• La prima parte del s.o. che viene caricata comprende (in generale):

– i programmi per gestire processi e CPU

– i programmi per gestire la memoria

– i programmi per gestire periferiche e I/O

– i programmi per gestire il File System

– il programma che crea l'interfaccia (grafica o testuale) utente

25

Avvio dell’elaboratore

• Parte dei programmi del s.o. devono essere mantenuti sempre in RAM per essere sempre pronti per l’esecuzione

⇒ una porzione della RAM è riservata a programmi e dati del s.o.

26

Avvio dell’elaboratore: l’I/O

• All’avvio, vengono identificati tutti i dispositivi di memoria secondaria e tutte le periferiche e vengono avviati i relativi programmi di gestione (driver)

• Alcuni sistemi verificano anche lo stato delle risorse hardware, per esempio lo stato dei dischi (presenza di errori nel file system?)

27

Funzioni svolte dal sistema operativo (1)

• Accensione e configurazione della macchina (bootstrap)

• Gestione del processore

• Gestione della memoria (principale e virtuale)

• Linguaggio ad alto livello per l’interazione con l’utente

• Gestione e accesso alle informazioni su memoria secondaria (File system)

28

Multitasking

• I moderni s.o. sono multitasking, cioè è possibile eseguire più programmi allo stesso tempo (ad es. scaricare un file mentre si scrive un documento)

• Problema: spesso gli elaboratori hanno una unica CPU. Come possono eseguire più programmi contemporaneamente?

• Soluzione: il s.o. alterna i programmi assegnando la CPU a turno "

1. In ogni istante un solo programma è eseguito dalla CPU

2. Se l’alternanza è frequente, si ha l’impressione che i programmi vengano eseguiti contemporaneamente

30

Processi

• I dispositivi di I/O sono molto più lenti della CPU

• Problema: cosa succede se un processo effettua un’istruzione di I/O?

• La CPU rimarrebbe inattiva fino a che il dispositivo non ha terminato ! inefficienza!

• Soluzione: multitaskingIl S.O. assegna la CPU a un altro processo e la restituisce al primo quando l’I/O è terminato

31

Processi•Un processo può trovarsi in uno dei tre stati:

– in esecuzione, cioè è in esecuzione nella CPU (! max un processo in esecuzione per ogni CPU)

– in attesa, cioè attende che un’operazione di I/O termini (o qualche altro evento esterno si verifichi)

– pronto, cioè può andare in esecuzione, ma la CPU è occupata ad eseguire un altro processo

pronto in esecuzione

in attesa

selezionato dal s.o.

richiesta I/O o risorsa

I/O terminato o risorsa disponibile

interrotto per lasciare la CPU a un altro processo

32

Processi

• Il s.o. ha il compito di scegliere quale tra i processi pronti mandare in esecuzione in modo da usare l’elaboratore in modo efficiente (no sprechi) ed efficace (per es. con tempi di attesa limitati)

34

Funzioni svolte dal sistema operativo (1)

• Accensione e configurazione della macchina (bootstrap)

• Gestione del processore

• Gestione della memoria (principale e virtuale)

• Linguaggio ad alto livello per l’interazione con l’utente

• Gestione e accesso alle informazioni su memoria secondaria (File system)

35

Memoria virtuale

Problema:

Come eseguire programmi e usare dati più grandi della memoria principale (memoria fisica)?

36

Memoria virtuale•Tecnica di gestione della memoria utilizzata

da tutti i sistemi operativi moderni

•Permette di “fare credere” ai singoli programmi di avere a disposizione una quantità di memoria più grande di quella effettivamente installata e contigua

•Per questo si chiama memoria virtuale

37

Memoria virtuale

• Non è necessario mantenere sempre in memoria tutti i programmi in esecuzione

• Le parti (pagine) dei programmi usate meno spesso vengono “spostate” su hard disk

38

Memoria virtualeLe pagine vengono riportate in memoria quando servono nuovamente, eventualmente spostandone altre su disco

39

Memoria virtualeIl s.o. traduce automaticamente gli indirizzi virtuali (usati dalle applicazioni) in indirizzi fisici

memoria virtuale RAM

altriprogrammi

hard disk

42

Memoria virtuale• Cosa succede se si utilizza frequentemente una quantità

di memoria virtuale molto più grande della memoria fisica?

• Thrashing (con la ‘h’, to thrash = dimenarsi): il s.o. impiega più tempo a trasferire le pagine da e su disco che a effettuare lavoro utile

• Sintomo: l’hard disk viene usato intensamente e il computer è inutilizzabile

• Soluzione: Aumentare la quantità di RAM oppure usare meno programmi contemporaneamente

43

Memoria virtuale

• Dato che la RAM è molto più veloce dell’hard disk, aumentare la quantità di RAM può migliorare le prestazioni del computer, perché il s.o. dovrà fare ricorso meno frequentemente all’hard disk per implementare la memoria virtuale

44

Funzioni svolte dal sistema operativo (1)

• Accensione e configurazione della macchina (bootstrap)

• Gestione del processore

• Gestione della memoria (principale e virtuale)

• Linguaggio ad alto livello per l’interazione con l’utente

• Gestione e accesso alle informazioni su memoria secondaria (File system)

45

Il sistema operativo

• Due tipi di interazione utente/sistema operativo:

– interazione testuale

•MS-DOS, Mac OS X, Linux

– interazione grafica

•Mac OS X, Linux

•Windows

46

Interazione testuale

• Basata su comandi scritti tramite tastiera

• L’interfaccia è più rapida da usare per utenti esperti

• Richiede poca memoria principale

• Script (programmi costituiti da comandi)

• Molto usata nei sistemi Unix-like

48

Interazione grafica

• Basata su interfacce grafiche che presentano funzionalità comuni

– ai programmi sono associate finestre

– interazione “point and click”

– tecnologia WYSIWYG (What You See Is What You Get)

– comandi uniformi: es. Cancellare “oggetto” ⇒ taglia, Copiare “oggetto” ⇒ copia l’“oggetto” può essere testo, file, immagini, …

49

Interazione grafica•Concetti principali

–finestra

–icona

–menu

–menu item

–pop-up menu (menu a tendina)

–button (pulsante)

–toolbar (barra degli strumenti)

50

Funzioni svolte dal sistema operativo (1)

• Accensione e configurazione della macchina (bootstrap)

• Gestione del processore

• Gestione della memoria (principale e virtuale)

• Linguaggio ad alto livello per l’interazione con l’utente

• Gestione e accesso alle informazioni su memoria secondaria (File system)

51

Il File System

• File System: parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti di memoria secondaria (ad es. su hard disk, CD, DVD…)

• Operazioni di base supportate dal File System sui dati memorizzati: lettura/scrittura, cancellazione, modifica, copia

52

Il File System

• I dati della memoria secondaria vengono strutturati e gestiti mediante l’organizzazione in file

• I file sono utilizzati per la memorizzazione di

–programmi (del sistema, dell’utente)

–dati

53

Il File System• Si può immaginare il disco fisso

come un quaderno con tante pagine su cui l’utente scrive varie relazioni (file)

Si noti che:

• quando si cancella un file, rimangono pagine “vuote”

• quando si modifica un file, la nuova versione potrebbe essere più corta o più lunga:

– se più corta: rimangono pagine vuote

– se più lunga: la modifica potrebbe essere impossibile (perché c’è un file contiguo)

Come risolvere questi problemi?

54

Il File System

Soluzione: utilizzo di un indice:

• le pagine vengono numerate (come per i libri)

• l’indice contiene - nell’ordine - i numeri delle pagine dei file

Vantaggi:

• le pagine possono essere aggiunte, spostate, cancellate senza sprechi di spazio, senza limitazioni di dimensioni dei file (basta avere pagine libere)

55

Il File System

• L’indice è memorizzato sul dispositivo di mem. secondaria

• Contiene i nomi dei file e le pagine (cluster) associate

• L’utente può conoscere i nomi dei file memorizzati leggendo l’indice

• Il file system usa l’indice per:

–reperire i cluster che compongono i file e

–trovare lo spazio libero per nuovi file

56

Il File System• Esempio: indice

disco fisso

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

Nota: anche l’indice è su disco fisso

57

Il File System

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

1. crea file 1

• Esempio:

58

Il File System

• file 1: cluster 0, 1, 2 1. crea file 1

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

• Esempio:

59

Il File System

• file 1: cluster 0, 1, 2 2. crea file 2

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

• Esempio:

60

Il File System

• Esempio:• file 1: cluster 0, 1, 2

• file 2: cluster 32. crea file 2

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

2

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

• Esempio:

61

Il File System

• Esempio:• file 1: cluster 0, 1, 2

• file 2: cluster 33. modifica file 1

(più lungo)

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

2

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

• Esempio:

62

Il File System

• Esempio:• file 1: cluster 0, 1, 2, 4

• file 2: cluster 33. modifica file 1

(più lungo)

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

1

file

2

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

• Esempio:

63

Il File System

• Esempio:• file 1: cluster 0, 1, 2, 4

• file 2: cluster 34. modifica file 2

(più lungo)

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

1

file

2

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

• Esempio:

64

Il File System

• Esempio:• file 1: cluster 0, 1, 2, 4

• file 2: cluster 3, 54. modifica file 2

(più lungo)

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

1

file

2

file

2

VU

OTA

VU

OTA

VU

OTA

VU

OTA

• Esempio:

65

Il File System

• Esempio:• file 1: cluster 0, 1, 2, 4

• file 2: cluster 3, 55. crea file 3

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

1

file

2

file

2

VU

OTA

VU

OTA

VU

OTA

VU

OTA

• Esempio:

66

Il File System

• Esempio:• file 1: cluster 0, 1, 2, 4

• file 2: cluster 3, 5

• file 3: cluster 6, 7

5. crea file 3

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

1

file

2

file

2

file

3

file

3

VU

OTA

VU

OTA

• Esempio:

67

Il File System

• Esempio:• file 1: cluster 0, 1, 2, 4

• file 2: cluster 3, 5

• file 3: cluster 6, 7

6. crea file 4

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

1

file

2

file

2

file

3

file

3

VU

OTA

VU

OTA

• Esempio:

68

Il File System

• Esempio:• file 1: cluster 0, 1, 2, 4

• file 2: cluster 3, 5

• file 3: cluster 6, 7

• file 4: cluster 8, 9

6. crea file 4

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

1

file

2

file

2

file

4

file

4

file

3

file

3

• Esempio:

69

Il File System

• Esempio:• file 1: cluster 0, 1, 2, 4

• file 2: cluster 3, 5

• file 3: cluster 6, 7

• file 4: cluster 8, 9

7. cancella file 3

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

1

file

2

file

2

file

4

file

4

file

3

file

3

• Esempio:

70

Il File System

• Esempio:• file 1: cluster 0, 1, 2, 4

• file 2: cluster 3, 5

• file 3: cluster 6, 7

• file 4: cluster 8, 9

7. cancella file 3

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

file

1

file

1

file

1

file

1

file

2

file

2

file

4

file

4

file

3

file

3

il file 3 viene eliminato solo dall’indice; i cluster 6 e 7 verranno sovrascritti

alla prima occasione

• Esempio:

71

Il File System

• Esempio:• file 1: cluster 0, 1, 2, 4

• file 2: cluster 3, 5

• file 3: cluster 6, 7

• file 4: cluster 8, 9

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

VU

OTA

Notare la frammentazione: i cluster di alcuni file non sono contigui

file

1

file

1

file

1

file

1

file

2

file

2

file

4

file

4

file

3

file

3

• Esempio:

top related