Appunti sui Sistemi Operativi (Informatica)

Il Sistema Operativo è costituito da un'insieme di programmi che collaborano tra di loro per il corretto funzionamento del dispositivo ma non solo.

Il Sistema Operativo agisce come interfaccia tra le applicazioni e l’hardware del calcolatore. 

Nella vastità dei casi, un S.O. cerca di utilizzare nel modo più efficiente possibile le risorse messe a disposizione dal calcolatore, semplificando l’utilizzazione hardware di un calcolatore.

Nel Sistema operativo abbiamo gli utenti, i programmi, l’interfaccia grafica e non, i processi, il computer in se ed i suoi componenti. Il S.O. deve anche proteggere l’uso delle risorse disponibili, evitando che dei processi occupino troppa memoria bloccando l’accesso delle risorse agli altri programmi.


I compiti principali di cui si occupa sono:  

-Esecuzione dei programmi (gestione della RAM e della CPU)

-Controllo del trasferimento dati da e verso le periferiche (gestione delle linee di trasmissione, bus)

-Gestione dei file (Gestione dello Storage)


I Sistemi Operativi si differenziano nelle modalità di gestione di questi 3 compiti, come ad esempio:

1) Quantità di programmi presenti in memoria:

-Monoprogrammazione (un solo programma per volta in memoria)

-Multiprogrammazione (più programmi presenti in memoria, apparentemente eseguiti contemporaneamente, in realtà in time-sharing, suddividendo il tempo di esecuzione in intervalli molto piccoli e assegnando a turno le risorse ai diversi programmi, come uno scheduling Round Robin)


2) Tipo di accesso fornito agli utenti:

-S.O. Monoutente (un solo utente può usare il computer)

-S.O. Multiutente (Più utenti possono usare contemporaneamente il computer)


I S.O. in genere sono degli insiemi di sottoprogrammi (moduli), dove ognuno svolge un determinato compito o funzione, al fine di garantire il funzionamento base del computer.

Schematicamente, vengono suddivisi in uno schema detto “buccia di cipolla” (onion skin), dove al centro possiamo trovare il nucleo (kernel) ed i programmi che interagiscono maggiormente con l’hardware, e man mano che ci allontaniamo da esso, arriviamo a programmi più esterni che fanno da interfaccia utente. Grazie a tutto questo, nei sistemi operativi comuni come Windows e MacOS, l’utente non ha bisogno di conoscenze avanzate per l’uso di un computer.

Il Sistema Operativo viene installato sull’hard disk creando più partizioni dove risiederanno anche gli altri programmi, e verrà caricato nella memoria RAM all’avvio del computer insieme al Kernel, mentre il resto dei sottoprogrammi del S.O. verranno caricati solo quando necessari.

Tra i S.O. di oggi più famosi possiamo trovare Linux con le sue svariate distribuzioni, Windows e MacOS. C’è però da ricordare che Windows è stata l’evoluzione di un altro S.O., MS-DOS, che è stato il primo S.O. ad essere idoneo per un personal computer, nonostante richiedesse l’utente una conoscenza piuttosto dettagliata del linguaggio di tale S.O., data l’interfaccia grafica a riga di comando.


3) Il Kernel di un Sistema Operativo, intendiamo il nucleo di quest’ultimo che avvolge ed interagisce con l’hardware, dalla CPU ai dispositivi fisici, come la stampante. Si occupa della gestione dell’hardware, garantendolo ai programmi applicativi quando richiesto attraverso delle chiamate di sistema (System Calls).

Quando si sta eseguendo il codice del Kernel si dice che il processore giri nel cosiddetto “modo supervisore”.


Tra i compiti fondamentali del Kernel ricordiamo:

-Avvio e terminazione dei programmi (processi).

-Assegnazione della CPU ai diversi processi.

-Sincronizzazione tra i processi.

-Sincronizzazione dei processi con l’ambiente esterno.


Grazie al Kernel, è possibile installare lo stesso sistema operativo su piattaforme hardware diverse, a patto che ciascuna di esse abbiamo un programma di partenza (BIOS) su cui basarsi.

Per garantire un corretto funzionamento del S.O., è disponibile un apposito programma detto “Shell”, che fa da interfaccia utente semplificando la comunicazione tra le 2 entità, e può essere di 2 tipi:

-CUI (Command User Interface) o CLI (Command Line Interface) come ad esempio DOS.

-GUI (Graphical User Interface) come ad esempio Windows.

Ogni Piattaforma deve avere un cosiddetto programma di bootstrap (Detto anche BIOS) che viene scritto dal produttore in un particolare chip di memoria detta ROM (Read Only Memory). Questo serve ad avviare i componenti hardware all’accensione del PC dopo una diagnostica da parte di un programma detto POST (Power On Self Test) che verifica il corretto funzionamento dei dispositivi.

Una volta eseguite le operazioni presenti nel BIOS, il computer può iniziare ad operare e viene caricato in memoria una parte del Sistema Operativo necessaria. Per distinguere il BIOS dal software vero e proprio, spesso gli viene data la denominazione “Firmware” come se fosse una via di mezzo tra Software e Hardware.


Commenti