I primi elaboratori Anni ‘50 Rigidamente sequenziali non consentono uno sfruttamento buono delle risorse del sistema
Alcune considerazioni + Software di gestione + hardware ma sequenzialità a livello di singola unità hardware processori hardware (CPU, Canali) sistema delle interruzioni supervisore memoria centrale (di grossa capacità) rilocazione dinamica
Parallelismo e concorrenza Il superamento della stretta sequenzialità di un sistema avviene mediante due tecniche spesso coesistenti in un sistema calcolatore: parallelismo concorrenza
Parallelismo Due o più azioni si sviluppano in parallelo se vengono eseguite nel medesimo istante Esempio Elaborazione Lettura Unità centrale Canale I/O
Concorrenza Due o più processi si dicono concorrenti se in un intervallo di tempo avanzano su un medesimo processore supervisore sistema delle interruzioni
Esempio Prog. A Superv. Prog. B 1 4 2 3 6 5 = Tc/Ta
Tecniche di gestione di un elaboratore Una prima classificazione monoprogrammazione multiprogrammazione multielaborazione
U.C. I/O ta tb tc td
Sistema monoprogrammato Gestisce in maniera sequenziale nel tempo i diversi programmi. Si definiscono: coefficiente di utilizzazione dell’unità centrale c=[(tb-ta)+(td-tc)] / (td-ta) coefficiente di utilizzazione del canale di I/O I/O= (tc-tb) / (td-ta)
Sistema multiprogrammato Gestisce simultaneamente più programmi indipendenti Il S.O. attribuisce dinamicamente i programmi ai processori indipendenti unità centrale canale I/O n°1 … canale I/O n°n
Passo 1 Passo 2 Passo 3 Lavoro di utente Processo 1 Processo 2 Correzione compilazione esecuzione Processo 1 Processo 2 Processo N ... Passi: sequenziali Processi: azioni elaborative parzialmente autonome in cui è suddiviso un passo. Lettura Elaboraz. Stampa La multiprogrammazione è eseguita a livello di processi appartenenti a lavori distinti
Modalità di gestione consentite dal parallelismo e dalla concorrenza Batch (lotti) locale batch remoto time sharing (divisione di tempo) real time funzionamento interattivo
Avanzamento di processi in un sistema batch multiprogrammato CPU File input File output 3 programmi: 1 2 3
Sistema multielaborazione (multiprocessore) Sistema multiprogrammato con più di un’unità centrale Risorse: unità centrale 1 unità centrale 2 canali di I/O utile anche per la continuità di servizio
Obiettivo: sfruttamento ottimale delle risorse Batch locale Obiettivo: sfruttamento ottimale delle risorse N = MAX N: numero di lavori eseguiti nell’unità di tempo Assortimento del lotto lavori CPU bound lavori I/O bound Priorità definita dall’utente modificata dal S.O.
Analogo a batch locale con terminali remoti terminale: Batch remoto Analogo a batch locale con terminali remoti terminale: ingresso: programmi, dati uscita: risultati
Limitazioni: memoria, archivi, linguaggi Time sharing Obiettivo: servire simultaneamente più utenti dedicando a ciascuno di essi tutte le risorse hardware e software disponibili Limitazioni: memoria, archivi, linguaggi t t t t ... Prog 1 Prog 2 Prog 3 Prog N T = tempo di ciclo
Obiettivo: fornire i risultati entro uno specifico tempo limite Real time Obiettivo: fornire i risultati entro uno specifico tempo limite definizione: tempo si risposta del sistema r T Elab. centrale Trasm. Elab. Trasm. Risult. r r: richiesta di elaborazione
Applicazioni in tempo reale per controllo di processo Real time: esempi Applicazioni in tempo reale per controllo di processo < tempo limite prefissato Applicazioni in tempo reale di tipo gestionale
Sistemi interattivi (conversazionali) È previsto un colloquio continuo tra l’utente e l’elaboratore in tempo reale è giustificata solo se applicata per una pluralità di utenti ambiti di applicazione: didattica progettistica
Software di base Sottoprogrammi di sistema sottoprogrammi di linguaggio
Esempi Caricatori traduttori sottoprogrammi di I/O gestione archivi spooling dump di memoria trace correzione Dump di memoria di massa copia archivi biblioteche sottoprogrammi biblioteche programmi ...
Altri programmi del software di base Sottoprogrammi per la gestione delle interruzioni sono sottoprogrammi che vengono attivati ogni volta che si verificano condizioni che richiedono la sospensione momentanea o definitiva dell’esecuzione in corso
Sottop. per la gestione delle int.: compiti Individuano la causa dell’interruzione avviano le operazioni richieste dall’interruzione stessa provvedono, ove necessario, alle segnalazioni verso l’esterno
Sottop. per la gestione delle int.: esempio Errori nella trasmissione fra unità periferiche e unità centrale overflow, divisione per zero malfunzionamenti hardware condizioni anomale sulle unità periferiche serbatoi di schede vuoti ecc.
Sottop. per la gestione delle interruzioni Ogni volta che si verificano tali situazioni vengono generati dalla circuiteria appositi segnali di interruzione se tali interruzioni sono abilitate vengono attivati i programmi per la gestione delle interruzioni
Controllo delle operazioni di I/O Intervento dell’operatore dal tavolo di comando richieste dalle unità periferiche (utilizzazione dei tempi morti nelle operazioni di I/O) ...
Gestione del sistema Gestisce efficacemente le risorse hardware del sistema (memoria, unità centrale, unità periferica) sottoprogrammi di interruzione driver di I/O pianificazione e allocazione memoria caricatori pianificazione e avanzamento lavori (multiprogrammazione) … supervisore
Lancia l’esecuzione dei diversi processi sui relativi processori Supervisore Lancia l’esecuzione dei diversi processi sui relativi processori eventi che producono l’intervento del supervisore termine operazioni di I/O richiesta utilizzo di canale scadere di un certo intervallo di tempo
Gestione dei lavori Effettua la schedulazione, il coordinamento dell’esecuzione e la fatturazione dei lavori. È interprete tra S.O. e utente interprete JCL (job control language) schedulatore spooling
Provvede ad un efficiente e flessibile impiego delle memorie di massa Gestione dei dati Provvede ad un efficiente e flessibile impiego delle memorie di massa assegnazione di archivi a supporti fisici controllo errori di I/O pianificazione dell’impiego dei canali
adoperano i sottoprogrammi di I/O di sistema: driver trascodifica di linguaggio: interpretazione del formato Gestione archivi consentono l’impiego di notazioni simboliche assegnazione dei file registrazione su file ricerca informazioni su file adoperano i sottoprogrammi di I/O
Linguaggio di comando (JCL: job control language) Il linguaggio con il quale l’utente si rivolge alla macchina virtuale hardware + software comandi dati
Schema di un Sistema Operativo Prog. utilità Biblioteca Traduttori Gestione delle Interruzioni Supervisore Caricat. Di Sistema Pian.Memor. Caricatori Gestione sistema Drivers . Schedulat. Interprete Spooling Lavori JCL Assegniaz. File Pianificazione Controllo Canali Errori dati