Sistema Operativo e Applicativi
Modulo di Informatica
Dott.sa Sara Zuppiroli
A.A. 2012-2013
Modulo di Informatica ()
Software
A.A. 2012-2013
1 / 36
Software
Conosciamo due classi di software:
Programmi Applicativi
Sistemi Operativi
Modulo di Informatica ()
Software
A.A. 2012-2013
2 / 36
Software: Programmi applicativi
programmi di videoscrittura (es. Word)
browser, usati per ’navigare il Web’ (es. Firefox)
fogli elettronici, usati per manipolare e analizzare numeri e
dati (es. Fogli di calcolo)
programmi per la gestione di banche di dati (database),
utilizzati per conservare ed elaborare dati strutturati (es.
Mysql, PosgreSQL)
programmi per creare applicazioni multimediali/ grafiche,
manipolare foto, fare presentazioni con audio/video, ecc.
videogiochi
···
Modulo di Informatica ()
Software
A.A. 2012-2013
3 / 36
Il Sistema Operativo
Definizione e tipi di SO
Le funzionalità di un SO
Come macchina astratta
Modulo di Informatica ()
Software
A.A. 2012-2013
4 / 36
SO e interazioni con gli utenti
Modulo di Informatica ()
Software
A.A. 2012-2013
5 / 36
Definizione di SO
Un sistema operativo è un programma che agisce come
intermediario tra Utente, Software Applicativo e Hardware. Il suo
scopo è di fornire un ambiente nel quale un utente possa
eseguire programmi in modo conveniente ed efficiente. Deve
evitare che i programmi utente in esecuzione entrino in conflitto
Un sistema operativo fornisce sevizi ai programmi.
Modulo di Informatica ()
Software
A.A. 2012-2013
6 / 36
Obiettivi del SO
Efficienza:
Un S.O. cerca di utilizzare in modo efficiente le risorse del
calcolatore
Semplicità:
Un sistema operativo dovrebbe semplificare l’utilizzazione
dell’hardware di un calcolatore
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
7 / 36
I tipi di SO (1/2)
Sistemi Batch (lotti): Il SO gestiva il passaggio da un Job
a quello successivo. (I: Schede perforate, O: stampante,
Utente: non interagiva)
Sistemi Multi-programmati: permettono di avere la
funzione di multi- programmazione, per cui in memoria
centrale si possono caricare simultaneamente più
programmi (scheduling)
Sistemi Time sharing: è un’estensione della
multi-programmazione in cui la CPU esegue i vari processi
con una frequenza tale che permetta all’utente di interagire
con più programmi.
Modulo di Informatica ()
Software
A.A. 2012-2013
8 / 36
I tipi di SO (2/2)
Sistemi Multi-processore: Questo sistema dispone di più
processori che condividono il bus di sistema (quello dentro
la scheda madre), il clock, e talvolta dispositivi di memoria.
Sistemi Distribuiti: Sono un insieme di processori che non
condividono nè memoria nè clock. I sistemi distribuiti
comunicano tra loro con mezzi di comunicazione diversi.
Sistemi Real Time: Sono sistemi operativi nati
dall’esigenza che alcuni processi devono essere elaborati in
un tempo ben preciso
Modulo di Informatica ()
Software
A.A. 2012-2013
9 / 36
Una similitudine per i SO Batch
Ristorante
Sistema
Informativo
Fila degli Utenti
Programmi
Strumenti
Tecnologia
Preparazione
Processo in sequenza
Cassiere
Sistema Operativo
Modulo di Informatica ()
La cassa della banca è composto da un
cassiere, da un cliente, da risorse materiali
(carta, denaro, ecc..)
Il cassiere per gestire ogni utente deve
svolgere una procedura che dipende dalla
richiesta dell’utente
Carta, denaro, cassaforte, moduli, ecc...
La procedura viene eseguita compiendo
una serie di operazioni stabilite, in un certo
ordine
Esegue e gestisce le risorse in modo tale
da soddisfare un utente di seguito all’altro
Software
A.A. 2012-2013
10 / 36
Una similitudine per i SO multi-programmati
Ristorante
Sistema
Informativo
Menù e piatti
del giorno
Programmi
Strumenti
Tecnologia
Preparazione
Processi e Coerenza
Cuoco
Sistema Operativo
Modulo di Informatica ()
Il ristorante è composto di risorse umane
addette alle comande (camerieri), da cuochi, da risorse materiali (cucina, strumenti,
ecc..), da un menù
Il menù propone il nome di tutti possibili
piatti del ristorante
Ciotola, fornello, forno, padella antiaderente, forchetta, cucchiaio di legno, lavapiatti,
ecc..
La preparazione dei piatti gestendo le risorse in maniera coerente ed efficiente, nel
rispetto dei tempi di attesa degli utenti
Esegue e gestisce le risorse in modo tale
da soddisfare nel minor tempo possibile il
maggior numero di utenti
Software
A.A. 2012-2013
11 / 36
Le altre similutidini
SO multiprocessore
SO Realtime
Modulo di Informatica ()
Software
A.A. 2012-2013
12 / 36
Il sistema operativo
Definizione e tipi di SO
Le funzionalità di un SO
Come macchina astratta
Modulo di Informatica ()
Software
A.A. 2012-2013
13 / 36
Le funzionalità di un SO
È il Sistema Operativo che :
decide quale programma può utilizzare la CPU in ogni
istante (e in questo modo gestisce l’esecuzione delle
diverse applicazioni); consente l’accesso ai file
(salvataggio, cancellazione, ecc.);
gestione della memoria
gestisce dispositivi I/O;
gestione file system
interprete di programmi
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
14 / 36
Gestisce i processi
Un processo è un programma in esecuzione:
I
Un processo utilizza le risorse fornite dal computer per
assolvere i propri compiti
Dai SO multi-programmati questo è responsabile delle
seguenti attività riguardanti la gestione dei processi:
I
I
I
I
I
creazione e terminazione dei processi
sospensione e riattivazione dei processi
gestione dei deadlock
comunicazione tra processi
sincronizzazione tra processi
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
15 / 36
Stati di un processo
Modulo di Informatica ()
Software
A.A. 2012-2013
16 / 36
Stati di un processi
In un SO multi-programmato (più processi sono pronti per
l’elaborazione)
Ogni processo durante la sua vita alterna gli stati:
I
I
I
I
I
new: Il processo è creato
running: Il processo è in esecuzione
waiting: Il processo è in attesa di un evento
ready: Il processo è pronto per essere eseguito (è in coda)
termiated: Il processo ha finito la sua esecuzione/o è stata
forzata la sua interruzione
Modulo di Informatica ()
Software
A.A. 2012-2013
17 / 36
Eventi
Ogni processo durante la sua vita alterna gli stati al
determinarsi di un evento:
I
I
I
I
I
I
admited:Il processo creato è inserito in coda
scheduler dispatch: lo scheduler assegna al processo il
processore
interrupt: è un segnale di interruzione dell’esecuzione del
processo per poter usare la CPU
I/O or event Wait: Si richiede un’operazione di I/O e si
mette in coda il processo, oppure un altro processo richiede
una particolare operazione da un altro processo
I/O or event completion: la periferica I/O o il processo ha
completato la sua esecuzione e il processo può ritornare
nella coda ready
exit: il processo termina
Modulo di Informatica ()
Software
A.A. 2012-2013
18 / 36
Scheduler
L’avanzamento dei processi è determinato dalla disponibilità
del processore e dalla politica con la quale l’uso del
processore è ripartito tra i processi
Le politiche di assegnazione del processore ai processi
pronti si chiamano politiche di scheduling. Lo scheduling ha
come obiettivo un uso efficiente del processore, e decide
come fare avanzare i processi. Lo scheduling fa delle scelte
ad esempio:
I
I
I
I
In base all’ordine di arrivo (FIFO: first in first out)
In base alla priorità
In base al tempo di esecuzione
ecc..
Modulo di Informatica ()
Software
A.A. 2012-2013
19 / 36
Gestione dei deadlock
Il deadlock è una situazione in cui due (o più) processi si
bloccano a vicenda aspettando che uno esegua una certa
azione (es. rilasciare il controllo su una risorsa come un file, una
porta input/output ecc.) che serve all’altro e viceversa.
Il SO è responsabile della prevenzione se possibile,
individuazione e risoluzione di questa situazione anomala:
I
I
Evitare i deadlock: Il SO ad ogni richiesta di una risorsa da
parte di un processo, effettua una verifica dello stato in cui si
troverebbe allocando la risorsa.
Risolvere deadlock: si procede con la terminazione (forzata)
di tutti i processi in stallo o di un processo alla volta fino alla
risoluzione del Deadlock, oppure con la prelazione sulla
risorsa che causa il problema. Particolare cura deve essere
riposta nella scelta della vittima della prelazione.
Modulo di Informatica ()
Software
A.A. 2012-2013
20 / 36
Gestione della memoria principale
La memoria principale:
I
I
è un array di byte indirizzabili singolarmente.
è un deposito di dati facilmente accessibile e condiviso tra la
CPU ed i dispositivi di I/O
Il sistema operativo è responsabile delle seguenti attività
riguardanti la gestione della memoria principale:
I
I
I
tenere traccia di quali parti della memoria sono usate e da
chi
decidere quali processi caricare quando diventa disponibile
spazio in memoria
allocare e de allocare lo spazio di memoria quando
necessario
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
21 / 36
Gestisce la memoria secondaria
Memoria secondaria:
Poichè la memoria principale è volatile e troppo piccola per
contenere tutti i dati e tutti i programmi in modo
permanente, un computer è dotato di memoria secondaria
In generale, la memoria secondaria è data da hard disk,
dischi ottici, nastri
Il sistema operativo è responsabile delle seguenti attività
riguardanti la gestione della memoria secondaria:
Allocazione dello spazio inutilizzato
Gestione dello spazio di memorizzazione
Ordinamento efficiente delle richieste (disk scheduling)
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
22 / 36
Gestisce il file system
Un file è l’astrazione informatica di un archivio di dati:
I
Il concetto di file è indipendente dal media sul quale viene
memorizzato (che ha caratteristiche proprie e propria
organizzazione fisica)
Un file system è composto da un insieme di file
Il sistema operativo è responsabile delle seguenti attività
riguardanti la gestione del file system:
I
I
I
I
Creazione e cancellazione di file
Creazione e cancellazione di directory
Manipolazione di file e directory
Codifica del file system sulla memoria secondaria
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
23 / 36
File Directory e Filesystem
File (o archivio, o documento elettronico): è sequenza di
caratteri (byte) identificata da un nome Directory è un
contenitore di file. Filesystem: è meccanismo con il quale i file
sono organizzati.
Modulo di Informatica ()
Software
A.A. 2012-2013
24 / 36
Gestisce le operazioni di Input/Output
La gestione dell’I/O richiede:
Un’interfaccia comune per la gestione dei device driver
Un insieme di driver per dispositivi hardware specifici
Un sistema di gestione di buffer per il caching delle
informazioni
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
25 / 36
Protezione
Il termine protezione si riferisce al meccanismo per
controllare gli accessi di programmi, processi o utenti alle
risorse del sistema e degli utenti
Il meccanismo di protezione software deve:
I
I
I
Distinguere tra uso autorizzato o non autorizzato
Specificare i controlli che devono essere imposti
Fornire un meccanismo di attuazione della protezione
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
26 / 36
Protezione della memoria
Dai SO multi-programmati in avanti: ogni processo ha un
suo spazio di indirizzi:
I
I
è necessario impedire al processo di accedere ad aree di
memoria esterne al proprio spazio (ad es., del S.O. oppure
di altri processi).
se fosse consentito: un programma potrebbe modificare
codice e dati di altri programmi o del S.O.
Modulo di Informatica ()
Software
A.A. 2012-2013
27 / 36
Gestione della protezione
Per garantire protezione, molte architetture prevedono un
duplice modo di funzionamento (dual mode):
I
user mode:
F
I
tutti i programmi utenti eseguono sul processore in user
mode, se un programma utente ha bisogno di un’istruzione
privilegiata deve richiamare una System Call
kernel mode: si possono gestire istruzioni critiche:
F
F
F
accesso a dispositivi di I/O
gestione della memoria
arresto del sistema
Modulo di Informatica ()
Software
A.A. 2012-2013
28 / 36
Networking
Consente
I
I
Di far comunicare due o più elaboratori
Di condividere risorse
Quali servizi:
I
I
I
Protocolli di comunicazione a basso livello
TCP/IP
UDP
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
29 / 36
Interfaccia utente - S.O.
Interprete dei comandi permette di:
I
I
attivare un programma, terminare un programma
interagire con le componenti del sistema operativo (file
system)
Può essere:
I
I
grafica (a finestre, icone, etc.)
testuale (linea di comando)
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
30 / 36
Interfaccia programmatore - S.O.
System Call:
Ogni volta che un processo ha bisogno di un servizio del
S.O. richiama una system call
sono in genere disponibili come istruzioni a livello
assembler
esistono librerie che permettono di invocare le system call
da diversi linguaggi (ad es. librerie C)
vengono normalmente realizzate tramite interrupt software
c 2002-2005 Renzo Davoli, Alberto Montresor
Modulo di Informatica ()
Software
A.A. 2012-2013
31 / 36
System call
Le system call sono specifiche dei vari S.O.:
Modulo di Informatica ()
Software
A.A. 2012-2013
32 / 36
Il Sistema Operativo
Definizione e tipi di SO
Le funzionalità di un SO
Come macchina astratta
Modulo di Informatica ()
Software
A.A. 2012-2013
33 / 36
Il SO come Macchina Astratta
Il SO consente di utilizzare l’HW, la comunicazione con l’utente,
in modo efficiente, corretto e sicuro, fornendo una visione
astratta della macchina reale, e viene definita la macchina
estesa. Attraverso questa visione di macchina estesa si riesce a
gestire un adeguato insieme di risorse tramite un linguaggio
semplice, che è il linguaggio fornito dal SO.
Modulo di Informatica ()
Software
A.A. 2012-2013
34 / 36
SO e interazioni con gli utenti
Modulo di Informatica ()
Software
A.A. 2012-2013
35 / 36
Conclusione
Cosa è il SO?
Le funzionalità di un SO?
Dove si colloca nella struttura a livelli?
Modulo di Informatica ()
Software
A.A. 2012-2013
36 / 36