Architetture dei Sistemi Operativi: Dalle Macchine Virtuali ai Modelli Client-Server
Classificato in Informatica
Scritto il in
con una dimensione di 3,18 KB
Macchina Virtuale
Una macchina virtuale è un software che emula un computer ed è in grado di eseguire programmi come un computer reale. Inizialmente definita come "un efficiente e isolato duplicato di una macchina fisica", il significato del termine oggi include anche macchine virtuali che non hanno una corrispondenza diretta con l'hardware reale.
Sistema Operativo
Il sistema operativo è l'insieme di programmi che si integrano con l'hardware per consentire all'utente l'utilizzo delle risorse disponibili. I suoi obiettivi principali includono:
- Fornire un ambiente di lavoro comodo.
- Rendere efficiente l'uso dell'hardware.
- Garantire un'adeguata distribuzione delle risorse.
Per essere considerato un vero sistema operativo, deve soddisfare le seguenti funzioni:
- Governo del sistema.
- Assegnazione delle risorse.
- Gestione e controllo dell'esecuzione dei programmi.
Struttura Monolitica
La struttura del sistema operativo originale è essenzialmente un programma unico costituito da una serie di routine interconnesse, in modo che ciascuna possa richiamare le altre. Le caratteristiche principali sono:
- Costruzione del programma definitivo basata su moduli compilati separatamente, uniti tramite linker.
- Definizione dei parametri di collegamento tra le varie routine.
- Mancanza di protezioni e privilegi per l'accesso alle routine che gestiscono risorse come memoria e dischi.
- Solitamente realizzati su misura per essere efficienti e veloci, ma con scarsa flessibilità per supportare ambienti di lavoro diversi.
Struttura Gerarchica
Con la crescita delle esigenze degli utenti, è nata la necessità di una maggiore organizzazione del software, portando alla creazione di sistemi operativi strutturati in livelli. Il sistema è stato ripartito in piccoli gruppi ben definiti, con interfacce chiare tra gli elementi.
Il primo esempio di struttura gerarchica fu il sistema THE (Technische Hogeschool di Eindhoven) di Dijkstra, utilizzato a fini didattici. Altri esempi includono sistemi come Multics e Unix, spesso rappresentati come anelli concentrici (modello a "anelli").
Architettura Client-Server (Microkernel)
I sistemi operativi più recenti adottano il paradigma client-server, utilizzabile su computer di ogni dimensione. Questo sistema fornisce supporto a ogni tipo di applicazione, rispondendo alle medesime attività dei sistemi tradizionali.
La missione principale è stabilire la comunicazione tra client e server:
- I processi possono agire sia come server che come client.
- Il kernel fornisce solo le funzioni di base (memoria, input/output, file e processi).
- La flessibilità è garantita dal fatto che la maggior parte dei servizi è lasciata all'utente finale o al programmatore.
Questi server devono disporre di meccanismi di sicurezza e protezione filtrati dal kernel, che mantiene il controllo diretto sull'hardware. Attualmente, esistono versioni di UNIX che integrano questo paradigma nel loro design.