Sistemi Operativi - Dipartimento di Informatica

Informatica
Sistemi operativi
Sistemi Operativi
1
Informatica
Sistemi operativi
L’Evoluzione dei Sistemi Operativi
 Sistemi a processore singolo degli anni ‘40 e ’50 che
eseguivano job.
 I job prevedevano il caricamento da nastri, l’inserimento
di schede perforate e la configurazione del macchinario.
 Il computer era sotto il controllo di un singolo utente che
eseguiva il job.
 L’operatore era responsabile giorno per giorno delle
operazioni da eseguire al computer.
2
Informatica
Sistemi operativi
I programmi venivano eseguiti …
… da code batch, dove venivano precedentemente
inseriti; una struttura di immagazzinamento che serviva
ad aggiungere e rimuovere i job secondo una politica
FIFO (first-in, first-out).
 I job erano accoppiati al JCL (Job Control Language).
 Il JCL si preoccupava delle operazioni che precedevano
e seguivano l’esecuzione del programma, come il
caricamento da nastro e la lettura dei dati dalle schede
perforate.
3
Informatica
Sistemi operativi
Processamento Batch
4
Informatica
Sistemi operativi
Il problema principale di questo paradigma …
… è che l’utente non ha alcuna interazione con il
computer: un volta che il job era stato sottomesso, non
poteva più farci nulla!
 Come fare con programmi come: word processors?
Giochi? In generale, con programmi che richiedono
continuamente nuovo Input (fortemente interattivi)?
5
Informatica
Sistemi operativi
Necessità dei Sistemi Operativi moderni
 Implementazione di processi interattivi: I programmi
possono interagire con l’utente attraverso terminali o
workstation.
 Questo tipo di coordinamento tra computer e
applicazioni è chiamato real-time processing.
6
Informatica
Sistemi operativi
Esecuzione interattiva
7
Informatica
Sistemi operativi
Esecuzione in Real Time
 Vantaggi
 Un utente può interagire direttamente con il computer.
 Intervento dell’operatore meno essenziale.
 Svantaggi
 Le macchine sono più costose
 Devono servire più di un utente contemporaneamente.
8
Informatica
Sistemi operativi
Time-sharing
 Il Time-sharing divide il tempo che un processore di un
computer dedica all’esecuzione di un programma in
intervalli
 Ogni programma ottiene il proprio time slice (quanto).
 Il SO alterna i programmi tra di loro dando ”l’illusione”
che più di un programma viene eseguito
contemporaneamente: multitasking.
9
Informatica
Sistemi operativi
Architettura dei sistemi operativi
10
Informatica
Sistemi operativi
Software di sistema
 Fornisce l’ambiente o l’infrastruttura per eseguire le
applicazioni.
 Software di Sistema:
 Di Utilità: programmi che sono fondamentali ma che non
fanno parte del sistema operativo.
 “estendono” le funzionalità del sistema operativo.
 Esempio: backup, rete, copia file (masterizzazione),
telecomunicazione.
 Sistema Operativo.
11
Informatica
Sistemi operativi
Differenze tra software applicativo e di
utilità
 A volte è difficile da stabilirle.
 Come fare?
 Regola generale (buon senso): Se è d’accompagnamento
con il SO allora non è software applicativo.
12
Informatica
Sistemi operativi
Architettura dei sistemi operativi
 Visione "a strati" delle componenti hardware e software
che compongono un elaboratore:
Informatica
Sistemi operativi
Architettura dei sistemi operativi
Cos'è l'architettura di un sistema operativo?
 descrive quali sono le varie componenti del S.O. e come
queste sono collegate fra loro
 i vari sistemi operativi sono molto diversi l'uno dall'altro nella
loro architettura
 la progettazione dell'architettura è un problema
fondamentale
L'architettura di un S.O. da diversi punti di vista:
 servizi forniti (visione utente)
 interfaccia di sistema (visione programmatore)
 componenti del sistema (visione progettista S.O.)
Informatica
Sistemi operativi
S.O. come macchina estesa
 Servizi estesi offerti da un S.O.:






esecuzione di programmi
accesso semplificato ai dispositivi di I/O
accesso controllato a dispositivi, file system, etc.
accesso al sistema
rilevazione e risposta agli errori
accounting
Informatica
Sistemi operativi
Componenti di un sistema operativo
 Gestione dei processi
 Gestione della memoria principale
 Gestione della memoria secondaria
 Gestione file system
 Gestione dei dispositivi di I/O
 Protezione
 Networking
 Interprete dei comandi
Informatica
Sistemi operativi
Gestione dei processi
 Un processo è un programma in esecuzione
 Un processo utilizza le risorse fornite dal computer per
assolvere i propri compiti
 Il sistema operativo è responsabile delle seguenti attività
riguardanti la gestione dei processi:





creazione e terminazione dei processi
sospensione e riattivazione dei processi
gestione dei deadlock
comunicazione tra processi
sincronizzazione tra processi
Informatica
Sistemi operativi
Gestione della memoria principale
 La memoria principale
 è 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:
 tenere traccia di quali parti della memoria sono usate e da chi
 decidere quali processi caricare quando diventa disponibile
spazio in memoria
 allocare e deallocare lo spazio di memoria quando necessario
Informatica
Sistemi operativi
Gestione della 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, etc.
 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)
Informatica
Sistemi operativi
Gestione del file system
 Un file è l'astrazione informatica di un archivio di dati
 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




Creazione e cancellazione di file
Creazione e cancellazione di directory
Manipolazione di file e directory
Codifica del file system sulla memoria secondaria
Informatica
Sistemi operativi
Gestione dell'I/O
 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
 Che cos'è un device driver?
Informatica
Sistemi operativi
Device Driver
 In informatica, è detto driver l'insieme di procedure che permette
ad un sistema operativo di pilotare un dispositivo hardware.
 Il driver permette al sistema operativo di utilizzare l'hardware senza
sapere come esso funzioni, ma dialogandoci attraverso
un'interfaccia standard, i registri del controllore della periferica, che
astrae dall'implementazione dell'hardware e che ne considera solo
il funzionamento logico. In questo modo hardware diverso costruito
da produttori diversi può essere utilizzato in modo intercambiabile.
 Ne consegue che un driver è specifico sia dal punto di vista
dell'hardware che pilota, sia dal punto di vista del sistema
operativo per cui è scritto. Non è possibile utilizzare driver scritti per
un sistema operativo su uno differente, perché l'interfaccia è
generalmente diversa.
Informatica
Sistemi operativi
Device Driver
 Il driver è scritto solitamente dal produttore del dispositivo
hardware, dato che è necessaria un'approfondita
conoscenza dell'hardware per poter scrivere un driver
funzionante. A volte, i driver vengono scritti da terze parti
sulla base della documentazione tecnica rilasciata dal
produttore, se questa è disponibile.
Informatica
Sistemi operativi
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:
 Distinguere tra uso autorizzato o non autorizzato
 Specificare i controlli che devono essere imposti
 Fornire un meccanismo di attuazione della protezione
Informatica
Networking
 Consente
 di far comunicare due o più elaboratori
 di condividere risorse
 Quali servizi






protocolli di comunicazione a basso livello
TCP/IP
UDP
Servizi di comunicazione ad alto livello
File system distribuiti (NFS, SMB)
Print spooler
Sistemi operativi
Informatica
Sistemi operativi
Interprete dei comandi (shell)
 Interfaccia utente - S.O.
 attivare un programma, terminare un programma, etc.
 interagire con le componenti del sistema operativo (file
system)
 Può essere:
 grafica (a finestre, icone, etc.) detta GUI
 testuale (linea di comando)
 Cambia il "linguaggio" utilizzato, ma il concetto è lo
stesso vi sono però differenze di espressività
Informatica
Sistemi operativi
Le GUI in genere hanno un Window
Manager.
 Funzioni fondamentali:
 Gestione dell’allocazione dello schermo e manipolazione
delle finestre.
 Interazione con i programmi basati sulle finestre.
 Gestione del mouse e della tastiera (tramite interrupt)
27
Informatica
Sistemi operativi
Programmi di sistema
 Manipolazione file
 creazione, cancellazione, copia, rinomina, stampa, dump
 Informazione di stato del sistema
 data, ora, quantità di memoria disponibile, numero di utenti
 Modifica file
 editor (file testo e binari)
 Supporto per linguaggi di programmazione
 compilatori, interpreti, assemblatori
 Esecuzione di programmi
 caricatori, debugger
 Comunicazione
 strumenti per operare con elaboratori remoti, scambiare dati
Informatica
Sistemi operativi
Il Kernel
 Il Kernel è quella parte del SO che fornisce tutte le
funzionalità fondamentali:
 Il File Manager gestisce i file e le cartelle/sottocartelle
 I Device Drivers sono responsabili dell’interazione con i
dispositivi come l’hard drive, il modem e la stampante.
 Il Memory Manager coordinata il computer e gestisce la
mermoria.
 Lo Scheduler determina quale attività il SO deve eseguire.
 Il Dispatcher controlla l’assegnazione dei quanti di tempo a
tali attività.
29
Informatica
Sistemi operativi
Quando il computer viene accesso, il SO deve
essere avviato (boot strapped – booted).
 La CPU legge la prima istruzione da una Read-Only Memory (ROM).
Questa istruzione appartiene al processo di bootstrap.
 Il bootstrap istruisce il computer su come caricare il SO dalla
memoria di massa alla RAM, da dove l’esecuzione del SO può
iniziare.
 La ROM contiene anche il BIOS (Basic Input Output System) che
istruisce il computer ad alcune interazioni base con l’utente e con
le periferiche in caso di intervento diretto durante la fase di
bootstrap
 Nei computer moderni la ROM non è veramente di sola lettura: è
una memoria flash che consente qualche riscrittura (e.g., EEPROM –
Electrically Erasable ROM)
30
Informatica
Sistemi operativi
Il processo di booting
31
Informatica
Sistemi operativi
Scheduler e Dispatcher
I task (le attività) associate a questo processo di
coordinamento sono gestite dallo scheduler e dal
dispatcher.
 Lo scheduler mantiene una tabella dei processi che
contiene le informazioni relative ad ogni processo
attualmente in esecuzione.
 Ogni processo ha uno stato che può essere Pronto, in
Esecuzione, o in attesa.
32
Informatica
Sistemi operativi
Il dispatcher si assicura che i singoli
processi vengano effettivamente eseguiti
 Gestisce la CPU in quanti di tempo e scambia i processi
secondo il loro turno di esecuzione.
 Process switch (commutazione del processo) o task
switch (commutazione dell’attività).
33
Informatica
Sistemi operativi
La suddivisione temporale è gestita dagli
interrupt.
 Gli interrupt sono dei segnali generati da un timer che
comunica al dispatcher che è giunto il momento per un
task switch.
 La CPU si ferma da quello che sta facendo (dopo aver
fatto terminare il ciclo macchina corrente) ed esegue
l’appropriato interrupt handler.
 Il gestore dell’interrupt è parte del dispatcher!
34
Informatica
Sistemi operativi
Il dispatcher ottiene dallo scheduler l’informazione
sul prossimo processo da eseguire
 Lo stato del processo che deve essere eseguito viene
caricato in memoria e l’esecuzione parte dal prossimo
intervallo quantico.
 Funziona solo se è possibile ricreare l’ambiente esistente
prima dell’interrupt!
35
Informatica
Sistemi operativi
Time-sharing tra i processi A e B
36