Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
-
Upload
paride-ferrario -
Category
Documents
-
view
222 -
download
1
Transcript of Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Software e sistema operativo
19-22/5/08Informatica applicata B
Cristina Bosco
Software
È un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici (= hardware) in un oggetto in grado di svolgere delle funzioni diverse e per diversi tipi di utenti
Software
I computer sono programmabili: svolgono compiti diversi in base alle
istruzioni contenute nei programmi
L’hardware in se’ puo’ svolgere solo semplici operazioni
Funzioni del software
• Astrarre dall’organizzazione fisica della macchina --> usare nello stesso modo macchine diverse dal punto di vista dell’hardware
• Interagire con la macchina tramite un linguaggio semplice
…
Funzioni del software
…• Programmare la macchina tramite un
linguaggio semplice e ad alto livello• Avere un insieme di programmi
applicativi per svolgere vari compiti (elaborare testi ed immagini, mantenere archivi, gestire contabilità, …)
Software o hardware?
Se non ci fosse il software si dovrebbe usare l’hardware direttamente:
• l’utente dovrebbe saper programmare• il programmatore dovrebbe conoscere
l’hardware e il suo linguaggio macchina• ogni programma sarebbe scritto come
sequenza di 0 e 1• ad ogni modifica dell’hardware
occorrerebbe riscrivere parte del programma
Software e macchine virtuali
La presenza di un livello software offre la possibilità di definire macchine virtuali utilizzando gli strumenti della macchina hardware reale
Le macchine virtuali svolgono le funzionalità richieste dall’utente tramite semplici interazioni con quest’ultimo
Software e macchine virtuali
Hardware
Macchina virtuale
Utente
Macchine virtuali
L’utente interagisce con la macchina virtuale utilizzando un linguaggio ad alto livello (interfaccia grafica/testuale)
La macchina virtuale traduce ogni comando del linguaggio ad alto livello in una serie di comandi per l’hardware (linguaggio macchina)
Software di base = sistema operativo
L’elaboratore (hardware) risponde solo a comandi scritti nel suo linguaggio macchina
Il software di base: • è un insieme di programmi in linguaggio
macchina ed in liguaggio ad alto livello• crea la macchina virtuale “sopra”
l’elaboratore con cui l’utente interagisce
Software di base =sistema operativo
La macchina virtuale offre il comando di ‘stampa file’
1. Verifica se è un comando valido2. Lo traduce in una sequenza di comandi
per la macchina hadware3. Genera (o trova) la sequenza di
istruzioni corrispondente4. Restituisce all’utente le informazioni
relative
Stratificazione del software
• Software di base: specializzato (per un linguaggio macchina X) che traduce in un linguaggio macchina generico
• Strati di software (di base o creati dall’utente): iniziano con programmi in linguaggio macchina generico e finiscono con il linguaggio dell’utente
Gerarchia di macchine virtuali
Hardware
Utente
Cosa non puo’ fare il software?
• Una macchina virtuale può eseguire tutte e sole le funzioni per le quali si può trovare una traduzione in linguaggio macchina
• Una funzione non eseguibile dalla macchina fisica, non sarà eseguibile neppure sovrapponendo una gerarchia di macchine virtuali
SISTEMA OPERATIVO
Funzioni del sistema operativo
• Accendere e configurare la macchina (bootstrap)
• Gestire il processore• Gestire le memorie (principale, virtuale,
secondaria)• Consentire l’accesso alle informazioni in
memoria secondaria (file system)• Gestire le risorse e dispositivi• Consentire l’interazione con l’utente
(interfaccia / GUI del SO)
Parti del SO
Comprende un serie di livelli che forniscono funzioni e servizi:
• Kernel e livelli vicini all’hardware (in linguaggio macchina) - gestione delle risorse di calcolo e memorie
• Livelli alti (in linguaggio ad alto livello) - interazione uomo-macchina
Funzioni del SO
• Avviamento dell’elaboratore e creazione dell’ambiente virtuale (bootstrap)
• Gestione del processore• Gestione delle memorie (principale,
virtuale, secondaria)• Gestione delle periferiche di I/O• Interazione con l’utente
Bootstrap
Il SO deve trovarsi in una memoria non volatile, quindi nella memoria secondaria
MA la CPU esegue solo programmi che si trovano in memoria principale (RAM)
PERTANTO il bootstrap comporta il caricamento del SO nella RAM
Bootstrap
Quindi nel momento dell’accensione della macchina, il SO si trova nella memoria secondaria
PROBLEMA:Il software che si occupa di trasferire i
dati dalla memoria secondaria alla memoria principale e’ il SO e se il SO non si trova nella RAM non puo’ essere eseguito
Bootstrap
SOLUZIONE:esiste un piccolo programma detto BIOS
che ha la sola funzione di caricare (la prima parte di) il SO dalla memoria secondaria
BIOS deve trovarsi nella memoria principale, ma non in quella volatile (RAM), bensi’ nella ROM
Bootstrap
SOLUZIONE alternativa:mettere tutto il SO nella ROM
NO non e’ accettabile: la ROM e’ di sola lettura e il SO deve
essere modificato talvolta, ad es. con nuovi settaggi o aggiunta di patch o upgrade
Bootstrap
Operazioni di inizializzazione del SO:• Identificazione dei dispositivi di
memoria secondaria• Identificazione periferiche di I/O• Inizializzazione dei relativi programmi
di gestione
Bootstrap 1
1. Accensione2. La CPU esegue il BIOS leggendolo
dalla memoria principale ROM
Bootstrap
Il BIOS cerca il SO nell’ordine nei vari dispositivi di memoria secondaria:
1. Sul floppy (o CD)2. Sull’hard disk (nella posizione del SO)3. Se occorre viene proposta la scelta di
SO In questo modo il SO puo’ essere
installato anche dall’esterno (ad es. la prima volta o in caso di corruzione del SO)
Bootstrap 1
Riassumendo il bootstrap:• Accensione• La CPU esegue il BIOS leggendolo
dalla memoria principale ROM
Bootstrap 2
- la CPU esegue il BIOS (letto nella ROM)
- la CPU carica il SO dalla memoria secondaria alla RAM
- la CPU esegue il SO - ora l’utente vede l’interfaccia del SO
e puo’ iniziare a lavorare
Bootstrap
• Gestire il processore• Gestire la memoria• Gestire le periferiche• Gestire il fle system• Creare l’interfaccia
Bootstrap
Esecuzione di programmi anti-virus:• Verifica della memoria principale• Eliminazione e/o segnalazione dei
virus (programmi di disturbo e danneggiamento dell’elaborazione)
Funzioni del SO
• Avviamento dell’elaboratore e creazione dell’ambiente virtuale (bootstrap)
• Gestione del processore• Gestione delle memorie (principale,
virtuale, secondaria)• Gestione delle periferiche di I/O• Interazione con l’utente
Gestione del processore
Il compito del processore (CPU) è di eseguire programmi
Il compito del SO e’ di gestire la CPUUn programma in esecuzione si dice
processoIl compito del SO è gestire i processi
Gestione della CPU e Tipi di SO - numero utenti
Sistemi mono-utente, senza sistemi di protezione delle informazioni
Sistemi multi-utente, con sistemi di protezione delle informazioni
Gestione della CPU e Tipi di SO - numero di task
Sistemi mono-tasking (una sola applicazione alla volta), senza sistemi di protezione delle informazioni
Sistemi multi-tasking (piu’ applicazioni alla volta), con sistemi di protezione delle informazioni
SO mono-tasking
• Eseguono un solo processo per volta • I programmi sono eseguiti
sequenzialmente (il programma Pi+1
viene mandato in esecuzione quando Pi è terminato)
• Es.: MS/DOS
SO mono-tasking
Limiti:• L’utente deve sequenzializzare i
programmi, e se sono più utenti??? (SO mono/multi-utente)
• Dal momento che ogni processo alterna fasi di esecuzione e di attesa, l’utilizzo del processore non è ottimale
Verso i SO multi-tasking
Una soluzione per superare i limiti dei sistemi mono-tasking:
• Esecuzione contemporanea di più processi (quando Px è in attesa, si esegue Py) su un singolo processore
• Maggiore il numero dei processi attivi, maggiore l’utilizzo del processore
SO multi-tasking
MA ATTENZIONE• Ad ogni istante esiste sempre un solo
processo in esecuzione• Gli utenti hanno l’impressione
dell’esecuzione contemporanea di più processi/compiti (soprattutto se l’alternanza tra processi è frequente)
SO multi-tasking
Come si fa a vedere i processi su un computer?
Es. in Windows Ctrl + Alt + Canc consente di vedere il TASK MANAGER che mostra i processi in esecuzione e quanta memoria utilizzano ad ogni istante del tempo
Funzioni del SO
• Avviamento dell’elaboratore e creazione dell’ambiente virtuale (bootstrap)
• Gestione del processore• Gestione delle memorie (principale,
virtuale, secondaria)• Gestione delle periferiche di I/O• Interazione con l’utente
Gestione della memoria reale
Una porzione fissata della RAM è dedicata a contenere il SO:
• Utilizzo di un registro fence per delimitare tale porzione
• Sistemi per bloccare violazioni della porzione
Gestione della memoria reale
La parte della memoria principale che non contiene SO è utilizzata dai processi:
• Il processo in esecuzione si trova nella memoria principale
SO
Processo
Gestione della memoria reale
Quando ci sono piùprocessi in esecuzione(SO multi-tasking), come si suddivide la memoria tra processi
???
SO
Processo1
…
Processon
Gestione della memoria reale
Tecniche utilizzate dai SO multi-tasking:• Partizioni multiple con allocazione
contigua (AC) - suddivisione in partizioni, ogni partizione contiene l’intera immagine di un processo
• Allocazione non contigua (ANC) - suddivisione in parti dell’immagine di un processo
Partizioni multiple con AC
Problemi:• Numero partizioni• Partizioni fisse o variabili• Criteri di scelta della partizione• Come proteggere i processi l’uno
dall’altro
Partizioni multiple con AC
• Partizioni fisse:– Numero e dimensione fissata
durante la configurazione del SO
• Partizioni variabili:– Numero e dimensione dipendono dai
processi caricati in memoria
Partizioni multiple con AC
Partizioni fisse:
– Numero e dimensione delle partizioni fissata durante la configurazione del SO
– Problemi di frammentazione interna + impossibilità di esecuzione di processi molto grandi
Partizioni multiple con AC
Partizioni variabili:
– Numero e dimensione delle partizioni fissata durante il caricamento dei processi
– Problemi di frammentazione esterna + criteri di scelta della partizione + necessità di deframmentare (operazione lunga e costosa)
Frammentazione della memoria
• Interna: l’immagine del processo non occupa tutta la
partizione in cui è caricata - tipico delle partizioni fisse
• Esterna: lo spazio tra partizioni non è sufficiente per
caricarvi un processo - tipico delle partizioni variabili
Gestione della memoria reale
Tecniche utilizzate dai SO multi-tasking:• Partizioni multiple con allocazione
contigua (AC) - suddivisione in partizioni, ogni partizione contiene l’intera immagine di un processo
• Allocazione non contigua (ANC) - suddivisione in parti dell’immagine di un processo
Allocazione Non ContiguaL’immagine di un processo può essere
spezzata (a condizione che si mantenga traccia della posizione dei suoi pezzi) tramite:
• Segmentazione (suddivisione secondo criteri logici > pezzi di dimensione variabile) -frammentazione esterna
• Paginazione (suddivisione in pezzi di dimensione fissa) - (limitata) frammentazione interna