Software di base Sistema di elaborazione: struttura gerarchica

Transcript

Software di base Sistema di elaborazione: struttura gerarchica
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Software di base
Sistema di elaborazione: struttura gerarchica composta da
elementi hardware e software.
SW applicativo
SW di base
HW
HW: struttura fisica
periferiche, bus).
dell'elaboratore
(memoria,
CPU,
SW applicativo: programmi per la soluzione di determinati
problemi o il trattamento di particolari applicazioni
(calcoli matematici, videoscrittura, foglio elettronico, gestione
archivi, videogiochi, etc.)
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Software di base
SW di base: insieme di programmi che:
-permettono la comunicazione tra le varie componenti
dell'HW;
-gestiscono le risorse HW in modo ottimale per servire le
richieste dell'utente (o di più utenti).
-consentono al calcolatore di eseguire programmi scritti in
linguaggi di programmazione ad alto livello, traducendo
tali programmi in linguaggio macchina.
Fanno parte del software di base, tra gli altri, i compilatori,
gli interpreti, il linker, il sistema operativo.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Sistema operativo (SO): insieme di programmi che
gestiscono le risorse di un calcolatore in modo da consentire
agli utenti un uso agevole ed efficiente del calcolatore stesso.
Il SO: strato software che
complessità dell' hardware.
nasconde
all'utente
la
Grazie al SO, l'utente non "vede" la macchina reale → non
deve preoccuparsi dei problemi di gestione dei dispositivi
hardware.
L'utente interagisce con una macchina virtuale.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
La macchina virtuale è più facile da programmare: i
programmi utente utilizzano risorse virtuali e non devono
occuparsi della gestione delle risorse reali (gestite dal SO).
La macchina virtuale è l'immagine della macchina reale che
il S.O. offre all'utente. Essa è
-più estesa, cioè ha più risorse
-più facile da usare
della macchina reale.
La macchina virtuale è in grado di offrire all'utente dei
servizi dietro invio di apposite richieste. (funzione di
interfaccia verso l'utente)
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Le richieste al SO possono essere formulate:
-direttamente dall'utente (modalità interattiva), tramite
comandi di Sistema.
-indirettamente, dai programmi utente, tramite istruzioni
particolari (Chiamate di Sistema) che vengono tradotte in
chiamate ai programmi del SO.
Funzione di interfaccia utente del sistema operativo: fornire
all'utente un dato insieme di servizi richiamabili mediante
comandi o chiamate di sistema.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Se la richiesta dell'utente è inviata tramite comandi(modalità
interattiva) occorre un interprete di comandi.
Interprete di comandi (shell): programma che riceve i
comandi direttamente impartiti dall'utente, li interpreta e li
traduce in chiamate ai programmi di sistema opportuni.
Ogni sistema operativo ha la sua shell (eventualmente
anche più d'una).
Una parte del SO è sempre residente in memoria, pronta
ad esaudire le richieste dell'utente o dei programmi utente.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Es. di servizio: esecuzione di un programma applicativo
memorizzato sul disco rigido.
Il SO si occupa di:
-leggere il programma dal disco e caricarlo in memoria
centrale;
-comandare l'esecuzione del programma;
- riprendere il controllo del sistema di elaborazione ad
esecuzione terminata.
Altri esempi: stampa di un documento, trasferimento di
documenti da un dispositivo periferico ad un altro, etc.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Il SO è un insieme di programmi che consentono:
-la visione astratta delle risorse da parte
utenti(macchina virtuale)
-facilità d'uso del sistema di elaborazione;
-la gestione corretta ed efficiente delle risorse.
degli
Corretta: le modalità di uso della risorsa sono programmate
dal SO.
Efficiente: le richieste d'uso della risorsa vengono esaudite
nel minor tempo possibile.
Sul SO si appoggiano gli altri componenti del software di
base (compilatori,interpreti,editor,utilità) e i programmi
applicativi.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
gestione
bancaria
prenotazioni
videogiochi
aeree
compilatori
interprete
dei comandi
Sistema Operativo
hardware
programmi
applicativi
editori
programmi
di sistema
hardware
Interprete dei comandi, compilatori, etc.: software di
sistema, incluso nei programmi di utilità, che non fa parte
del sistema operativo, ma normalmente viene fornito con
esso.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Architettura interna di un Sistema Operativo
Modello gerarchico "a buccia di cipolla" basato sul concetto
di livelli di Macchina Virtuale.
Ogni modulo (strato) di SO:
-gestisce una specifica risorsa del sistema di elaborazione
-utilizza le funzioni realizzate dai livelli sottostanti
-offre ai livelli superiori una M.V. più potente della M.V.
sottostante.
Ogni strato fornisce dei meccanismi logici di accesso alle
risorse del sistema gestite che
ne rendono facile l'uso,
ne mascherano i limiti
sono indipendenti dalla loro realizzazione fisica.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Struttura a livelli
hw nucleo
gestore della memoria
e delle periferiche
gestore della memoria di massa
(File System)
Interprete dei comandi
(shell)
Ogni strato virtualizza la risorsa gestita.
Interprete dei comandi: interfaccia tra SO ed utenti (o
programmi utente).
In passato: interfaccia a comandi testuali. Più recentemente:
Graphical User Interface (GUI), più user-friendly.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Nucleo (kernel): insieme di programmi che colloquiano
direttamente con l'hardware e si occupano dell'esecuzione
dei programmi utente e di sistema.
Nucleo: gestisce processi ed eventi esterni generati dalle
periferiche (interruzioni).
Processo: programma in esecuzione.
Un processo include:
-il programma eseguibile
-i dati
-altre informazioni sul processo (es. contenuto dei registri
della CPU e delle celle di memoria) necessarie alla sua
esecuzione (contesto).
Un processo viene creato mandando in esecuzione un
programma
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Nei sistemi monoprocessore esiste una sola CPU
Se c'è una sola CPU, in ogni istante solo un processo sarà in
esecuzione, ossia avrà assegnata la CPU.
In questo caso il SO simula la esecuzione
parallela(contemporanea ed indipendente) di più processi
stabilendo dei turni di utilizzo della CPU secondo opportune
politiche di assegnazione della CPU.
Il nucleo simula il parallelismo tra processi.
Parallelismo effettivo: se ci sono più CPU (sistemi
multiprocessore).
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Interruzioni: segnali inviati al S.O. che notificano un
evento che il S.O. dovrà gestire.
-interruzioni interne: generate da un processo che richiede
l'effettuazione di un'operazione che non può eseguire
direttamente (es. lettura/scrittura su una periferica) o da un
errore software in un programma che ne impedisce la
continuazione;
-interruzioni esterne: provocate da eventi particolari come la
terminazione di un'operazione di lettura da disco;
-interruzioni per errore: segnalano l'occorrenza di un guasto
hardware.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Al verificarsi di un'interruzione, il nucleo del SO:
-interrompe il processo P in esecuzione;
-ne salva il contesto in una determinata zona di memoria;
-esegue il programma di gestione dell’interruzione, che si
troverà in un punto determinato della memoria centrale;
-stabilisce quale sia il processo da mandare in esecuzione e
ne ripristina il contesto.
Context switch: cambiamento di contesto
Ripristinare il contesto →copiare nei registri della CPU il
contenuto dell'area di memoria che contiene la descrizione
del contesto del processo al momento della sua
sospensione.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
La macchina virtuale simulata dal nucleo differisce dalla
macchina base perché:
-possiede tante unità centrali quanti sono i processi da
eseguire;
-non possiede meccanismi di interruzione.
Il nucleo fornisce agli strati superiori la visione di un insieme
di CPU virtuali ciascuna dedicata ad un processo attivo.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Il gestore delle periferiche (gdp) fornisce agli utenti di un
sistema di elaborazione:
-la visione di un insieme di periferiche astratte;
-la visione di un sistema in cui ogni processo dispone di
periferiche dedicate.
Astratte: l'utente per leggere o scrivere dati utilizza delle
primitive (comandi) di alto livello che sono indipendenti
dalle caratteristiche fisiche delle periferiche.
Dedicate: i conflitti derivanti dalla condivisione di una
periferica reale tra più processi vengono gestiti dal gdp in
modo trasparente ai vari processi.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Il File system offre all'utente
-comandi ad alto livello per l'accesso ai file che rendono
trasparenti all'utente le operazioni per l'allocazione e
l'accesso alla memoria di massa;
- la possibilità di definire dei diritti di accesso ai file sia
per proteggere sia per condividere file tra utenti diversi.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Soluzioni per passare dall'esecuzione un programma a
quella di un altro:
Sistema uniprogrammato: si deve
-scaricare il programma residente in memoria
-caricarne un altro dalla memoria di massa
-mandare in esecuzione
Pb. Oneroso in termini di tempo (tempi di accesso al disco)
Sistema multiprogrammato: poiché sono già presenti in
memoria più programmi, la commutazione da uno ad un altro
è più efficiente.
Pb. Il SO è più complesso perche' deve gestire la
concorrenza tra processi nell'uso delle risorse del sistema
(CPU, memoria, etc..)
Processi concorrenti: competono per l’uso delle risorse.
Processi cooperanti: cooperano alla risoluzione di un
problema.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Processi: possono essere associati sia a programmi di
sistema che a programmi utente.
Differenza nella modalità di funzionamento.
Programmi di sistema: eseguono in modo supervisore,
modalità privilegiata senza alcuna restrizione sulle operazioni
consentite.
Programmi utente: eseguono in modo utente, con diverse
restrizioni sulle operazioni permesse.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Modalità di funzionamento tra processi:
-in foreground:processo abilitato all’interazione con l’utente
tramite i dispositivi di I/O (video e tastiera);
-in background: processo attivo ma temporaneamente non
in grado di interagire direttamente con l’utente.
Molti dei processi interni al SO sono attivati
automaticamente nella fase di avvio e inizializzazione (boot)
del sistema e poi vengono eseguiti in background.
Tra essi i processi demoni (demon): restano in attesa che
un certo evento li metta in esecuzione (es. lo spooler di
stampa, il demon della posta elettronica)
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Programmi: entità statiche.
Processi: entità dinamiche che evolvono attraversando
stati.
Diagramma a stati di un processo
selezione
processo
accodamento
ai processi
pronti
processi
pronti
termine
quanto
di tempo
completamento
operazione
di
I/O
processi
in attesa
completamento
processo
processo
in
esecuzione
richiesta
operazione
di I/O
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Un processo viene creato mandando in esecuzione un
programma.
Ogni processo può trovarsi in uno dei seguenti stati:
-in esecuzione(running)con la CPU a sua disposizione per
l’esecuzione;
-pronto(ready to run): pronto per l’esecuzione, in attesa che
la CPU possa eseguirlo. Coda di processi pronti (ready
queue).
-in attesa(waiting): non ancora pronto per l’esecuzione,
attende un evento esterno (I/O).
Il nucleo maschera al processo la privazione ed il
riassegnamento del processore tramite salvataggio e
ripristino del contesto.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.
Sistema Operativo
Per aumentare il parallelismo virtuale occorre evitare che un
processo monopolizzi la CPU o che la impegni per troppo
tempo.
Sistemi a partizione di tempo (time-sharing): ad ogni
processo è assegnato un quanto di tempo, ossia un intervallo
massimo di utilizzo della CPU.
Esaurito il suo quanto, il nucleo del SO toglie la CPU al
processo → il processo passa dallo stato running allo stato
ready to run.
La durata del quanto è critica per l’efficienza del sistema.
Quanto breve: il tempo necessario alla commutazione tra i
processi diventa non più trascurabile rispetto alla durata del
quanto di esecuzione
Quanto lungo: si perde in paallelismo, tendendo alla
sequenzializzazione.
Prof. Lucia Lo Bello, Note di Lezione, Corso di Fondamenti di Informatica per Elettrici,
Università di Catania, Anno Accademico 1999-2000.