I Sistemi Operativi
Definizione
• Per Sistemi Operativi (di seguito SO) si intendono
quei pacchetti software, a loro volta costituiti da
più sottoprogrammi con compiti diversi, che
provvedono alla gestione di un dispositivo o
calcolatore elettronico, ad interfacciarsi con
l’utente consentendogli di impartire comandi alla
macchina e controllarla.
SO proprietari
• I produttori di alcuni elaboratori informatici,
hanno provveduto autonomamente a realizzare
SO che consentissero alle loro macchine di
funzionare, adattati all’hardware di cui esse
erano costituite, ma hanno creato SO
proprietari, non trasportabili su altre macchine,
ottimizzati solo per un tipo di hardware.
• Questo tipo di soluzione ha impedito la
diffusione delle tecnologie software su altre
piattaforme costituendo anche un freno per
l’evoluzione dei SO.
• Unix, Windows e Mac OS X sono esempi di
soluzioni proprietarie.
SO aperti
• In contrapposizione ai SO proprietari abbiamo i SO
aperti cioè trasportabili su hardware diverso, su
calcolatori diversi.
• Tal SO spesso mettono a disposizione delle
primitive (API) Application Program Interface con
cui i programmatori possono pilotare funzioni del
SO.
Compiti del SO
• Tra i compiti del SO ci sono:
1. Leggere dalla memoria di massa dei programmi o
dei dati o file.
2. Caricare in memoria centrale un programma da
eseguire.
3. Attivare la CPU per farle eseguire un programma.
4. Effettuare stampe.
5. Controllare l’uso di tastiera e mouse e seguirne le
richieste.
Schema di base di un SO
• Il SO è interposto tra Hardware e programmi
applicativi in uno schema come il seguente:
Programmi
Sistema
Hard
ware
user
Operativo
applicativi
Software del calcolatore
Programmi applicativi
Utente
Hardware
E
Firmaware
Programmi di sistema
(compilatori, interpreti di comandi)
Programmi di sistema
Sistema Operativo lato gestibile
Programmi di sistema
Sistema Operativo lato kernel
Microprogrammi in linguaggio macchina
Software operativo lato utente
• Non sempre l’utente conosce l’hardware specifico
della stampante (per esempio per le stampanti di
rete) o può non conoscere se è inkjet o laser ma
sicuramente sa quale è il comando per avviare la
stampa
• Msdos : PRINT
• Windows: Menù File > stampa.
Gestore delle risorse
• Sicuramente tra i compiti di un SO ci sono le
funzioni di gestore delle risorse di sistema:
•
•
•
•
Microprocessore
Memoria centrale (RAM)
Memorie di massa (HDD)
Periferiche
Sistema operativo
Gestore della
cpu
Gestore della
memoria
centrale
Gestore della
memoria di
massa
Hardware
Gestore
delle
periferiche
Le interfacce
• Le interfacce sono ciò che è mostrato all’utente dal
sistema operativo cioè è come l’utente percepisce
la macchina grazie al sistema operativo.
• In moderni SO sono in grado di lavorare su
centinaia di hardware diversi ma appaiono
all’utente sempre con il solito desktop, finestre con
menù, barra delle applicazioni ed icone.
• L’interfaccia è quella parte del sistema operativo
che consente all’utente di dare comandi al
computer.
Le interfacce a linea di comando
• Sono le prime nate in ordine
di tempo.
• Presentano uno schermo
scuro su cui è possibile
digitare dei comandi testuali
che hanno una loro sintassi
precisa.
• Sono difficili da usare ma
anche molto potenti.
Interfacce CLI
• CLI sta per command line interface (interfacce a
linea di comando).
• Le più usate oggi sono le shell di Linux e il Prompt
di comandi di Windows
Interfacce CLI
• Ogni comando digitato ha una sua specifica sintassi:
per esempio il comndo per copiare i file:
Copy nomefile.estensione path_di_destinazione
• I comandi digitati vengono interpretati da un
software detto «interprete dei comandi» che in
tempo reale esegue il comando se la sua sintassi è
corretta.
Interfacce GUI
• GUI sta per Graphic User Interface che vuol dire
interfacce grafiche per l’utente.
• Queste interfacce prevedono l’uso di menù ed
icone per cui non bisogna conoscere la sintassi del
comando.
• Il loro uso è basato sulla metafora della scrivania e
quindi lo schermo sembra una scrivania su cui
mettiamo gli oggetti da utilizzare: documenti, video
ecc..
Interfacce GUI
• Cronologia SO con interfaccia
GUI:
1. Apple Machintosh OS 1984
2. Microsoft Windows 1.0 1985
3. Commodore Amiga OS 1985
Le macchine virtuali
• La presenza del SO rende più semplice l’uso del
calcolatore da parte dell’utente.
• Infatti, grazie a menù, icone e finestre, l’utente
impartisce comandi attraverso il mouse in modo
semplice ed intuitivo
• Quindi quella che usa l’utente non è la macchina
reale, fatta di bit 1 e 0, di hardware e comandi
complicati, ma è una macchina «gradevole»
definita «virtuale» perché non reale.
Le macchine virtuali
• Il SO è costituito da diversi gruppi di programmi.
• Ogni gruppo di programmi ha uno specifico
compito.
• I gruppi di programmi sono organizzati
gerarchicamente perché quello che governa
direttamente la macchina è il primo in gerarchia
mentre quello più lontano governa tutti i
programmi sottostanti.
• Ogni gruppo di programmi è una macchina virtuale
più evoluta della sottostante.
Le macchine virtuali
Le macchine virtuali
• In questo modo solo gli strati vicini al hardware
sono specifici di esso e, per poter adattare il SO ad
un nuovo hardware, bisogna cambiare solo questi
software.
• Questo concetto è noto come il principio della
modularità.
• I costi di adattamento sono i costi di riscrittura del
codice più interno che pilota direttamente
l’hardware.
• Gli altri programmi sono esterni e non devono
essere adattati.
Le macchine virtuali
1. Kernel: Questo strato più interno è detto «Kernel» o
nucleo ed è il codice più delicato di un sistema operativo.
2. Memory manager (Gestore della memoria centrale):
questo strato software si occupa di gestire il
posizionamento dei programmi in memoria centrale e la
protezione degli stessi da sovrascritture.
3. Device manager: questo gruppo di programmi gestisce le
periferiche e il trasferimento di dati verso di esse.
4. Information manager: questo strato si occupa della
gestione dei dati sui dispositivi di massa.
5. Interfaccia: questo è il codice che riproduice l’interfaccia
verso gli utenti.
Scarica

I Sistemi Operativi