sistemi operativi: componenti - lezione 02
TRANSCRIPT
1
I componenti del Sistema Operativo• Un SO viene progettato ed implementato
a moduli• Interfaccia ben definita fra programmi
utente e moduli del SO• Gli aspetti interni dei diversi SO possono
variare notevolmente– requisiti diversi– obiettivi di design diversi
• Primo passo della progettazione:–DEFINIRE GLI SCOPI DEL SO
• In base agli scopi, si definisce il design
2
Componenti di un SO
SO
3
Componenti di un SO
Gestioneprocessi
SO
4
Componenti di un SO
Gestioneprocessi
Gestionememoriacentrale
SO
5
Componenti di un SO
Gestionememoria
secondaria SO
6
Componenti di un SO
Gestionesistema
I/O
SO
7
Componenti di un SO
Gestionefile
SO
Char devices
8
Componenti di un SO
Gestionefile
SO
Block devices
9
Componenti di un SO
Gestionefile
SO
Block device
10
Componenti di un SO
Sistema diprotezione
SO
P1
P2
11
Componenti di un SO
Sistema diprotezione
SO
P1
P2
12
Componenti di un SO
GestionereteSO
13
Componenti di un SO:il quadro complessivo
Gestioneprocessi
Gestionememoriacentrale
Gestionememoria
secondaria
Gestionesistema
I/O
Gestionerete
Gestionefile
Sistema diprotezione
SO
14
Gestione dei processi• Attività principale CPU: esecuzione di
codice• PROCESSO: è un programma in
esecuzione– area codice del processo– area dati del processo– stato del processo
• Tipici processi:– programmi utente– esecuzione driver sistema operativo– servizi (spool di stampa, server Web)
15
Gestione dei processi• PROCESSO != PROGRAMMA• Programma: entità passiva– contenuto di un file (codice) scritto su disco
• Processo: entità attiva– può essere eseguito– ha bisogno di tutta una serie di informazioni
aggiuntive per potersi coordinare con altri processi
– due o più processi possono eseguire lo stesso programma
♦sequenze di esecuzione distinte
16
Gestione dei processi• Un processo, per svolgere i propri
compiti, ha bisogno di risorse– tempo di CPU, accesso a file, dispositivi I/O
• Le risorse possono essere assegnate al processo:– al momento della sua creazione– durante la sua esecuzione
17
Gestione dei processi• Il processo è l'unità di lavoro del SO• SO: caratterizzato da un insieme di
processi– organizzazione ad albero– esecuzione concorrente e sequenziale
♦concorrente: più processi in esecuzione simultaneamente
♦sequenziale: ciascun processo esegue gruppi di istruzioni, una alla volta
18
Gestione dei processi• Responsabilità del SO:– creare processi utente e di sistema– cancellare processi utente e di sistema– sospendere e ripristinare processi– fornire meccanismi per la sincronizzazione
di processo– fornire meccanismi per la comunicazione di
processo– fornire meccanismi per la gestione di
situazioni di stallo
19
Gestione della memoria centrale• Caratteristiche della memoria centrale:– vasto array accessibile per byte/parole– ciascun elemento della memoria ha il
proprio indirizzo–magazzino di dati velocemente accessibili– condivisa fra CPU e dispositivi di I/O
♦CPU legge istruzioni dalla memoria durante il ciclo di fetch delle istruzioni
♦CPU interagisce con la memoria in r/w durante il ciclo di fetch dei dati
♦Trasferimento efficiente dei dati tramite DMA
20
Gestione della memoria centrale• Solitamente, la memoria è l'unico
dispositivo indirizzabile direttamente dalla CPU– i dati del disco, vanno trasferiti in memoria
attraverso richieste di I/O, prima di poter essere utilizzati
– le istruzioni vanno trasferite in memoria centrale prima di poter essere eseguite
21
Gestione della memoria centrale• Schema di esecuzione di un programma
1.Il programma viene mappato in indirizzi assoluti e caricato in memoria.
2.Viene generato l'indirizzo assoluto corrispettivo ad istruzione/dato corrente.
3.Viene eseguita l'istruzione corrente oppure elaborato il dato corrente.
4.Al termine dell'esecuzione, lo spazio di memoria occupato dal processo viene reso di nuovo disponibile.
22
Gestione della memoria centrale• La memoria centrale è un dispositivo
molto veloce– più processi mantengo in memoria centrale,
più veloce sarà la loro esecuzione
• Diversi schemi di gestione della memoria– la scelta dello schema più adatto dipende
dalle esigenze specifiche– in pratica, il tipo di hardware detta la scelta
dello schema di gestione
23
Gestione della memoria centrale• Responsabilità del SO:– tenere traccia di quali parti della memoria
sono attualmente utilizzate e da chi– decidere quali processi debbano essere
caricati in memoria quando vi sia lo spazio disponibile
– allocare e deallocare lo spazio di memoria in base alle necessità
24
Gestione della memoria secondaria• La memoria centrale è troppo piccola per
poter contenere l'intero insieme di programmi– serve una memoria secondaria di ausilio a
quella centrale
• Caratteristiche memoria secondaria:–molto più ampia della memoria centrale–molto più lenta della memoria centrale
25
Gestione della memoria secondaria• Tipicamente, la memoria secondaria
viene fornita da un disco– dispositivo di massa–memorizza codice e dati indifferentemente
• I programmi rimangono sul disco fino a quando non vengono eseguiti
• Quando un programma deve essere eseguito, viene caricato in memoria
26
Gestione della memoria secondaria• Responsabilità del SO:– gestione dello spazio libero su disco– allocazione di spazio su disco– scheduling/riordino delle richieste per il
disco
27
Gestione del sistema di I/O• SCOPI del sistema di I/O:–mascherare le differenze tra i vari dispositivi
di I/O– presentare all'utente una visione omogenea
dei dispositivi– concetti di:
♦File♦Directory♦File system
28
Gestione del sistema di I/O• Responsabilità del SO:– gestire un sistema di buffer caching
♦memorizzazione preventiva di dati non ancora letti dai programmi
♦scrittura dei dati a buffer riempito
– fornire un'interfaccia generica di uso per i device driver
29
Gestione dei file• Le informazioni possono essere
memorizzate sui supporti fisici più disparati– nastro magnetico– disco magnetico
– disco ottico
• Il SO maschera le differenze fra device e fornisce una visione unica ad alto livello– file
30
Gestione dei file• FILE: raccolta di informazioni definite dal
loro creatore– sequenza di bit, byte, righe o record– significato di tale sequenza definito dal
programmatore– contengono codice di programmi oppure dati
• L'organizzazione dei file è gerarchica– organizzazione per cartelle (directory)– rappresentazione ad albero
31
Gestione dei file• Responsabilità del SO:– creare e cancellare file– creare e cancellare directory– supportare primitive per la manipolazione di
file e directory–mappare file su memoria secondaria
32
Sistema di protezione• I diversi processi di un SO devono
essere protetti contro le attività di altri processi– attività involontarie o maliziose
• PROTEZIONE: meccanismo che controlla l'accesso alle risorse di calcolo da parte di:– programmi– processi– utenti
33
Sistema di protezione• ESEMPI DI MECCANISMI:– il SO sfrutta l'hardware di indirizzamento
della memoria per impedire che un processo possa accedere ad aree non di sua competenza
– il timer di sistema assicura che nessun processo possa acquisire il controllo indefinito della CPU
– esecuzione di istruzioni di I/O diretto solo tramite interfaccia privilegiata (system call)
– classificazione degli utenti e schema di permessi per accesso alle risorse