Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei...

36
Sistemi Operativi 1 Sistemi operativi Informatica

Transcript of Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei...

Page 1: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

Sistemi Operativi

1

Sistemi operativiInformatica

Page 2: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 3: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 4: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

Processamento Batch

4

Sistemi operativiInformatica

Page 5: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 6: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 7: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

Esecuzione interattiva

7

Sistemi operativiInformatica

Page 8: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 9: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 10: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

Architettura dei sistemi operativi

10

Sistemi operativiInformatica

Page 11: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 12: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 13: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

Architettura dei sistemi operativi

Visione "a strati" delle componenti hardware e software che compongono un elaboratore:

Sistemi operativiInformatica

Page 14: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 15: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 16: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 17: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 18: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 19: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 20: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 21: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 22: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 23: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 24: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 25: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 26: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 27: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 28: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 29: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 30: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 31: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

Il processo di booting

31

Sistemi operativiInformatica

Page 32: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 33: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 34: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 35: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

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

Page 36: Sistemi Operativi - di.unito.itschi/informaticagiuristi/04-Sistemi Operativi.pdf · Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono

Time-sharing tra i processi A e B

36

Sistemi operativiInformatica