Capitolo 6 Le infrastrutture SoftWare - Sede di Palermo ... · PDF fileIntroduzione ai sistemi...

29
15/03/2007 Introduzione ai sistemi informatici 1 Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Capitolo 6 Capitolo 6 Le infrastrutture SoftWare Le infrastrutture SoftWare Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Funzioni del sistema operativo Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema inf Rendere 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 virtualizza virtualizza le caratteristiche dell le caratteristiche dell’hardware sottostante, offrendo di hardware sottostante, offrendo di esso la visione di una esso la visione di una macchina astratta macchina astratta pi più potente e pi potente e più semplice da semplice da utilizzare di quella fisicamente disponibile. utilizzare di quella fisicamente disponibile. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl SO: funzionalit SO: funzionalità SO come GESTORE DELLE RISORSE SO come GESTORE DELLE RISORSE SO come MACCHINA ESTESA SO come MACCHINA ESTESA

Transcript of Capitolo 6 Le infrastrutture SoftWare - Sede di Palermo ... · PDF fileIntroduzione ai sistemi...

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.