Introduzione ai Sistemi Operativi
Corso di Sistemi Operativi
Proff. Cotroneo Domenico
Natella Roberto
Cinque Marcello
1
Libri per il corso

Libro di testo:


Ancilotti – Boari – Ciampolini – Lipari – Sistemi Operativi –
McGraw Hill
Libri consigliati per approfondimento:




Ancilotti – Boari – Programmazione concorrente – McGraw
Hill
Stallings - Operating Systems: Internals and Design Principles
– Prentice Hall (in inglese)
Silberschatz – Galvin – Gagne - Sistemi operativi. Concetti ed
esempi – Pearson Education Italia
Tanembaum – I moderni Sistemi Operativi – Prentice Hall
2
Introduzione ai S.O.
 Sommario
della lezione:
Introduzione ai Sistemi Operativi
 Cenni Storici
 Classificazione

 Riferimenti

P. Ancilotti, M.Boari, A. Ciampolini, G.
Lipari, “Sistemi Operativi”, Mc-Graw-Hill
(Cap.1)
3
1
Perché studiare i SO

Non ci sono molti sistemi operativi in corso
di sviluppo

E' molto improbabile che sviluppiate un
sistema operativo durante la vostra
carriera professionale

... allora, perchè si studiano?
4
Perché studiare i SO
I SO sono ovunque - essi hanno la funzione primaria di gestire
le risorse di calcolo
La conoscenza della struttura interna e dei principi di
funzionamento di SO è indispensabile per la programmazione di
sistema e permette di scrivere programmi più efficienti
La programmazione concorrente nasce storicamente con i
sistemi operativi e la si può bene apprendere in questo contesto
5
I Sistemi Operativi


Un Sistema Operativo (S.O.) è un insieme di programmi che
operano sull’hardware di un calcolatore con l’obiettivo di:

semplificare lo sviluppo di programmi

realizzare politiche di gestione delle risorse hardware
Il Sistema Operativo si pone come interfaccia tra l’utente (o il
software) e l’hardware, fornendone un’astrazione

Il SO da l'"illusione" all'utente di avere una memoria
"infinita", una CPU veloce, dedicata ad ogni utente,

I SO forniscono un accesso uniforme (virtualizzato) a
risorse estremamente eterogenee
6
2
I Sistemi Operativi
Il SO …

… definisce una macchina virtuale (o estesa) e quindi un
insieme di astrazioni che semplificano lo sviluppo delle
applicazioni (ad es. il SO fornisce il concetto di FILE invece di
quello di “insieme di byte memorizzati in un disco”)

… realizza politiche di gestione delle risorse hardware
definendo i criteri con cui assegnare una risorsa a fronte di più
richieste concorrenti
7
Struttura di un Sistema di
elaborazione
interf.
utenti
utenti
interf.
di libreria
interf.
system
call
programmi di utilità
(shell, compiler, …)
modo
utente
libreria standard
(open, close, read, write, ..)
Sistema Operativo
(process management, memory management, file
system, I/O, ...)
modo
kernel
hardware
(CPU, memoria, dischi, terminali, …)
8
Struttura di un Sistema di
elaborazione
utenti
interprete dei comandi e comandi
compilatori e interpreti
librerie di sistema
interfaccia delle chiamate del sistema operativo
segnali
gestione dei terminali
sistema di I/O a caratteri
driver di terminali
file system
scheduling della CPU
avvicendamento
sostituzione delle pagine
sistema di I/O a blocchi paginazione su richiesta
driver di nastri e dischi
memoria virtuale
interfaccia del Sistema Operativo con l’architettura fisica
controllore di terminali
terminali
controllori di dispositivi
dischi e nastri
controllore di memoria
memoria fisica
9
3
Evoluzione dei SO
… Guidata dall’evoluzione dell’hardware
1981
2016
Fattore
migliorativo
MIPS
1
≈200000
€/SPECInt
≈ 100K€
<2
DRAM size
128KB
16 GB
Disk Size
10MB
1 TB
Net Bwd
9600 bps
10 Gbps
Address bits
16
64
4
User/Machine
100
<1
100
200000
50000
130000
100000
1000000
10
Un po’ di storia …

Utente alla console: sistemi
“single-user”

Sistemi Batch

Sistemi Multiprogrammati

Sistemi Time-sharing

Personal Computing: un sistema
per utente

Distributed e Mobile Computing:
tanti sistemi per utente
11
Un po’ di storia …

Prima fase: Hardware costoso, utenza molto esperta




Seconda fase: Hw economico, utenza esperta


Sistemi Time-sharing (utenti che utilizzano un terminale
economico per collegarsi ad un server condiviso)
Terza fase: Hw molto economico, utenza poco esperta



Utente alla console: sistemi “single-user”
Sistemi Batch
Sistemi Multiprogrammati
Personal Computing: un sistema per utente
Distributed Computing: tanti sistemi per utente
Quarta fase: Servizi a maggiore qualità


Sistemi Operativi Real-Time ;
Sistemi transazionali
12
4
Single User System

SO = loader + librerie di procedure comuni

Svantaggio: bassa percentuale di utilizzo
di risorse hardware (costose)
timeDeviceBusy
 %Utilizatio n
observationInterval
13
Un esempio
•
•
L’esempio è relativo ad un programma che elabora un
file di record ed esegue in media 100 istruzioni
macchina per ogni record.
Nell’esempio la CPU spende circa il 96% del suo tempo
in attesa di operazioni di I/O per caricare e salvare un
record dal file
14
Batch System (sist. a lotti)
•Privilegiano lo sfruttamento del sistema a prezzo dell’assenza
di interazione da parte dell’utente, che deve fornire in via
preliminare il suo lavoro.
•I lavori sono raggruppati in lotti e memorizzati su supporto
magnetico. Il S.O. gestisce l’avanzamento sequenziale dei
singoli lavori.
SO = loader + sequenziatore+ processore di output
Vantaggi
La macchina è meglio sfruttata grazie alla assenza di
interazione con l’utente. Le operazioni di I/O sono più
veloci.
Svantaggi
L’utente può anche attendere ore o giorni per avere i
risultati del proprio lavoro.
15
5
Sistemi monoprogrammati

Il processore deve attendere per il completamento
delle istruzioni di I/O prima di procedere
Program
A
Wait
Wait
time
16
Sistemi batch multiprogrammati
• Diversi job sono caricati in memoria
contemporaneamente e la CPU viene
alternativamente assegnata a
ciascuno di essi .
• Quando un Job deve attendere
un’operazione di I/O, la CPU viene
assegnata ad un altro job
• Richiede qualche forma di gestione
della memoria e di scheduling della
CPU.
• l’hardware deve supportare gli
interrupt di I/O e il DMA.
17
Multiprogramming

Quando un job ha bisogno di attendere il completamento di
un’operazione di I/O, il processore può essere assegnato ad un
altro job
18
6
Multiprogramming
19
Esempio
20
21
7
22
Effects of Multiprogramming
23
Time Sharing

E' l'estensione logica della multiprogrammazione in cui il
tempo del processore è condiviso tra più utenti.

L'esecuzione della CPU viene suddivisa in un certo numero di
quanti temporali. Allo scadere di un quanto, il task corrente
viene interrotto a favore di un altro task.

I passaggi tra task (context switch) avvengono così
frequentemente che più utenti possono interagire in tempo
reale con i programmi in esecuzione (task interattivi)

Tali sistemi favoriscono i task interattivi.

Vantaggio

Svantaggio


L’utente opera come con un sistema dedicato.
L’overhead introdotto dal S.O.
24
8
Sistemi Timesharing

Un “timer interrupt” è utilizzato per la condivisione della CPU
Prog. 1
User Program n
Prog. 2
SO
main{
timer
interr.
User Program 1
schedule{
}
schedule{
Sw di Sistema
main{
timer
interr.
}
Sist. Operativo
}
25
Batch Multiprogramming versus Time Sharing
Batch
Multiprogramming
Time Sharing
Principal
objective
Maximize processor
use
Minimize response
time
Source of
directives to
operating system
Job control language
commands provided
with the job
Commands entered
at the terminal
26
Personal Computing


Personal Computing System
 Tipicamente single user
 L’utilizzazione delle risorse non è un
obiettivo di primaria importanza
 Enfasi su API e user interface
Evoluzione


Inizialmente: il SO era un semplice
fornitore di servizi (cfr. DOS che era a
tutti gli effetti un gestore di
interruzioni)
Attualmente: Sistemi multitasking e
multiutente
27
9
Sistemi Transazionali
Trattasi
di
sistemi interattivi destinati ad eseguire
transazioni, ossia sequenze di operazioni elementari che
richiedono l’esecuzione ciascuna di un programma o di una sua
parte.
In un sistema transazionale l’utente interroga ed aggiorna
archivi.
Tutti gli utenti operano sugli stessi archivi e richiedono
l’esecuzione delle stesse operazioni elementari, fornendo i
propri dati.
28
Sistemi in tempo Reale
Il sistema in tempo reale è un sistema la cui
correttezza dipende dalla velocità di esecuzione dei
task.
Tipicamente sono sistemi che gestiscono programmi
che interagiscono con l’ambiente esterno attraverso
periferiche e che garantiscono ai dati di ingresso
risposte in un tempo utile rispetto alle costanti di
tempo proprie del’ambiente esterno.
Il tempo utile dipende dall’applicazione e quindi
dall’ambiente esterno.
29
Sistemi in tempo Reale
Introducono nuovi concetti e nuove problematiche

Sistemi con un “doppio” concetto di correttezza:



Logica (“ it does the right thing” )
Temporale (“it does it on time”)
Tipicamente sono sistemi in cui la proprietà di
“predictability” è molto più importante delle
“performance”
30
10
Mobile computing

I mobile device pervadono ormai la
nostra società (smartphones,
wearables, ...)





Social networking
Digital assistants
Electronic payments
GPS navigation, fitness, ...
Evoluzione



Sicurezza e privacy
Efficienza energetica
Multimedia
31
Distributed e cloud computing


Il cloud computing è l’ulteriore evoluzione nella
virtualizzazione delle risorse, su scala distribuita
I fornitori di infrastrutture erogano risorse “su
domanda”, pay-per-use
32
User Programs
User Programs
Operating System
Host
B
Operating
System
RA1
RA2
RA3
RB1
RB2
Distributed Operating System
FileSystem Service
Name Service
Mail Service
User Programs
Operating System
RC1
RCn
33
11