martedì 28 maggio 2013

5) Il sistema operativo

Il Sistema Operativo 

Un sistema operativo (abbreviato in SO, in lingua inglese OS, "operating system"), in informatica, è un insieme di componenti software, che garantisce l'operatività di base di un calcolatore, coordinando e gestendo le risorse hardware diprocessamento e memorizzazione, le periferiche, le risorse/attività software (processi) e facendo da interfaccia con l'utente, senza il quale quindi non sarebbe possibile l'utilizzo del computer stesso e di altri software più specifici, come applicazionio librerie software.
È dunque un componente essenziale del sistema di elaborazione che funge da "base" al quale si appoggiano gli altri software, che dunque dovranno essere progettati e realizzati in modo da essere riconosciuti e supportati da quel particolare sistema operativo. Assieme al processore, con cui è strettamente legato, costituisce la cosiddetta piattaforma del sistema di elaborazione.
Un generico sistema operativo moderno si compone di alcune parti standard, più o meno ben definite.
  • Il 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 gestione di memoria : che alloca la memoria primaria richiesta dai programmi e dal sistema operativo stesso, salva sulla memoria di massa le zone di memoria temporaneamente non usate dai programmi (memoria virtuale) e garantisce che le pagine swappate vengano riportate in memoria se richieste.
  • 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 statodei 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.
  • Il gestore di file system: si occupa di esaudire le richieste di accesso alle memorie di massa. Viene utilizzato ogni volta che si accede a un file sul 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 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 utenti 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.




Nessun commento:

Posta un commento