Cerca all'interno del corso
Ricevi un trucco a settimana !!

Corso di Sistemi Operativi

Modelli di sistemi operativi - Parte II
Lezione 19
Parte 2 di 2

 

Vedi anche i corsi correlati:


Partner:


 


Il vantaggio principale di questo modello è l’alta modularità e portabilità, ma il vincolo di avere architetture a memoria comune e i conseguenti sforzi per sincronizzare e proteggere i processi ha portato i progettisti a preferire sistemi client-server.
Il modello client-server implementa la maggior parte delle funzioni del SO attraverso processi utente, che controllano l’accesso alle risorse.
Per richiedere un servizio un processo utente (detto processo client) spedisce un’esplicita richiesta ad un processo server, che esegue il servizio per conto del client e gli restituisce la risposta.
In questo schema è il kernel ad occuparsi della gestione della comunicazione tra client e server.
Il modello client-server offre gli stessi vantaggi di modularità e portabilità del modello orientato alle procedure, ma poiché non richiede una memoria comune permette di adottare meccanismi di protezione più robusti; per questo stesso motivo questo modello si adatta molto bene ad ambienti distribuiti.
Il modello client-server è molto utilizzato nei sistemi operativi di ultima generazione come Windows NT e QNX e rappresenta una delle soluzioni più adottate dai progettisti di nuovi sistemi, sia centralizzati che distribuiti.
Non è tuttavia esclusa la possibilità di adottare schemi ibridi che utilizzino entrambi i modelli al di sopra di un kernel minimo; tale soluzione impegna comunque ad adoperare tecniche “ad hoc” per sincronizzare e proteggere tutti i processi.

Infine, l’ultimo modello che esamineremo è quello a macchine virtuali, il cui rappresentante più noto è il sistema IBM VM/370.
Nei modelli precedenti, la multiprogrammazione e il time-sharing sono gestiti astraendo solamente il concetto di processo.
Il sistema IBM VM/370 utilizza invece un approccio totalmente differente: il nucleo implementa una serie di macchine virtuali da associare ad ogni utente e ciascuna macchina virtuale fornisce la visione di una macchina fisica dedicata identica a quella reale.
Poiché il kernel realizza solo l’astrazione di più macchine fisiche, ciò comporta la necessità di eseguire altri SO al di sopra delle macchine virtuali; inoltre i SO 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.
Sebbene il VM/370 abbia avuto scarso successo, il modello a macchine virtuali è stato comunque “riutilizzato” in diversi contesti dove la protezione e’ essenziale (emulatori, ambienti NT o Mach, Java VM).

 


   
Home Page

A Cura di Angelo Carpenzano (©)

Scarica questa lezione: Clicca qui per scaricare la lezione


 

Segnala questa lezione ad un amico!
Nome Amico:
eMail Amico:
Tuo Nome:
Regalagli anche la Newsletter di questo corso!