Capitolo 6 Le infrastrutture SoftWare · 29/11/2006 Introduzione ai sistemi informatici 2...
Transcript of Capitolo 6 Le infrastrutture SoftWare · 29/11/2006 Introduzione ai sistemi informatici 2...
29/11/2006
Introduzione ai sistemi informatici 1
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Capitolo 6Capitolo 6Le infrastrutture SoftWareLe infrastrutture SoftWare
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Funzioni del sistema operativoFunzioni del sistema operativoRendere utilizzabili le risorse fisiche presenti nel sistema infRendere utilizzabili le risorse fisiche presenti nel sistema informatico:ormatico:• garantire la correttezza e la precisione nell’elaborazione e nella trasmissione
dell’informazione;• consentire all’utente di superare il problema della localizzazione delle risorse
sfruttando opportunamente la presenza di una rete che permetta di accedere alle applicazioni da ogni luogo e in ogni momento (anywhere, anytime);
• garantire il massimo livello di affidabilità, disponibilità e sicurezza dei sistemi;
• assicurare la privatezza dei dati;• consentire la realizzazione di soluzioni aperte, che permettano
l’interoperabilità fra dispositivi forniti da diversi produttori di hardware e di software;
• superare i problemi legati alla limitazione del numero di risorse, e al tempo stesso regolamentarne l’impiego evitando conflitti di accesso.
Il sistema operativo può essere inteso come uno strumento che Il sistema operativo può essere inteso come uno strumento che virtualizzavirtualizza le caratteristiche dell’hardware sottostante, offrendo di le caratteristiche dell’hardware sottostante, offrendo di esso la visione di una esso la visione di una macchina astrattamacchina astratta più potente e più semplice da più potente e più semplice da utilizzare di quella fisicamente disponibile.utilizzare di quella fisicamente disponibile.
29/11/2006
Introduzione ai sistemi informatici 2
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
SO: funzionalitàSO: funzionalitàSO come GESTORE DELLE RISORSESO come GESTORE DELLE RISORSE
controlla tutte le risorse del calcolatore e le gestisce in controlla tutte le risorse del calcolatore e le gestisce in modo efficiente:modo efficiente:• tiene traccia di chi utilizza la risorse • accetta e soddisfa le richieste di utilizzo di una risorsa• fa da mediatore fra le risorse che risultano in conflitto
SO come MACCHINA ESTESASO come MACCHINA ESTESAcostituisce la base su cui è possibile scrivere i programmi costituisce la base su cui è possibile scrivere i programmi applicativi.applicativi.presenta all’utente una macchina estesa più facile da presenta all’utente una macchina estesa più facile da programmare dell’HW sottostante.programmare dell’HW sottostante.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Funzioni di servizio del SOFunzioni di servizio del SOEsecuzione di applicazioniEsecuzione di applicazioni• caricamento del programma (istruzioni e dati) nella memoria centrale,• inizializzazione dei dispositivi di ingresso/uscita,• preparazione e gestione di altre risorse come la rete di comunicazione,• …;
Accesso ai dispositivi di ingresso/uscitaAccesso ai dispositivi di ingresso/uscita• gestione dei segnali necessari per il trasferimento dei dati,• consente all’utente di ragionare in termini di operazioni astratte di lettura e scrittura
Archiviazione di dati e programmiArchiviazione di dati e programmi• fornire un’organizzazione logica dei dati sotto forma di cartelle (directory) e file,• gestire le operazioni di basso livello per il relativo ingresso/uscita;
Controllo di accessoControllo di accesso• condivisione di risorse da parte di più utenti o applicazioni,• meccanismi di protezione e politiche di risoluzione degli eventuali conflitti d’uso;
ContabilizzazioneContabilizzazione• ottimizzare il tempo di risposta dei programmi interattivi,• fatturare agli utenti i costi dell’impiego del sistema;
Gestione dei malfunzionamentiGestione dei malfunzionamenti• rilevare e, se possibile, di risolvere eventuali malfunzionamenti provocati da guasti hardware, o da operazioni
scorrette compiute dal software applicativo.
29/11/2006
Introduzione ai sistemi informatici 3
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Vantaggi di un SOVantaggi di un SO
Sono legati alla possibilità di definire Sono legati alla possibilità di definire modalità standard di interfaccia con i modalità standard di interfaccia con i dispositivi fisici, cosicché sia possibile:dispositivi fisici, cosicché sia possibile:
• sviluppare programmi in modo semplice, modulare ed indipendente dallo specifico calcolatore su cui viene fatto funzionare il sistema operativo;
• aggiornare il software di base e l'hardware in modo trasparente ai programmi applicativi e all'utente, ossia senza che vengano influenzati dall'operazione.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Visioni fornite da un SOVisioni fornite da un SODall'alto:Dall'alto: il sistema operativo fornisce il sistema operativo fornisce all'utente un'interfaccia conveniente.all'utente un'interfaccia conveniente.Dal basso:Dal basso: gestisce tutti le parti di un gestisce tutti le parti di un sistema complesso, allocando in modo sistema complesso, allocando in modo ordinato le diverse risorse della macchina: ordinato le diverse risorse della macchina: processori, memorie, dischi, interfacce di processori, memorie, dischi, interfacce di rete, stampanti e altre periferiche.rete, stampanti e altre periferiche.
29/11/2006
Introduzione ai sistemi informatici 4
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Il softwareIl software
SW= Sistema Operativo + SW applicativoSW= Sistema Operativo + SW applicativo
Il S.O. come necessario Il S.O. come necessario intermediariointermediario
HW
SW
HW
Sistema Operativo
SW Applicativo
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Elementi di un SOElementi di un SOSistema di Sistema di gestione del processoregestione del processore,,• controlla l’unità centrale di elaborazione (CPU);• definisce quali programmi sono da eseguire e quali compiti sono da assegnare
alla CPU;Sistema di Sistema di gestione della memoriagestione della memoria,,• controlla l’allocazione della memoria di lavoro ai diversi programmi che
possono essere contemporaneamente in esecuzione;Sistema di Sistema di gestione delle periferichegestione delle periferiche,,• garantisce l’accesso ai dispositivi di ingresso/uscita, maschera i dettagli di
basso livello e gli eventuali conflitti che possono insorgere nel caso che diverse richieste arrivino contemporaneamente a uno stesso dispositivo;
Sistema di Sistema di gestione dei filegestione dei file (file system)(file system)• consente l’archiviazione e il reperimento dei dati sfruttando le periferiche che
costituiscono la memoria di massa;Sistema di Sistema di gestione degli utentigestione degli utenti e dei relativi comandi (interprete e dei relativi comandi (interprete comandi),comandi),interfaccia diretta con gli utenti, permette agli utenti di acceinterfaccia diretta con gli utenti, permette agli utenti di accedere in dere in maniera semplice e intuitiva alle funzionalità disponibili.maniera semplice e intuitiva alle funzionalità disponibili.Sistema di Sistema di gestione della retegestione della rete..
29/11/2006
Introduzione ai sistemi informatici 5
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Elementi di un SOElementi di un SO
Sistema Operativo
Utente
Nucleo (o kernel) [gestione processore]
Hardware
Software applicativo
Gestione periferiche
File system Interfaccia
con la rete
Gestione memoria
Interprete comandi
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
SO SO vsvs applicazioniapplicazioniProgrammi applicativiProgrammi applicativi• hanno accesso a un insieme
ridotto di risorse;• possono utilizzare solo un
sottoinsieme delle istruzioni del processore (esecuzione in modalità utente);
• non possono decidere autonomamente quando e come avere accesso alle risorse del sistema (richiedono al sistema operativo l’esecuzione di alcuni servizi);
• …
Sistema operativoSistema operativo• ha accesso a tutte le
risorse;• può utilizzare tutte le
istruzioni del processore (esecuzione in modalità supervisore);
• stabilisce in che ordine e come le richieste che riceve devono essere soddisfatte;
• …
29/11/2006
Introduzione ai sistemi informatici 6
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Evoluzione dei sistemi operativi Seconda metà degli anni ’40Evoluzione dei sistemi operativi Seconda metà degli anni ’40non c’era un sistema operativo:non c’era un sistema operativo:• il programmatore interagiva direttamente con i dispositivi fisici,• introdurre nel software applicativo anche le funzionalità di gestione dell’hardware.• esecuzione di un solo programma alla volta
problemi da risolvere:problemi da risolvere:• evoluzione dell’interfaccia utente (per problemi bisognava guardare direttamente nei registri)• miglioramento dell’efficienza di gestione delle risorse disponibili (necessità di prenotare la
macchina )
Sistemi a lotti (Sistemi a lotti (batchbatch),),• impiego di un componente software, detto monitor, in grado di automatizzare l’avviamento e
l’esecuzione di programma;• apposito linguaggio, detto Job Control Language (JCL);• le operazioni di ingresso/uscita vengono eseguite tramite file (per ridurre la necessità
dell'utente); ottimizzano lo sfruttamento delle risorse di elaborazione del sistema con un’accurata distribuzione del tempo di calcolo tra i vari programmi da eseguire
• svantaggio principale: tempo di latenza che intercorre fra il momento in cui un job è sottoposto al sistema e il momento in cui vengono presentati i risultati dell’elaborazione di quel job.
Aggiunta di altre caratteristiche (sistemi multiprogrammati in cAggiunta di altre caratteristiche (sistemi multiprogrammati in cui, in ogni istante, la memoria ui, in ogni istante, la memoria centrale può contenere più di un programma applicativo):centrale può contenere più di un programma applicativo):• Interattività con un utente umano con tempi di risposta accettabili;• Accurata protezione della memoria;• Temporizzazione dell’esecuzione (evitare che un programma monopolizzi il sistema);• gestione delle attività di ingresso/ uscita;• maggiore sfruttamento (anche in parallelo da parte di diversi programmi), delle risorse
disponibili nel sistema.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
MultiprogrammazioneMultiprogrammazione
Tempo
attesa per operazioni di I/Oelaborazione
TempoProgr. 3
Progr. 2
Progr. 1
attesa per operazioni di I/Oelaborazione
29/11/2006
Introduzione ai sistemi informatici 7
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
MultiprogrammazioneMultiprogrammazioneNel sistema sono presenti diversi programmi, ognuno con un proprNel sistema sono presenti diversi programmi, ognuno con un proprio io tempo di elaborazione e propri tempi di attesa per le operazionitempo di elaborazione e propri tempi di attesa per le operazioni di di ingresso/uscita.ingresso/uscita.Per evitare che la CPU venga utilizzata in modo esclusivo (o perPer evitare che la CPU venga utilizzata in modo esclusivo (o per troppo troppo tempo) da parte di un solo programma, il tempo viene idealmente tempo) da parte di un solo programma, il tempo viene idealmente suddiviso in unità elementari, dette suddiviso in unità elementari, dette quantiquanti, da assegnare secondo , da assegnare secondo opportune politiche a tutti i programmi.opportune politiche a tutti i programmi.Round Round robinrobin assegnare a rotazione la disponibilità di un quanto di tempo assegnare a rotazione la disponibilità di un quanto di tempo della CPU ai vari programmi presenti contemporaneamente in memordella CPU ai vari programmi presenti contemporaneamente in memoria.ia.La durata del quanto di tempo incide significativamente sia sullLa durata del quanto di tempo incide significativamente sia sulle e prestazioni del sistema che sull’efficacia del quasi parallelismprestazioni del sistema che sull’efficacia del quasi parallelismo, che tende o, che tende a scomparire se la durata diviene eccessiva e degrada nella a scomparire se la durata diviene eccessiva e degrada nella sequenzializzazionesequenzializzazione dei programmi. D’altra parte, pur migliorando in dei programmi. D’altra parte, pur migliorando in generale le proprietà di parallelismo la scelta di un valore molgenerale le proprietà di parallelismo la scelta di un valore molto piccolo to piccolo può comportare un degrado delle prestazioni complessive del sistpuò comportare un degrado delle prestazioni complessive del sistema, ema, qualora il tempo di commutazione fra programmi sia dello stesso qualora il tempo di commutazione fra programmi sia dello stesso ordine ordine della durata del quanto di tempo (un valore tipico per il sistemdella durata del quanto di tempo (un valore tipico per il sistema operativo a operativo UnixUnix è 100 è 100 msms).).
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Processo Processo vsvs programmaprogrammaProgrammaProgramma::entità statica composta dal codice eseguibile entità statica composta dal codice eseguibile dal processore.dal processore.ProcessoProcesso::entità dinamica che corrisponde al entità dinamica che corrisponde al programma in esecuzione, composto da:programma in esecuzione, composto da:• codice (il programma);• dati (quelli che servono per l’esecuzione del
programma);• stato (a che punto dell’esecuzione ci si trova, cosa
c’è nei registri, …).
29/11/2006
Introduzione ai sistemi informatici 8
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Organizzazione di un SOOrganizzazione di un SOGerarchia di Gerarchia di “macchine virtuali”“macchine virtuali”La visione della La visione della macchina virtuale a macchina virtuale a livello livello nn è quella è quella fornita dall’HW e dagli fornita dall’HW e dagli strati del SO fino strati del SO fino all’ennesimo (incluso)all’ennesimo (incluso)
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Organizzazione a “strati”Organizzazione a “strati”Ogni macchina virtuale è un insieme di programmi Ogni macchina virtuale è un insieme di programmi che realizza delle funzionalità che utilizzano i che realizza delle funzionalità che utilizzano i servizi forniti a livello inferiore.servizi forniti a livello inferiore.Ogni macchina virtuale ha il compito di gestire Ogni macchina virtuale ha il compito di gestire risorse specifiche di sistema regolandone l’uso e risorse specifiche di sistema regolandone l’uso e mascherandone i limiti.mascherandone i limiti.I I meccanismimeccanismi che garantiscono la correttezza che garantiscono la correttezza logica sono separati dalle logica sono separati dalle politichepolitiche di gestione di gestione (maggiore flessibilità).(maggiore flessibilità).
ogni “strato” risolve un problema specifico
29/11/2006
Introduzione ai sistemi informatici 9
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
NucleoNucleoInteragisce direttamente con l’hardwareInteragisce direttamente con l’hardwareSi occupa dell’esecuzione dei programmi e della risposta Si occupa dell’esecuzione dei programmi e della risposta agli eventi esterni generati dalle unità periferiche.agli eventi esterni generati dalle unità periferiche.Scopo principale: gestire i processi corrispondenti ai Scopo principale: gestire i processi corrispondenti ai programmi che sono contemporaneamente attivi.programmi che sono contemporaneamente attivi.
Fornisce alle macchine virtuali di livello superiore la visione Fornisce alle macchine virtuali di livello superiore la visione di un insieme di unità di elaborazione virtuali ciascuna di un insieme di unità di elaborazione virtuali ciascuna dedicata a un processo presente in memoriadedicata a un processo presente in memoriaGestisce il contesto di esecuzione dei vari processiGestisce il contesto di esecuzione dei vari processiAttua una politica di alternanza (Attua una politica di alternanza (schedulingscheduling) nell’accesso ) nell’accesso alla CPU da parte dei processi in esecuzione.alla CPU da parte dei processi in esecuzione.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Gestore della memoriaGestore della memoriaControlla la memoria centrale, al fine di risolvere le relative Controlla la memoria centrale, al fine di risolvere le relative esigenze esigenze dei vari processi in modo trasparente ed efficiente.dei vari processi in modo trasparente ed efficiente.Consente ai programmi di lavorare in un proprio Consente ai programmi di lavorare in un proprio spazio di spazio di indirizzamentoindirizzamento virtualevirtuale e di ignorare quindi le effettive zone di e di ignorare quindi le effettive zone di memoria fisica occupata.memoria fisica occupata.Si occupa di:Si occupa di:• proteggere programmi e relativi dati caricati nella memoria di lavoro;• mascherare la collocazione fisica dei dati;• permettere, in modo controllato, la parziale sovrapposizione degli spazi di
memoria associati ai vari programmi.
Fornisce alle macchine di livello superiore la possibilità di laFornisce alle macchine di livello superiore la possibilità di lavorare vorare come se esse avessero a disposizione una memoria dedicata, di cacome se esse avessero a disposizione una memoria dedicata, di capacità pacità anche maggiore di quella fisicamente disponibile.anche maggiore di quella fisicamente disponibile.
29/11/2006
Introduzione ai sistemi informatici 10
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Gestore delle perifericheGestore delle periferiche
Fornisce una visione del sistema in cui i processi possono Fornisce una visione del sistema in cui i processi possono operare mediante operare mediante periferiche astratteperiferiche astratte..
Maschera le caratteristiche fisiche delle periferiche e le Maschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscitaspecifiche operazioni di ingresso/uscita
Ogni processo ha a disposizione delle periferiche virtualiOgni processo ha a disposizione delle periferiche virtuali
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
File System (gestore dei file)File System (gestore dei file)
Gestisce la memoria di massaGestisce la memoria di massa
Gestisce i fileGestisce i file
29/11/2006
Introduzione ai sistemi informatici 11
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Interprete dei comandiInterprete dei comandiModulo del SO direttamente accessibile dall’utenteModulo del SO direttamente accessibile dall’utenteHa la funzione di interpretare i comandi che gli Ha la funzione di interpretare i comandi che gli giungono (da tastiera e/o giungono (da tastiera e/o point&clickpoint&click) e di attivare ) e di attivare i programmi corrispondenti.i programmi corrispondenti.Le operazioni che svolge sono:Le operazioni che svolge sono:• lettura dalla memoria di massa del programma da
eseguire;• allocazione della memoria centrale;• caricamento del programma e dei relativi dati nella
memoria allocata;• creazione e attivazione del processo corrispondente.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
La gestione dei processiLa gestione dei processi
29/11/2006
Introduzione ai sistemi informatici 12
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Elaborazione parallelaElaborazione parallelaIl concetto di Il concetto di elaborazione parallelaelaborazione parallela si riferisce specificamente:si riferisce specificamente:• ai dati;• alle istruzioni;• ai programmi.
Il parallelismo a livello di dati e di istruzioni è possibile soIl parallelismo a livello di dati e di istruzioni è possibile solo con l’impiego di lo con l’impiego di architetture di elaborazione parallela, basate sulla presenza diarchitetture di elaborazione parallela, basate sulla presenza di più unità di più unità di elaborazione in grado di eseguire istruzioni in modo concorrenteelaborazione in grado di eseguire istruzioni in modo concorrente ma anche, per ma anche, per esempio, di adeguati linguaggi di programmazione.esempio, di adeguati linguaggi di programmazione.
Il parallelismo a livello di programma ricade nell’ambito dei siIl parallelismo a livello di programma ricade nell’ambito dei sistemi operativi.stemi operativi.
Le condizioni che un sistema operativo deve soddisfare sono:Le condizioni che un sistema operativo deve soddisfare sono:• efficienza;• interattività;• sincronizzazione/cooperazione.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
SO in time SO in time sharingsharing
Permette la condivisione della CPU tra più processi Permette la condivisione della CPU tra più processi interattiviinterattivi
Il tempo di esecuzione del processore è condiviso Il tempo di esecuzione del processore è condiviso tra più utentitra più utenti
Ogni processo in esecuzione ha a disposizione un Ogni processo in esecuzione ha a disposizione un quanto di tempo di utilizzo della CPU, al termine quanto di tempo di utilizzo della CPU, al termine del quale viene sospeso per lasciare il posto ad un del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzionealtro processo in attesa di esecuzione
29/11/2006
Introduzione ai sistemi informatici 13
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Esecuzione di un processoEsecuzione di un processo
Tempo
attesa per operazioni di I/O elaborazione
• Un processo utente può effettivamente essere in esecuzione sulla CPU
• Ogni operazione di I/O consiste in una chiamata al sistema operativo e quindi in una sospensione del processo utente per l’esecuzione dell’operazione di I/O da parte del kernel
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Stati di un processoStati di un processo
Processo Processo attivoattivo
ProcessoProcessoin attesain attesa
Richiesta Richiesta operazione di I/Ooperazione di I/O
Completamento operazione di Completamento operazione di I/O (si verifica lI/O (si verifica l’’evento atteso)evento atteso)
29/11/2006
Introduzione ai sistemi informatici 14
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Processi non in esecuzioneProcessi non in esecuzioneSi possono distinguere due casiSi possono distinguere due casi• Processi in attesa di un evento esterno (ad
esempio I/O)• Processi pronti ad essere eseguiti in attesa della
CPU
Si tratta di due stati diversi: Si tratta di due stati diversi: PRONTOPRONTO e e ATTESAATTESA realizzati con due code diverserealizzati con due code diverse
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Diagramma a tre statiDiagramma a tre stati
Selezione primo processopronto e sua esecuzione
Processo in esecuzione
Processipronti
Inizio esecuzione(accodamento aiprocessi pronti)
Termine quanto di tempo
Termineelaborazione
Processiin attesa
Richiestaoperazione di I/O
Completamento operazione di I/O (evento esterno atteso)
29/11/2006
Introduzione ai sistemi informatici 15
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Transizioni di statoTransizioni di stato
Pronto Pronto →→ EsecuzioneEsecuzione• Il SO stabilisce quale dei processi
“pronti” debba essere mandato in “esecuzione”.
• La scelta è fatta dall’algoritmo di scheduling che deve bilanciare efficienza e fairness.
Esecuzione Esecuzione →→ AttesaAttesa• il processo chiede delle risorse che non
sono disponibili o attende un evento • il SO salva tutte le informazioni
necessarie a riprendere l’esecuzione e l’informazione relativa all’evento atteso nella tabella dei processi
EP
A
EP
A
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Transizioni di statoTransizioni di stato
Attesa Attesa →→ ProntoPronto• Si verifica l’evento atteso dal processo e il
SO sposta quel processo nella coda dei processi pronti.
Esecuzione Esecuzione →→ ProntoPronto• Termina il quanto di tempo e il processo in
“esecuzione” lascia spazio a un altro processo “pronto”.
• Il SO salva (nella tabella dei processi) tutte le informazioni per riprendere l’esecuzione del processo dal punto in cui viene interrotta.
• Contemporaneamente un altro processo passa da “pronto” a “esecuzione”.
EP
A
EP
A
29/11/2006
Introduzione ai sistemi informatici 16
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
riassumendo...riassumendo...
Il processo viene creato e viene posto nella coda dei processi pIl processo viene creato e viene posto nella coda dei processi pronti;ronti;2. il primo processo tra i processi pronti viene posto in esecuz2. il primo processo tra i processi pronti viene posto in esecuzione;ione;3. il processo in esecuzione dispone delle risorse del sistema f3. il processo in esecuzione dispone delle risorse del sistema fino a ino a
a.a. il termine del quanto di tempo il termine del quanto di tempo • il nucleo interrompe il processo e lo mette in coda ai processi pronti; • quando arriva in cima alla coda dei processi pronti, il processo torna in stato in
esecuzione, proseguendo con l’elaborazione dell’istruzione successiva a quella su cui era stato interrotto;
b.b. la richiesta di un’operazione di ingresso/ uscita il nucleo spola richiesta di un’operazione di ingresso/ uscita il nucleo sposta il sta il processo attivo nello stato di attesa; processo attivo nello stato di attesa; • quando l’operazione di ingresso/ uscita si completa il processo può proseguire
l’elaborazione e viene messo in fondo alla coda dei processi in pronti e prosegue come nel punto precedente;
c. il termine delle propria esecuzione (istruzione finale)c. il termine delle propria esecuzione (istruzione finale)• il processo viene eliminato e rimosso dall’elenco dei processi esistenti;
in ogni caso il nucleo provvede a sostituirlo con il primo dei pin ogni caso il nucleo provvede a sostituirlo con il primo dei processirocessipronti.pronti.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
ContextContext swappingswapping
Il processo non si rende conto delle interruzioni:Il processo non si rende conto delle interruzioni:• il nucleo maschera al processo come effettivamente la sua
elaborazione evolve nel tempo;• il nucleo rende trasparente la presenza delle operazioni di interruzione
e di riassegnamento del processore a un processo.Contesto di un processoContesto di un processo• insieme dei dati che rappresentano lo “stato” del processo: situazione
della memoria, contenuto dei registri, livello di priorità,…• quando un processo viene interrotto (esce dallo stato di esecuzione) il
nucleo provvede a salvare del suo contesto (in una struttura dati chiamata descrittore del processo);
• quando un processo torna nello stato di esecuzione il nucleo provvede a ripristinare il suo contesto (recuperando i dati precedentemente salvati nel descrittore).
Cambio di contesto (Cambio di contesto (contextcontext swappingswapping))• si verifica quando un processo (e.g. P1) in esecuzione viene sostituito da un
altro processo P2 (il primo del processi pronti); il nucleo provvede a1.salvare il contesto di P1 e gestirne l’evoluzione (pronto vs attesa);2.ripristinare il contesto di P2 per consentirgli una corretta evoluzione.
29/11/2006
Introduzione ai sistemi informatici 17
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Modalità Modalità useruser e modalità e modalità kernelkernel
I processi possono essere eseguiti in modalità I processi possono essere eseguiti in modalità kernelkernel(riservata ai servizi forniti dal sistema operativo) o (riservata ai servizi forniti dal sistema operativo) o useruser (programmi applicativi)(programmi applicativi)• non basta più un solo stato di esecuzione, è
necessario distinguere le due situazioni; due nuovi stati: esecuzione user e esecuzione kernel.
Ci sono due nuove transizione di stato:Ci sono due nuove transizione di stato:• esecuzione user → esecuzione kernel
• richiesta di servizi al sistema operativo da parte del processo utente, detta chiamata di sistema (SuperVisor Call – SVC)
• evento esterno segnalato da una periferica (Interrupt)• esecuzione kernel → esecuzione user
• termine gestione interrupt (return from interrupt –RTI)
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Transizioni di statoTransizioni di stato
Selezione primo processopronto e sua esecuzione
Processo in esecuzione
(kernel)
Processipronti
Inizio esecuzione(accodamento aiprocessi pronti)
Termine quanto di tempo
Termineelaborazione
Processiin attesa
Richiestaoperazione di I/O
Completamentooperazione di I/O
(evento esterno atteso)
Processo in esecuzione
(user)
Interrupto SVC
RTI
Processiattivi
29/11/2006
Introduzione ai sistemi informatici 18
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Esempio:esecuzione di P1 e P2Esempio:esecuzione di P1 e P21. P1 in esecuzione (1. P1 in esecuzione (useruser):):esegue una serie di istruzioni;esegue una serie di istruzioni;richiede un servizio di I/O, richiede un servizio di I/O, e.g.letturae.g.lettura di un carattere da tastiera di un carattere da tastiera [SV[SVC].C].2. SO in esecuzione (2. SO in esecuzione (kernelkernel):):decide di sospendere P1 finché non termina l’operazione di I/O rdecide di sospendere P1 finché non termina l’operazione di I/O richiesta;ichiesta;salva il contesto di P1 nel descrittore di P1 e sposta P1 in attsalva il contesto di P1 nel descrittore di P1 e sposta P1 in attesa di “carattere da tastiera”.esa di “carattere da tastiera”.sceglie P2 tra i processi pronti per mandarlo in esecuzione;sceglie P2 tra i processi pronti per mandarlo in esecuzione;ripristina il contesto di P2 leggendo i dati dal descrittore di ripristina il contesto di P2 leggendo i dati dal descrittore di P2;P2;manda in esecuzione P2 restituendogli il controllo manda in esecuzione P2 restituendogli il controllo [RT[RTI].I].3. P2 in esecuzione (3. P2 in esecuzione (useruser):):esegue una serie di istruzioni;esegue una serie di istruzioni;arriva un arriva un interruptinterrupt da tastiera (evento esterno) e il controllo passa al SO da tastiera (evento esterno) e il controllo passa al SO [[interrupinterruptt].].4. SO in esecuzione (4. SO in esecuzione (kernelkernel):):legge il carattere in arrivo dalla tastiera e lo scrive in un bulegge il carattere in arrivo dalla tastiera e lo scrive in un buffer di sistema;ffer di sistema;sposta P1 nella coda dei processi pronti; restituisce il controlsposta P1 nella coda dei processi pronti; restituisce il controllo a P2 lo a P2 [RT[RTI].I].5. P2 in esecuzione (5. P2 in esecuzione (useruser):):esegue una serie di istruzioni;esegue una serie di istruzioni;arriva un arriva un interruptinterrupt da orologio (evento esterno) e il controllo passa al SO da orologio (evento esterno) e il controllo passa al SO [[interrupinterruptt].].6. SO in esecuzione (6. SO in esecuzione (kernelkernel):):decide di sospendere P2 perché è scaduto il suo quanto; salva ildecide di sospendere P2 perché è scaduto il suo quanto; salva il contesto di P2 nel descrittore di P2 e contesto di P2 nel descrittore di P2 e
sposta P2 tra i processi pronti;sposta P2 tra i processi pronti;sceglie P1 tra i processi pronti per mandarlo in esecuzione (iposceglie P1 tra i processi pronti per mandarlo in esecuzione (ipotesi: ci sono solo P1 e P2);tesi: ci sono solo P1 e P2);ripristina il contesto di P1 leggendo i dati dal descrittore di ripristina il contesto di P1 leggendo i dati dal descrittore di P1; manda in esecuzione P1 restituendogli il P1; manda in esecuzione P1 restituendogli il
controllo controllo [RT[RTI].I].7. P1 in esecuzione (7. P1 in esecuzione (useruser))
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Round Round RobinRobin
I/O Fine
I/O
E
P
P
E
P
P E
P
P E
A
P E
A
P
E
P
P
E
A
P
Cambio di contesto
EP
A
P1
E
P
P
E
P
P
P2P3
P
E
PProcesso 3
Processo 2
Processo 1
29/11/2006
Introduzione ai sistemi informatici 19
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
““concorrenza” fra processiconcorrenza” fra processiVantaggi dell’esecuzione concorrente di più processi:Vantaggi dell’esecuzione concorrente di più processi:• impiegare in maniera trasparente una o più CPU (sia inserite in un solo calcolatore che in
più calcolatori, collegati in rete);• aumentare l’utilizzo della CPU nei sistemi a partizione di tempo, ove si eseguono più
lavori in quasi parallelismo;• condividere la stessa risorsa fisica fra diversi utenti in modo del tutto trasparente ma
controllato;• accedere contemporaneamente, da parte di diversi utenti, a una base di dati comune e
centralizzata;• …
ProblemiProblemi• starvation: un processo non riesce ad accedere ad una risorsa perché la trova sempre
occupata da altri processi (che per esempio possono avere un livello di priorità maggiore);
• blocco critico: un insieme di processi rimane bloccato perché ciascuno di essi aspetta delle risorse che sono occupate da un altro processo compreso in questo stesso insieme (vincolo circolare).
• Evitare (prevenzione) o risolvere (eliminazione) situazioni di blocco critico o di starvation riduce le prestazioni complessive del sistema.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Interazioni tra processiInterazioni tra processiLe Le interazioniinterazioni fra processi sono classificabili in:fra processi sono classificabili in:• indesiderate e (spesso) impreviste• desiderate e previste.
La La gestione delle interazionigestione delle interazioni fra i processi implicafra i processi implica• la sincronizzazione fra le varie attività che ogni singolo processo deve svolgere in
modo parallelo rispetto agli altri• la comunicazione, ovvero una modalità per lo scambio dei dati fra i processi
Modalità di funzionamentoModalità di funzionamento dei processi:dei processi:• in foreground, quando il processo è abilitato all’interazione con l’utente;• in background, quando il processo non è in grado, almeno temporaneamente, di
interagire direttamente con l’utente; questo è lo stato in cui si trovano parecchi dei processi relativi alle funzioni interne del sistema operativo
29/11/2006
Introduzione ai sistemi informatici 20
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
CPU
Nucleo: macchina astrattaNucleo: macchina astratta
dati
controllo
indirizziBUS
Memoriadi lavoro
Memoria di massa
Interfaccia I/O
Video/tastiera(terminale)
Interfaccia I/O
CPUvirtuale
processo
CPUvirtuale
processo
CPUvirtuale
processo
CPUvirtuale
processo
CPUvirtuale
processo
… … …
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
La gestione della memoriaLa gestione della memoria
29/11/2006
Introduzione ai sistemi informatici 21
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Gestore della memoriaGestore della memoriaUn programma per essere eseguito deve risiedere in memoria centrUn programma per essere eseguito deve risiedere in memoria centraleale
Programmi che gestiscono l’allocazione in memoria centrale del pProgrammi che gestiscono l’allocazione in memoria centrale del programma rogramma da eseguireda eseguire
Permettere ai programmi e agli utenti di vedere una memoria virtPermettere ai programmi e agli utenti di vedere una memoria virtuale di uale di dimensioni maggiori della memoria fisicadimensioni maggiori della memoria fisica
PaginazionePaginazione::memoria centrale e programmi suddivisi in pagine o segmenti.memoria centrale e programmi suddivisi in pagine o segmenti.
E’ in tal modo possibile:E’ in tal modo possibile:eseguire un programma di dimensioni maggiori della memoria centreseguire un programma di dimensioni maggiori della memoria centrale, ale,
partizionandopartizionando il programma e caricandone in memoria una parte alla volta il programma e caricandone in memoria una parte alla volta (quella(quella
correntemente in esecuzione)correntemente in esecuzione)con lo stesso meccanismo, eseguire contemporaneamente più progracon lo stesso meccanismo, eseguire contemporaneamente più programmi, la mmi, la
somma delle cui dimensioni supera la dimensione della memoria cesomma delle cui dimensioni supera la dimensione della memoria centralentrale
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Corrispondenza tra pagine logiche contigue e Corrispondenza tra pagine logiche contigue e pagine fisiche non contiguepagine fisiche non contigue
Memoria logica del processo 1
(2 pagine logiche)
Memoria fisica del calcolatore suddivisa in
8 pagine
Memoria logica del processo 2
(4 pagine logiche) Spazio logico
PL0
PL1
Spazio logico
PL0
PL1
PL2
PL3
Spazio fisico
PF0
PF1
PF2
PF3
PF4
PF5
PF6
PF7
29/11/2006
Introduzione ai sistemi informatici 22
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
PaginazionePaginazione
Pagina 1 processo 1
Pagina 2 processo 1
Pagina 3 processo 1
Pagina 4 processo 1
…
…
RAM al tempo T1
Pagina 5 processo 1
Pagina 6 processo 1
Pagina 3 processo 1
Pagina 4 processo 1
…
…
RAM al tempo T2
Pagina 7 processo 1
Al processo 1 servono nuove pagine. Alcune vecchie non
servono più
0
2
1
3
4
5
6
7
8
…
0
2
1
3
4
5
6
7
8
…
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
PaginazionePaginazioneLa La paginazionepaginazione risolve contemporaneamente risolve contemporaneamente tre problemi:tre problemi:
1. Dove mettere il processo in memoria2. Superare il numero di processi che posso gestire
contemporaneamente3. Superare la dimensione fisica della memoria di lavoro
29/11/2006
Introduzione ai sistemi informatici 23
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Memoriadi lavoro(fisica)
Gestore memoria: macchina astrattaGestore memoria: macchina astratta
dati
controllo
indirizziBUS
Memoria di massa
Interfaccia I/O
Video/tastiera(terminale)
Interfaccia I/O
CPUvirtuale
processo
CPUvirtuale
processo
CPUvirtuale
processo
CPUvirtuale
processo
CPUvirtuale
processo
… … …
Memorialogica
Memorialogica
Memorialogica
Memorialogica
Memorialogica
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Gestione periferiche I/OGestione periferiche I/O
29/11/2006
Introduzione ai sistemi informatici 24
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Gestore delle perifericheGestore delle periferiche
Comunicazione tra l’ambiente CPUComunicazione tra l’ambiente CPU--RAM ed i dispositivi RAM ed i dispositivi esterni.esterni.
Mascherare ai processi l’esistenza di un numero limitato di Mascherare ai processi l’esistenza di un numero limitato di risorse.risorse.
Mascherare ai processi la differenza tra risorse dello stesso Mascherare ai processi la differenza tra risorse dello stesso tipo (o di tipo simile)tipo (o di tipo simile)
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Gestione periferiche I/OGestione periferiche I/OComandi Comandi ad alto livelload alto livello per accedere alle periferiche che usano per accedere alle periferiche che usano meccanismi quali:meccanismi quali:• i controller,• i driver.
I sistemi operativi comprendono i driver per la gestione delle I sistemi operativi comprendono i driver per la gestione delle periferiche più comuni.periferiche più comuni.
Ogni aggiunta o modifica alla configurazione standard comporta Ogni aggiunta o modifica alla configurazione standard comporta l’installazione di software addizionale (driver aggiuntivi).l’installazione di software addizionale (driver aggiuntivi).
29/11/2006
Introduzione ai sistemi informatici 25
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Installazione driverInstallazione driver
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
PlugPlug&&PlayPlayI sistemi operativi più recenti sono dotati di funzioni di I sistemi operativi più recenti sono dotati di funzioni di PlugPlug&&PlayPlay ((PnPPnP) che permettono la configurazione ) che permettono la configurazione automatica dei driver.automatica dei driver.
Un sistema Un sistema PnPPnP consente di aggiungere (consente di aggiungere (plugplug) nuove ) nuove periferiche al sistema che possono essere utilizzate (periferiche al sistema che possono essere utilizzate (playplay), ), senza necessità di intervento da parte dell’utente per la senza necessità di intervento da parte dell’utente per la selezione e l’installazione dei driver.selezione e l’installazione dei driver.