Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di...

21
30/11/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 Informatica Informatica Pietro Storniolo [email protected] http://www.pa.icar.cnr.it/storniolo/info200708 Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl 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 precisione; anywhere, anytime; affidabilità, disponibilità e sicurezza dei sistemi; privatezza dei dati; interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse. Il sistema operativo può essere inteso come uno strumento che Il sistema operativo può essere inteso come uno strumento che 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.

Transcript of Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di...

Page 1: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 1

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

InformaticaInformatica

Pietro Storniolo

[email protected]://www.pa.icar.cnr.it/storniolo/info200708

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Le infrastrutture SoftWareLe infrastrutture SoftWare

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Funzioni del sistema operativoFunzioni del sistema operativo

�� Rendere utilizzabili le risorse fisiche presenti nel sistema infRendere utilizzabili le risorse fisiche presenti nel sistema informatico:ormatico:• correttezza e precisione;• anywhere, anytime;• affidabilità, disponibilità e sicurezza dei sistemi;• privatezza dei dati;• interoperabilità fra dispositivi forniti da diversi produttori;• superare i problemi legati alla limitazione del numero di risorse.

�� Il sistema operativo può essere inteso come uno strumento che Il sistema operativo può essere inteso come uno strumento che virtualizzavirtualizza le caratteristiche dellle caratteristiche dell’’hardware sottostante, offrendo di hardware sottostante, offrendo di esso la visione di una esso la visione di una macchina astrattamacchina astratta pipiùù potente e pipotente e piùù semplice da semplice da utilizzare di quella fisicamente disponibile.utilizzare di quella fisicamente disponibile.

Page 2: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 2

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

SO: funzionalitSO: funzionalitàà

�� SO come GESTORE DELLE RISORSESO come GESTORE DELLE RISORSE

�� SO come MACCHINA ESTESASO come MACCHINA ESTESA

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Funzioni di servizio del SOFunzioni di servizio del SO

�� Esecuzione di applicazioniEsecuzione di applicazioni

�� Accesso ai dispositivi di ingresso/uscitaAccesso ai dispositivi di ingresso/uscita

�� Archiviazione di dati e programmiArchiviazione di dati e programmi

�� Controllo di accessoControllo di accesso

�� ContabilizzazioneContabilizzazione

�� Gestione dei malfunzionamentiGestione dei malfunzionamenti

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Vantaggi di un SOVantaggi di un SO

�� Sono legati alla possibilitSono legati alla possibilitàà di definire di definire modalitmodalitàà standard di interfaccia con i standard di interfaccia con i dispositivi fisici, cosicchdispositivi fisici, cosicchéé sia possibile:sia possibile:• sviluppare programmi in modo semplice,

modulare ed indipendente dallo specifico calcolatore su cui viene fatto funzionare il sistema operativo;

• aggiornare il software di base e l'hardware in modo trasparente ai programmi applicativi e all'utente, ossia senza che vengano influenzati dall'operazione.

Page 3: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 3

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Visioni fornite da un SOVisioni fornite da un SO

�� Dall'alto:Dall'alto: il sistema operativo fornisce il sistema operativo fornisce

all'utente un'interfaccia conveniente.all'utente un'interfaccia conveniente.

�� Dal basso:Dal basso: gestisce tutti le parti di un gestisce tutti le parti di un

sistema complesso, allocando in modo sistema complesso, allocando in modo

ordinato le diverse risorse della macchina: ordinato le diverse risorse della macchina:

processori, memorie, dischi, interfacce di processori, memorie, dischi, interfacce di

rete, stampanti e altre periferiche.rete, stampanti e altre periferiche.

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Il softwareIl software

�� SW= Sistema Operativo + SW applicativoSW= Sistema Operativo + SW applicativo

�� Il S.O. come necessario Il S.O. come necessario intermediariointermediario

HW

SW

HW

Sistema Operativo

SW Applicativo

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Elementi di un SOElementi di un SO�� Sistema di Sistema di gestione del processoregestione del processore,,

�� Sistema di Sistema di gestione della memoriagestione della memoria,,

�� Sistema di Sistema di gestione delle periferichegestione delle periferiche,,

�� Sistema di Sistema di gestione dei filegestione dei file (file system)(file system)

�� Sistema di Sistema di gestione degli utentigestione degli utenti e dei relativi comandi e dei relativi comandi (interprete comandi),(interprete comandi),

�� Sistema di Sistema di gestione della rete.gestione della rete.

Page 4: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 4

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Elementi di un SOElementi di un SO

Sistema

Operativo

Utente

Nucleo (o kernel)

[gestione processore]

Hardware

Software applicativo

Gestione periferiche

File

system Interfaccia

con la rete

Gestione

memoria

Interprete comandi

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

SO SO vsvs applicazioniapplicazioni�� Programmi applicativiProgrammi applicativi

• hanno accesso a un insieme ridotto di risorse;

• possono utilizzare solo un sottoinsieme delle istruzioni del processore (esecuzione in modalità utente);

• non possono decidere autonomamente quando e come avere accesso alle risorse del sistema (richiedono al sistema operativo l’esecuzione di alcuni servizi);

• …

�� Sistema operativoSistema operativo

• ha accesso a tutte le risorse;

• può utilizzare tutte le istruzioni del processore (esecuzione in modalità

supervisore);

• stabilisce in che ordine e come le richieste che riceve devono essere soddisfatte;

• …

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

MultiprogrammazioneMultiprogrammazione

Tempo

attesa per operazioni di I/Oelaborazione

TempoProgr. 3

Progr. 2

Progr. 1

attesa per operazioni di I/Oelaborazione

Page 5: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 5

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Processo Processo vsvs programmaprogramma

�� ProgrammaProgramma::entitentitàà statica composta dal codice eseguibile statica composta dal codice eseguibile dal processore.dal processore.

�� ProcessoProcesso::entitentitàà dinamica che corrisponde al dinamica che corrisponde al programma in esecuzione, composto da:programma in esecuzione, composto da:• codice (il programma);

• dati (quelli che servono per l’esecuzione del programma);

• stato (a che punto dell’esecuzione ci si trova, cosa c’è nei registri, …).

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Organizzazione di un SOOrganizzazione di un SO�� Gerarchia di Gerarchia di

““macchine virtualimacchine virtuali””

�� La visione della La visione della

macchina virtuale a macchina virtuale a

livello livello nn èè quella quella

fornita dallfornita dall’’HW e dagli HW e dagli

strati del SO fino strati del SO fino

allall’’ennesimo (incluso)ennesimo (incluso)

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Organizzazione a Organizzazione a ““stratistrati””

�� Ogni macchina virtuale Ogni macchina virtuale èè un insieme di programmi un insieme di programmi che realizza delle funzionalitche realizza delle funzionalitàà che utilizzano i che utilizzano i servizi forniti a livello inferiore.servizi forniti a livello inferiore.

�� Ogni macchina virtuale ha il compito di gestire Ogni macchina virtuale ha il compito di gestire risorse specifiche di sistema regolandone lrisorse specifiche di sistema regolandone l’’uso e uso e mascherandone i limiti.mascherandone i limiti.

�� I I meccanismimeccanismi che garantiscono la correttezza che garantiscono la correttezza logica sono separati dalle logica sono separati dalle politichepolitiche di gestione di gestione (maggiore flessibilit(maggiore flessibilitàà).).

ogni “strato” risolve un problema specifico

Page 6: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 6

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

NucleoNucleo�� Interagisce direttamente con lInteragisce direttamente con l’’hardwarehardware

�� Si occupa dellSi occupa dell’’esecuzione dei programmi e della risposta esecuzione dei programmi e della risposta agli eventi esterni generati dalle unitagli eventi esterni generati dalle unitàà periferiche.periferiche.

�� Scopo principale: gestire i processi corrispondenti ai Scopo principale: gestire i processi corrispondenti ai programmi che sono contemporaneamente attivi.programmi che sono contemporaneamente attivi.

�� Fornisce alle macchine virtuali di livello superiore la visione Fornisce alle macchine virtuali di livello superiore la visione di un insieme di unitdi un insieme di unitàà di elaborazione virtuali ciascuna di elaborazione virtuali ciascuna dedicata a un processo presente in memoriadedicata a un processo presente in memoria

�� Gestisce il contesto di esecuzione dei vari processiGestisce il contesto di esecuzione dei vari processi

�� Attua una politica di alternanza (Attua una politica di alternanza (schedulingscheduling) nell) nell’’accesso accesso alla CPU da parte dei processi in esecuzione.alla CPU da parte dei processi in esecuzione.

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

CPU

Nucleo: macchina astrattaNucleo: macchina astratta

dati

controllo

indirizziBUS

Memoriadi lavoro

Memoria di massa

Interfaccia I/O

Video/tastiera(terminale)

Interfaccia I/O

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

… … …

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Gestore della memoriaGestore della memoria�� Controlla la memoria centrale, al fine di risolvere le relative Controlla la memoria centrale, al fine di risolvere le relative esigenze esigenze

dei vari processi in modo trasparente ed efficiente.dei vari processi in modo trasparente ed efficiente.

�� Consente ai programmi di lavorare in un proprio Consente ai programmi di lavorare in un proprio spazio di spazio di indirizzamentoindirizzamento virtualevirtuale e di ignorare quindi le effettive zone di e di ignorare quindi le effettive zone di memoria fisica occupata.memoria fisica occupata.

�� Si occupa di:Si occupa di:• proteggere programmi e relativi dati caricati nella memoria di lavoro;• mascherare la collocazione fisica dei dati;• permettere, in modo controllato, la parziale sovrapposizione degli spazi di memoria associati ai vari programmi.

�� Fornisce alle macchine di livello superiore la possibilitFornisce alle macchine di livello superiore la possibilitàà di lavorare di lavorare come se esse avessero a disposizione una memoria dedicata, di cacome se esse avessero a disposizione una memoria dedicata, di capacitpacitààanche maggiore di quella fisicamente disponibile.anche maggiore di quella fisicamente disponibile.

Page 7: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 7

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Memoriadi lavoro

(fisica)

Gestore memoria: macchina astrattaGestore memoria: macchina astratta

dati

controllo

indirizziBUS

Memoria di massa

Interfaccia I/O

Video/tastiera(terminale)

Interfaccia I/O

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

… … …

Memorialogica

Memorialogica

Memorialogica

Memorialogica

Memorialogica

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Gestore delle perifericheGestore delle periferiche

�� Fornisce una visione del sistema in cui i processi possono Fornisce una visione del sistema in cui i processi possono operare mediante operare mediante periferiche astratteperiferiche astratte..

�� Maschera le caratteristiche fisiche delle periferiche e le Maschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscitaspecifiche operazioni di ingresso/uscita

�� Ogni processo ha a disposizione delle periferiche virtualiOgni processo ha a disposizione delle periferiche virtuali

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

processo

Memoria

logica

CPUvirtuale

I/Ovirtuale

I/O

virtualeVideo/tastiera(terminale)

Interfaccia I/O

Gestore periferiche I/O: Gestore periferiche I/O:

macchina astrattamacchina astratta

dati

controllo

indirizziBUS

Memoria di massa

Interfaccia I/O

processo

Memorialogica

CPUvirtuale

I/Ovirtuale

I/Ovirtuale

processo

Memoria

logica

CPUvirtuale

I/Ovirtuale

I/Ovirtuale

processo

Memoria

logica

CPUvirtuale

I/Ovirtuale

I/Ovirtuale

Page 8: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 8

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Memoria di massa

Interfaccia I/O

processo

Memoria

logica

CPUvirtuale

I/Ovirtuale

I/O

virtuale

File System:File System:

macchina astrattamacchina astratta

dati

controllo

indirizziBUS

processo

Memoria

logica

CPUvirtuale

I/Ovirtuale

I/Ovirtuale

processo

Memoria

logica

CPUvirtuale

I/Ovirtuale

I/O

virtuale

uno

root

due tre …

alfa beta

f1 f2f1 f2

f3

f3 f4

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

File System (gestore dei file)File System (gestore dei file)

�� Gestisce la memoria di massaGestisce la memoria di massa

�� Gestisce i fileGestisce i file

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Interprete dei comandiInterprete dei comandi�� Modulo del SO direttamente accessibile dallModulo del SO direttamente accessibile dall’’utenteutente

�� Ha la funzione di interpretare i comandi che gli Ha la funzione di interpretare i comandi che gli giungono (da tastiera e/o giungono (da tastiera e/o point&clickpoint&click) e di attivare ) e di attivare i programmi corrispondenti.i programmi corrispondenti.

�� Le operazioni che svolge sono:Le operazioni che svolge sono:• lettura dalla memoria di massa del programma da eseguire;

• allocazione della memoria centrale;• caricamento del programma e dei relativi dati nella memoria allocata;

• creazione e attivazione del processo corrispondente.

Page 9: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 9

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

La gestione dei processiLa gestione dei processi

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Elaborazione parallelaElaborazione parallela

�� Il concetto di Il concetto di elaborazione parallelaelaborazione parallela si riferisce specificamente:si riferisce specificamente:• ai dati;• alle istruzioni;• ai programmi.

�� Il parallelismo a livello di dati e di istruzioni Il parallelismo a livello di dati e di istruzioni èè possibile solo con lpossibile solo con l’’impiego di impiego di architetture di elaborazione parallela, basate sulla presenza diarchitetture di elaborazione parallela, basate sulla presenza di pipiùù unitunitàà di di elaborazione in grado di eseguire istruzioni in modo concorrenteelaborazione in grado di eseguire istruzioni in modo concorrente ma anche, per ma anche, per esempio, di adeguati linguaggi di programmazione.esempio, di adeguati linguaggi di programmazione.

�� Il parallelismo a livello di programma ricade nellIl parallelismo a livello di programma ricade nell’’ambito dei sistemi operativi.ambito dei sistemi operativi.

�� Le condizioni che un sistema operativo deve soddisfare sono:Le condizioni che un sistema operativo deve soddisfare sono:• efficienza;• interattività;• sincronizzazione/cooperazione.

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

LinguaggioLinguaggio di di ProgrammazioneProgrammazione

�� La La notazionenotazione con cui con cui èè possibilepossibile descriveredescrivere gligli

algoritmialgoritmi..

�� ProgrammaProgramma: : èè la la rappresentazionerappresentazione di un di un algoritmoalgoritmo

in un in un particolareparticolare linguaggiolinguaggio di di programmazioneprogrammazione..

�� OgniOgni linguaggiolinguaggio di di programmazioneprogrammazione disponedispone di un di un

insiemeinsieme di di ““parole parole chiavechiave”” (keywords)(keywords)

�� OgniOgni linguaggiolinguaggio èè caratterizzatocaratterizzato dada unauna sintassisintassi e e

dada unauna semanticasemantica

Page 10: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 10

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Il Il linguaggiolinguaggio macchinamacchina

�� Il Il linguaggiolinguaggio macchinamacchina èè direttamentedirettamenteeseguibileeseguibile dalldall’’elaboratoreelaboratore, , senzasenza nessunanessunatraduzionetraduzione..• Istruzioni ed operandi relativi al programma in esecuzione sono caricati in memoria e quindi sonomemorizzati in forma binaria.

• Vincolo: conoscenza dei metodi dirappresentazione delle informazioni utilizzati.

�� Istruzione:Istruzione: carica nellcarica nell’’accumulatoreaccumulatore

1001000010010000 1100110011001100

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

I I linguaggilinguaggi di alto livellodi alto livello�� SonoSono i i linguaggilinguaggi didi terzaterza generazionegenerazione. Le . Le istruzioniistruzioni

esprimonoesprimono unauna serieserie didi azioniazioni. Il . Il programmaprogramma prima prima

didi essereessere eseguitoeseguito devedeve essereessere tradottotradotto in in

linguaggiolinguaggio macchinamacchina ((traduttoretraduttore))

�� Il Il programmatoreprogrammatore pupuòò astrarreastrarre daidai dettaglidettagli legatilegati

allall’’architetturaarchitettura eded esprimereesprimere i i propripropri algoritmialgoritmi in in

modomodo simbolicosimbolico

�� SonoSono indipendentiindipendenti dalladalla macchinamacchina ((astrazioneastrazione))

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

SviluppoSviluppo didi un un ProgrammaProgramma

�� I I traduttoritraduttori sonosono programmiprogrammi particolari particolari cheche

provvedonoprovvedono aa convertireconvertire ilil codicecodice didi

programmiprogrammi scrittiscritti in un in un dato dato linguaggiolinguaggio didi

programmazioneprogrammazione ((sorgentisorgenti), ), nellanella

corrispondentecorrispondente rappresentazionerappresentazione in in

linguaggiolinguaggio macchinamacchina ((eseguibilieseguibili))

Page 11: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 11

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

CPU come interprete delCPU come interprete del

suo linguaggio macchinasuo linguaggio macchina

Unità Centrale di Elaborazione(CPU):

interprete ed esecutore del linguaggio macchina L

Unità Centrale di Elaborazione(CPU):

interprete ed esecutore del linguaggio macchina L

Memoria

Bus di

sistema

Programma P in linguaggiomacchina L

Dati del programma P

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Due tipi di traduttoriDue tipi di traduttori

�� CompilatoriCompilatori

• Accettano in ingresso l’intero programma eproducono in uscita la rappresentazione dell'interoprogramma in linguaggio macchina.

�� InterpretiInterpreti

• Traducono ed eseguono direttamente ciascunaistruzione del programma sorgente, istruzione per istruzione.

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Compilatore

Compilatore

Unità Centrale di Elaborazione

Unità Centrale di Elaborazione

Memoria

Bus di

sistema

Programma P in un linguaggio ad alto livello L

Programma P’ in linguag-giomacchina della CPU

Programmacompilatore del linguaggio ad alto livello L

Dati del compilatore

Fase 1

Unità Centrale di Elaborazione

Unità Centrale di Elaborazione

Memoria

Bus di

sistema

Dati del programmaP’

Programma P’ in linguaggio macchina

della CPU Fase 2

Page 12: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 12

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

InterpreteInterprete

Unità Centrale di Elaborazione

Unità Centrale di Elaborazione

Memoria

Bus di sistema

Programma P in un linguaggioad alto livello L

Dati del programma P

Programmainterprete del

linguaggio ad alto livello L

Dati dell’interprete

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Due tipi di traduttori /2Due tipi di traduttori /2�� CompilatorCompilatorii

• Per ogni programma da tradurre, lo schema viene percorsouna volta sola prima dell’esecuzione.

�� InterpretInterpretii

• Lo schema viene attraversato tante volte quante sono le istruzioni che compongono il programma; ad ogniattivazione dell'interprete su una particolare istruzione, segue l’esecuzione dell’istruzione stessa.

�� LL’’esecuzioneesecuzione didi un un programmaprogramma compilatocompilato èè pipiùù

veloceveloce delldell’’esecuzioneesecuzione didi un un programmaprogramma

interpretinterpretatoato..

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Interprete Interprete vsvs compilatorecompilatore�� Quale delle due soluzioni Quale delle due soluzioni èè la migliore?la migliore?

�� CompilazioneCompilazione• applicazioni più veloci • maggior lavoro nel processo di messa a punto e manutenzione• OK per i prodotti commerciali a larga diffusione.

�� InterpretazioneInterpretazione• consente tempi di sviluppo più contenuti, • produce programmi meno efficienti; • OK in fase di prototipazione dei programmi che, una volta ultimati, venivano compilati prima del rilascio commerciale.

Page 13: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 13

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

SO in time SO in time sharingsharing

�� Permette la condivisione della CPU tra piPermette la condivisione della CPU tra piùù processi processi

interattiviinterattivi

�� Il tempo di esecuzione del processore Il tempo di esecuzione del processore èè condiviso condiviso

tra pitra piùù utentiutenti

�� Ogni processo in esecuzione ha a disposizione un Ogni processo in esecuzione ha a disposizione un

quanto di tempo di utilizzo della CPU, al termine quanto di tempo di utilizzo della CPU, al termine

del quale viene sospeso per lasciare il posto ad un del quale viene sospeso per lasciare il posto ad un

altro processo in attesa di esecuzionealtro processo in attesa di esecuzione

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Esecuzione di un processoEsecuzione di un processo

Tempo

attesa per operazioni di I/O elaborazione

• Un processo utente può effettivamente essere in esecuzione sulla CPU

• Ogni operazione di I/O consiste in una chiamata al sistema operativo e quindi in una sospensione del processo utente per l’esecuzione dell’operazione di I/O da parte del kernel

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Stati di un processoStati di un processo

Processo Processo

attivoattivoProcessoProcesso

in attesain attesa

Richiesta Richiesta

operazione di I/Ooperazione di I/O

Completamento operazione di Completamento operazione di

I/O (si verifica lI/O (si verifica l’’evento atteso)evento atteso)

Page 14: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 14

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Processi non in esecuzioneProcessi non in esecuzione

�� Si possono distinguere due casiSi possono distinguere due casi

• Processi in attesa di un evento esterno (ad esempio I/O)

• Processi pronti ad essere eseguiti in attesa della CPU

�� Si tratta di due stati diversi: Si tratta di due stati diversi: PRONTOPRONTO e e

ATTESAATTESA realizzati con due code diverserealizzati con due code diverse

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Diagramma a tre statiDiagramma a tre stati

Selezione primo processopronto e sua esecuzione

Processo in

esecuzione

Processi

pronti

Inizio esecuzione(accodamento aiprocessi pronti)

Termine quanto di tempo

Termineelaborazione

Processi

in attesa

Richiestaoperazione di I/O

Completamento operazione di I/O (evento esterno atteso)

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Transizioni di statoTransizioni di stato

�� Pronto Pronto →→ EsecuzioneEsecuzione• Il SO stabilisce quale dei processi “pronti” debba essere mandato in “esecuzione”.

• La scelta è fatta dall’algoritmo di scheduling che deve bilanciare efficienza e fairness.

�� Esecuzione Esecuzione →→ AttesaAttesa• il processo chiede delle risorse che non sono disponibili o attende un evento

• il SO salva tutte le informazioni necessarie a riprendere l’esecuzione e l’informazione relativa all’evento atteso nella tabella dei processi

EP

A

EP

A

Page 15: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 15

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Transizioni di statoTransizioni di stato

�� Attesa Attesa →→ ProntoPronto• Si verifica l’evento atteso dal processo e il SO sposta quel processo nella coda dei processi pronti.

�� Esecuzione Esecuzione →→ ProntoPronto• Termina il quanto di tempo e il processo in “esecuzione” lascia spazio a un altro processo “pronto”.

• Il SO salva (nella tabella dei processi) tutte le informazioni per riprendere l’esecuzione del processo dal punto in cui viene interrotta.

• Contemporaneamente un altro processo passa da “pronto” a “esecuzione”.

EP

A

EP

A

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

ModalitModalitàà useruser e modalite modalitàà kernelkernel

�� I processi possono essere eseguiti in modalitI processi possono essere eseguiti in modalitàà kernelkernel(riservata ai servizi forniti dal sistema operativo) o (riservata ai servizi forniti dal sistema operativo) o useruser (programmi applicativi)(programmi applicativi)

�� Ci sono due nuove transizione di stato:Ci sono due nuove transizione di stato:• esecuzione user →→→→ esecuzione kernel

• esecuzione kernel →→→→ esecuzione user

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Transizioni di statoTransizioni di stato

Selezione primo processopronto e sua esecuzione

Processo in

esecuzione

(kernel)

Processi

pronti

Inizio esecuzione(accodamento aiprocessi pronti)

Termine quanto di tempo

Termineelaborazione

Processi

in attesaRichiesta

operazione di I/O

Completamentooperazione di I/O

(evento esterno atteso)

Processo in

esecuzione

(user)

Interrupto SVC

RTI

Processi

attivi

Page 16: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 16

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Round Round RobinRobin

���� �������� ����

I/O

���� ���� ����

Fine I/O

����

E

P

P

E

P

P E

P

P E

A

P E

A

P

E

P

P

E

A

P

����

Cambio di contesto

EP

A

P1

E

P

P

E

P

P

P2P3

P

E

PProcesso 3

Processo 2

Processo 1

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

““concorrenzaconcorrenza”” fra processifra processi�� Vantaggi dellVantaggi dell’’esecuzione concorrente di piesecuzione concorrente di piùù processi:processi:

• impiegare in maniera trasparente una o più CPU (sia inserite in un solo calcolatore che in più calcolatori, collegati in rete);

• aumentare l’utilizzo della CPU nei sistemi a partizione di tempo, ove si eseguono piùlavori in quasi parallelismo;

• condividere la stessa risorsa fisica fra diversi utenti in modo del tutto trasparente ma controllato;

• accedere contemporaneamente, da parte di diversi utenti, a una base di dati comune e centralizzata;

• …

�� ProblemiProblemi• starvation: un processo non riesce ad accedere ad una risorsa perché la trova sempre occupata da altri processi (che per esempio possono avere un livello di prioritàmaggiore);

• blocco critico: un insieme di processi rimane bloccato perché ciascuno di essi aspetta delle risorse che sono occupate da un altro processo compreso in questo stesso insieme (vincolo circolare).

• Evitare (prevenzione) o risolvere (eliminazione) situazioni di blocco critico o di starvation riduce le prestazioni complessive del sistema.

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Interazioni tra processiInterazioni tra processi�� Le Le interazioniinterazioni fra processi sono classificabili in:fra processi sono classificabili in:

• indesiderate e (spesso) impreviste

• desiderate e previste.

�� La La gestione delle interazionigestione delle interazioni fra i processi implicafra i processi implica• la sincronizzazione fra le varie attività che ogni singolo processo deve svolgere in modo parallelo rispetto agli altri

• la comunicazione, ovvero una modalità per lo scambio dei dati fra i processi

�� ModalitModalitàà di funzionamentodi funzionamento dei processi:dei processi:• in foreground, quando il processo è abilitato all’interazione con l’utente;• in background, quando il processo non è in grado, almeno temporaneamente, di interagire direttamente con l’utente; questo è lo stato in cui si trovano parecchi dei processi relativi alle funzioni interne del sistema operativo

Page 17: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 17

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

CPU

Nucleo: macchina astrattaNucleo: macchina astratta

dati

controllo

indirizziBUS

Memoriadi lavoro

Memoria di massa

Interfaccia I/O

Video/tastiera(terminale)

Interfaccia I/O

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

… … …

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

La gestione della memoriaLa gestione della memoria

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Gestore della memoriaGestore della memoria�� Applica tecniche per gestire il conflitto fra dimensione della mApplica tecniche per gestire il conflitto fra dimensione della memoria emoria

fisica e spazio complessivo richiesto dai programmi che devono efisica e spazio complessivo richiesto dai programmi che devono essere ssere eseguiti in modo concorrente e dai relativi dati.eseguiti in modo concorrente e dai relativi dati.

�� Combina le seguenti strategie:Combina le seguenti strategie:• consentire il caricamento di un programma a partire da un indirizzo qualunque della memoria;

• ridurre la necessità di spazio tenendo in memoria solo una porzione dei programmi e dei dati;

• condividere parte delle istruzioni (codice eseguibile) fra diversi processi corrispondenti a uno stesso programma.

�� Il gestore della memoriaIl gestore della memoria• garantisce ai vari processi uno spazio di indirizzamento virtuale in cui lavorare, che può essere superiore alla memoria fisica presente nel calcolatore

• mette in atto dei meccanismi di protezione che tutelano la privatezza dello spazio di lavoro assegnato a ogni processo.

Page 18: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 18

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

La La rilocabilitrilocabilitàà del codicedel codice�� Durante la compilazione i nomi simbolici e i riferimenti a celleDurante la compilazione i nomi simbolici e i riferimenti a celle di memoria sono di memoria sono

stati risolti:stati risolti:

�� Due spazi di memoriaDue spazi di memoria• spazio logico;• spazio fisico.

�� Per far funzionare il programma caricandolo a partire da una posPer far funzionare il programma caricandolo a partire da una posizione izione arbitraria della memoria bisogna effettuare una arbitraria della memoria bisogna effettuare una rilocazionerilocazione: sommare a tutti gli : sommare a tutti gli indirizzi presenti nel programma un valore (indirizzi presenti nel programma un valore (spiazzamentospiazzamento) corrispondente alla ) corrispondente alla differenza fra ldifferenza fra l’’indirizzo a partire dal quale verrindirizzo a partire dal quale verràà effettivamente caricato il effettivamente caricato il programma e il valore a partire dal quale sono stati calcolati gprogramma e il valore a partire dal quale sono stati calcolati gli indirizzi.li indirizzi.

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

SwappingSwapping

Esecuzione primo

processo pronto

Processo in esecuzione(kernel)

Processi pronti(in memoria)

Inizio esecuzione (accodamento ai

processi pronti)

Termine quanto di

tempo

Termine

elaborazione

Processiin attesa

(in memoria)

Richiesta

operazione di I/O

Processi pronti

(su disco)

Processi

in attesa(su disco)

Scaricadalla memoria

Scarica

dalla memoria

Evento esterno

atteso

Termine quanto di tempo

e scarica dalla memoria

Carica in

memoria

Evento esterno

atteso

Processo in esecuzione

(user)

SVC

Interrupt

RTI

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Memoriadi lavoro

(fisica)

Gestore memoria: macchina astrattaGestore memoria: macchina astratta

dati

controllo

indirizziBUS

Memoria di massa

Interfaccia I/O

Video/tastiera(terminale)

Interfaccia I/O

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

… … …

Memorialogica

Memorialogica

Memorialogica

Memorialogica

Memorialogica

Page 19: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 19

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Gestione periferiche I/OGestione periferiche I/O

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Gestore delle perifericheGestore delle periferiche

�� Comunicazione tra lComunicazione tra l’’ambiente CPUambiente CPU--RAM ed i dispositivi RAM ed i dispositivi esterni.esterni.

�� Mascherare ai processi lMascherare ai processi l’’esistenza di un numero limitato di esistenza di un numero limitato di risorse.risorse.

�� Mascherare ai processi la differenza tra risorse dello stesso Mascherare ai processi la differenza tra risorse dello stesso tipo (o di tipo simile)tipo (o di tipo simile)

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Gestione periferiche I/OGestione periferiche I/O�� Comandi Comandi ad alto livelload alto livello per accedere alle periferiche che usano per accedere alle periferiche che usano

meccanismi quali:meccanismi quali:• i controller,• i driver.

�� I sistemi operativi comprendono i driver per la gestione delle I sistemi operativi comprendono i driver per la gestione delle periferiche piperiferiche piùù comuni.comuni.

�� Ogni aggiunta o modifica alla configurazione standard comporta Ogni aggiunta o modifica alla configurazione standard comporta ll’’installazione di software addizionale (driver aggiuntivi).installazione di software addizionale (driver aggiuntivi).

Page 20: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 20

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Installazione driverInstallazione driver

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

PlugPlug&&&&&&&&PlayPlay�� I sistemi operativi piI sistemi operativi piùù recenti sono dotati di funzioni di recenti sono dotati di funzioni di

PlugPlug&&&&&&&&PlayPlay ((PnPPnP) che permettono la configurazione ) che permettono la configurazione automatica dei driver.automatica dei driver.

�� Un sistema Un sistema PnPPnP consente di aggiungere (consente di aggiungere (plugplug) nuove ) nuove periferiche al sistema che possono essere utilizzate (periferiche al sistema che possono essere utilizzate (playplay), ), senza necessitsenza necessitàà di intervento da parte delldi intervento da parte dell’’utente per la utente per la selezione e lselezione e l’’installazione dei driver.installazione dei driver.

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

SpoolingSpooling�� I driver servono anche a I driver servono anche a virtualizzarevirtualizzare la presenza di pila presenza di piùù periferiche periferiche

intrinsecamente non condivisibili, tramite la tecnica di intrinsecamente non condivisibili, tramite la tecnica di spoolingspooling..�� Esempio: gestione di una stampanteEsempio: gestione di una stampante

• quando un processo desidera stampare un file, lo invia al driver,• il driver lo accoda in un’opportuna directory di spooling,• i file contenuti nella directory di spooling vengono stampati in ordine di arrivo (a meno che siano stabilite delle politiche di gestione delle priorità);

• quando la directory di spooling si svuota il driver rimane in memoria in attesa che un processo cerchi di stampare.

�� Questa soluzioneQuesta soluzione• consente di disaccoppiare il programma che deve stampare e la periferica• rende possibile l’uso della stampante da parte di molti processi senza attese inutili.

Page 21: Informatica - Sede di Palermo dell'Istituto di Calcolo e ... · esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell’ambito dei sistemi

30/11/2007

Introduzione ai sistemi informatici 21

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

Gestione stampeGestione stampe

Introduzione ai sistemi informatici 3/ed

Donatella Sciuto, Giacomo Buonanno, Luca MariCopyright © 2005 – The McGraw-Hill Companies srl

processo

Memorialogica

CPUvirtuale

I/Ovirtuale

I/O

virtualeVideo/tastiera(terminale)

Interfaccia I/O

Gestore periferiche I/O: Gestore periferiche I/O:

macchina astrattamacchina astratta

dati

controllo

indirizziBUS

Memoria di massa

Interfaccia I/O

processo

Memorialogica

CPUvirtuale

I/Ovirtuale

I/Ovirtuale

processo

Memorialogica

CPUvirtuale

I/Ovirtuale

I/Ovirtuale

processo

Memoria

logica

CPUvirtuale

I/Ovirtuale

I/Ovirtuale