Il Sistema Operativo

Un SO in superficie

Tutti noi ormai abbiamo conoscenza dei Sistemi Operativi, tutti li utilizziamo e tutti ne conosciamo gli aspetti marginali spesso correlati alle attività che svolgiamo, per lavoro o per hobby. C'è poi chi i Sistemi li conosce fin troppo bene, chi è appassionato e ne conosce i segreti. Bene, non è certo farvi diventare programmatori né informatici esperti quello che ci proponiamo, ma farvi comprendere come un SO sia indispensabile per svolgere le vostre attività, oggi, e soprattutto come lo fa.

Se dovessimo dare una definizione di Sistema Operativo, lo faremmo con l'aiuto di una metafora. Immaginate il sistema complessivo del corpo umano. Il corpo umano, come ben sappiamo, è costituito principalmente da "apparati": cardiocircolatorio,  locomotore, respiratorio, digerente, uditivo, olfattivo etc... Ognuno di questi apparati, che è composto a sua volta da ben precisi organi, svolge una serie di specifiche attività che in coordinazione con le altre fa sì che noi respiriamo, camminiamo, mangiamo etc... 

Tutti questi apparati però sono in alcuni casi, composti da organi volontari (braccia, gambe etc..) in altri, da organi involontari (cuore, pupille etc...). I primi sono coordinati completamente dal cervello mentre i secondi sono organi non controllabili, anche se in un certo senso, sono perfettamente "monitorabili". Ecco, così come il cervello è supervisore del nostro corpo, così il SO è il supervisore della macchina sulla quale si trova, ovvero di tutti quei componenti come la memoria di massa, la memoria RA, il processore, la scheda madre, il lettore cd, la stampante, il mouse, la tastiera etc. Il SO permette all'utente di interfacciarsi (funzionalmente e graficamente) con notevole semplicità al sistema hardware, evitando che egli lo faccia direttamente e personalmente. 
   
Un SO è quindi un sistema in grado di gestire, trattare e comunicare con la macchina in maniera trasparente ed indipendente da essa. E' chiaro che più il sistema è realizzato in maniera coesa al sistema hardware, maggiore sarà la sua qualità (come accade in sistemi iOS di casa Apple). Nella maggior parte delle situazioni l'utente si interfaccia con uno specifico software applicativo "installato" sul SO. L'operazione di installazione comprende una serie di operazioni che permettono al SO di comprendere ed eseguire il software. 

Ma ora, entriamo nel vivo del nostro discorso. Quando si parla di SO si fa riferimento spesso a due elementi principali:

1. Processi: un processo è un qualsiasi programma in esecuzione. Ad esempio un documento word, un file di sistema, un file .mp3, tutto ciò che si serve di un processore per essere eseguito. Alcuni processi hanno bisogno di altri per eseguire (cooperanti), altri invece ne sono indipendenti (competenti). I processi per poter compiere il loro dovere si servono di "strumenti" chiamate risorse.
 
2. Risorse:  per un sistema tutto è una risorsa. Dal valore di un particolare registro di sistema alla stampante, alla memoria, al singolo dato etc. Una risorsa è un elemento di cui un processo si serve per poter eseguire. Una risorsa, soprattutto quando è unica come nel caso di un processore, può essere utilizzata generalmente da un processo alla volta. L'accesso non opportunamente regolato ad una o più risorse può indurre a condizioni critiche di funzionamento!  
  


Processi e risorse rappresentano gli "organi" di SO e sulla base di questi due elementi si erge tutto il suo funzionamento. In più, esiste un cuore del SO, denominato Kernel, che è il vero e proprio centro operativo del Sistema (nonché un'area riservata e inaccessibile all'utente che non ha i cosiddetti "permessi di root"). In questo senso si dice che il SO gode di due domini: dominio utente (per utenti semplici) e supervisore (per alcune funzioni riservate).
Possiamo ricondurre le principali funzionalità di un SO a cinque, anche se nella realtà sono molte di più:

I. Gestione dei Processi 
II. Gestione della Memoria
III. Gestione delle Periferiche di Input ed Output:
IV. Gestione del File System
V. Gestione della Sicurezza (che non tratteremo in questo articolo)