sistemi operativi. che cosa è un sistema operativo? un programma che agisce da intermediario fra...

50
Sistemi Operativi

Upload: giuliana-guida

Post on 03-May-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Sistemi Operativi

Page 2: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Che cosa è un sistema operativo?

Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce gli elementi fisici di un calcolatore e fornisce all’utente un’interfaccia per poter utilizzare le risorse del sistema di calcolo in modo semplice, efficiente e sicuro

Scopi del sistema operativo:

Eseguire i programmi utenti e facilitare la soluzione dei problemi degli utenti.

Rende il sistema di calcolo un ambiente in cui si può lavorare in modo conveniente e corretto.

Utilizzo del calcolatore in maniera efficiente.

Page 3: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Le componenti di un sistema di calcolo

• Hardware o dispositivi fisici – forniscono le risorse di calcolo fondamentali (CPU o unità centrale di elaborazione, memoria e dispositivi di input/output).

• Programmi d’applicazione e di sistema – definiscono il modo in cui si usano queste risorse per risolvere i problemi computazionali degli utenti (compilatori, fogli di calcolo, elaboratori di testo e browsers).

• Utenti (le persone, le macchine e altri computers).

• Sistema operativo – E’ uno speciale programma di sistema che controlla e coordina l’uso dei dispositivi fisici da parte dei programmi d’applicazione per gli utenti.

Page 4: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce
Page 5: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

La Sicurezza

La distinzione tra il concetto di Sicurezza e quello di Protezione è lieve, normalmente si definisce Sicurezza la capacità di un SO di:

proteggere i propri dati da perdite accidentali dovute a errori umani o malfunzionamenti hardware;

proteggere i propri dati da accessi (attacchi) di intrusi che accedono illegalmente al sistema di calcolo.

la prima tipologia di problemi viene normalmente affrontata con diverse strategie di backup dei dati:

gli attacchi hanno invece portato allo sviluppo di svariate tecnologie di difesa per rispondere alle molteplici tipologie di attacchi: Virus, Cavalli di Troia, Internet Worm, Cracking di password etc.

Page 6: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

La Protezione La multiprogrammazione e la multiutenza impongono che le risorse

utilizzate dai processi e lo stesso SO siano protetti da: interazioni non desiderate, attacchi tentativi di accaparramento.

Ogni SO utilizza un certo modello di protezione che può utilizzare meccanismi diversi come ad esempio: dual mode del processore (user/superuser); controllo dei diritti di accesso dei processi ai files; accesso in memoria con l’utilizzo di indirizzi logici e

non fisici; operazioni di I/O con chiamate di sistema; gestione a quanti di tempo: evita l’accaparramento

della CPU da parte di un solo processo;

Page 7: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Definizioni di un sistema operativo

Gestore di risorse – gestisce ed alloca le risorse.

Programma di controllo – gestisce l’esecuzione dei programmi utenti e le operazioni dei dispositivi di I/O in modo da impedire che si verifichino errori.

Nucleo o Kernel – il solo programma che è sempre attivato nel calcolatore (tutti gli altri sono programmi applicativi).

Page 8: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Quali sono le parti di un SO ?

Gestore delprocessore

Gestore dellamemoria

File systemGestore delleperiferiche

Interprete di comandi (shell)Applicazioni

Hw

Interfaccia grafica(desktop)

Page 9: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Storia dei sistemi operativi

Prima generazione 1945 - 1955

valvole, circuiti stampati

Seconda generazione 1955 - 1965

transistors, sistemi operativi di tipo batch

Terza generazione 1965 – 1980

Circuiti integrati e sistemi operativi multiprogrammati e time-sharing

Quarta generazione 1980 – oggi

personal computers, reti, sistemi distribuiti

Page 10: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Sistemi batch (2a generazione)

Primi sistemi a lottile schede magnetiche relative ad un insieme di programmi vengono lette da un computer specializzato 1401 e trasferite su nastro il nastro viene messo nella macchina 7094 che esegue la computazione e produce un nastro di risultatila macchina 1401 stampa il nastro dei risultati

Page 11: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Sistemi batch

Pacco di schede per un sistema batch: struttura di un tipico job

Page 12: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Sistemi batch

Si riduce il tempo di preparazione della macchina raggruppando a lotti i lavori con requisiti simili ed eseguendoli come un unico gruppo.

Sequenzializzazione automatica dei lavori d’elaborazione – si trasferisce automaticamente il controllo da un lavoro all’altro. Primi rudimentali sistemi operativi.

CPU

schede disco

Spooling

Page 13: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Sistemi batch multiprogrammati (3a generazione)

Il sistema operativo tiene contemporaneamente nella memoria centrale diversi lavori (jobs) e la CPU passa dall’uno all’altro (CPU scheduling) durante le operazioni di I/O senza rimanere mai inattiva.

Page 14: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Multiprogrammazione

Obiettivo: aumentare l'utilizzo della CPU organizzando i job in modo tale da mantenere la CPU in continua attività

Il sistema operativo:

mantiene contemporaneamente in memoria centrale un insieme di job (un sottoinsieme di quelli memorizzati su disco)

ne sceglie uno e lo esegue fino a che questo non ha bisogno di attendere il verificarsi di un qualche evento (per esempio, il montaggio di un nastro o il completamento di un'operazione di I/O)

a questo punto passa ad eseguire un altro job

quando un job sospeso ha terminato la sua attesa, viene reinserito nell'insieme dei job da eseguire

Page 15: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Caratteristiche principali di un sistema multiprogrammato

Il SO passa continuamente dall'esecuzione di un job all'altro effettuando:

uno scheduling dei job da caricare in memoria centrale

una gestione della memoria tra i vari job

uno scheduling della CPU per scegliere il job da eseguire

Un esempio notevole di questa classe è stato l’IBM OS/360.

Page 16: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Scheduling dei job

Scheduling del processore

Memoria Centrale

DISCO

Job 1

Sistema Operativo

Job 2

Job 3

CPU

Nei sistemi multiprogrammati diventano critiche due funzioni del SO: la gestione della memoria per ottimizzarne l’utilizzo viste le

dimensioni generalmente limitate (prima l’unico problema era che il programma “entrasse” in memoria);

la protezione reciproca dei processi utente da eventuali interazioni non desiderate (nei sistemi monoprogrammati esisteva

solo il problema della protezione del sistema dai processi utente);

Page 17: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Sistemi Time-Sharing

Estensione logica della multiprogrammazione sviluppata per garantire un uso interattivo del sistema di calcolo ad un costo ragionevole

L’esecuzione del processore viene suddivisa in un certo numero di quanti temporali.

Allo scadere di un quanto, il processo corrente viene interrotto e l’esecuzione passa ad un altro processo.

Page 18: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Vantaggi

Il processore non viene lasciato inattivo durante operazioni I/O molto lunghe.

Il sistema dà l’impressione di eseguire più processi contemporaneamente.

Il sistema di calcolo interattivo permette la comunicazione diretta tra utente e sistema: l’utente impartisce le istruzioni direttamente al sistema operativo oppure ad un programma, attraverso la tastiera o il mouse.

Page 19: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Caratteristiche necessarie per un sistema Time-Sharing

Gestione della memoria

Memoria virtuale

File system

CPU Scheduling

Sincronizzazione dei processi

Deadlock

Page 20: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Primi sistemi operativi Time-Sharing

CTSS (Compatible Time Sharing System - 1962)

MULTICS (MULTIplexed Information and Computing Service - 1965)

UNIX (1969)

Page 21: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Personal Computer (4a generazione)

Personal computers – calcolatori orientati verso un singolo utente.

Dispositivi I/O – tastiere, mouse, schermi video, stampanti.

Comodità e prontezza d’uso per l’utente (invece che mirare al massimo utilizzo della CPU).

Possono utilizzare tecnologie sviluppate originariamente per sistemi di grandi dimensioni

Possono eseguire tipologie differenti di sistemi operativi (per esempio, Windows, MacOS, UNIX, Linux)

Page 22: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Personal Computer

MS-DOS (MicroSoft Disk Operating System -1980)

Windows (1985)

Windows 95, Windows 98, Windows Me

Windows NT, Windows 2000, Windows XP, MacOS

UNIX

Minix (1987)

Linux (1994)

Page 23: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Sistemi distribuiti

Lo scopo è distribuire la computazione tra parecchi processori fisici o mettere in comunicazione calcolatori fisicamente distribuiti per cooperare nella soluzione dei problemi di calcolo e per fornire agli utenti un ricco insieme di funzioni.

Vantaggi dei sistemi distribuiti:

condivisione di risorse e del carico della computazione

affidabilità

Page 24: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Sistemi distribuiti e reti di calcolatori

Si basano sulle reti per realizzare le proprie funzioni.

Le reti si classificano secondo le distanze tra i loro nodi

Local Area Networks (LAN)

Wide Area Networks (WAN)

Possono essere sistemi client-server o peer-to-peer.

Page 25: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Struttura di una LAN (Local Area Network)

Page 26: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Struttura di una WAN (Wide Area Network)

Page 27: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Struttura generale di un sistema client-server

Page 28: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Architettura Client-Server e Peer2Peer

Page 29: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Sistemi per Multiprocessori

I sistemi paralleli sono utilizzati per incrementare: banda di elaborazione, velocità e affidabilità.I sistemi paralleli più diffusi sono i multiprocessori simmetrici (SMP) dove un pool di processori identici condividono la memoria centrale e l’I/O.Piattaforme commerciali SMP includono:

workstation con processori Pentium IV o Pentium Xeon come Netfinity di IBM;

server come il Sun Starfire che supporta sino a 64 processori SPARC.

Su questi sistemi “girano” sistemi operativi come Windows NT-2000,XP, Solaris o Linux che supportano il multiprocessing.

Page 30: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Funzioni tipiche di un Sistema Operativo

Page 31: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Le Funzioni tipiche di un SO

In tutte le classi di SO riusciamo ad individuare (almeno) i seguenti sottosistemi che insieme realizzano la macchina astratta del SO:

Gestione dei processi e schedulazione del processore Gestione della memoria Gestione del Filesystem Gestione dei dispositivi di I/O Sicurezza Protezione delle risorse

Page 32: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

La Gestione dei Processi

In un sistema multiprogrammato ogni programma deve ottenere una sorta di “macchina virtuale” allocando ogni volta che va in esecuzione le risorse di cui ha bisogno. L’entità che alloca le risorse necessarie è detta PROCESSO. Un processo può quindi essere pensato come un programma in esecuzione

La differenza tra un programma e un processo è che il primo è un’entità passiva ovvero la codifica di un algoritmo, mentre il secondo è un’entità attiva ovvero l’insieme di risorse utilizzate da un programma durante la sua esecuzione.

In un sistema di calcolo sono in esecuzione sia i processi di sistema che realizzano le funzioni del SO, che i processi utenti che eseguono i programmi lanciati dagli utenti.

Page 33: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Se i processi sono le entità che rappresentano i programmi in esecuzione concorrente, il SO deve mettere a disposizione funzionalità per:

La creazione e distruzione di processi;

La sospensione e ripristino dell’esecuzione;

La sincronizzazione per l’accesso alle risorse;

La comunicazione; Il modello concorrente è caratterizzato da un diagramma degli stati

che descrive le possibili transizioni di stato consentite ai processi del sistema.

La Gestione dei Processi (2)

Page 34: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Diagramma degli stati

New

Ready Running

terminated

Waiting

interrupt

uscitaattivazione

attesa evento (es. I/O)

verificarsi di un evento o completamento di un I/O

dispatch

Page 35: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

La Gestione della Memoria

Al momento dell’esecuzione ogni programma deve risiedere, almeno in parte, nella memoria centrale.

La multiprogrammazione e il TS provocano frequenti alternanze tra i processi in esecuzione quindi il SO deve gestire efficientemente le seguenti funzioni:

tenere traccia dell’occupazione della memoria;

scegliere di volta in volta quale processo caricare minimizzando il numero di movimenti (scheduling a medio termine);

allocare e deallocare dinamicamente spazi di memoria aumentando il numero di processi che possono risiedere in memoria contemporaneamente.

Page 36: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

La Gestione dei File

Il SO fornisce all’utente modalità standard per accedere ai dati che necessitano di essere archiviati permanentemente. Tali modalità utilizzano in genere due astrazioni:

File (archivio): un file è un tipo di dato astratto sul quale sono definite alcune operazioni indipendenti dal tipo di supporto sul quale il file è memorizzato (disco, nastro, floppy etc). Le operazioni tipiche sono la creazione, l’eliminazione, la lettura/scrittura, la rinominazione etc.

Directory (cartella): una collezione (contenitore) di file sulla quale sono possibili operazioni complessive come spostamento, rinominazione, eliminazione etc. Le directory vengono usate per organizzare i file.

Page 37: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

La Gestione dell’I/O

Il gestore dell’I/O ha la finalità di nascondere all’utente e alle altre componenti del sistema le caratteristiche dei dispositivi di I/O.

Il sottosistema di I/O comprende essenzialmente tre elementi:

gestione della memoria per le operazioni di caching, buffering e spooling che ottimizzano gli scambi di informazione tra la memoria centrale e i dispositivi.

un’interfaccia generica per utilizzare i drivers dei dispositivi in modo uniforme da parte del programmatore.

un insieme di drivers associati ai dispositivi del sistema nei quali rimane confinata la parte di sistema dipendente dall’hardware.

Page 38: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

La Gestione della Memoria Secondaria

Le tecniche di multiprogrammazione e TS richiedono che la memoria principale sia utilizzata in modo intenso, trasferendo continuamente dati e programmi da e verso la memoria secondaria (tipicamente su disco).

Il SO deve ottimizzare tali spostamenti fornendo le seguenti funzionalità: tenere traccia dell’occupazione dello spazio disco per poter

utilizzare efficientemente le eventuali aree libere; funzioni di allocazione di spazio su disco e gestione delle

situazioni speciali come l’area di swap; scheduling del disco rispetto alle richieste provenienti dai

processi utente e sistema (in un sistema multiprogrammato la coda di attività su disco può avere una certa lunghezza);

Page 39: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Il nucleo del SO

Le funzioni del SO che riguardano: la gestione dei processi, la loro cooperazione (sincronizzazione e comunicazione) la gestione del processore

sono dette Nucleo (Kernel) del SO. Il firmware del calcolatore e il nucleo costituiscono il supporto a

tempo di esecuzione del modello concorrente adottato dal SO.

Firmware

Nucleo: System call Send, Receive, Scheduling

Processo utente

Processo sistema

Processo sistema

Processo utente

Page 40: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Modello monolitico

Nel modello monolitico tutte le funzioni, anche quelle per la gestione delle risorse, sono contenute nel nucleo. In un SO monolitico il nucleo tende a coincidere con il SO.

In linea di principio in una organizzazione monolitica tutte le funzioni possono chiamarsi senza alcuna gerarchia.

Ogni procedura “conosce” l’interfaccia e i parametri con cui utilizzare le altre.

La portabilità e la modularità dei SO monolitici è limitata ed è difficile separare i meccanismi dalle politiche di gestione.

Un esempio di SO monolitico è MS-DOS che a cause delle limitazioni di spazio privilegia l’efficienza a scapito della struttura e della protezione.

Page 41: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Schema del sistema MS-DOS

PROGRAMMI DI APPLICAZIONE

PROGRAMMI DI SISTEMA

DRIVER DISPOSITIVI MS-DOS

DRIVER DISPOSITIVI ROM BIOS

Non ha l’identificazione dell’utente con login e password;

Non ha protezione del file system (ownership, gruppi).

Non supporta meccanismi di protezione della memoria.

Non esiste la modalità Kernel distinta da quella utente.

Non è multiprogrammato: la shell lancia un programma e attende che sia completato.

i comandi utente di I/O agiscono direttamente sui dispositivi.

Page 42: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Modello stratificato Il sistema rimane monolitico perché tutte le funzioni

vengono eseguite in modalità kernel ma introduce una “strutturazione” gerarchica delle funzioni.

Unix è un modello “classico” di SO stratificato e include tre livelli: un’interfaccia utente per le chiamate di sistema; un insieme di procedure per la gestione delle risorse

corrispondenti alle chiamate di sistema; un insieme di procedure di servizio invocate dalle

chiamate di sistema (es. per la gestione della concorrenza);

La strutturazione in strati migliora la modularità e la portabilità.

Esistono SO con una stratificazione più spinta (es. THE o MULTICS) ma i sistemi moderni limitano il numero degli strati per motivi di efficienza.

Page 43: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Uno schema di sistema monolitico stratificato

Procedure di servizio(gestione concorrenza)

Procedure di gestione

Processi utente U1 U2 Um

Proc 1 Proc 2 Proc N

Serv 1 Serv 2 Serv k

Interfaccia kernel - firmware

U3

System call

kernel

Page 44: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Lo schema di Unix

Utenti

Programmi di utilità (Shell, compilatori, editors)

Libreria Standard (Open close, read, write, fork)

Libreria Standard (Open close, read, write, fork)

Unix kernel: Gestione Processi, Memoria, File System, I/O

Unix kernel: Gestione Processi, Memoria, File System, I/O

user mode

kernel mode

interfaccia utente

interfaccia delle librerie di sistema

interfaccia system call

Page 45: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Visione astratta delle componenti di un sistema di calcolo

Page 46: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Modelli a microkernel

Un passo avanti nella strutturazione dei sistemi si ottiene estraendo dal nucleo del SO le funzioni di gestione e lasciando solo le funzioni necessarie all’implementazione del modello concorrente. Questi sistemi sono detti anche a nucleo minimo o microkernel.

Esistono due gruppi di sistemi a microkernel:

sistemi orientati alle procedure: in questi sistemi le funzioni di gestione delle risorse vengono eseguite direttamente dai processi utente invocando procedure che vanno a modificare strutture dati condivise. L’assunzione implicita di questo modello è di disporre di una memoria condivisa;

sistemi orientati ai processi o client-server: in questo caso le risorse dei sistema sono gestite da un insieme di processi server. I processi utenti effettuare richieste di accesso alle risorse comunicando esplicitamente con i server preposti.

Page 47: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Modello client-server

Il modello client-server estrae le funzioni di gestione dal nucleo affidandole a un insieme di processi gestori (server) che controllano l’accesso alle risorse.

I processi utente effettueranno comunicazioni esplicite (per esempio per leggere un blocco di un file) al servente della risorsa che svolgerà per “suo conto” l’operazione e gli restituirà il risultato con un’altra comunicazione.

La separazione tra i meccanismi (forniti dal nucleo) e le politiche (specificate nei processi) è naturale in questo modello.

Il modello client-server ha gli stessi vantaggi di modularità e portabilità del modello a procedure ma non richiede memoria comune ed è quindi utilizzabile anche per i sistemi distribuiti.

La protezione utilizza un meccanismo più “robusto” dato che i processi non hanno le risorse nel loro spazio logico.

Page 48: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Modelli a macchine virtuali

Multiprogrammazione e TS sono gestiti finora dalla sola astrazione dei processi. Il sistema IBM VM/370 utilizza un approccio totalmente differente, il nucleo implementa infatti una serie di macchine virtuali da associare ad ogni utente che forniscono la visione di una macchina fisica dedicata identica a quella reale.

Sulle macchine virtuali dovranno essere eseguiti altri SO visto che il nucleo realizza solo l’astrazione di più macchine fisiche. I SO (monoutente) scelti da utenti diversi possono anche essere distinti!!

L’approccio delle macchine virtuali offre una separazione completa tra le attività dei vari utenti perché non esiste nessuna possibilità di interazione tra macchine virtuali distinte.

Lo scarso seguito avuto dal VM/370 non diminuisce il fascino di questa soluzione che è stata “riutilizzata” in diversi contesti dove la protezione e’ essenziale (emulatori, ambienti NT o Mach, Java VM).

Page 49: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Sistema a Macchine Virtuali

Macchina Virtuale

Kernel

HARDWARE

ProcessoUtente

ProcessoUtente

ProcessoUtente

ProcessoUtente

Kernel Kernel Kernel

Page 50: Sistemi Operativi. Che cosa è un sistema operativo? Un programma che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce

Windows NT-2000 un modello ibrido

non è microkernel

Macchine virtuali

Client Server