Sistemi Operativi
Sommario della lezione
- Introduzione ai Sistemi Operativi
- Cenni Storici
- Classificazione
Perché studiare i SO
Non ci sono molti sistemi operativi in corso di sviluppo
E’ molto improbabile che sviluppiate un sistema operativo durante la vostra carriera professionale
… allora, perché si studiano?
Perché studiare i SO
- I SO sono dovunque – essi hanno la funzione primaria di gestire le risorse di calcolo.
- Un SO fornisce un’astrazione delle risorse… dando l’”illusione” all’utente di avere una memoria “infinita”, una CPU veloce, dedicata ad ogni utente.
- I SO forniscono un accesso uniforme (virtualizzato) a risorse estremamente eterogenee.
- I SO costituiscono il punto di incontro tra hardware e software.
- La conoscenza della struttura interna e dei principi di funzionamento di SO è indispensabile per la programmazione di sistema e permette di scrivere programmi più efficienti.
I Sistemi Operativi
Un Sistema Operativo (S.O.) è un insieme di programmi che operano sull’hardware di un calcolatore con l’obiettivo di:
- semplificare lo sviluppo di programmi
- realizzare politiche di gestione delle risorse hardware
Il Sistema Operativo si pone come interfaccia tra l’utente (o il software) e l’hardware, fornendone un’astrazione
I Sistemi Operativi
Il SO…
- … definisce una macchina virtuale (o estesa) e quindi un insieme di astrazioni che semplificano lo sviluppo delle applicazioni (ad es. il SO fornisce il concetto di FILE invece di quello di “insieme di byte memorizzati in un disco”)
- … realizza politiche di gestione delle risorse hardware definendo i criteri con cui assegnare una risorsa a fronte di più richieste concorrenti
Struttura di un Sistema di elaborazione
Struttura di un sistema di elaborazione
Struttura di un Sistema di elaborazione
Struttura di un sistema di elaborazione
Evoluzione dei SO …
… guidata dall’evoluzione dell’hardware.
Tabella del Fattore migliorativo
Un po’ di storia …
Prima fase: Hardware costoso, personale economico
- Utente alla console: sistemi “single-user”
- Sistemi Batch
- Sistemi Multiprogrammati
Seconda fase: Hw economico, personale costoso
- Sistemi Time-sharing (utenti che utilizzano un terminale economico per collegarsi ad un server condiviso)
Un po’ di storia …
Terza fase: Hw molto economico, personale molto costoso
- Personal Computing: un sistema per utente
- Distributed Computing: tanti sistemi per utente
Quarta fase: Servizi a maggiore qualità
- Sistemi Operativi Real-Time
- Sistemi transazionali
Single User System
- SO = loader + librerie di procedure comuni
- Svantaggio: bassa percentuale di utilizzo di risorse hardware (costose)
Stima della percentuale di utilizzo
Batch System (sist. a lotti)
- Privilegiano lo sfruttamento del sistema a prezzo dell’assenza di interazione da parte dell’utente, che deve fornire in via preliminare il suo lavoro.
- I lavori sono raggruppati in lotti e memorizzati su supporto magnetico.
- Il S.O. gestisce l’avanzamento sequenziale dei singoli lavori.
- Le unità di ingresso/uscita sono virtualizzate (spooling)
Batch System (sist. a lotti)
- SO = loader + sequenziatore + processore di output.
- Vantaggi: la macchina è meglio sfruttata grazie alla assenza di interazione con l’utente. Le operazioni di I/O sono più veloci.
- Svantaggi: l’utente può anche attendere ore o giorni per avere i risultati del proprio lavoro.
Sistemi monoprogrammati
Il processore deve attendere per il completamento delle istruzioni di I/O prima di procedere.
Sistemi batch multiprogrammati
- Diversi job sono caricati in memoria contemporaneamente e la CPU viene alternativamente assegnata a ciascuno di essi.
- Quando un Job deve attendere un’operazione di I/O, la CPU viene assegnata ad un altro job.
- Richiede qualche forma di gestione della memoria e di scheduling della CPU.
- l’hardware deve supportare gli interrupt di I/O e il DMA.
Sistemi batch multiprogrammati
Multiprogrammazione
Quando un lotto ha bisogno di attendere il completamento di un’operazione di I/O, il processore può essere assegnato ad un altro lotto.
Multiprogrammazione a due programmi
Multiprogrammazione
Multiprogrammazione a tre programmi
Effetti della Multiprogrammazione
Tabelli sugli effetti della multiprogrammazione
Time Sharing
- Utilizza la multiprogrammazione per la gestione di un gruppo di task interattivi.
- Il tempo del Processore è condiviso tra più utenti.
- Più utenti accedono al sistema connettendosi simultaneamente da più terminali.
- Vantaggio: l’utente opera come con un sistema dedicato.
- Svantaggio: l’overhead introdotto dal S.O.
Sistemi Timesharing
Un “timer interrupt” è utilizzato per la condivisione della CPU.
Batch Multiprogramming versus Time Sharing
Personal Computing
Personal Computing System
- Tipicamente single user
- L’utilizzazione delle risorse non è un obiettivo di primaria importanza
- Enfasi su API e user interface
Evoluzione
- Inizialmente: il SO era un semplice fornitore di servizi (cfr. DOS che era a tutti gli effetti un gestore di interruzioni)
- Attualmente: Sistemi multitasking e multiutente
Sistemi Transazionali
- Trattasi di sistemi interattivi destinati ad eseguire transazioni, ossia sequenze di operazioni elementari che richiedono l’esecuzione ciascuna di un programma o di una sua parte.
- In un sistema transazionale l’utente interroga ed aggiorna archivi.
- Tutti gli utenti operano sugli stessi archivi e richiedono l’esecuzione delle stesse operazioni elementari, fornendo i propri dati.
Sistemi in tempo Reale
Il sistema in tempo reale è un sistema la cui correttezza dipende dalla velocità di esecuzione dei task.
Tipicamente sono sistemi che gestiscono programmi che interagiscono con l’ambiente esterno attraverso periferiche e che garantiscono ai dati di ingresso risposte in un tempo utile rispetto alle costanti di tempo proprie dell’ambiente esterno.
Il tempo utile dipende dall’applicazione e quindi dall’ambiente esterno.
Sistemi in tempo Reale
Introducono nuovi concetti e nuove problematiche
- Sistemi con un “doppio” concetto di correttezza:
- Logica (” it does the right thing” )
- Temporale (“it does it on time”)
Tipicamente sono sistemi in cui la proprietà di “predictability” è molto più importante delle “performance”
Prossima lezione
Richiami