sistemi operativi - di.unito.itschi/informaticagiuristi/04-sistemi operativi.pdf · necessità dei...
TRANSCRIPT
Sistemi Operativi
1
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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
Sistemi operativiInformatica
Processamento Batch
4
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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
Sistemi operativiInformatica
Esecuzione interattiva
7
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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
Sistemi operativiInformatica
Architettura dei sistemi operativi
10
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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
Sistemi operativiInformatica
Architettura dei sistemi operativi
Visione "a strati" delle componenti hardware e software che compongono un elaboratore:
Sistemi operativiInformatica
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.)
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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)
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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?
Sistemi operativiInformatica
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.
Sistemi operativiInformatica
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.
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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 operativiInformatica
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à
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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
Sistemi operativiInformatica
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
Sistemi operativiInformatica
Il processo di booting
31
Sistemi operativiInformatica
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
Sistemi operativiInformatica
Il dispatcher si assicura che i singoliprocessi vengano effettivamente eseguiti
Gestisce la CPU in quanti di tempo e scambia i processisecondo il loro turno di esecuzione.
Process switch (commutazione del processo) o task switch (commutazione dell’attività).
33
Sistemi operativiInformatica
La suddivisione temporale è gestita dagliinterrupt.
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
Sistemi operativiInformatica
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!
Sistemi operativiInformatica
35
Time-sharing tra i processi A e B
36
Sistemi operativiInformatica