Corso di Sistemi Operativi

Importanza di un sistema operativo

 

Nella puntata precedente abbiamo accennato alla complessità che caratterizza un calcolatore, a partire proprio dal semplice PC, di cui tutti (o quasi) disponiamo.
In virtù di questa complessità, il software di un calcolatore può essere suddiviso in due grosse categorie: i programmi di sistema (che controllano e regolano il comportamento del calcolatore stesso) e i programmi applicativi (che servono per la risoluzione dei più disparati problemi degli utenti).
I programmi applicativi sono noti a tutti gli utenti di un computer e possono essere di vario tipo: editor, word processor, foglio di calcolo, browser Internet, giochi, programmi per la riproduzione e la creazione di file multimediali, e così via.
I programmi di sistema sono quelli che, in gran parte nascosti agli occhi degli utenti comuni, rendono difficile, ma allo stesso tempo interessante e stimolante, la vita degli esperti del settore; tra questi il più importante è il sistema operativo, croce e delizia di almeno due generazioni di programmatori e studiosi.

Il sistema operativo (che in seguito indicheremo con l’acronimo SO) svolge una funzione fondamentale: agisce come intermediario tra l’utente e il calcolatore stesso, controllando tutte le risorse dell’hardware e mettendo a disposizione un ambiente nel quale eseguire i programmi applicativi.
Esaminiamo innanzitutto il motivo per il quale esistono i sistemi operativi.
Un calcolatore moderno è un sistema molto articolato, costituito da uno o più processori, da una certa quantità di memoria principale (la famosa RAM), da uno o più dischi, dalla tastiera, dal monitor, dal mouse, dalla stampante, dalla scheda video, dalla scheda audio, dal modem, dalle interfacce di rete e da tanti altri dispositivi di basso livello, di cui molti ignorano l’esistenza.
Se chi scrive un programma dovesse tener conto di tutti questi componenti e usarli correttamente, curandosi dei dettagli con cui essi lavorano e delle decine di cose che potrebbero andare storte durante ognuna delle loro possibili operazioni, certamente ci penserebbe due volte prima di complicarsi la vita e probabilmente molti programmi non sarebbero mai stati scritti.

Molti anni fa ci si rese conto che era necessario nascondere al programmatore la complessità dell’hardware, sia per un problema di efficienza dei programmi, sia per permettere il trasporto del software da una macchina all’altra con caratteristiche hardware differenti.
Venne allora introdotto uno strato di software al di sopra dell’hardware nudo e crudo, che si occupasse di controllare tutte le parti del sistema, presentando all’utente un’interfaccia più semplice da capire e più facile da programmare: il sistema operativo, appunto.
Riepilogando possiamo affermare che un SO ha principalmente due compiti:
gestire i dispositivi hardware;
supervisionare l’esecuzione dei programmi, assegnando in maniera opportuna le risorse e rilevando eventuali errori.

Per comprenderne pienamente l’importanza diamo uno sguardo all’architettura interna di un calcolatore, di cui uno schema semplificato è riportato in figura 2.1.


Fig. 2.1. Struttura a livelli di un calcolatore digitale

Come possiamo vedere, l’architettura di un elaboratore può essere strutturata in livelli, ognuno dei quali comunica solo con quelli adiacenti.

E’ interessante notare che il linguaggio macchina, pur essendo un software, viene annoverato all’interno del componente hardware: ciò è dovuto al fatto che esiste un legame strettissimo tra le istruzioni del linguaggio macchina e i dispositivi fisici che le implementano.
Ogni piattaforma (Intel, AMD, Motorola, IBM, ecc.) ha caratteristiche hardware differenti dalle altre ed è dotata di un proprio linguaggio macchina; se non esistesse il sistema operativo, un programmatore dovrebbe preoccuparsi di scrivere una versione del proprio programma per ognuna di esse, o limitarsi ad ignorarne alcune, seguendone le evoluzioni per adattarvisi.
Per ovviare a questo enorme inconveniente, il SO fornisce al programmatore, e agli utenti in genere, un’unica interfaccia, qualsiasi sia la piattaforma sottostante: è compito di chi scrive il SO far sì che le azioni decise dal programmatore siano tradotte nelle opportune istruzioni per la macchina.
Nella puntata successiva vedremo cosa succede quando accendiamo un calcolatore.

 

Torna all'indice Generale del corso di Corso di Sistemi Operativi di Software Planet