silberschatz, galvin and gagne 2002 3.1 operating system concepts strutture dei sistemi operativi...

39
Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi Generazione del sistema

Upload: filberto-negro

Post on 01-May-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.1Operating System Concepts

Strutture dei Sistemi OperativiStrutture dei Sistemi Operativi

Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi Generazione del sistema

Page 2: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.2Operating System Concepts

Componenti di sistemaComponenti di sistema

Gestione dei processi Gestione della memoria centrale Gestione del file system Gestione del sistema di I/O Gestione della memoria secondaria Networking Tecniche di protezione Interprete dei comandi

I sistemi operativi mettono a disposizione l’ambiente in cui i programmi vengono eseguiti.

Page 3: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.3Operating System Concepts

Gestione dei processiGestione dei processi

Un Un processo processo è un programma in esecuzione è un programma in esecuzione. Un processo necessita di alcune risorse per assolvere il proprio compito: tempo di CPU, memoria, file e dispositivi di I/O.

Il processo è l’unità di lavoro di un sistema. Il SO è responsabile delle seguenti attività relative alla

gestione dei processi: Creazione e cancellazione di processi (utente e di sistema).Creazione e cancellazione di processi (utente e di sistema). Sospensione e riattivazione di processi.Sospensione e riattivazione di processi. Fornire meccanismi per:Fornire meccanismi per:

sincronizzazione di processi;sincronizzazione di processi; comunicazione fra processi;comunicazione fra processi; gestione dei gestione dei deadlockdeadlock..

Page 4: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.4Operating System Concepts

Gestione della memoria centraleGestione della memoria centrale

La memoria è una grande matrice di parole o byte, ciascuna con un proprio indirizzo. È un deposito di dati rapidamente accessibili condiviso dalla CPU e dai dispositivi di I/O.

La memoria centrale è un dispositivo di memorizzazione volatile. Perde il suo contenuto per guasti del sistema.

Il sistema operativo è responsabile delle seguenti attività connesse alla gestione della memoria centrale: Tener traccia di quali parti della memoria sono attualmente Tener traccia di quali parti della memoria sono attualmente

usate e da chi.usate e da chi. Decidere quali processi caricare in memoria quando vi è Decidere quali processi caricare in memoria quando vi è

spazio disponibile.spazio disponibile. Allocare e deallocare lo spazio di memoria in base alle Allocare e deallocare lo spazio di memoria in base alle

necessità.necessità.

Page 5: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.5Operating System Concepts

Gestione del file systemGestione del file system

Per rendere conveniente l’utilizzo del computer, il SO fornisce una visione logica uniforme del processo di memorizzazione: astrae dalle caratteristiche fisiche dei dispositivi per definire un’unità di memorizzazione logica, il filefile.

Un file è una collezione di informazioni correlate definite dal loro creatore. Comunemente i file rappresentano programmi (sia sorgente che oggetto) e dati.

Il sistema operativo è responsabile delle seguenti attività connesse alla gestione di file: Creazione e cancellazione di file.Creazione e cancellazione di file. Creazione e cancellazione di directory.Creazione e cancellazione di directory. Supporto alle funzioni elementari per la manipolazione di file e Supporto alle funzioni elementari per la manipolazione di file e

directory.directory. Associazione dei file ai dispositivi di memoria secondaria.Associazione dei file ai dispositivi di memoria secondaria. Backup di file su dispositivi di memorizzazione stabili (non volatili).Backup di file su dispositivi di memorizzazione stabili (non volatili).

Page 6: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.6Operating System Concepts

Gestione del sistema di I/OGestione del sistema di I/O

Uno scopo fondamentale del SO: nascondere all’utente le caratteristiche di specifici dispositivi hardware.

Il sottosistema di I/O di UNIX nasconde le caratteristiche dell’hardware al SO stesso e consiste di: Un componente di gestione della memoria comprendente il Un componente di gestione della memoria comprendente il

buffering, il caching e lo spooling.buffering, il caching e lo spooling. Un’interfaccia generale per i driver dei dispositivi.Un’interfaccia generale per i driver dei dispositivi. Driver per gli specifici dispositivi hardware. Driver per gli specifici dispositivi hardware.

Soltanto il driver di dispositivo conosce le caratteristiche dello specifico dispositivo cui è assegnato.

Page 7: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.7Operating System Concepts

Gestione della memoria secondariaGestione della memoria secondaria

Poiché la memoria centrale è volatile e troppo piccola per contenere tutti i dati e i programmi permanentemente, il sistema di elaborazione deve consentire un’archiviazione secondaria per salvare i contenuti della memoria centrale.

La maggior parte dei moderni sistemi di elaborazione impiega i dischi come principale mezzo di memorizzazione on–line, sia per i programmi che per i dati.

Il SO è responsabile delle seguenti attività relative alla gestione dei dischi: Gestione dello spazio libero.Gestione dello spazio libero. Allocazione dello spazio.Allocazione dello spazio. Scheduling del disco.Scheduling del disco.

Page 8: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.8Operating System Concepts

Networking (Sistemi distribuiti)Networking (Sistemi distribuiti)

Un sistema distribuitodistribuito è un insieme di processori che non condividono né la memoria né il clock. Ciascun processore ha la sua propria memoria locale.

I processori nel sistema sono connessi attraverso una rete di comunicazione.

La comunicazione avviene secondo un dato protocollo. Un sistema distribuito fornisce agli utenti l’accesso a varie

risorse di sistema. L’accesso a risorse condivise consente di:

Accelerare l’elaborazione.Accelerare l’elaborazione. Aumentare la disponibilità di dati.Aumentare la disponibilità di dati. Migliorare l’affidabilità.Migliorare l’affidabilità.

Page 9: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.9Operating System Concepts

Tecniche di protezioneTecniche di protezione

ProtezioneProtezione — è il meccanismo usato per controllare l’accesso da parte di processi o utenti a risorse del sistema di calcolo (di sistema e di altri utenti).

Il meccanismo di protezione deve: Distinguere fra uso autorizzato e non autorizzato.Distinguere fra uso autorizzato e non autorizzato. Specificare i controlli da imporre.Specificare i controlli da imporre. Fornire una modalità di imposizione.Fornire una modalità di imposizione.

Page 10: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.10Operating System Concepts

Interprete dei comandiInterprete dei comandi

Molti comandi sono impartiti al sistema operativo per mezzo di istruzioni di controllo che hanno a che fare con: creazione e gestione dei processi;creazione e gestione dei processi; gestione di I/O; gestione di I/O; gestione della memoria secondaria;gestione della memoria secondaria; gestione della memoria centrale;gestione della memoria centrale; accesso al file system; accesso al file system; protezione;protezione; comunicazione su rete.comunicazione su rete.

Esistono interpreti “amichevoli” con finestre, o interpreti più potenti (ma più complessi) basati su interfaccia a carattere.

Page 11: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.11Operating System Concepts

Interprete dei comandiInterprete dei comandi

È il programma che legge ed interpreta le istruzioni di controllo; viene chiamato in vari modi:

interprete della linea di comandointerprete della linea di comando shellshell (in UNIX) (in UNIX)

La sua funzione è quella di riconoscere ed eseguire la successiva istruzione di comando.

Page 12: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.12Operating System Concepts

Servizi del sistema operativoServizi del sistema operativo

Esecuzione di programmiEsecuzione di programmi — capacità di caricare un programma in memoria e mandarlo in esecuzione.

Operazioni di I/OOperazioni di I/O — poiché i programmi non possono eseguire le operazioni di ingresso/uscita direttamente, il SO deve fornire i mezzi per effettuare l’I/O.

Manipolazione del file systemManipolazione del file system — capacità dei programmi di leggere, scrivere e cancellare file.

ComunicazioniComunicazioni — scambio di informazioni fra processi in esecuzione sullo stesso elaboratore o su sistemi diversi, connessi per mezzo di una rete. Implementate per mezzo di memoria condivisamemoria condivisa o scambio di messaggiscambio di messaggi.

Rilevamento di erroriRilevamento di errori — assicura una corretta elaborazione rilevando errori nella CPU e nella memoria, in dispositivi I/O o in programmi utente.

Page 13: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.13Operating System Concepts

Altre funzioni del SOAltre funzioni del SO

Esistono funzioni addizionali atte ad assicurare l’efficienza delle operazioni di sistema piuttosto che orientate all’utente.

• Allocazione di risorseAllocazione di risorse — a più utenti o a job multipli in esecuzione contemporanea.

• Contabilizzazione dell’uso delle risorseContabilizzazione dell’uso delle risorse — tener traccia di quali utenti usano quali e quante risorse del sistema. Queste informazioni sono memorizzate per addebitare il costo delle risorse, o per accumulare statistiche di uso.

• ProtezioneProtezione — assicurare che tutti gli accessi alle risorse di sistema siano controllati. La sicurezza di un sistema comincia con l’obbligo di identificazione tramite passwordpassword e si estende alla difesa dei dispositivi di I/O esterni (modem, adattori di rete, etc.) da accessi illegali.

Page 14: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.14Operating System Concepts

Chiamate di sistemaChiamate di sistema

Le chiamate al sistema forniscono l’interfaccia fra un programma in esecuzione e il sistema operativo. Sono generalmente disponibili come istruzioni in linguaggio Sono generalmente disponibili come istruzioni in linguaggio

Assembler.Assembler. Alcuni linguaggi definiti al fine di sostituire il linguaggio Alcuni linguaggi definiti al fine di sostituire il linguaggio

Assembler per la programmazione dei SO permettono di Assembler per la programmazione dei SO permettono di effettuare le chiamate di sistema direttamente (ad es., C, effettuare le chiamate di sistema direttamente (ad es., C, C++).C++).

Tre metodi generali sono impiegati per passare i parametri tra un programma in esecuzione e il sistema operativo. Impiego dei Impiego dei registriregistri (passaggio di parametri tramite registri). (passaggio di parametri tramite registri). Memorizzazione dei parametri in una tabella in memoria, e Memorizzazione dei parametri in una tabella in memoria, e

passaggio dell’indirizzo della tabella come parametro in un passaggio dell’indirizzo della tabella come parametro in un registro.registro.

PushPush dei parametri nello stack da parte del programma. Il dei parametri nello stack da parte del programma. Il SO recupera i parametri con un SO recupera i parametri con un poppop..

Page 15: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.15Operating System Concepts

Passaggio di parametri tramite tabellaPassaggio di parametri tramite tabella

Page 16: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.16Operating System Concepts

Tipi di chiamate di sistemaTipi di chiamate di sistema

Controllo di processoControllo di processo: end, abort, load, execute, create/terminate process, get/set process attributes, wait/signal event, allocate/free mem.

Manipolazione dei fileManipolazione dei file: create/delete file, open, close, read, write, reposition, get/set file attributes.

Gestione dei dispositiviGestione dei dispositivi: request/release device, read, write, reposition, get/set device attributes, attach/detach devices.

Gestione delle informazioniGestione delle informazioni: get/set time/date, get/set system data, get/set file/device attributes.

ComunicazioneComunicazione: create/delete communication connection, send/receive messages, transfer status information.

Page 17: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.17Operating System Concepts

Controllo dei processi in MS–DOSControllo dei processi in MS–DOS

Allo Start-up del sistema Durante l’esecuzione di un programma

Page 18: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.18Operating System Concepts

UNIX con più programmi in esecuzioneUNIX con più programmi in esecuzione

Page 19: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.19Operating System Concepts

Modelli di comunicazioneModelli di comunicazione

Scambio di messaggi Memoria condivisa

La comunicazione può aver luogo sia attraverso scambio di messaggi che con l’utilizzo di memoria condivisa.

Page 20: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.20Operating System Concepts

Programmi di sistemaProgrammi di sistema

I programmi di sistema forniscono un ambiente conveniente per lo sviluppo e l’esecuzione di programmi. I programmi possono essere suddivisi in: Manipolazione di file Manipolazione di file Informazioni sullo statoInformazioni sullo stato Modifica di fileModifica di file Supporto a linguaggi di programmazioneSupporto a linguaggi di programmazione Caricamento ed esecuzione di programmiCaricamento ed esecuzione di programmi ComunicazioniComunicazioni Programmi applicativiProgrammi applicativi

L’aspetto del SO per la maggioranza degli utenti è definito dai programmi di sistema, non dalle chiamate di sistema vere e proprie.

Page 21: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.21Operating System Concepts

Struttura del sistema MS–DOSStruttura del sistema MS–DOS

MS–DOSMS–DOS — scritto per fornire il maggior numero di funzionalità utilizzando la minor quantità di spazio possibile: non è suddiviso in moduli;non è suddiviso in moduli; sebbene MS–DOS abbia una qualche struttura, le sue interfacce e sebbene MS–DOS abbia una qualche struttura, le sue interfacce e

livelli di funzionalità non sono ben separati;livelli di funzionalità non sono ben separati; Intel 8088, per cui MS–DOS fu progettato, non offre duplice modo di Intel 8088, per cui MS–DOS fu progettato, non offre duplice modo di

funzionamento e protezione hardware funzionamento e protezione hardware impossibilità di proteggere impossibilità di proteggere l’hardware dai programmi utente.l’hardware dai programmi utente.

Page 22: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.22Operating System Concepts

Struttura a strati di MS–DOSStruttura a strati di MS–DOS

Page 23: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.23Operating System Concepts

Struttura del sistema UNIXStruttura del sistema UNIX

UNIXUNIX — limitato da funzionalità hardware, il sistema operativo originale aveva limitata struttura. Il SO UNIX è costituito di due parti separate. Programmi di sistema;Programmi di sistema; Il Il kernel:kernel:

È costituito da tutto ciò che si trova sotto l’interfaccia È costituito da tutto ciò che si trova sotto l’interfaccia delle chiamate di sistema (delle chiamate di sistema (system call system call ) e sopra ) e sopra l’hardware.l’hardware.

Fornisce il file system, lo scheduling della CPU, la Fornisce il file system, lo scheduling della CPU, la gestione della memoria (un gran numero di funzioni per gestione della memoria (un gran numero di funzioni per un solo livello).un solo livello).

Le system call definiscono l’Le system call definiscono l’interfaccia per il programmatoreinterfaccia per il programmatore, , i programmi di sistema definiscono i programmi di sistema definiscono l’interfaccia utentel’interfaccia utente..

Page 24: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.24Operating System Concepts

Struttura del sistema UNIXStruttura del sistema UNIX

Page 25: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.25Operating System Concepts

Approccio stratificatoApproccio stratificato

Il sistema operativo è suddiviso in un certo numero di strati (livelli), ciascuno costruito sopra agli strati inferiori. Il livello più basso (strato 0) è l’hardware, il più alto (strato N) è l’interfaccia utente.

Per mezzo della modularità, gli strati sono selezionati in modo tale che ciascuno strato impiega esclusivamente funzioni (operazioni) e servizi di strati di livello inferiore.

L’informationinformation hidinghiding offre ai programmatori la liberta di codificare a proprio piacimento le routine di basso livello, ammesso che a livello utente i programmi applicativi eseguano il compito cui sono preposti.

Scarsa efficienza dovuta all’overhead di attraversamento degli strati.

Page 26: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.26Operating System Concepts

Uno strato del sistema operativoUno strato del sistema operativo

Page 27: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.27Operating System Concepts

Struttura a strati di OS/2Struttura a strati di OS/2

Page 28: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.28Operating System Concepts

Sistemi microkernelSistemi microkernel

Quasi tutte le funzionalità del kernel sono spostate nello spazio utente.

Le comunicazioni hanno luogo tra moduli utente mediante scambio di messaggi.

Benefici: funzionalità del microkernel più semplici da estendere;funzionalità del microkernel più semplici da estendere; sistema più facile da portare su nuove architetture;sistema più facile da portare su nuove architetture; più affidabile (meno codice viene eseguito in modo kernel); più affidabile (meno codice viene eseguito in modo kernel); maggior sicurezza.maggior sicurezza.

Page 29: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.29Operating System Concepts

Struttura client–server di Windows NTStruttura client–server di Windows NT

Page 30: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.30Operating System Concepts

Macchine virtualiMacchine virtuali

Una macchina virtualemacchina virtuale porta l’approccio stratificato alle sue estreme conseguenze logiche. Sia l’hardware che il SO vengono trattati uniformemente come hardware.

Una macchina virtuale realizza un’interfaccia identica alla macchina fisica sottostante.

Le risorse del computer fisico vengono condivise in modo che il SO crei l’illusione dell’esistenza di processi multipli, ciascuno in esecuzione sul proprio processore, con la sua propria memoria (virtuale).

Page 31: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.31Operating System Concepts

Macchine virtualiMacchine virtuali

Le risorse del computer fisico vengono condivise in modo da creare le macchine virtuali. Lo scheduling della CPU può creare l’illusione che gli utenti Lo scheduling della CPU può creare l’illusione che gli utenti

abbiano un loro proprio processore.abbiano un loro proprio processore. Lo spooling e il file system possono fornire lettori di schede Lo spooling e il file system possono fornire lettori di schede

virtuali e stampanti in linea virtuali.virtuali e stampanti in linea virtuali. Un normale terminale per utente in time–sharing funziona Un normale terminale per utente in time–sharing funziona

come console per l’operatore della macchina virtuale.come console per l’operatore della macchina virtuale.

Page 32: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.32Operating System Concepts

Modelli di sistemiModelli di sistemi

Semplice Macchina virtuale

Page 33: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.33Operating System Concepts

Vantaggi/svantaggi delle macchine virtualiVantaggi/svantaggi delle macchine virtuali

Il concetto di macchina virtuale fornisce una protezione completaprotezione completa delle risorse di sistema, dato che ciascuna macchina virtuale è isolata da tutte le altre. Questo isolamento, tuttavia, non permette una condivisione diretta delle risorse.

Un sistema con macchine virtuali è un mezzo perfetto per la ricerca e lo sviluppo di sistemi operativi. Lo sviluppo del sistema è effettuato sulla macchina virtuale e così non disturba il normale funzionamento del sistema.

Il concetto di macchina virtuale è difficile da implementare per il notevole sforzo richiesto per fornire un duplicato esatto della macchina sottostante.

Page 34: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.34Operating System Concepts

Java Virtual MachineJava Virtual Machine

I programmi Java compilati sono bytecodebytecode indipendenti dalla piattaforma, eseguibili da una Java Virtual Machine (JVM).

La JVM è costituita da… un caricatore di classi;un caricatore di classi; un verificatore di classi;un verificatore di classi; un interprete runtime.un interprete runtime.

I compilatori Just–in–Time (JIT) migliorano le prestazioni. JVM disponibili per PC, Macintosh, workstation, server

UNIX. JVM incorporata anche su vari browser, che a loro volta sono eseguiti su piattaforme diverse.

La JVM controlla i bytecode per verificare la presenza di istruzioni che possono compromettere la sicurezza della macchina fisica.

I programmi scritti in Java sono in generale più lenti dei corrispondenti programmi scritti in C/C++.

Page 35: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.35Operating System Concepts

Java Virtual MachineJava Virtual Machine

Page 36: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.36Operating System Concepts

Scopi della progettazioneScopi della progettazione

Scopi dell’utenteutente — il sistema operativo dovrebbe essere conveniente da usare, facile da imparare, affidabile, sicuro e rapido.

Scopi del progettistaprogettista — il sistema operativo dovrebbe essere di facile progettazione, implementazione e manutenzione. Inoltre dovrebbe essere flessibile, affidabile, senza errori ed efficiente.

Page 37: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.37Operating System Concepts

Meccanismi e politicheMeccanismi e politiche

I meccanismimeccanismi specificano come come fare qualcosa. Le politichepolitiche specificano cosacosa deve essere fatto.

La separazione dei meccanismi dalle politiche è un principio basilare: permette la massima flessibilità se le decisioni politiche devono essere cambiate successivamente.

Page 38: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.38Operating System Concepts

Implementazione del sistemaImplementazione del sistema

I sistemi operativi venivano tradizionalmente scritti in linguaggio macchina. Attualmente, I SO possono essere scritti in linguaggi ad alto livello.

Il codice scritto con un linguaggio ad alto livello ha i seguenti vantaggi: Può essere scritto più velocemente.Può essere scritto più velocemente. È più compatto.È più compatto. È facile da capire e i “bachi” sono facili da trovareÈ facile da capire e i “bachi” sono facili da trovare.

È molto più semplice effettuare il portingporting di un sistema operativo (realizzare cioè un SO che “giri” su una macchina con un hardware diverso) nel caso di SO scritti in linguaggio di alto livello.

Page 39: Silberschatz, Galvin and Gagne 2002 3.1 Operating System Concepts Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate

Silberschatz, Galvin and Gagne 20023.39Operating System Concepts

Generazione del sistema (SYSGEN)Generazione del sistema (SYSGEN)

I sistemi operativi sono progettati per essere eseguiti su qualunque macchina di una certa classe; il sistema deve però essere configurato per ciascun computer specifico.

Il programma SYSGENSYSGEN ottiene informazioni relative alla specifica configurazione dell’hardware sul quale viene eseguito.

BootingBooting — Inizializzazione del computer ottenuta caricando il kernel in memoria centrale.

Il bootstrap bootstrap è un programma memorizzato in ROM in grado di localizzare il kernel, caricarlo in memoria ed iniziare la sua esecuzione.