Informatica
Lezione 7
Psicologia dello sviluppo e dell'educazione
(laurea magistrale)
Anno accademico: 2006-2007
Funzioni principali del sistema
operativo
• Avvio del computer
• Gestione del processore e dei programmi in esecuzione (detti
processi)
• Gestione della memoria principale
• Gestione della memoria virtuale
• Gestione della memoria secondaria
• Gestione dei dispositivi di input/output
• Interazione con l’utente
Sistemi mono-utente, monoprogrammati
• Un solo utente può eseguire un solo programma alla
volta
– È forzato a “sequenzializzare” i programmi
– Il programma viene lanciato, eseguito e quindi terminato
• 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 attesa
– Durante l’attesa si dice che il processore è un uno stato
inattivo (idle)
Esempio 1
• Un processo è costituito da 1000=103 istruzioni
– Ogni istruzione richiede 10-6 secondi per essere eseguita dal
processore
– Tempo 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
Esempio 2
• Un processo è costituito da 1000=103 istruzioni
– Ogni istruzione richiede 10-6 secondi per essere eseguita dal
processore
– Tempo 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
Esecuzione sequenziale
Processo P1
inizio
Processo P2
fine inizio
fine
in attesa
esecuzione
Processore
attivo
idle
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:
Cliente 1
Ordinare
Preparare
il caffè
Consumare
Pagare
Cliente 2
Ordinare Preparare
il caffè
Consumare
Pagare
Soluzione
• In realtà (normalmente…) c’è alternanza tra i
clienti:
Cliente 1
Cliente 2
Ordinare
(C1)
Ordinare
(C2)
Preparare
il caffè (C1)
Preparare
il caffè (C2)
Pagare
(C1)
Pagare
(C2)
Soluzione: sistemi multiprogrammati
• Quando il processore è nello stato di idle la 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 istruzioni di un
altro processo
• Il sistema operativo si occupa dell’alternanza
tra i processi in esecuzione
Sistemi multiprogrammati
Dal punto di vista dei processi
P1
P2
Dal punto di vista del processore
esecuzione P1
esecuzione P2
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à
Sistemi multiprogrammati
• Un processo può trovarsi in tre diversi stati: in
esecuzione, in attesa, pronto
esecuzione
pronto
Quando è potenzialmente in condizione
di poter utilizzare il processore che è
occupato da un altro processo
Quando sta utilizzando
il processore
attesa
Quando è in attesa del verificarsi
di un evento esterno
Sistemi multiprogrammati
terminazione
esecuzione
richiesta I/O
o risorse
scambio
esecuzione
pronto
I/O terminato o
risorsa disponibile
attesa
Sistemi multiprogrammati
Quando un processo viene creato viene
messo nello stato di pronto
• in tale stato rimane fino a quando
non arriverà il suo turno
pronto
Sistemi multiprogrammati
esecuzione
scambio
esecuzione
pronto
attesa
Sistemi multiprogrammati
Un processo può abbandonare lo stato di esecuzione
per tre diverse ragioni
esecuzione
pronto
attesa
Sistemi multiprogrammati
Un processo può abbandonare lo stato di esecuzione
per tre diverse ragioni
terminazione
esecuzione
Il processo termina
la sua esecuzione
e abbandona il sistema
pronto
attesa
Sistemi multiprogrammati
Un processo può abbandonare lo stato di esecuzione
per tre diverse ragioni
terminazione
esecuzione
richiesta I/O
o risorse
pronto
attesa
Il processore viene liberato e può essere
concesso ad un altro processo pronto
Sistemi multiprogrammati
Un processo può abbandonare lo stato di esecuzione
per tre diverse ragioni
terminazione
esecuzione
scambio
esecuzione
pronto
richiesta I/O
o risorse
attesa
Per realizzare in modo equo l’alternanza tra i processi, in certi casi può essere
opportuno fermare un processo e concedere il processore ad un altro processo
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 distribuita tra i processi dello
stesso utente e di utenti diversi
• Si parla di scheduling del processore
Esempio di scheduling:
Round Robin
• Ad ogni processo viene assegnato un quanto
di tempo del processore (time slice)
• Terminato il quanto di tempo, il processo
viene sospeso e rimesso nella coda dei
processi pronti (al fondo della coda)
• Il processore viene assegnata ad un altro
processo pronto
• Un processo può usare meno del quanto che
gli spetta se deve eseguire operazioni di I/O
oppure ha terminato la sua computazione
Esempio di scheduling:
Round Robin
Nel caso della politica di scheduling Round Robin
terminazione
esecuzione
in esecuzione
quanto di
tempo scaduto
pronto
I/O terminato o
risorsa disponibile
richiesta I/O
o risorse
attesa
Sistemi multi-utente, multiprogrammati
• Più utenti possono usare allo stesso
tempo il computer
– … perché il processore viene assegnata
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
Esercizio 1a
• Supponiamo di avere nella coda dei processi pronti tre processi
P1, P2 e P3 con i seguenti “comportamenti” in termini di
computazione e tempi di attesa
calcolo
P1
10
P2
10
P3
10
40
10
30
20
10
10
10
in attesa
10
• Quante unità di tempo ci vogliono per portare a termine tutti e
tre i processi in un sistema mono-programmato?
Esercizio 1a: soluzione
• Quante unità di tempo ci vogliono per portare
a termine tutti e tre i processi in un sistema
mono-programmato?
10
40
10 10
20
30
Tot(P1)=60, Tot(P2)=60, Tot(P3)=50
Tot(P1+P2+P3) = 60 + 60 + 50 = 170
10
10 10
10 10
Esercizio 1b
• Supponiamo di avere nella coda dei processi pronti tre processi
P1, P2 e P3 con i seguenti “comportamenti” in termini di
computazione e tempi di attesa
calcolo
P1
10
P2
10
P3
10
40
10
30
20
10
10
10
in attesa
10
• Quante unità di tempo ci vogliono per portare a termine tutti e
tre i processi in un sistema multi-programmato, se si applica
l’alternanza tra i processi?
Esercizio 1b: una soluzione
• Quante unità di tempo ci vogliono per portare a termine tutti e
tre i processi in un sistema multi-programmato, se si applica
l’alternanza tra i processi?
P1
10
P2
10
P3
10
40
10
30
20
10
10
10
10
In questo caso, quando
un processo va in attesa,
il processore viene
assegnato al primo
processo pronto
Totale
= 100
P1 in attesa
P2 in attesa
P3 in attesa
P3 in attesa
Esercizio 1b: un’altra soluzione
• Quante unità di tempo ci vogliono per portare a termine tutti e
tre i processi in un sistema multi-programmato, se si applica
l’alternanza tra i processi?
P1
10
P2
10
P3
10
40
10
30
20
10
10
10
10
P1 in attesa
P2 in attesa
P3 in attesa
P3 in attesa
Totale
= 100
Esercizio 1b: una soluzione ottimale
• Quante unità di tempo ci vogliono per portare a termine tutti e
tre i processi in un sistema multi-programmato, se si applica
l’alternanza tra i processi?
P1
10
P2
10
P3
10
40
10
30
20
10
10
10
10
Totale
= 90
P1 in attesa
P2 in attesa
P3 in attesa
P3 in attesa
Esercizio 2
• Supponiamo di avere nella coda dei
processi pronti i processi
– P1 durata = 40 unità di tempo
– P2 durata = 10 unità di tempo
– P3 durata = 60 unità di tempo
– P4 durata = 30 unità di tempo
• Qual è una sequenza di esecuzione con
una politica di scheduling Round Robin
e quanto di tempo pari a 20 unità?
Esercizio 2: una soluzione
– P1 durata = 40 unità di tempo
– P2 durata = 10 unità di tempo
– P3 durata = 60 unità di tempo
– P4 durata = 30 unità di tempo
P1
0
P2
20 30
P3
P4
50
P1
70
P3
90
P4
P3
110 120
Non consideriamo eventuali tempi di attesa
140
Funzioni principali del sistema
operativo
• Avvio del computer
• Gestione del processore e dei processi
• Gestione della memoria principale
• Gestione della memoria virtuale
• Gestione della memoria secondaria
• Gestione dei dispositivi di input/output
• Interazione con l’utente
Gestione della memoria
secondaria
• La memoria secondaria serve per memorizzare
programmi e dati in modo permanente
• Il file system: quella parte del sistema operativo che
si occupa di gestire e strutturare le informazioni
memorizzate sulla memoria secondaria
Processore
Stampante
Memoria principale
Memoria
secondaria
Il file system
• I file vengono utilizzati come supporto per la
memorizzazione dei programmi e dei dati
– Un file può corrispondere ad un programma, o ad un insieme
di dati omogenee
– Diversi tipi di file contengono diversi tipi di informazione
– Un file deve avere un nome logico
È meglio usare nomi
significativi
È meglio non usare caratteri
speciali e lo spazio bianco
mio.doc, a.txt
prima pagina.html, mia foto.jpg
tesi.doc, inf_lezione9.ppt
index.html, montagne.gif
Il file system
• Un file ha anche una estensione
Esempi: .doc .txt .html .jpg .gif .pdf
Le estensioni sono importanti perché di solito
indicano il tipo del file (quindi danno
informazioni sul programma applicativo in
grado di manipolarlo)
Il file system
• Mediante il file system il sistema operativo
fornisce una visione astratta dei file su disco
Utente
011100010
Hardware
111010101
000011110
Avvio
Gestione: i processi, la
Interfaccia utente
memoria, i disp. di input/output
Il file system
• Il file system permette all’utente di:
– Identificare ogni file mediante il suo nome
– Operare sui file mediante opportune operazioni
– Effettuare l’accesso alle informazioni grazie ad operazione
di alto livello, che non tengono conto del tipo di
memorizzazione
• Per esempio, si deve accedere allo stesso modo ad un file
memorizzato sul disco rigido oppure su un CD-ROM
– Strutturare i file, organizzandoli in sottoinsiemi secondo le
loro caratteristiche, per avere una visione “ordinata” e
strutturata delle informazioni sul disco
– Proteggere i propri file in un sistema multi-utente, ossia per
impedire ad altri utenti di leggerli, scriverli o cancellarli
Organizzazione gerarchica dei
file
• Un unico spazio (“contenitore”) di file è scomodo
– La scelta dei nomi diventa difficile perché non è possibile
avere due file con lo stesso nome nella stessa contenitore
– Le operazioni di ricerca dei file diventano onerose
• L’idea è quella di raggruppare i file in sottoinsiemi
• Questi sottoinsiemi di file vengono memorizzati
all’interno di contenitori dette cartelle (directory)
• I nomi dei file sono locali alle directory
– Si possono avere due file con lo stesso nome perché siano
in due directory diverse
Organizzazione gerarchica dei
file
• I computer sono dotati di più unità di
memoria secondaria, per esempio:
– Unità per floppy disk: A
– Unità per disco fisso: C
– Unità per CD-ROM: D
• DOS e Windows usano dei nomi per
distinguere le unità
Organizzazione gerarchica dei
file
Photoshop.exe
radice
dell’albero
A:
Applicazioni
Biblioteca
Elab_imm
Premiere.exe
Elab_testi
Winword.exe
Narrativa-Fra
libro1.pdf
libro2.pdf
Narrativa-Ing
libro1.pdf
Narrativa-Ita
libro1.pdf
foglie
libro2.pdf
Utenti
Bianchi …
Rossi …
Indice
Pautasso …
Questa struttura viene
chiamata albero
Mainframe
Switching node
Reti di
computer
Server
Reti di computer
• Tipi di reti:
– Locale: di un’università, azienda, scuola, ecc.
– Geografiche: per esempio Internet (la rete delle
reti)
• Cambiamenti portato da Internet (da Snyder):
–
–
–
–
–
Nessun luogo è remoto
Le persone sono interconnesse
Le relazioni sociali stanno mutando
L’inglese sta diventando un linguaggio universale
La libertà di parola e di associazione si è estesa
Reti di computer
• Perché collegare i computer nelle reti?
– Condivisione risorse:
• Risorse fisiche: per esempio non è economico comprare 1
stampante laser per ogni personal
• Dati e programmi: per esempio base di dati a cui molti utenti
(da diversi computer) possono accedere
– Sistema di prenotazioni e assegnamento posti di una
compagnia aerea, sistema informativo di una banca, ecc.
– Comunicazione tra utenti in locazioni fisiche differenti
(scambio di messaggi e dati)
• Comunicazioni in ambito di ricerca, lavoro cooperativo,
possibilità di volgere attività di lavoro a casa (tele-lavoro), ecc.
Il modello centralizzato
• Anni ’70: modello centralizzato
(time-sharing multi-utente)
– Il collegamento di molti utenti ad un
unico elaboratore potente
(centralizzato) attraverso terminali
• Terminale: usato solo per inserire
dati e ricevere dati per la
visualizzazione (per esempio, con
tastiera, schermo, mouse, ma
senza capacità di elaborazione)
• Svantaggio: più utenti 
necessità di usare computer
(centralizzati) più potenti
Il modello distribuito
• Anni ’80: il modello distribuito
– Collegare in rete gli elaboratori (di varie potenze, tipi, nella
stessa località o in località diverse)
• Vantaggi rispetto al modello centralizzato:
– Flessibilità:
• In un sistema centralizzato, in caso di guasto all’elaboratore
centrale nessuno può lavorare
• Nel caso distribuito invece, la rottura di una macchina blocca
un solo utente mentre gli altri possono continuare a lavorare
– Economicità:
• In termini di costi, è più conveniente acquistare molti elaboratori
personali e collegarli in rete
Internet
• Nato da ARPAnet (creato alla fine degli anni ’60, una rete
singola e chiusa) e altre reti (reti proprietarie)
• Rete delle reti: basato sull’interconnessione delle reti
(eterogenee) già esistente (inter-networking)
– Idea di interconnessione tra le reti è dei primi anni ’70
Router
Router
Router
Router
Rete 1
Rete 2
Rete 3
Internet
• Anni ’90: esplosione di Internet
– In particolare, negli primi anni ’90: creazione del World Wide
Web
• 2006: 1,08 bilioni di persone hanno accesso ad
Internet (circa 37% in Asia, 28% in Europa, 22% in
America del Nord)
• Principalmente, studieremo Internet in questa parte
del corso
Tipi di comunicazione
• Comunicazione sincrona: il
mittente e il destinatario
sono attivi nello stesso
momento
– Per esempio, una
conversazione telefonica
• Comunicazione asincrona:
l’invio e la ricezione hanno
luogo in istanti diversi
– Per esempio, una cartolina
• Comunicazione broadcast:
un singolo mittente e molti
destinatari
– Per esempio, la radio, la TV
• Comunicazione multicast: un
singolo mittente e un numeri
limitato di destinatari:
– Per esempio, le riviste
• Comunicazione point-topoint: un singolo mittente e
un singolo destinatario
– Per esempio, il telefono
Tipi di comunicazione
• Internet può essere considerato come un
mezzo di comunicazione universale
– Asincrona point-to-point: per esempio, la posta
elettronica
– Sincrona point-to-point: per esempio, Instant
Messaging, Voice over IP
– Multicast: per esempio, gruppi di piccola o media
dimensione possono comunicare nelle chat
– Broadcast: per esempio, le pagine web
Scarica

mag_lez7 - Dipartimento di Informatica