sistemi monoprogrammati e multiprogrammati

STRUTTURA DEL SISTEMA OPERATIVO
UTENTE
LIVELLO N
Esempi
LIVELLO N-1
Gestione RAM
Gestione CPU
LIVELLO 3
Gestione I/O
LIVELLO 2
Prog1
Prog2
M1
M1
Mn
M2
Prog3
Mn
HARDWARE
M1
LIVELLO 1
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
Sistemi Multiprocessori
I sistemi di elaborazione ad alte prestazioni possono possedere più CPU.
S.O più complesso.
SISTEMI MONOPROGRAMMATI E MULTIPROGRAMMATI
Sistema di elaborazione di riferimento
Risorse Hardware
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
Si può dividere il tempo che intercorre tra l’inizio e la fine del programma in intervalli
caratterizzati dalle diverse attività della CPU.
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.
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 di
sistema, 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 di
tempo), quando il suo uso viene concesso per un tempo che non può superare un
massimo: 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)
RAM
Sistema Op.
P2
Progr. 1
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
Sistemi dedicati
Prevedono l’utilizzo di un solo utente per volta.
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
Sistemi batch (a lotti di lavoro)
L’utente non interagisce con il calcolatore durante l’esecuzione dei programmi.
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
Sistemi interattivi multiutente
Si ottengono con l’uso in time sharing della CPU
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 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.
In questo contesto di lavoro assumono importanza 2 parametri:
- velocità operativa della CPU (MIPS: milioni di istruzione per secondo)
- dimensione della memoria centrale
CLASSIFICAZIONE DEI S.O. DAL PUNTO DI VISTA DELL’UTENTE
Sistemi per la gestione delle reti
Sistemi operativi orientati alle problematiche di
- installazione
- configurazione
- amministrazione
di computer connessi tra di loro anche a grandi distanze
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
Sistemi transazionali
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
CLASSIFICAZIONE DEI S.O. DAL PUNTO DI VISTA DELL’UTENTE
Sistemi real time
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.