Upload
vukhanh
View
218
Download
0
Embed Size (px)
Citation preview
30/11/2007
Introduzione ai sistemi informatici 1
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
InformaticaInformatica
Pietro Storniolo
[email protected]://www.pa.icar.cnr.it/storniolo/info200708
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Le infrastrutture SoftWareLe infrastrutture SoftWare
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Funzioni del sistema operativoFunzioni del sistema operativo
�� Rendere utilizzabili le risorse fisiche presenti nel sistema infRendere utilizzabili le risorse fisiche presenti nel sistema informatico:ormatico:• correttezza e precisione;• anywhere, anytime;• affidabilità, disponibilità e sicurezza dei sistemi;• privatezza dei dati;• interoperabilità fra dispositivi forniti da diversi produttori;• superare i problemi legati alla limitazione del numero di risorse.
�� Il sistema operativo può essere inteso come uno strumento che Il sistema operativo può essere inteso come uno strumento che virtualizzavirtualizza le caratteristiche dellle caratteristiche dell’’hardware sottostante, offrendo di hardware sottostante, offrendo di esso la visione di una esso la visione di una macchina astrattamacchina astratta pipiùù potente e pipotente e piùù semplice da semplice da utilizzare di quella fisicamente disponibile.utilizzare di quella fisicamente disponibile.
30/11/2007
Introduzione ai sistemi informatici 2
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
SO: funzionalitSO: funzionalitàà
�� SO come GESTORE DELLE RISORSESO come GESTORE DELLE RISORSE
�� SO come MACCHINA ESTESASO come MACCHINA ESTESA
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Funzioni di servizio del SOFunzioni di servizio del SO
�� Esecuzione di applicazioniEsecuzione di applicazioni
�� Accesso ai dispositivi di ingresso/uscitaAccesso ai dispositivi di ingresso/uscita
�� Archiviazione di dati e programmiArchiviazione di dati e programmi
�� Controllo di accessoControllo di accesso
�� ContabilizzazioneContabilizzazione
�� Gestione dei malfunzionamentiGestione dei malfunzionamenti
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Vantaggi di un SOVantaggi di un SO
�� Sono legati alla possibilitSono legati alla possibilitàà di definire di definire modalitmodalitàà standard di interfaccia con i standard di interfaccia con i dispositivi fisici, cosicchdispositivi fisici, cosicchéé sia possibile: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.
30/11/2007
Introduzione ai sistemi informatici 3
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Visioni fornite da un SOVisioni fornite da un SO
�� Dall'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.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Elementi di un SOElementi di un SO�� Sistema di Sistema di gestione del processoregestione del processore,,
�� Sistema di Sistema di gestione della memoriagestione della memoria,,
�� Sistema di Sistema di gestione delle periferichegestione delle periferiche,,
�� Sistema di Sistema di gestione dei filegestione dei file (file system)(file system)
�� Sistema di Sistema di gestione degli utentigestione degli utenti e dei relativi comandi e dei relativi comandi (interprete comandi),(interprete comandi),
�� Sistema di Sistema di gestione della rete.gestione della rete.
30/11/2007
Introduzione ai sistemi informatici 4
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
SO SO vsvs applicazioniapplicazioni�� Programmi 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;
• …
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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
30/11/2007
Introduzione ai sistemi informatici 5
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Processo Processo vsvs programmaprogramma
�� ProgrammaProgramma::entitentitàà statica composta dal codice eseguibile statica composta dal codice eseguibile dal processore.dal processore.
�� ProcessoProcesso::entitentitàà dinamica che corrisponde al 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, …).
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Organizzazione di un SOOrganizzazione di un SO�� Gerarchia di Gerarchia di
““macchine virtualimacchine virtuali””
�� La visione della La visione della
macchina virtuale a macchina virtuale a
livello livello nn èè quella quella
fornita dallfornita dall’’HW e dagli HW e dagli
strati del SO fino strati del SO fino
allall’’ennesimo (incluso)ennesimo (incluso)
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Organizzazione a Organizzazione a ““stratistrati””
�� Ogni macchina virtuale Ogni macchina virtuale èè un insieme di programmi un insieme di programmi che realizza delle funzionalitche realizza delle funzionalitàà che utilizzano i 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 lrisorse specifiche di sistema regolandone l’’uso e 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
30/11/2007
Introduzione ai sistemi informatici 6
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
NucleoNucleo�� Interagisce direttamente con lInteragisce direttamente con l’’hardwarehardware
�� Si occupa dellSi occupa dell’’esecuzione dei programmi e della risposta esecuzione dei programmi e della risposta agli eventi esterni generati dalle unitagli eventi esterni generati dalle unitàà periferiche.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 unitdi un insieme di unitàà di elaborazione virtuali ciascuna di elaborazione virtuali ciascuna dedicata a un processo presente in memoriadedicata a un processo presente in memoria
�� Gestisce il contesto di esecuzione dei vari processiGestisce il contesto di esecuzione dei vari processi
�� Attua una politica di alternanza (Attua una politica di alternanza (schedulingscheduling) nell) nell’’accesso accesso alla CPU da parte dei processi in esecuzione.alla CPU da parte dei processi in esecuzione.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Gestore della memoriaGestore della memoria�� Controlla 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 possibilitFornisce alle macchine di livello superiore la possibilitàà di lavorare di lavorare come se esse avessero a disposizione una memoria dedicata, di cacome se esse avessero a disposizione una memoria dedicata, di capacitpacitààanche maggiore di quella fisicamente disponibile.anche maggiore di quella fisicamente disponibile.
30/11/2007
Introduzione ai sistemi informatici 7
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
processo
Memoria
logica
CPUvirtuale
I/Ovirtuale
I/O
virtualeVideo/tastiera(terminale)
Interfaccia I/O
Gestore periferiche I/O: Gestore periferiche I/O:
macchina astrattamacchina astratta
dati
controllo
indirizziBUS
Memoria di massa
Interfaccia I/O
processo
Memorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processo
Memoria
logica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processo
Memoria
logica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
30/11/2007
Introduzione ai sistemi informatici 8
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Memoria di massa
Interfaccia I/O
processo
Memoria
logica
CPUvirtuale
I/Ovirtuale
I/O
virtuale
File System:File System:
macchina astrattamacchina astratta
dati
controllo
indirizziBUS
processo
Memoria
logica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processo
Memoria
logica
CPUvirtuale
I/Ovirtuale
I/O
virtuale
uno
root
due tre …
alfa beta
f1 f2f1 f2
f3
f3 f4
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Interprete dei comandiInterprete dei comandi�� Modulo del SO direttamente accessibile dallModulo del SO direttamente accessibile dall’’utenteutente
�� Ha 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.
30/11/2007
Introduzione ai sistemi informatici 9
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
La gestione dei processiLa gestione dei processi
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Elaborazione parallelaElaborazione parallela
�� Il 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 Il parallelismo a livello di dati e di istruzioni èè possibile solo con lpossibile solo con l’’impiego di impiego di architetture di elaborazione parallela, basate sulla presenza diarchitetture di elaborazione parallela, basate sulla presenza di pipiùù unitunitàà di 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 nellIl parallelismo a livello di programma ricade nell’’ambito dei sistemi operativi.ambito dei sistemi 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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
LinguaggioLinguaggio di di ProgrammazioneProgrammazione
�� La La notazionenotazione con cui con cui èè possibilepossibile descriveredescrivere gligli
algoritmialgoritmi..
�� ProgrammaProgramma: : èè la la rappresentazionerappresentazione di un di un algoritmoalgoritmo
in un in un particolareparticolare linguaggiolinguaggio di di programmazioneprogrammazione..
�� OgniOgni linguaggiolinguaggio di di programmazioneprogrammazione disponedispone di un di un
insiemeinsieme di di ““parole parole chiavechiave”” (keywords)(keywords)
�� OgniOgni linguaggiolinguaggio èè caratterizzatocaratterizzato dada unauna sintassisintassi e e
dada unauna semanticasemantica
30/11/2007
Introduzione ai sistemi informatici 10
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Il Il linguaggiolinguaggio macchinamacchina
�� Il Il linguaggiolinguaggio macchinamacchina èè direttamentedirettamenteeseguibileeseguibile dalldall’’elaboratoreelaboratore, , senzasenza nessunanessunatraduzionetraduzione..• Istruzioni ed operandi relativi al programma in esecuzione sono caricati in memoria e quindi sonomemorizzati in forma binaria.
• Vincolo: conoscenza dei metodi dirappresentazione delle informazioni utilizzati.
�� Istruzione:Istruzione: carica nellcarica nell’’accumulatoreaccumulatore
1001000010010000 1100110011001100
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
I I linguaggilinguaggi di alto livellodi alto livello�� SonoSono i i linguaggilinguaggi didi terzaterza generazionegenerazione. Le . Le istruzioniistruzioni
esprimonoesprimono unauna serieserie didi azioniazioni. Il . Il programmaprogramma prima prima
didi essereessere eseguitoeseguito devedeve essereessere tradottotradotto in in
linguaggiolinguaggio macchinamacchina ((traduttoretraduttore))
�� Il Il programmatoreprogrammatore pupuòò astrarreastrarre daidai dettaglidettagli legatilegati
allall’’architetturaarchitettura eded esprimereesprimere i i propripropri algoritmialgoritmi in in
modomodo simbolicosimbolico
�� SonoSono indipendentiindipendenti dalladalla macchinamacchina ((astrazioneastrazione))
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
SviluppoSviluppo didi un un ProgrammaProgramma
�� I I traduttoritraduttori sonosono programmiprogrammi particolari particolari cheche
provvedonoprovvedono aa convertireconvertire ilil codicecodice didi
programmiprogrammi scrittiscritti in un in un dato dato linguaggiolinguaggio didi
programmazioneprogrammazione ((sorgentisorgenti), ), nellanella
corrispondentecorrispondente rappresentazionerappresentazione in in
linguaggiolinguaggio macchinamacchina ((eseguibilieseguibili))
30/11/2007
Introduzione ai sistemi informatici 11
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
CPU come interprete delCPU come interprete del
suo linguaggio macchinasuo linguaggio macchina
Unità Centrale di Elaborazione(CPU):
interprete ed esecutore del linguaggio macchina L
Unità Centrale di Elaborazione(CPU):
interprete ed esecutore del linguaggio macchina L
Memoria
Bus di
sistema
Programma P in linguaggiomacchina L
Dati del programma P
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Due tipi di traduttoriDue tipi di traduttori
�� CompilatoriCompilatori
• Accettano in ingresso l’intero programma eproducono in uscita la rappresentazione dell'interoprogramma in linguaggio macchina.
�� InterpretiInterpreti
• Traducono ed eseguono direttamente ciascunaistruzione del programma sorgente, istruzione per istruzione.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Compilatore
Compilatore
Unità Centrale di Elaborazione
Unità Centrale di Elaborazione
Memoria
Bus di
sistema
Programma P in un linguaggio ad alto livello L
Programma P’ in linguag-giomacchina della CPU
Programmacompilatore del linguaggio ad alto livello L
Dati del compilatore
Fase 1
Unità Centrale di Elaborazione
Unità Centrale di Elaborazione
Memoria
Bus di
sistema
Dati del programmaP’
Programma P’ in linguaggio macchina
della CPU Fase 2
30/11/2007
Introduzione ai sistemi informatici 12
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
InterpreteInterprete
Unità Centrale di Elaborazione
Unità Centrale di Elaborazione
Memoria
Bus di sistema
Programma P in un linguaggioad alto livello L
Dati del programma P
Programmainterprete del
linguaggio ad alto livello L
Dati dell’interprete
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Due tipi di traduttori /2Due tipi di traduttori /2�� CompilatorCompilatorii
• Per ogni programma da tradurre, lo schema viene percorsouna volta sola prima dell’esecuzione.
�� InterpretInterpretii
• Lo schema viene attraversato tante volte quante sono le istruzioni che compongono il programma; ad ogniattivazione dell'interprete su una particolare istruzione, segue l’esecuzione dell’istruzione stessa.
�� LL’’esecuzioneesecuzione didi un un programmaprogramma compilatocompilato èè pipiùù
veloceveloce delldell’’esecuzioneesecuzione didi un un programmaprogramma
interpretinterpretatoato..
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Interprete Interprete vsvs compilatorecompilatore�� Quale delle due soluzioni Quale delle due soluzioni èè la migliore?la migliore?
�� CompilazioneCompilazione• applicazioni più veloci • maggior lavoro nel processo di messa a punto e manutenzione• OK per i prodotti commerciali a larga diffusione.
�� InterpretazioneInterpretazione• consente tempi di sviluppo più contenuti, • produce programmi meno efficienti; • OK in fase di prototipazione dei programmi che, una volta ultimati, venivano compilati prima del rilascio commerciale.
30/11/2007
Introduzione ai sistemi informatici 13
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
SO in time SO in time sharingsharing
�� Permette la condivisione della CPU tra piPermette la condivisione della CPU tra piùù processi processi
interattiviinterattivi
�� Il tempo di esecuzione del processore Il tempo di esecuzione del processore èè condiviso condiviso
tra pitra piùù utentiutenti
�� 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
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Stati di un processoStati di un processo
Processo Processo
attivoattivoProcessoProcesso
in 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)
30/11/2007
Introduzione ai sistemi informatici 14
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Processi non in esecuzioneProcessi non in esecuzione
�� Si 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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Diagramma a tre statiDiagramma a tre stati
Selezione primo processopronto e sua esecuzione
Processo in
esecuzione
Processi
pronti
Inizio esecuzione(accodamento aiprocessi pronti)
Termine quanto di tempo
Termineelaborazione
Processi
in attesa
Richiestaoperazione di I/O
Completamento operazione di I/O (evento esterno atteso)
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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
30/11/2007
Introduzione ai sistemi informatici 15
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
ModalitModalitàà useruser e modalite modalitàà kernelkernel
�� I processi possono essere eseguiti in modalitI 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)
�� Ci sono due nuove transizione di stato:Ci sono due nuove transizione di stato:• esecuzione user →→→→ esecuzione kernel
• esecuzione kernel →→→→ esecuzione user
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Transizioni di statoTransizioni di stato
Selezione primo processopronto e sua esecuzione
Processo in
esecuzione
(kernel)
Processi
pronti
Inizio esecuzione(accodamento aiprocessi pronti)
Termine quanto di tempo
Termineelaborazione
Processi
in attesaRichiesta
operazione di I/O
Completamentooperazione di I/O
(evento esterno atteso)
Processo in
esecuzione
(user)
Interrupto SVC
RTI
Processi
attivi
30/11/2007
Introduzione ai sistemi informatici 16
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
““concorrenzaconcorrenza”” fra processifra processi�� Vantaggi dellVantaggi dell’’esecuzione concorrente di piesecuzione concorrente di piùù processi: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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Interazioni tra processiInterazioni tra processi�� Le 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
�� ModalitModalitàà di funzionamentodi 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
30/11/2007
Introduzione ai sistemi informatici 17
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
La gestione della memoriaLa gestione della memoria
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Gestore della memoriaGestore della memoria�� Applica tecniche per gestire il conflitto fra dimensione della mApplica tecniche per gestire il conflitto fra dimensione della memoria emoria
fisica e spazio complessivo richiesto dai programmi che devono efisica e spazio complessivo richiesto dai programmi che devono essere ssere eseguiti in modo concorrente e dai relativi dati.eseguiti in modo concorrente e dai relativi dati.
�� Combina le seguenti strategie:Combina le seguenti strategie:• consentire il caricamento di un programma a partire da un indirizzo qualunque della memoria;
• ridurre la necessità di spazio tenendo in memoria solo una porzione dei programmi e dei dati;
• condividere parte delle istruzioni (codice eseguibile) fra diversi processi corrispondenti a uno stesso programma.
�� Il gestore della memoriaIl gestore della memoria• garantisce ai vari processi uno spazio di indirizzamento virtuale in cui lavorare, che può essere superiore alla memoria fisica presente nel calcolatore
• mette in atto dei meccanismi di protezione che tutelano la privatezza dello spazio di lavoro assegnato a ogni processo.
30/11/2007
Introduzione ai sistemi informatici 18
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
La La rilocabilitrilocabilitàà del codicedel codice�� Durante la compilazione i nomi simbolici e i riferimenti a celleDurante la compilazione i nomi simbolici e i riferimenti a celle di memoria sono di memoria sono
stati risolti:stati risolti:
�� Due spazi di memoriaDue spazi di memoria• spazio logico;• spazio fisico.
�� Per far funzionare il programma caricandolo a partire da una posPer far funzionare il programma caricandolo a partire da una posizione izione arbitraria della memoria bisogna effettuare una arbitraria della memoria bisogna effettuare una rilocazionerilocazione: sommare a tutti gli : sommare a tutti gli indirizzi presenti nel programma un valore (indirizzi presenti nel programma un valore (spiazzamentospiazzamento) corrispondente alla ) corrispondente alla differenza fra ldifferenza fra l’’indirizzo a partire dal quale verrindirizzo a partire dal quale verràà effettivamente caricato il effettivamente caricato il programma e il valore a partire dal quale sono stati calcolati gprogramma e il valore a partire dal quale sono stati calcolati gli indirizzi.li indirizzi.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
SwappingSwapping
Esecuzione primo
processo pronto
Processo in esecuzione(kernel)
Processi pronti(in memoria)
Inizio esecuzione (accodamento ai
processi pronti)
Termine quanto di
tempo
Termine
elaborazione
Processiin attesa
(in memoria)
Richiesta
operazione di I/O
Processi pronti
(su disco)
Processi
in attesa(su disco)
Scaricadalla memoria
Scarica
dalla memoria
Evento esterno
atteso
Termine quanto di tempo
e scarica dalla memoria
Carica in
memoria
Evento esterno
atteso
Processo in esecuzione
(user)
SVC
Interrupt
RTI
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 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
30/11/2007
Introduzione ai sistemi informatici 19
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Gestione periferiche I/OGestione periferiche I/O
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Gestore delle perifericheGestore delle periferiche
�� Comunicazione tra lComunicazione tra l’’ambiente CPUambiente CPU--RAM ed i dispositivi RAM ed i dispositivi esterni.esterni.
�� Mascherare ai processi lMascherare ai processi l’’esistenza di un numero limitato di 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/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Gestione periferiche I/OGestione periferiche I/O�� Comandi 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 piperiferiche piùù comuni.comuni.
�� Ogni aggiunta o modifica alla configurazione standard comporta Ogni aggiunta o modifica alla configurazione standard comporta ll’’installazione di software addizionale (driver aggiuntivi).installazione di software addizionale (driver aggiuntivi).
30/11/2007
Introduzione ai sistemi informatici 20
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Installazione driverInstallazione driver
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
PlugPlug&&&&&&&&PlayPlay�� I sistemi operativi piI sistemi operativi piùù recenti sono dotati di funzioni di 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 necessitsenza necessitàà di intervento da parte delldi intervento da parte dell’’utente per la utente per la selezione e lselezione e l’’installazione dei driver.installazione dei driver.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
SpoolingSpooling�� I driver servono anche a I driver servono anche a virtualizzarevirtualizzare la presenza di pila presenza di piùù periferiche periferiche
intrinsecamente non condivisibili, tramite la tecnica di intrinsecamente non condivisibili, tramite la tecnica di spoolingspooling..�� Esempio: gestione di una stampanteEsempio: gestione di una stampante
• quando un processo desidera stampare un file, lo invia al driver,• il driver lo accoda in un’opportuna directory di spooling,• i file contenuti nella directory di spooling vengono stampati in ordine di arrivo (a meno che siano stabilite delle politiche di gestione delle priorità);
• quando la directory di spooling si svuota il driver rimane in memoria in attesa che un processo cerchi di stampare.
�� Questa soluzioneQuesta soluzione• consente di disaccoppiare il programma che deve stampare e la periferica• rende possibile l’uso della stampante da parte di molti processi senza attese inutili.
30/11/2007
Introduzione ai sistemi informatici 21
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
Gestione stampeGestione stampe
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl
processo
Memorialogica
CPUvirtuale
I/Ovirtuale
I/O
virtualeVideo/tastiera(terminale)
Interfaccia I/O
Gestore periferiche I/O: Gestore periferiche I/O:
macchina astrattamacchina astratta
dati
controllo
indirizziBUS
Memoria di massa
Interfaccia I/O
processo
Memorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processo
Memorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processo
Memoria
logica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale