Macchine virtuali
1. Possibile struttura a
livelli di macchine virtuali che
compongono un sistema di calcolo (rappresentata dal basso - macchina microprogrammata – verso l’alto –
macchina ad alto livello). Il S.O. rappresenta il livello disponibile ad utenti
e programmatori.
Microprogrammata
|
Livello di programmazione dell’HW invisibile all’utente
(eventualmente non presente)
|
|
Hardware convenzionale
|
Livello inferiore per quanto concerne il programmatore di
applicazione
|
|
Assembler
|
Linguaggio macchina a basso livello con visibilità
completa dell’architettura
|
|
S. O.
|
Gestione delle risorse del sistema
|
|
Alto livello
|
Ambiente disponibile al programmatore delle applicazioni:
sia linguaggi di programmazione ad alto livello (Pascal, C, C++, Java), sia
attraverso il linguaggio comandi (shell) proprio del S.O.
|
Notare che un la macchina virtuale S.O. può, a sua volta,
essere suddiviso ulteriormente: vedere pag. 35 del libro di testo.
2. Livelli funzionali di un
S.O. Un
generico utilizzatore del S.O. può sia collocarsi a livello di programmatore e
utilizzare gli strumenti di sviluppo (lato programma) o anche utilizzare
in modo più diretto le risorse del S.O. e l’ambiente di interazione (lato
utente).
|
Utente
|
Programma
|
Utilità
|
Ambiente comandi
di sistema operativo che
utilizza in modo diretto il S.O.
|
Ambiente linguaggi di
programmazione (basso livello: Assembler, alto livello: C,…)
ottenuto usando
Compilatori/Interpreti
|
Sistema Operativo
gestori per:
§
Dispositivi di I/O, detti anche driver;
§
File, cioè una entità di memorizzazione: file system;
§
Memoria fisica del sistema e della sua allocazione;
§
Comandi per l’organizzazione del sistema, interprete dei
comandi
Lo strato più interno
del sistema operativo viene detto kernel
o nucleo
|
|
hardware
|
|
|
|
|