Post on 01-May-2015
UTENTE
STRUTTURA DEL SISTEMA OPERATIVO
HARDWARE
LIVELLO N
LIVELLO N-1
LIVELLO 3
LIVELLO 2
Prog1LIVELLO 1
Prog2 Prog3
M1 Mn M1 M2 Mn M1
Gestione RAM
Gestione CPU
Gestione I/O
Esempi
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
La scelta del S.O. è dettata da:- se eseguire uno o più programmi utente contemporaneamente- uno o più utenti contemporaneamente gestiscono le risorse del computer
Sistema di elaborazione di riferimento
Risorse Hardware
I sistemi di elaborazione ad alte prestazioni possono possedere più CPU.S.O più complesso.
Sistemi Multiprocessori
Sistema di elaborazione di riferimento
Risorse Hardware
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
Un S.O. è composto da un insieme di programmi che, per essere eseguiti dalla CPU, devono essere allocati nella RAM, nella forma di codice macchina.
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MONOPROGRAMMATI
Un sistema viene detto monoprogrammato (o uniprogrammato) quando la sua memoria centrale contiene, in un dato istante, codice utente proveniente da un unico programma.
Il S.O. è sempre allocato in RAM, condivisa insieme ai programmi utente.
L’esecuzione di un’istruzione del programma utente comporta una chiamata di sistema (system call / routine di S.O.).
Esempio: richiesta d’accesso a qualche dispositivo
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MONOPROGRAMMATI
Un sistema viene detto monoprogrammato (o uniprogrammato) quando la sua memoria centrale contiene, in un dato istante, codice utente proveniente da un unico programma.
Il S.O. è sempre allocato in RAM, condivisa insieme ai programmi utente.
Quando si scrive un programma in C++ è il compilatore che genera il codice appropriato per il S.O. usato, diverso per Linux e Windows.
Nel programma C++ c’è almeno una chiamata al S.O.
Flusso di esecuzione quando un istruzione del programma utente attraversa la chiamata di sistema:- Chiamata di sistema del programma utente- Sospensione esecuzione programma- Salvataggio stato programma - Controllo S.O: Esecuzione della routine di sistema chiamata- Esecuzione del programma dall’istruzione successiva all’interruzione
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MONOPROGRAMMATI
Attività della CPU
• Esecuzione di istruzioni del programma utente• Esecuzione di istruzioni del sistema operativo• Inattività, per esempio quando la CPU attende un input da tastiera.
Si può dividere il tempo che intercorre tra l’inizio e la fine del programma in intervalli caratterizzati dalle diverse attività della CPU.
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MONOPROGRAMMATI
Attività della CPU
Un sistema di questo tipo non è efficiente nell’utilizzo della CPU.Si potrebbe utilizzare il tempo di inattività per far eseguire alla CPU programmi di utenti diversi.
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MULTIPROGRAMMATI
L’obiettivo è ottenere il massimo rendimento della CPU attraverso l’impiego dei tempi di inattività
S.O. più complicato rispetto alla monoprogrammazione.
- La CPU, nel tempo in cui non viene usata dal programma utente, viene adoperata per eseguire altri programmi, eventualmente di utenti diversi.
- Usare i meccanismi di sospensione dell’esecuzione, impiegati per le routine disistema, per permettere l’esecuzione anche di altri programmi utente.
L’obiettivo è raggiunto con i Sistemi Multiprogrammati
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MULTIPROGRAMMATI
Nuove funzioni richieste ai sistemi multiprogrammati
- Decidere quale istruzione far eseguire dopo quella attuale, se prelevandola dallo stesso programma o da un altro
- Garantire la mutua protezione tra i diversi programmi, per evitare che i dati di uno vengono inquinati dalle istruzioni dell’altro.
- Risolvere eventuali conflitti per l’assegnazione di una determinata risorsa
Più attività richieste al S.O. e più tempo macchina assegnato al S.O
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MULTIPROGRAMMATI
La multiprogrammazione si ottiene con il Time sharing
Si dice che una risorsa viene gestita in modo time sharing (a partizione ditempo), quando il suo uso viene concesso per un tempo che non può superare unmassimo: questo intervallo viene chiamato time slice (fetta o quanto di tempo).
Il Time sharing è un concetto che viene applicato ai singoli dispositivi.
Se la CPU di un sistema multiprogrammazione viene gestita in Time sharing, essa rimane assegnata a un programma utente fino a quando:
- Il programma utente termina- Il progr. U. chiede operazioni che coinvolgono altri dispositivi- Scade il time slice
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MULTIPROGRAMMATI
Se la CPU di un sistema multiprogrammazione viene gestita in Time sharing, essa rimane assegnata a un programma utente fino a quando:
- Il programma utente termina- Il progr. U. chiede operazioni che coinvolgono altri dispositivi- Scade il time slice
Appena accade un di questi eventi, il controllo passa al S.O. che effettua un cambiamento di contesto, ossia decide a quale tra gli altri programmi in RAM toccherà disporre della CPU per il prossimo time slice.
Il tempo necessario per prendere tale decisione si chiama tempo di assegnamento.
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MULTIPROGRAMMATI
Il tempo necessario per prendere tale decisione si chiama tempo di assegnamento.
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MULTIPROGRAMMATI
La modalità con cui il S.O. decide un cambiamento di contesto costituisce un esempio di politica di gestione.
Una politica di gestione semplice consiste nell’assegnamento round robin (a rotazione)
Progr. 1
Sistema Op.
RAM
P2 P3 P4
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MULTIPROGRAMMATI
E’ possibile che un S.O. usi meccanismi di priorità.
Programmi con priorità alta vengono eseguiti più velocemente:
- Concedendo un time slice più lungo- Assegnare più spesso la CPU
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
SISTEMI MULTIPROGRAMMATI
L’uso del time sharing della CPU permette di realizzare ambienti multiprogrammati o multiutente senza la necessità di disporre di diverse CPU.
Il S.O. attraverso il time sharing trasforma un singolo dispositivo fisico in molti dispositivi virtuali, disponibili in un tempo e prestazioni inferiore.
CLASSIFICAZIONE DEI S.O. DAL PUNTO DI VISTA DELL’UTENTE
- Sistemi dedicati - multitasking- Sistemi batch
- Sistemi interattivi multiutente- Sistemi per la gestione delle reti- Sistemi transazionali- Sistemi real time
CLASSIFICAZIONE DEI S.O. DAL PUNTO DI VISTA DELL’UTENTE
Prevedono l’utilizzo di un solo utente per volta.
Sistemi dedicati
Esempio:DOS (Disk Operating System). Sistema monoprogrammato
Sistemi dedicati più moderni supportano il multitasking:particolare multiprogrammazione nella quale più applicazioni (task: compiti) vengono eseguite contemporaneamente sulla stessa macchina scambiando tra loro dati e risultati.
CLASSIFICAZIONE DEI S.O. DAL PUNTO DI VISTA DELL’UTENTE
L’utente non interagisce con il calcolatore durante l’esecuzione dei programmi.
Sistemi batch (a lotti di lavoro)
Svantaggi:- non è possibile fornire i dati nel momento della richiesta- non è possibile ottenere risultati parziali- non è possibile avere messaggi di avvertimento o di errore
Vantaggi:- Sfruttamento intelligente delle risorse nei casi in cui l’intervento dell’operatore non è necessario
CLASSIFICAZIONE DEI S.O. DAL PUNTO DI VISTA DELL’UTENTE
Si ottengono con l’uso in time sharing della CPU
Sistemi interattivi multiutente
La risorsa CPU viene dedicata a ciascun utente a turno per un tempo stabilito.
Se questo è abbastanza breve, ogni utente ha la sensazione di lavorare su una macchina dedicata
In questo contesto di lavoro assumono importanza 2 parametri:- velocità operativa della CPU (MIPS: milioni di istruzione per secondo)- dimensione della memoria centrale
In questa modalità di lavoro occorre che: - gli utenti devono essere serviti in un tempo ragionevole- se gli utenti sono molti, occorre che i time slice siano brevi- i time slice, devono essere sempre molto più lunghi del tempo di riassegnamento, altrimenti tempo più lungo alla gestione rispetto al tempo dedicato agli utenti.
CLASSIFICAZIONE DEI S.O. DAL PUNTO DI VISTA DELL’UTENTE
Sistemi operativi orientati alle problematiche di - installazione- configurazione- amministrazione di computer connessi tra di loro anche a grandi distanze
Sistemi per la gestione delle reti
I problemi per realizzare questi sistemi operativi sono:- rispetto dei protocolli fissati come standard a livello internazionale- gestione degli utenti delle reti- condivisione delle risorse e dei dati in modo collaborativo- controllo degli accessi, protezione dei sistemi e attivazione dei meccanismi di sicurezza- integrazione delle reti aziendali (Intranet) con la rete Internet
I moderni S.O. di rete come Windows Server e Linux operano sull’architettura Client/Server.
CLASSIFICAZIONE DEI S.O. DAL PUNTO DI VISTA DELL’UTENTE
Tra i Sistemi operativi interattivi multiutente, evidenziamo i sistemi transazionali, strutturati in modi di gestire le transizioni (aggiornamento) delle basi di dati .Esempio di applicazioni gestionali di D.B.:- rete Bancomat- Borsa telematica- punti vendita grandi magazzini
Sistemi transazionali
CLASSIFICAZIONE DEI S.O. DAL PUNTO DI VISTA DELL’UTENTE
E’ un sistema che risponde istantaneamente agli stimolo provenienti dall’esterno.In un sitema real time, un elaborazione si può considerare corretta non solo quando fornisce risultati esatti, ma soprattutto quando li fornisce in tempo; ossia un risultato che arriva in ritardo è un risultato inutilizzabile e quindi errato.
Sistemi real time