capitolo 6 le infrastrutture software - sede di palermo ... · pdf fileintroduzione ai sistemi...
TRANSCRIPT
15/03/2007
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:• correttezza e precision;• 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.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 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
15/03/2007
Introduzione ai sistemi informatici 2
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 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/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 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.
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.
15/03/2007
Introduzione ai sistemi informatici 3
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,,
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.
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
15/03/2007
Introduzione ai sistemi informatici 4
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;
• …
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
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Processo Processo vsvs programmaprogrammaProgrammaProgramma::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, …).
15/03/2007
Introduzione ai sistemi informatici 5
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 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/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 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
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
NucleoNucleoInteragisce direttamente con lInteragisce direttamente con l’’hardwarehardwareSi 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 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) nell’’accesso accesso alla CPU da parte dei processi in esecuzione.alla CPU da parte dei processi in esecuzione.
15/03/2007
Introduzione ai sistemi informatici 6
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
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 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.
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
15/03/2007
Introduzione ai sistemi informatici 7
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
processo
Memorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
Video/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
processoMemorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processoMemorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processoMemorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Memoria di massa
Interfaccia I/O
processo
Memorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
File System:File System:macchina astrattamacchina astratta
dati
controllo
indirizziBUS
processoMemorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processo
Memorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
uno
root
due tre …
alfa beta
f1 f2f1 f2
f3
f3 f4
15/03/2007
Introduzione ai sistemi informatici 8
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
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 dallModulo del SO direttamente accessibile dall’’utenteutenteHa 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 pointpoint&click) e di attivare &click) 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
15/03/2007
Introduzione ai sistemi informatici 9
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 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/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
LinguaggioLinguaggio di di ProgrammazioneProgrammazioneLa La notazionenotazione con cui con cui èè possibilepossibile descriveredescrivere gliglialgoritmialgoritmi..ProgrammaProgramma: : èè la la rappresentazionerappresentazione di un di un algoritmoalgoritmoin 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
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Il linguaggioIl linguaggio macchinamacchinaIl linguaggioIl linguaggio macchina macchina èè direttamentedirettamenteeseguibileeseguibile dalldall’’elaboratore, senzaelaboratore, senza nessunanessunatraduzione.traduzione.• Istruzioni ed operandi relativi al programma in
esecuzione sono caricati in memoria e quindi sonomemorizzati in forma binaria.
• Vincolo: conoscenza dei metodi di rappresentazione delle informazioni utilizzati.
Istruzione:Istruzione: carica nellcarica nell’’accumulatoreaccumulatore
1001000010010000 1100110011001100
15/03/2007
Introduzione ai sistemi informatici 10
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Il linguaggioIl linguaggio AssemblerAssemblerLe istruzioniLe istruzioni corrispondonocorrispondono univocamente a quelleunivocamente a quellemacchina, mamacchina, ma vengonovengono espresseespresse tramitetramite nominomisimbolici (parole chiave).simbolici (parole chiave).
Il programma prima di essereIl programma prima di essere eseguitoeseguito devedeve essereesseretradotto intradotto in linguaggiolinguaggio macchina (macchina (assemblatoreassemblatore).).
Vincolo: nVincolo: necessitecessitàà di conosceredi conoscere in in dettaglidettaglioo le le caratteristichecaratteristiche delladella macchina (registri, macchina (registri, dimensiondimensione deie dei dati, set di istruzioni)dati, set di istruzioni)
Anche sAnche sempliciemplici algoritmialgoritmi implicano la specifica di implicano la specifica di moltemolte istruzioniistruzioni
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
I linguaggiI linguaggi di alto livellodi alto livelloSono i linguaggi di terzaSono i linguaggi di terza generazione. Le istruzionigenerazione. Le istruzioniesprimonoesprimono unauna serie di azioni. Il programma prima serie di azioni. Il programma prima di esseredi essere eseguitoeseguito devedeve essereessere tradotto in tradotto in linguaggiolinguaggio macchina (macchina (traduttoretraduttore))
Il programmatoreIl programmatore pupuòò astrarreastrarre daidai dettaglidettagli legatilegatiallall’’architetturaarchitettura ed esprimere i propried esprimere i propri algoritmi in algoritmi in modomodo simbolicosimbolico
SonoSono indipendentiindipendenti dalladalla macchina (astrazione)macchina (astrazione)
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Linguaggi di II/III generazioneLinguaggi di II/III generazione
Programma in linguaggioprocedurale
(Codice sorgente)
Programma in linguaggiomacchina
(Codice oggetto)
Trad
utto
re
Programma in linguaggioassemblatore
(Codice sorgente)
Programma in linguaggiomacchina
(Codice oggetto)
Ass
embl
ator
e
15/03/2007
Introduzione ai sistemi informatici 11
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Sviluppo di un ProgrammaSviluppo di un ProgrammaI I traduttoritraduttori sonosono programmiprogrammi particolari particolari checheprovvedono aprovvedono a convertireconvertire ilil codice di codice di programmiprogrammi scrittiscritti in un in un dato dato linguaggio di linguaggio di programmazione (sorgenti), nellaprogrammazione (sorgenti), nellacorrispondentecorrispondente rappresentazione in rappresentazione in linguaggiolinguaggio macchinamacchina ((eseguibili)eseguibili)
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
CPU come interprete delCPU come interprete delsuo 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/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Due tipi di traduttoriDue tipi di traduttoriCompilatoriCompilatori• Accettano in ingresso l’intero programma e
producono in uscita la rappresentazione dell'interoprogramma in linguaggio macchina.
InterpretiInterpreti• Traducono ed eseguono direttamente ciascuna
istruzione del programma sorgente, istruzione per istruzione.
15/03/2007
Introduzione ai sistemi informatici 12
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Com
pila
tore
Com
pila
tore
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
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 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/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Due tipi di traduttori /2Due tipi di traduttori /2CompilatorCompilatorii• Per ogni programma da tradurre, lo schema viene percorso
una 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’’esecuzione di un programmaesecuzione di un programma compilato compilato èè pipiùùveloceveloce delldell’’esecuzione di un programma esecuzione di un programma interpretinterpretatoato..
15/03/2007
Introduzione ai sistemi informatici 13
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Interprete Interprete vsvs compilatorecompilatoreQuale 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.
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 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/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/Oelaborazione
• 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
15/03/2007
Introduzione ai sistemi informatici 14
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)
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)
15/03/2007
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
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 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
15/03/2007
Introduzione ai sistemi informatici 16
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
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
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
““concorrenzaconcorrenza”” fra processifra processiVantaggi 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.
15/03/2007
Introduzione ai sistemi informatici 17
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
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
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
15/03/2007
Introduzione ai sistemi informatici 18
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Gestore della memoriaGestore della memoriaApplica 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.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
La La rilocabilitrilocabilitàà del codicedel codiceDurante 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/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 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)
Processiin attesa(su disco)
Scaricadalla memoria
Scaricadalla memoria
Evento esterno atteso
Termine quanto di tempoe scarica dalla memoria
Carica in memoria
Evento esterno atteso
Processo in esecuzione
(user)
SVCInterrupt
RTI
15/03/2007
Introduzione ai sistemi informatici 19
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
PaginazionePaginazioneFrammentazione della memoria (logica e fisica) in blocchi Frammentazione della memoria (logica e fisica) in blocchi di dimensioni prefissate: di dimensioni prefissate: le paginele pagine..Lo spazio logico di Lo spazio logico di indirizzamentoindirizzamento del processo del processo èè suddiviso suddiviso in sezioni, di dimensioni fisse e uguali fra loro, dette in sezioni, di dimensioni fisse e uguali fra loro, dette pagine pagine logichelogicheLo spazio fisico di Lo spazio fisico di indirizzamentoindirizzamento disponibile nel disponibile nel calcolatore calcolatore èè anchanch’’esso suddiviso in esso suddiviso in pagine fisichepagine fisiche, della , della stessa dimensione delle pagine logiche.stessa dimensione delle pagine logiche.Si basa sul principio di localitSi basa sul principio di localitàà spaziospazio--temporaletemporaleMeccanismo: Vengono caricate, in alcune pagine fisiche su Meccanismo: Vengono caricate, in alcune pagine fisiche su RAM, solo alcune pagine logiche del codice in esecuzione. RAM, solo alcune pagine logiche del codice in esecuzione. Le pagine logiche necessarie vengono caricate di volta in Le pagine logiche necessarie vengono caricate di volta in volta, in base allvolta, in base all’’esigenza.esigenza.
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
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
…
15/03/2007
Introduzione ai sistemi informatici 20
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
MemoryMemory Management Management UnitUnit -- MMUMMUServe un dispositivo dispositivo hardware aggiuntivo in grado diServe un dispositivo dispositivo hardware aggiuntivo in grado diconvertire gli indirizzi logici cui fa riferimento il programma convertire gli indirizzi logici cui fa riferimento il programma nei nei corrispondenti indirizzi fisici: corrispondenti indirizzi fisici: MemoryMemory Management Management UnitUnit..La MMU utilizza una La MMU utilizza una tabella delle paginetabella delle pagine::• mantiene la relazione tra ogni pagina logica e l’indirizzo della pagina fisica
corrispondente.
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
Tabella pagine del processo 1
0
1
PF3
PF4
Tabella pagine del processo 2
0
1
PF1
PF2
2
3
PF0
PF5
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
MemoryMemory Management Management UnitUnit -- MMUMMUDimensioni:Dimensioni:
• Memoria fisica di 32 MByte (indirizzata dunque con 25 bit)• Memoria logica di 4 MByte (indirizzo di 22 bit)• Pagine lunghe 512 KByte (indirizzo di 19 bit).
I primi 3 dei 22 bit dellI primi 3 dei 22 bit dell’’indirizzo logico selezionano una delle 2indirizzo logico selezionano una delle 233=8 righe della tabella =8 righe della tabella delle pagine, il cui contenuto rappresenta ldelle pagine, il cui contenuto rappresenta l’’indirizzo della pagina fisica corrispondente, indirizzo della pagina fisica corrispondente, mentre i restanti 19 bit identificano lo mentre i restanti 19 bit identificano lo spiazzamentospiazzamento relativo allrelativo all’’inizio della pagina inizio della pagina specificata dai 3 bit iniziali.specificata dai 3 bit iniziali.
Spiazzamento
19 bit3 bit 19 bit6 bit
NumeroPaginaFisica
Numero Pagina Logica
7
0
Indirizzo logico Indirizzo fisico
Tabella dellepagine
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
PaginazionePaginazioneLaLa 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
15/03/2007
Introduzione ai sistemi informatici 21
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
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 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)
15/03/2007
Introduzione ai sistemi informatici 22
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 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).
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 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.
15/03/2007
Introduzione ai sistemi informatici 23
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
SpoolingSpoolingI 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.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Gestione stampeGestione stampe
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
processo
Memorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
Video/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
processoMemorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processoMemorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processoMemorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
15/03/2007
Introduzione ai sistemi informatici 24
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
File SystemFile System
Ovvero il Ovvero il sistema di gestionesistema di gestione della della memoria di massamemoria di massa..
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Gestione memoria di massaGestione memoria di massaObiettivoObiettivo::presentare allpresentare all’’utente lutente l’’organizzazione logica dei dati e le organizzazione logica dei dati e le operazioni che operazioni che èè possibile compiere su di essi.possibile compiere su di essi.Operazioni di base di un file system:Operazioni di base di un file system:• recupero di dati precedentemente memorizzati;• eliminazione (cancellazione) di dati obsoleti;• modifica/aggiornamento di dati preesistenti;• copia di dati (e.g. da HD a FD) per backup o per il trasferimento;• …
I servizi vengono forniti sia ai I servizi vengono forniti sia ai programmi applicativi programmi applicativi che che direttamente agli direttamente agli utentiutenti..
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
File systemFile systemFILEFILE::• contenitore logico di informazioni (dati o istruzioni);• oggetto a “lunga vita”, per conservare le informazioni anche dopo la
terminazione del processo che lo ha generato.Per ogni file:Per ogni file:• Identificatore (nome.estensione)• Periferica (drive) e percorso sulla periferica• Data creazione• Dimensione• Posizione effettiva dei dati nella memoria di massa• Altre informazioni
• applicazione che consente all’utente di “usare” il file• data di ultima modifica• diritti di accesso al contenuto del file• …
15/03/2007
Introduzione ai sistemi informatici 25
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
FileFileI nomi dei file sono in genere composti da due parti:I nomi dei file sono in genere composti da due parti:• nome (vero e proprio), che viene assegnato dall’utente• estensione, associata al programma che ha generato il file e consente
quindi di identificare la tipologia dei dati contenuti nel file
Ogni sistema operativo pone dei vincoli sulla lunghezza dei Ogni sistema operativo pone dei vincoli sulla lunghezza dei filenamefilename e sui caratteri di cui possono essere costituitie sui caratteri di cui possono essere costituiti• MS-DOS imponeva una lunghezza massima di 8+3 caratteri per nomi ed
estensioni• Windows ha un limite di 254 caratteri (compreso il path)
I file sono generalmente organizzati in cartelle (directory) e I file sono generalmente organizzati in cartelle (directory) e sottocartelle in una gerarchia ad albero (o, al limite, a grafo sottocartelle in una gerarchia ad albero (o, al limite, a grafo aciclico).aciclico).
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Un esempio di strutturaUn esempio di struttura
iscrgen.dociscrfeb.doc
iscrmar.doc
intro.txt
filea.txt
fileb.wav
filec.jpg filea.txtedit.comxcopy.com
command.com
DOS
ESAMI
ROSSIDIDATT
LEZIONI
UTENTI
BIANCHI
NERI
. (radice)
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Interfaccia graficaInterfaccia grafica
15/03/2007
Introduzione ai sistemi informatici 26
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Organizzazione fisica dei datiOrganizzazione fisica dei dati
Come mantenere la corrispondenza tra il nome del Come mantenere la corrispondenza tra il nome del file e i blocchi su disco che ne contengono i dati:file e i blocchi su disco che ne contengono i dati:• lista concatenata (e.g. Windows 95/98)• i-node (e.g. UNIX)
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Il controllo degli accessiIl controllo degli accessiIdentificazione degli accessi al sistema.Identificazione degli accessi al sistema.• Associare a ogni utente un account (login) e una parola d’ordine (password).• All’interno del sistema operativo, in un apposito file, è contenuta la lista di tutti gli
account e delle relative password: solo se viene specificato un account fra quelli previsti (utente abilitato) e la password corrisponde a quella memorizzata (certificazione di identità) viene consentito l’accesso al sistema.
Questo consente di Questo consente di personalizzare personalizzare il sistema, per esempio definendo:il sistema, per esempio definendo:• la distribuzione dei costi di gestione fra i vari utenti;• la visibilità del sistema in termini di porzione del file system complessivo, periferiche e
programmi applicativi disponibili;• la personalizzazione dell’ambiente operativo.
Consente di controllare gli accessi ai file:Consente di controllare gli accessi ai file:• livello di protezione a livello di file o di directory;• altro metodo: Access Control List
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Memoria di massa
Interfaccia I/O
processo
Memorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
File System:File System:macchina astrattamacchina astratta
dati
controllo
indirizziBUS
processoMemorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
processo
Memorialogica
CPUvirtuale
I/Ovirtuale
I/Ovirtuale
uno
root
due tre …
alfa beta
f1 f2f1 f2
f3
f3 f4
15/03/2007
Introduzione ai sistemi informatici 27
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Il gestore delle interfacce Il gestore delle interfacce -- ShellShell
Interfaccia a caratteri
Interfaccia grafica
(point & click)
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
““Information hidingInformation hiding””Principio su cui si basa lPrincipio su cui si basa l’’evoluzione delle evoluzione delle tecnologie, in particolare ICTtecnologie, in particolare ICTLL’’informazione informazione ““inutileinutile”” per lper l’’utente, che utente, che rende inutilmente complesso lrende inutilmente complesso l’’uso del uso del calcolatore, viene mantenuta nascosta calcolatore, viene mantenuta nascosta allall’’utenteutente
Il parallelo con altreIl parallelo con altre tecnologie ...tecnologie ...
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
La gestione della reteLa gestione della rete
15/03/2007
Introduzione ai sistemi informatici 28
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
VirtualizzazioneVirtualizzazione delle risorse di retedelle risorse di reteEstendere anche a processi in esecuzione su Estendere anche a processi in esecuzione su calcolatori diversi il principio di calcolatori diversi il principio di virtualizzazionevirtualizzazionedelle risorse.delle risorse.
Condividere in modo trasparente dati, periferiche Condividere in modo trasparente dati, periferiche e unite unitàà di elaborazione.di elaborazione.
In particolare si tratta di poter gestire le In particolare si tratta di poter gestire le perifericheperiferiche e il e il file systemfile system..
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
File system di reteFile system di reteUn sistema operativo che consente una gestione Un sistema operativo che consente una gestione distribuita del file system deve:distribuita del file system deve:• integrare in modo organico i singoli file system dei
calcolatori della rete;• risolvere i problemi dell’univocità dei nomi di file e
directory per i calcolatori della rete;• consentire un accesso efficiente anche a file presenti su
calcolatori remoti.
Questi requisiti vengono soddisfatti con un file Questi requisiti vengono soddisfatti con un file system di tipo system di tipo clientclient--server.server.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
OrganizzazioneOrganizzazione clientclient--serverserverObiettivo: minimizzare le dimensioni del nucleoObiettivo: minimizzare le dimensioni del nucleo• si spostano alcune componenti del sistema verso gli strati applicativi• le funzionalità estranee al nucleo sono “servizi” forniti da processi server.
StratoSistema
Processoclient
Processoclient
Processoclient Strato Utente…
Terminal server
File server Print server
Memory server
Nucleo
…
Primitive di sistema
Scambio messaggi
15/03/2007
Introduzione ai sistemi informatici 29
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
OrganizzazioneOrganizzazione clientclient--serverserverI I clientclient possono usufruire dei servizi di sistema inviando una richiestapossono usufruire dei servizi di sistema inviando una richiesta al al serverserverOttime proprietOttime proprietàà di di modularitmodularitàà e e portabilitportabilitàà::
Nucleo
Client
Client
Server
Nucleo
Client
Client
Client
Nucleo
Client
Client
Client
Nucleo
Client
Client
Server
Calcolatore 1 Calcolatore 2 Calcolatore 3 Calcolatore 4
Rete di trasmissione
Messaggio da client verso server
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
ClientClient--serverserverVantaggi di questa strutturazione:Vantaggi di questa strutturazione:• indipendenza fisica fra le applicazioni client e applicazioni server; • possibilità di specializzare l’interfaccia utente del client lasciando invariato l’insieme dei
servizi del server• possibilità di aggiornare tecnologicamente e funzionalmente il server in modo
trasparente ai client; • riduzione degli interventi di manutenzione del software e garanzia di coerenza degli
aggiornamenti.Diffusione destinata a rafforzarsi ulteriormente:Diffusione destinata a rafforzarsi ulteriormente:• introduzione di palmari wireless:
client in grado di connettersi a processi server accessibili tramite la rete.
MicrokernelMicrokernel::struttura moderna in cui si assegnano alstruttura moderna in cui si assegnano al kernelkernel poche funzioni essenzialipoche funzioni essenziali• gestione degli spazi di indirizzamento,• comunicazione fra i processi (IPC, Inter-Process Communication)• funzioni base di gestione della CPU (scheduling).• i servizi del SO sono forniti da processi che sono trattati dal microkernel come tutte le
altre applicazioni.
Introduzione ai sistemi informatici 3/edDonatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
I modelli ibridiI modelli ibridiOrganizzazione ibrida: coesistono paradigmi di interazione Organizzazione ibrida: coesistono paradigmi di interazione basati su dati condivisi (come nel modello a strati) con altri basati su dati condivisi (come nel modello a strati) con altri che impiegano la comunicazione di messaggi (come nel che impiegano la comunicazione di messaggi (come nel modello modello clientclient--server).server).
MultiMulti--threadingthreading èè utile per quelle applicazioni che svolgono utile per quelle applicazioni che svolgono compiti ragionevolmente indipendenti che non necessitano compiti ragionevolmente indipendenti che non necessitano pertanto di essere serializzati.pertanto di essere serializzati.
MicrokernelMicrokernel ee multithreadingmultithreading sono ormai usati in maniera sono ormai usati in maniera congiunta nello sviluppo dei sistemi operativi e delle congiunta nello sviluppo dei sistemi operativi e delle applicazioni distribuite.applicazioni distribuite.