Cosa è un Sistema Operativo (S.O.) Modulo software costituito da un insieme di programmi per: permettere all'utente l'uso dell'elaboratore senza la conoscenza approfondita dell'hardware : S.O. supporto all'utente realizzare l'integrazione, l'ottimizzazione e la sincronizzazione della comunicazioni tra le componenti hardware :S.O. come gestore delle risorse Sia il programmatore che l'utente preferiscono trattare con una ASTRAZIONE della macchina reale . Il S.O. nasconde al programmatore la "verità" sui livelli hardware sottostanti e presenta un interfaccia gradevole e amichevole all'utente CdL Informatica - Università di Bari Architettura degli Elaboratori A.A. 2003-2004 Multiprogrammazione Possibilita di caricare piu programmi in memoria in grado di condividere l'uso della CPU e delle risorse dell'elaboratore E possibile che il S.O., per realizzare la multiprogrammazione, non mantenga tutti i programmi in memoria ma carichi di volta in volta quello piu idoneo da un supporto di massa Tale tecnica, detta di "swapping", e poco efficiente, ma risulta necessaria quando si hanno problemi di dimensione della memoria Processo = Programma in esecuzione Nucleo (o Kernel) = gestore dei processi Problema: nella multiprogrammazione più programmi sono in memoria, ma una sola è la risorsa processore. Come assegnare un processo al processore Al processo è associato uno stato ed una priorità CdL Informatica - Università di Bari Architettura degli Elaboratori A.A. 2003-2004 Sistemi Time Sharing Un processo rimane in running solo per un intervallo fissato di tempo (Time Slice) Per evitare che resti padrone della CPU a tempo indeterminato Il Supervisore riacquista il controllo. quando è terminata la time slice , il programma termina la sua esecuzione , il programma avanza una richiesta di I/O. È ovvio che un programma per terminare la sua esecuzione avrà bisogno di più time slice . Così. aumenta il turnaround time dei singoli processi migliora il throughput complessivo CdL Informatica - Università di Bari Architettura degli Elaboratori A.A. 2003-2004 Stato dei Processi Ready pronto ad essere eseguito, ma non in esecuzione running in esecuzione waiting in attesa di un evento o di un dato Un processo è un programma in esecuzione. Un processo necessita di alcune risorse per assolvere il proprio compito: tempo di CPU, memoria, file e dispositivi di I/O. Il SO è responsabile delle seguenti attività in connessione con la gestione dei processi: Creazione e cancellazione di processi. Sospensione e riattivazione di processi. Fornire meccanismi per: sincronizzazione di processi comunicazione fra processi CdL Informatica - Università di Bari Architettura degli Elaboratori A.A. 2003-2004 Il Gestore della Memoria Il compito del SO è anche di gestire la Memoria Centrale: ricordare quali parti della memoria sono attualmente in uso e quali non lo sono assegnare la memoria ai processi , deallocare la memoria assegnata , amministrare gli scambi tra memoria centrale e disco quando la Continua »