Sistema Operativo e Applicativi
Modulo di Informatica Dott.sa Sara Zuppiroli
A.A. 2012-2013
Software
Conosciamo due classi di software:
Programmi Applicativi Sistemi Operativi
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
· · ·
Il Sistema Operativo
Definizione e tipi di SO Le funzionalità di un SO Come macchina astratta
SO e interazioni con gli utenti
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.
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
2002-2005 Renzo Davoli, Alberto Montresorc
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.
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
Una similitudine per i SO Batch
Ristorante Sistema Informativo
La cassa della banca è composto da un cassiere, da un cliente, da risorse materiali (carta, denaro, ecc..)
Fila degli Utenti Programmi
Il cassiere per gestire ogni utente deve svolgere una procedura che dipende dalla richiesta dell’utente
Strumenti Tecnologia
Carta, denaro, cassaforte, moduli, ecc...
Preparazione Processo in se- quenza
La procedura viene eseguita compiendo una serie di operazioni stabilite, in un certo ordine
Cassiere
Sistema Opera- tivo
Esegue e gestisce le risorse in modo tale da soddisfare un utente di seguito all’altro
Una similitudine per i SO multi-programmati
Ristorante Sistema Informativo
Il ristorante è composto di risorse umane addette alle comande (camerieri), da cuo- chi, da risorse materiali (cucina, strumenti, ecc..), da un menù
Menù e piatti del giorno
Programmi
Il menù propone il nome di tutti possibili piatti del ristorante
Strumenti Tecnologia
Ciotola, fornello, forno, padella antiaderen- te, forchetta, cucchiaio di legno, lavapiatti, ecc..
Preparazione Processi e Coe- renza
La preparazione dei piatti gestendo le ri- sorse in maniera coerente ed efficiente, nel rispetto dei tempi di attesa degli utenti
Cuoco
Sistema Opera- tivo
Esegue e gestisce le risorse in modo tale da soddisfare nel minor tempo possibile il maggior numero di utenti
Le altre similutidini
SO multiprocessore SO Realtime
Il sistema operativo
Definizione e tipi di SO Le funzionalità di un SO Come macchina astratta
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
2002-2005 Renzo Davoli, Alberto Montresorc
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 creazione e terminazione dei processi
I sospensione e riattivazione dei processi
I gestione dei deadlock
I comunicazione tra processi
I sincronizzazione tra processi
2002-2005 Renzo Davoli, Alberto Montresorc
Stati di un processo
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 new: Il processo è creato
I running: Il processo è in esecuzione
I waiting: Il processo è in attesa di un evento
I ready: Il processo è pronto per essere eseguito (è in coda)
I termiated: Il processo ha finito la sua esecuzione/o è stata forzata la sua interruzione
Eventi
Ogni processo durante la sua vita alterna gli stati al determinarsi di un evento:
I admited:Il processo creato è inserito in coda
I scheduler dispatch: lo scheduler assegna al processo il processore
I interrupt: è un segnale di interruzione dell’esecuzione del processo per poter usare la CPU
I 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 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
I exit: il processo termina
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 In base all’ordine di arrivo (FIFO: first in first out)
I In base alla priorità
I In base al tempo di esecuzione
I ecc..
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 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.
I 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.
Gestione della memoria principale
La memoria principale:
I è un array di byte indirizzabili singolarmente.
I è 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 tenere traccia di quali parti della memoria sono usate e da chi
I decidere quali processi caricare quando diventa disponibile spazio in memoria
I allocare e de allocare lo spazio di memoria quando necessario
2002-2005 Renzo Davoli, Alberto Montresorc
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)
2002-2005 Renzo Davoli, Alberto Montresorc
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 Creazione e cancellazione di file
I Creazione e cancellazione di directory
I Manipolazione di file e directory
I Codifica del file system sulla memoria secondaria
2002-2005 Renzo Davoli, Alberto Montresorc
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.
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
2002-2005 Renzo Davoli, Alberto Montresorc
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 Distinguere tra uso autorizzato o non autorizzato
I Specificare i controlli che devono essere imposti
I Fornire un meccanismo di attuazione della protezione
2002-2005 Renzo Davoli, Alberto Montresorc
Protezione della memoria
Dai SO multi-programmati in avanti: ogni processo ha un suo spazio di indirizzi:
I è necessario impedire al processo di accedere ad aree di memoria esterne al proprio spazio (ad es., del S.O. oppure di altri processi).
I se fosse consentito: un programma potrebbe modificare codice e dati di altri programmi o del S.O.
Gestione della protezione
Per garantire protezione, molte architetture prevedono un duplice modo di funzionamento (dual mode):
I user mode:
F 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
I kernel mode: si possono gestire istruzioni critiche:
F accesso a dispositivi di I/O
F gestione della memoria
F arresto del sistema
Networking
Consente
I Di far comunicare due o più elaboratori
I Di condividere risorse
Quali servizi:
I Protocolli di comunicazione a basso livello
I TCP/IP
I UDP
2002-2005 Renzo Davoli, Alberto Montresorc
Interfaccia utente - S.O.
Interprete dei comandi permette di:
I attivare un programma, terminare un programma
I interagire con le componenti del sistema operativo (file system)
Può essere:
I grafica (a finestre, icone, etc.)
I testuale (linea di comando)
2002-2005 Renzo Davoli, Alberto Montresorc
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
2002-2005 Renzo Davoli, Alberto Montresorc
System call
Le system call sono specifiche dei vari S.O.:
Il Sistema Operativo
Definizione e tipi di SO Le funzionalità di un SO Come macchina astratta
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.
SO e interazioni con gli utenti
Conclusione
Cosa è il SO?
Le funzionalità di un SO?
Dove si colloca nella struttura a livelli?