Il sistema operativo è il software di base che gestisce i dispositivi

annuncio pubblicitario
Il sistema operativo è il software di base che gestisce i dispositivi hardware del computer e l'esecuzione
dei software applicativi.
Senza il sistema operativo l'hardware sarebbe inutilizzabile e i programmi ineseguibili.
Già nel 1500 Leonardo da Vinci aveva pensato a cambiare il rullo che con le proprie camme muoveva il
telaio. Ad ogni rullo corrispondeva una trama diversa.
Se immaginiamo il rullo come un programma, allora l’interruzione della lavorazione, la rimozione del rullo,
la sua sostituzione con un altro rullo e il riavvio della macchina corrisponde esattamente a ciò che fa migliaia
di volte al secondo un sistema operativo.
Il sistema operativo ha il compito di frapporsi sistematicamente tra la macchina e l’utilizzatore della
stessa per assolvere a tutte le elaborazione essenziali a rendere fruibili, al secondo, le risorse fisiche della
prima mediante:

la gestione delle risorse hardware,

la gestione del colloquio tra l'utilizzatore e la macchina fisica,

l'esecuzione di altri software applicativi.
Per capire il ruolo del sistema operativo occorre pensare che, essendo un programma, potremmo creare
sistemi operativi diversi per la stessa macchina (quindi per lo stesso hardware) e che ognuno potrebbe
rispondere a gestioni ed a virtualizzazioni dell’hardware assai diverse.
In questo caso ciò che vedrebbe l’utente non sarebbe la macchina, uguale, sotto di sé ma ciò che il
sistema operativo gli offre nel suo processo di virtualizzazione delle risorse fisiche e della loro gestione.
Per questo motivo il sistema operativo deve essere caricato in memoria centrale, prima di ogni altro
software; generalmente viene caricato dal disco fisso (hard disk), ma può essere caricato anche da floppy
disk, da Cd, o direttamente dal Firmware che lo contiene .
Il sistema operativo è un programma costruito a strati: con i primi , quelli più bassi, si occupa di gestire e
comandare direttamente le risorse hardware.
Gli strati successivi, quelli più alti, colloquiano con l’utente attraverso standard di scambi comunicativi “più
umani” per poi tradurre i comandi ricevuti dall’utente agli strati più bassi.
Un programma che voglia accedere ad una risorsa hardware non deve interagire con la periferica stessa,
bensì è sufficiente che invii la richiesta nel giusto modo al sistema operativo affinché sia poi quest’ultimo a
portare avanti la richiesta ottimizzando l’utilizzo delle risorse fisiche in funzione delle richieste che gli
pervengono da parte di tutti i processi attivi nella macchina.
Le componenti principali di un sistema operativo sono:

Kernel. Il Kernel è lo strato più basso, il primo a venire caricato, contiene le funzioni di base
necessarie e sufficienti a far funzionare tutte le altre componenti del sistema operativo e a
schedulare i processi.

Gestione della memoria. La memoria fisica deve essere gestita in modo tale da essere condivisa
tra più programmi concorrenti per i quali deve registrare i dati temporanei ed ospitarne il codice.

Input / Output. Gestisce le periferiche del computer (processi di input/output da e verso
le periferiche collegate al sistema come l’hard disk, CD-ROM, memorie di massa di diversa
tecnologia, stampanti, scanner, etc…)

File System. Il File System è il sistema di gestione e di accesso alle memorie di massa del
computer (hard disk, periferiche). Una volta risolto l’accesso alle periferiche, il file system risponde al
problema della ricerca dei dati in tali memorie.

Shell. Lo shell è il programma che gestisce il colloquio (interfaccia) con l’utente e che ne interpreta i
comandi espressi secondo la sintassi utilizzata nel processo di virtualizzazione.

Multiutenza. Gestione di più utenti concorrenti.
Kernel
Il Kernel contiene l’insieme di funzionalità che effettuano la prima virtualizzazione della macchina fisica e
si può dire che il Kernel sia l’unico strato software che “vede” quest’ultima.
Ogni strato successivo potrà vedere ancora la macchina fisica, ma certamente si avvarrà della
virtualizzazione effettuata dal Kernel.
Ci sono due correnti di pensiero predominanti: quella che ritiene più vantaggioso sviluppare un Kernel
ricco di funzionalità per ottimizzare il funzionamento della macchina ed il suo processo di virtualizzazione,
detto Kernel Monolitico, e quella che ritiene più vantaggioso lo sviluppo di un micro Kernel con le funzionalità
minime necessarie demandando ogni altra virtualizzazione a strati successivi che siano quindi staccati dalla
macchina fisica e agiscano sulla macchina creata dal micro Kernel.
Modello ONION SKIN
Le richieste dei processi, che portano avanti le richieste dell’utente, giungono al sistema operativo e da
questo sono gestite rispettando le politiche pensate per ottimizzare l’utilizzo delle risorse.
Il modello "onion skin" (buccia di cipolla) rappresenta il sistema operativo come una successione di strati
che rivestono l’hardware della macchina. Ogni livello è visto come una virtualizzazione della macchina fisica
capace di utilizzare sia la macchina fisica stessa che ogni funzionalità “virtuale” aggiunta dagli strati
sottostanti del sistema operativo.
Ovviamente il primo strato sfrutta solo l’hardware, mentre l’ultimo strato può sfruttare già molte funzioni
inesistenti nella macchina fisica e che sono state rese disponibili dai moduli del sistema operativo
appartenenti agli strati sottostanti.
Ogni strato è denominato modulo ed è una collezione di routines (procedure) che gestiscono e
comandano i meccanismi fisici necessari per risolvere problemi di tipo logico e quindi per costruire una
macchina che non c’è.
Questo processo si chiama processo di virtualizzazione.
Interprete
File System
Periferiche
Memoria Centrale
Kernel
L’utente
vede
questa
macchina (quella virtualizzata
dal S.O.) e non quella vera,
contenuta sotto tutti gli strati.
Scarica