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.

Voci correlate: