Sistema+Operativo

= = = = = = =**Sistema Operativo**=

Da Wikipedia, l'enciclopedia libera - Kioskea.net

In informatica il sistema operativo, abbreviato in SO o OS (la seconda del sinonimo inglese "//operating system//"), può essere visto come un particolare software senza il quale non è possibile l'utilizzo di software più specifici. Esso quindi funge da "base" al quale si appoggiano gli altri software, che dunque dovranno essere progettati per quel particolare sistema operativo, o non verranno riconosciuti. Secondo una definizione più rigorosa, il sistema operativo è un insieme di subroutine e strutture dati responsabile del controllo e della gestione dei componenti hardware che costituiscono un computer e dei programmi che su di esso vengono eseguiti. Solitamente un sistema operativo mette a disposizione dell'utente un'[|interfaccia] software (grafica o testuale) per accedere alle risorse [|hardware] (dischi, memoria, I/O in generale) del sistema. Tale accesso dipende, sui sistemi che prevedono la multiutenza, dai privilegi di ogni utente. Il compito principale del sistema operativo è quello di permettere all'utente, umano o no, di interagire direttamente con la macchina.

//Schema Sistema Operativo//

__**Struttura**__
Un generico sistema operativo moderno si compone di alcune parti standard, più o meno ben definite.


 * Il nucleo** (in inglese **kernel**): un gruppo di funzioni fondamentali, strettamente interconnesse fra loro e con l'hardware, che vengono eseguite con il privilegio massimo disponibile sulla macchina ossia in modalità kernel; il kernel fornisce le funzionalità di base per tutte le altre componenti del sistema operativo, che assolvono le loro funzioni servendosi dei servizi che esso offre. A seconda del tipo di sistema operativo il kernel può inglobare altre parti (kernel classico, monolitico o modulare) o fornire solo funzioni base delegando più funzioni possibile a oggetti/gestori esterni (microkernel).

Un sistema di memoria virtuale: che alloca la memoria richiesta dai programmi e dal sistema operativo stesso, salva sulla memoria di massa le zone di memoria temporaneamente non usate dai programmi e garantisce che le pagine swappate vengano riportate in memoria se richieste.
 * Il sistema di file** (in inglese **file system**): si occupa di esaudire le richieste di accesso alle memorie di massa. Viene utilizzato ogni volta che si accede a un file su disco, e oltre a fornire i dati richiesti tiene traccia dei file aperti, dei permessi di accesso ai file. Inoltre si occupa anche e soprattutto dell'astrazione logica dei dati memorizzati sul computer (directory, ecc).


 * Uno scheduler**: che scandisce il tempo di esecuzione dei vari processi e assicura che ciascuno di essi venga eseguito per il tempo richiesto. Normalmente lo scheduler gestisce anche lo stato dei processi e può sospenderne l'esecuzione nel caso questi siano in attesa senza fare nulla (esempio classico è la richiesta di dati da disco). Nei sistemi operativi realtime lo scheduler si occupa anche di garantire una timeline, cioè un tempo massimo di completamento per ciascun task in esecuzione, ed è notevolmente più complesso.


 * Uno spooler**: che riceve dai programmi i dati da stampare e li stampa in successione, permettendo ai programmi di proseguire senza dover attendere la fine del processo di stampa.


 * Una interfaccia utente (Shell)**: che permette agli esseri umani di interagire con la macchina.

A seconda dei casi, un particolare sistema operativo può avere tutti questi componenti o solo alcuni. Una ulteriore differenza fra i sistemi operativi è data dal tipo di comunicazione fra le varie componenti: i sistemi operativi classici sono basati su chiamate dirette di funzioni, mentre molti sistemi operativi moderni, soprattutto quelli che adottano [|microkernel], si basano sul message passing, sullo scambio di messaggi fra le loro varie parti e fra il sistema operativo e i programmi che fa girare.

__**Principali Sistemi Operativi**__

 * Windows
 * Mac OS
 * Unix

Autrice: //Giulia//