Software di base Sistema di elaborazione: struttura gerarchica
Transcript
Software di base Sistema di elaborazione: struttura gerarchica
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Software di base Sistema di elaborazione: struttura gerarchica composta da elementi hardware e software. SW applicativo SW di base HW HW: struttura fisica periferiche, bus). dell'elaboratore (memoria, CPU, SW applicativo: programmi per la soluzione di determinati problemi o il trattamento di particolari applicazioni (calcoli matematici, videoscrittura, foglio elettronico, gestione archivi, videogiochi, etc.) Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Software di base SW di base: insieme di programmi che: -permettono la comunicazione tra le varie componenti dell'HW; -gestiscono le risorse HW in modo ottimale per servire le richieste dell'utente (o di più utenti). -consentono al calcolatore di eseguire programmi scritti in linguaggi di programmazione ad alto livello, traducendo tali programmi in linguaggio macchina. Fanno parte del software di base, tra gli altri, i compilatori, gli interpreti, il linker, il sistema operativo. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Sistema operativo (SO): insieme di programmi che gestiscono le risorse di un calcolatore in modo da consentire agli utenti un uso agevole ed efficiente del calcolatore stesso. Il SO: strato software che complessità dell' hardware. nasconde all'utente la Grazie al SO, l'utente non "vede" la macchina reale → non deve preoccuparsi dei problemi di gestione dei dispositivi hardware. L'utente interagisce con una macchina virtuale. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo La macchina virtuale è più facile da programmare: i programmi utente utilizzano risorse virtuali e non devono occuparsi della gestione delle risorse reali (gestite dal SO). La macchina virtuale è l'immagine della macchina reale che il S.O. offre all'utente. Essa è -più estesa, cioè ha più risorse -più facile da usare della macchina reale. La macchina virtuale è in grado di offrire all'utente dei servizi dietro invio di apposite richieste. (funzione di interfaccia verso l'utente) Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Le richieste al SO possono essere formulate: -direttamente dall'utente (modalità interattiva), tramite comandi di Sistema. -indirettamente, dai programmi utente, tramite istruzioni particolari (Chiamate di Sistema) che vengono tradotte in chiamate ai programmi del SO. Funzione di interfaccia utente del sistema operativo: fornire all'utente un dato insieme di servizi richiamabili mediante comandi o chiamate di sistema. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Se la richiesta dell'utente è inviata tramite comandi(modalità interattiva) occorre un interprete di comandi. Interprete di comandi (shell): programma che riceve i comandi direttamente impartiti dall'utente, li interpreta e li traduce in chiamate ai programmi di sistema opportuni. Ogni sistema operativo ha la sua shell (eventualmente anche più d'una). Una parte del SO è sempre residente in memoria, pronta ad esaudire le richieste dell'utente o dei programmi utente. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Es. di servizio: esecuzione di un programma applicativo memorizzato sul disco rigido. Il SO si occupa di: -leggere il programma dal disco e caricarlo in memoria centrale; -comandare l'esecuzione del programma; - riprendere il controllo del sistema di elaborazione ad esecuzione terminata. Altri esempi: stampa di un documento, trasferimento di documenti da un dispositivo periferico ad un altro, etc. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Il SO è un insieme di programmi che consentono: -la visione astratta delle risorse da parte utenti(macchina virtuale) -facilità d'uso del sistema di elaborazione; -la gestione corretta ed efficiente delle risorse. degli Corretta: le modalità di uso della risorsa sono programmate dal SO. Efficiente: le richieste d'uso della risorsa vengono esaudite nel minor tempo possibile. Sul SO si appoggiano gli altri componenti del software di base (compilatori,interpreti,editor,utilità) e i programmi applicativi. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo gestione bancaria prenotazioni videogiochi aeree compilatori interprete dei comandi Sistema Operativo hardware programmi applicativi editori programmi di sistema hardware Interprete dei comandi, compilatori, etc.: software di sistema, incluso nei programmi di utilità, che non fa parte del sistema operativo, ma normalmente viene fornito con esso. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Architettura interna di un Sistema Operativo Modello gerarchico "a buccia di cipolla" basato sul concetto di livelli di Macchina Virtuale. Ogni modulo (strato) di SO: -gestisce una specifica risorsa del sistema di elaborazione -utilizza le funzioni realizzate dai livelli sottostanti -offre ai livelli superiori una M.V. più potente della M.V. sottostante. Ogni strato fornisce dei meccanismi logici di accesso alle risorse del sistema gestite che ne rendono facile l'uso, ne mascherano i limiti sono indipendenti dalla loro realizzazione fisica. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Struttura a livelli hw nucleo gestore della memoria e delle periferiche gestore della memoria di massa (File System) Interprete dei comandi (shell) Ogni strato virtualizza la risorsa gestita. Interprete dei comandi: interfaccia tra SO ed utenti (o programmi utente). In passato: interfaccia a comandi testuali. Più recentemente: Graphical User Interface (GUI), più user-friendly. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Nucleo (kernel): insieme di programmi che colloquiano direttamente con l'hardware e si occupano dell'esecuzione dei programmi utente e di sistema. Nucleo: gestisce processi ed eventi esterni generati dalle periferiche (interruzioni). Processo: programma in esecuzione. Un processo include: -il programma eseguibile -i dati -altre informazioni sul processo (es. contenuto dei registri della CPU e delle celle di memoria) necessarie alla sua esecuzione (contesto). Un processo viene creato mandando in esecuzione un programma Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Nei sistemi monoprocessore esiste una sola CPU Se c'è una sola CPU, in ogni istante solo un processo sarà in esecuzione, ossia avrà assegnata la CPU. In questo caso il SO simula la esecuzione parallela(contemporanea ed indipendente) di più processi stabilendo dei turni di utilizzo della CPU secondo opportune politiche di assegnazione della CPU. Il nucleo simula il parallelismo tra processi. Parallelismo effettivo: se ci sono più CPU (sistemi multiprocessore). Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Interruzioni: segnali inviati al S.O. che notificano un evento che il S.O. dovrà gestire. -interruzioni interne: generate da un processo che richiede l'effettuazione di un'operazione che non può eseguire direttamente (es. lettura/scrittura su una periferica) o da un errore software in un programma che ne impedisce la continuazione; -interruzioni esterne: provocate da eventi particolari come la terminazione di un'operazione di lettura da disco; -interruzioni per errore: segnalano l'occorrenza di un guasto hardware. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Al verificarsi di un'interruzione, il nucleo del SO: -interrompe il processo P in esecuzione; -ne salva il contesto in una determinata zona di memoria; -esegue il programma di gestione dell’interruzione, che si troverà in un punto determinato della memoria centrale; -stabilisce quale sia il processo da mandare in esecuzione e ne ripristina il contesto. Context switch: cambiamento di contesto Ripristinare il contesto →copiare nei registri della CPU il contenuto dell'area di memoria che contiene la descrizione del contesto del processo al momento della sua sospensione. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo La macchina virtuale simulata dal nucleo differisce dalla macchina base perché: -possiede tante unità centrali quanti sono i processi da eseguire; -non possiede meccanismi di interruzione. Il nucleo fornisce agli strati superiori la visione di un insieme di CPU virtuali ciascuna dedicata ad un processo attivo. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Il gestore delle periferiche (gdp) fornisce agli utenti di un sistema di elaborazione: -la visione di un insieme di periferiche astratte; -la visione di un sistema in cui ogni processo dispone di periferiche dedicate. Astratte: l'utente per leggere o scrivere dati utilizza delle primitive (comandi) di alto livello che sono indipendenti dalle caratteristiche fisiche delle periferiche. Dedicate: i conflitti derivanti dalla condivisione di una periferica reale tra più processi vengono gestiti dal gdp in modo trasparente ai vari processi. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Il File system offre all'utente -comandi ad alto livello per l'accesso ai file che rendono trasparenti all'utente le operazioni per l'allocazione e l'accesso alla memoria di massa; - la possibilità di definire dei diritti di accesso ai file sia per proteggere sia per condividere file tra utenti diversi. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Soluzioni per passare dall'esecuzione un programma a quella di un altro: Sistema uniprogrammato: si deve -scaricare il programma residente in memoria -caricarne un altro dalla memoria di massa -mandare in esecuzione Pb. Oneroso in termini di tempo (tempi di accesso al disco) Sistema multiprogrammato: poiché sono già presenti in memoria più programmi, la commutazione da uno ad un altro è più efficiente. Pb. Il SO è più complesso perche' deve gestire la concorrenza tra processi nell'uso delle risorse del sistema (CPU, memoria, etc..) Processi concorrenti: competono per l’uso delle risorse. Processi cooperanti: cooperano alla risoluzione di un problema. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Processi: possono essere associati sia a programmi di sistema che a programmi utente. Differenza nella modalità di funzionamento. Programmi di sistema: eseguono in modo supervisore, modalità privilegiata senza alcuna restrizione sulle operazioni consentite. Programmi utente: eseguono in modo utente, con diverse restrizioni sulle operazioni permesse. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Modalità di funzionamento tra processi: -in foreground:processo abilitato all’interazione con l’utente tramite i dispositivi di I/O (video e tastiera); -in background: processo attivo ma temporaneamente non in grado di interagire direttamente con l’utente. Molti dei processi interni al SO sono attivati automaticamente nella fase di avvio e inizializzazione (boot) del sistema e poi vengono eseguiti in background. Tra essi i processi demoni (demon): restano in attesa che un certo evento li metta in esecuzione (es. lo spooler di stampa, il demon della posta elettronica) Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Programmi: entità statiche. Processi: entità dinamiche che evolvono attraversando stati. Diagramma a stati di un processo selezione processo accodamento ai processi pronti processi pronti termine quanto di tempo completamento operazione di I/O processi in attesa completamento processo processo in esecuzione richiesta operazione di I/O Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Un processo viene creato mandando in esecuzione un programma. Ogni processo può trovarsi in uno dei seguenti stati: -in esecuzione(running)con la CPU a sua disposizione per l’esecuzione; -pronto(ready to run): pronto per l’esecuzione, in attesa che la CPU possa eseguirlo. Coda di processi pronti (ready queue). -in attesa(waiting): non ancora pronto per l’esecuzione, attende un evento esterno (I/O). Il nucleo maschera al processo la privazione ed il riassegnamento del processore tramite salvataggio e ripristino del contesto. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000. Sistema Operativo Per aumentare il parallelismo virtuale occorre evitare che un processo monopolizzi la CPU o che la impegni per troppo tempo. Sistemi a partizione di tempo (time-sharing): ad ogni processo è assegnato un quanto di tempo, ossia un intervallo massimo di utilizzo della CPU. Esaurito il suo quanto, il nucleo del SO toglie la CPU al processo → il processo passa dallo stato running allo stato ready to run. La durata del quanto è critica per l’efficienza del sistema. Quanto breve: il tempo necessario alla commutazione tra i processi diventa non più trascurabile rispetto alla durata del quanto di esecuzione Quanto lungo: si perde in paallelismo, tendendo alla sequenzializzazione. Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici, Università di Catania, Anno Accademico 1999-2000.