Sistemi operativi/Funzionalità dei sistemi operativi: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 10:
 
In questo libro si usa un concetto molto più restrittivo.
Per sistema operativo si intende un '''sistema software che permette la condivisione di risorse informatiche da parte di sistemi software sviluppati uno indipendentemente dall'altro e tutti indipendentemente dai dispositivi hardware'''.
 
Vediamo di spiegare il concetto.
Riga 57:
 
La presenza di un sistema operativo che funge da intermediario tra le applicazioni e le risorse hardware permette alle applicazioni di rendersi indipendenti dall'hardware effettivamente installato, funzionando correttamente su qualunque piattaforma e sfruttando al meglio le risorse avanzate eventualmente presenti.
 
In sostanza, per sistema operativo intendiamo il software che, dovendo fare da arbitro tra le varie applicazioni, e tra le applicazioni e i dispositivi hardware, non può essere sviluppato né da uno sviluppatore applicativo né da uno sviluppatore di dispositivi hardware.
Invece, tale software presenta un'interfaccia verso il software applicativo, a cui il software applicativo deve attenersi, e un'interfaccia verso il software di gestione dei dispositivi hardware, a cui il software di gestione dei dispositivi hardware deve attenersi.
 
== Le funzionalità di un sistema operativo ==
 
Ovviamente, un sistema operativo deve essere caricato in memoria prima di ogni programma applicativo e prima di ogni software di gestione dei dispositivi hardware.
Tale caricamento è una procedura complessa e a volte lenta, ed è chiamata in vari modo, tra cui "caricamento del sistema operativo", "bootstrap" (abbreviato "boot"), e "Initial Program Loading" (IPL).
 
Nel caricamento vengono portati in memoria principale:
* la parte fondamentale del sistema operativo, chiamata con termine inglese di "kernel" (nucleo);
* il software di gestione dei dispositivi hardware (in inglese "device driver");
* eventualmente, i moduli per gestire gli archivi in memoria secondaria (file system);
* eventualmente, i moduli per gestire lo schermo in modalità grafica (windowing system).
Infine, vengono lanciati uno o più programmi applicativi.
 
A questo punto il sistema operativo rimane caricato in memoria, ma agisce solo su richiesta, cioè in risposta a interrupt o a chiamate di sistema.
 
In molti sistemi le chiamate di sistema sono implementate con la stessa tecnica degli interrupt, e quindi vengono detti (impropriamente) "interrupt software".
In tali sistemi, i veri interrupt sono pertanto chiamati "interrupt hardware".
 
I tipi di interrupt sono determinati dall'architettura dell'elaboratore.
Il sistema operativo può solamente gestirli, ma non crearne di nuovi.
Esempi di interrupt sono i seguenti:
* Un dispositivo (per esempio un disco, un'interfaccia di comunicazione con una periferica, un'interfaccia di comunicazione in rete) ha completato l'operazione richiesta precedentemente.
* Ad un dispositivo (per esempio la tastiera, il mouse) sono giunti dei dati da elaborare.
* Il timer di sistema è scattato.
* È stata eseguita un'istruzione illegale.
 
Le chiamate di sistema sono i servizi che il sistema operativo mette a disposizione dei programmi applicativi.
Esempi di chiamate di sistema sono le seguenti:
* Apertura di un file.
* Scrittura su un file aperto.
* Lettura da un file aperto.
* Chiusura di un file aperto.
* Esecuzione di un nuovo programma applicativo.
* Terminazione del programma corrente.