Cos’è un Sistema Operativo?
Elementi di Informatica e
Programmazione
Per capirlo, immaginiamo inizialmente che non ci sia:
Applicazioni
Il Sistema Operativo
HARDWARE
(periferiche, memoria, CPU)
- necessità per il programmatore di conoscere le specificità
dell’hardware e di occuparsi della sua gestione
⇒ aumenta difficoltà nella scrittura dei programmi
- dipendenza applicazioni/hardware
Docente: Daniela Fogli
Si introduce la suddivisione sistema operativo/applicazioni
Daniela Fogli – Elementi di Informatica e Programmazione
2
In sostanza, in SO è …
Organizzazione a livelli
utenti
1. Collezione di programmi (detti anche software di base)
finalizzati a rendere utilizzabile l’intera architettura di
elaborazione
applicazioni
livello delle
applicazioni
programmatore
di applicazioni
2. Fornisce una interfaccia (API: Application Programming
Interface) al software applicativo usato dall’utente, che può
invocare il sistema operativo attraverso chiamate di sistema
interfaccia di
programmazione
verso le applicazioni
programmatore di
sistema
sistema operativo
3. Generalmente a corredo dell’hardware di un sistema
informatico viene fornito almeno un SO (esempi: MS Windows
XP, MS Windows Vista, Mac OS X, Linux, Unix)
livello del
sistema
operativo
4. Un tipico SO comprende programmi che
hardware
Daniela Fogli – Elementi di Informatica e Programmazione
1. gestiscono le risorse fisiche del sistema informatico
2. gestiscono in modo semplice l’interazione (interfaccia)
dell’utente con il sistema (ad es.: linguaggio ad icone, interfaccia a
livello fisico
finestre, ecc.)
3
Daniela Fogli – Elementi di Informatica e Programmazione
4
Più in generale
Funzioni del Sistema Operativo
Il SO offre la visione di una macchina astratta (o virtuale) più
potente e più semplice da utilizzare di quella fisicamente disponibile
(macchina fisica)
Applicazione
Richiede
servizi
Virtualizzazione dell’hardware (mascherandone i dettagli)
- periferiche
- CPU
- memoria centrale
Visione dall’alto
Gestione ottimale delle risorse (efficienza)
SO
Gestione della convivenza (più programmi in esecuzione e più
utenti):
- idealmente, ciascuno opera come se avesse a disposizione
l’intero sistema;
- d’altra parte, gestione delle interazioni tra programmi
in esecuzione (es: output utilizzato come input da un altro)
Visione dal basso
Gestisce
risorse
Gestione della sicurezza (riservatezza e integrità dei dati)
Daniela Fogli – Elementi di Informatica e Programmazione
5
Gli elementi di un SO (1)
6
Gli elementi di un SO (2)
Sistema di gestione della memoria di massa (file system)
Sistema di gestione dei processi (o del processore)
Archiviazione e reperimento dati utilizzando le periferiche che
costituiscono la memoria di massa
Definisce quali programmi sono da eseguire e quali compiti sono da
assegnare alla CPU
Sistema di interazione con gli utenti e gestione dei relativi
comandi (interprete comandi)
Sistema di gestione della memoria centrale
Controlla l’allocazione della memoria centrale assegnata ai diversi
programmi che possono essere contemporaneamente in esecuzione
Permette agli utenti di accedere in maniera semplice e intuitiva alle
funzionalità disponibili: linguaggio grafico, ad icone, a comandi (tipico
in DOS e UNIX)
Sistema di gestione delle periferiche
Sistema di gestione della rete
Garantisce l’accesso ai dispositivi di ingresso/uscita
Permette di interfacciarsi a risorse collegate via rete e di comunicare
con processi in esecuzione su altri calcolatori
Se ne parlerà nel contesto delle reti di calcolatori (prossime lezioni)
Maschera i dettagli di basso livello e gli eventuali conflitti che
possono sorgere nel caso di diverse richieste formulate da più
utenti/programmi ad uno stesso dispositivo “contemporaneamente”
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
7
Daniela Fogli – Elementi di Informatica e Programmazione
8
Qualche cenno sugli elementi del SO
Sistemi uniprogrammati (monotasking)
Sistemi uniprogrammati (ad es: MS DOS): in memoria centrale
Cominciamo a vedere il sistema di gestione dei
processi che ha un ruolo fondamentale nei sistemi
multiprogrammati (multitasking)
risiede un solo programma applicativo, oltre al SO
un solo programma in esecuzione in ogni istante
Uso inefficiente del sistema: durante le operazioni di
input/output con le periferiche la CPU rimane inattiva
elaborazione
attesa per operazioni di I/O
Tempo
Daniela Fogli – Elementi di Informatica e Programmazione
9
Sistemi multiprogrammati
(multitasking)
Programma:
entità statica composta dal codice eseguibile dal
processore
può contenere più programmi
Processo:
entità dinamica che corrisponde al programma in
esecuzione, composto da:
codice (= programma)
dati (in memoria e nei registri unità centrale)
stato
Progr. 1
Progr. 2
Tempo
elaborazione
attesa per operazioni di I/O
Daniela Fogli – Elementi di Informatica e Programmazione
10
Processo vs. Programma
Gli attuali SO (come MS Windows Vista e UNIX/Linux) sono
sistemi multiprogrammati: in ogni istante la memoria centrale
Progr. 3
Daniela Fogli – Elementi di Informatica e Programmazione
11
processo = programma + contesto di esecuzione
Daniela Fogli – Elementi di Informatica e Programmazione
12
Gestione dei processi in
“Time Sharing”
Tre stati: processi in “esecuzione”,
“pronti” ed in “attesa”
In ogni istante un processo può essere in uno dei seguenti stati:
Permette la condivisione della CPU tra più processi
in esecuzione da parte della CPU (un solo processo se vi è una
sola CPU)
in attesa di un evento esterno (ad esempio I/O da tastiera o su
schermo)
pronto ad essere eseguito ed in attesa del proprio quanto di
tempo CPU
Il tempo di CPU viene suddiviso in unità elementari
dette quanti di tempo
I quanti di tempo vengono assegnati ai processi dal
SO secondo opportune politiche (es. round-robin):
apparente parallelismo
I processi in attesa e i processi pronti sono messi in due code
distinte (contengono i descrittori dei processi, strutture dati
gestite dal sistema operativo che rappresentano il contesto:
Ogni processo in esecuzione ha a disposizione un
quanto di tempo di utilizzo della CPU, al termine del
quale viene sospeso per lasciare il posto ad un altro
processo in attesa di esecuzione
Daniela Fogli – Elementi di Informatica e Programmazione
identificativo processo, valori registri unità centrale, priorità,
risorse assegnate, ecc.)
Tipicamente per i processi pronti si usa una coda di tipo FIFO
(“First in First Out”)
Daniela Fogli – Elementi di Informatica e Programmazione
13
Transizioni di stato (1)
Transizioni tra gli stati di un processo
Processi
pronti
Completamento
operazione di I/O
(evento esterno atteso)
Termine quanto
di tempo
Processi
in attesa
(figura adattata del libro di testo: Sciuto et al. 2005)
Inizio
esecuzione
(accodamento
ai processi
pronti)
Pronto → Esecuzione
Termine
elaborazione
Selezione primo processo
pronto e sua esecuzione
Processo in
esecuzione
Richiesta
operazione di I/O
Daniela Fogli – Elementi di Informatica e Programmazione
14
15
Quando un programma deve essere “eseguito”, viene creato un
processo che viene posto in fondo alla coda dei processi pronti
Il SO stabilisce quale dei processi “pronti” debba essere
mandato in “esecuzione”, di solito estraendo il primo nella coda
dei “pronti”
Il processo rimane in esecuzione finché
termina il suo quanto di tempo
oppure richiede un’operazione di I/O
oppure è arrivato all’istruzione finale
P
E
A
Daniela Fogli – Elementi di Informatica e Programmazione
16
… se termina il quanto di tempo …
Transizioni di stato (2)
… attesa di un’operazione di I/O …
Transizioni di stato (3)
Esecuzione → Attesa
Esecuzione → Pronto
Il processo deve svolgere un’operazione di I/O che comporta
un notevole tempo di attesa: es. attende un evento per il
completamento dell’operazione (ad es. input da tastiera)
Termina il quanto di tempo ed il processo in “esecuzione” lascia
spazio a un altro processo “pronto”
Il SO salva tutte le informazioni per riprendere l’esecuzione del
processo dal punto in cui viene interrotta (ad es: salva il
contenuto dei registri di CPU) salvataggio del contesto
Il SO salva tutte le informazioni necessarie a riprendere
l’esecuzione e l’informazione relativa all’evento atteso
Contemporaneamente un altro processo passa da “pronto” a
“esecuzione”, ne viene ripristinato
il contesto se il processo era stato
precedentemente interrotto
P
P
E
A
A
Daniela Fogli – Elementi di Informatica e Programmazione
E
17
Daniela Fogli – Elementi di Informatica e Programmazione
18
Interruzioni, modo utente e modo
supervisore
Transizioni di stato (4)
Attesa → Pronto
Tre tipologie di interruzioni:
interne: generate da specifica istruzione macchina per realizzare una
chiamata di sistema (es. lettura da disco)
esterne: generate dai componenti fisici del sistema (es. tastiera)
per eccezione: segnalano situazioni eccezionali (es. errore sw,
guasto hw)
Si verifica l’evento esterno atteso dal processo ed il
SO sposta quel processo in fondo all coda dei
processi pronti
P
Le transizioni dei processi da uno stato all’altro che abbiamo visto
corrispondono a interruzioni interne o esterne
Una volta identificata l’interruzione, il sistema operativo salva il
contesto del programma interrotto ed esegue la procedura di
gestione dell’interruzione, ma al termine molto probabilmente non
ritornerà il controllo al processo interrotto ma al primo dei processi
pronti (sistema multiprogrammato)
E
A
Daniela Fogli – Elementi di Informatica e Programmazione
19
Daniela Fogli – Elementi di Informatica e Programmazione
20
Il meccanismo di protezione
sistema
operativo
Un passo indietro
modo supervisore
Quali proprietà fondamentali distinguono un
compilatore (o un interprete) da un altro?
Il linguaggio di alto livello
L’insieme delle istruzioni macchina (ISA)
(semplificando, il tipo di processore)
Il sistema operativo
interruzione
fine gestione
interruzione
modo utente
Nel modo supervisore, tutte le istruzioni macchina sono disponibili,
anche quelle cosiddette “privilegiate” (ad esempio quelle che
consentono di interagire direttamente con le periferiche)
Nel modo utente, non sono disponibili le istruzioni privilegiate
Il programmi del sistema operativo operano in modo supervisore, i
programmi applicativi in modo utente
Daniela Fogli – Elementi di Informatica e Programmazione
21
Un passo indietro: perché la traduzione
dipende dal sistema operativo
programma sorgente
COMPILATORE
22
Un passo indietro: perché la traduzione
dipende dal sistema operativo
programma sorgente
Dati
Pexe
Dati
INTERPRETE
chiamate di sistema
chiamate di sistema
SISTEMA
OPERATIVO
SISTEMA
OPERATIVO
instruction set
instruction set
HARDWARE
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
HARDWARE
23
Daniela Fogli – Elementi di Informatica e Programmazione
24
Sistema di gestione della memoria
Sistema di gestione della memoria
DISCO FISSO
Proc 1
Proc 1
Proc 2
MEMORIA
CENTRALE
Proc 2
MEMORIA
CENTRALE
Proc 3
La risorsa memoria centrale è
condivisibile (fra più processi)
Daniela Fogli – Elementi di Informatica e Programmazione
Un nuovo processo può nascere e necessita di memoria, un processo
può terminare e lasciare disponibile lo spazio allocato
25
Sistema di gestione della memoria
Proc 1
Daniela Fogli – Elementi di Informatica e Programmazione
26
Gestione periferiche I/O (1)
I processi e gli utenti accedono alle periferiche attraverso
comandi ad alto livello
L’accesso/controllo delle periferiche avviene attraverso
DISCO FISSO
Proc 5
i controller: dispositivi hardware il cui compito è ricevere
richieste di operazioni di input/output ed eseguirle
fisicamente
dipendono dalle caratteristiche fisiche delle periferiche
che gestiscono (ad es., il controller di una stampante è
diverso da quello del lettore di CD ROM)
i driver: programmi software integrati nel sistema
operativo per la gestione dei controller
mascherano le caratteristiche specifiche dei controller
forniscono un insieme di comandi per la gestione delle
operazioni di ingresso/uscita utilizzabili da altri
programmi inclusi nel sistema operativo
Proc 2
Proc 3
Proc 4
Proc 5
Gli spazi virtuali assegnati a ciascun processo possono essere in realtà
costituiti da segmenti logici non contigui. I contenuti delle porzioni
dedicate ad altri processi possono essere scaricate su disco se necessario
Daniela Fogli – Elementi di Informatica e Programmazione
Proc 3
Proc 4
Il gestore della memoria centrale rende disponibile a ciascun processo
una memoria virtuale interamente dedicata
MEMORIA
CENTRALE
DISCO FISSO
27
Daniela Fogli – Elementi di Informatica e Programmazione
28
Gestione periferiche I/O (2)
Sistema di gestione
della memoria di massa
I sistemi operativi includono i driver per la gestione
delle periferiche più comuni:
Detto anche file system
Obiettivo: presentare all’utente l’organizzazione logica dei
dati della memoria di massa e le operazioni che è possibile
compiere su di essi
tastiera, video, mouse, stampanti, …
Operazioni di base di un file system:
recupero di dati precedentemente memorizzati;
eliminazione (cancellazione) di dati obsoleti;
modifica/aggiornamento di dati preesistenti;
copia di dati (e.g. da HD a FD) per backup o per il
trasferimento verso altro calcolatore
I servizi vengono forniti sia ai programmi applicativi che
direttamente agli utenti
Ogni aggiunta o modifica alla configurazione standard
comporta l’installazione di software addizionale
ovvero di driver aggiuntivi
solitamente prodotti dalla casa costruttrice della periferica
(possono essere già disponibili sul CD del sistema operativo)
es: driver per gestire informazione acquisita con una
videocamera digitale ad alta definizione
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
29
Organizzazione del file system
30
Esempio
“radice”
Le informazioni vengono memorizzate in contenitori logici detti
archivi o più comunemente file
Un file è una sequenza di byte: può contenere un programma, un
insieme di dati, un testo, un’immagine
E’ caratterizzato da:
utenti
dispositivi
program mi
gioco.exe
Chiara
M ario
un nome simbolico solitamente costituito di due parti:
nome vero e proprio, assegnato dall’utente
estensione, associata al programma che ha generato il file e consente
gioco.exe
quindi di identificare la tipologia dei dati contenuti nel file (ad es. i file
Excel hanno estensione .xls)
un insieme di attributi (dimensione, data e ora di creazione,
permessi di lettura/scrittura/esecuzione, proprietario)
foto.jpg
I file sono generalmente organizzati in cartelle (directory) e
sottocartelle in una gerarchia ad albero (o a grafo aciclico: una
cartella o file può far parte di più cartelle)
Daniela Fogli – Elementi di Informatica e Programmazione
temporanei
testo.doc
Ogni file o cartella è individuato dal suo percorso assoluto (nome
completo – pathname), ovvero dai nomi dei nodi intervallati da ‘\’ seguiti
dal nome del file (es. \utenti\Mario\gioco.exe). Il pathname in pratica
identifica la posizione del file o della cartella all’interno dell’albero
31
Daniela Fogli – Elementi di Informatica e Programmazione
32
Interprete dei comandi
Interfaccia a comandi
Tutto si svolge a caratteri, l’utente deve conoscere la sintassi dei comandi
E’ un programma che in realtà si trova fuori del sistema operativo
a livello delle applicazioni (questo rende possibile utilizzare
diversi interpreti di comandi per uno stesso sistema operativo)
Rappresenta l’interfaccia del sistema operativo con gli
utenti
Viene attivato subito dopo l’accesso al sistema
Accetta comandi, li analizza, manda in esecuzione i programmi
richiesti
Fra i comandi ci sono quelli per la gestione dei file: l’utente non
interagisce direttamente con il file system ma lo fa attraverso
l’interprete dei comandi (creazione/cancellazione file/directory,
rinomina/copia/elencazione, ...)
L’utente deve conoscere la sintassi del linguaggio dei
comandi, per ovviare a questo problema interfacce grafiche
(Stone et al. 2005)
Daniela Fogli – Elementi di Informatica e Programmazione
33
Interfaccia grafica: Elementi principali
Il desktop come metafora
Stile WIMP (Window, Icon,
Menu, Pointer)
Icone associate a file,
directory, dischi, programmi …
Pulsanti e barre dei pulsanti
Finestre: cornici con strumenti
Menu di comandi (pull-down,
pop-up)
Mouse che muove un cursore
(Dix et al. 2004)
Cut & paste (copia e incolla)
Drag & drop (trascina e lascia)
Daniela Fogli – Elementi di Informatica e Programmazione
35
Daniela Fogli – Elementi di Informatica e Programmazione
34