Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduzione Ai Sistemi Operativichessa
Introduzione Ai Sistemi Operativichessa
Sistemi Operativi:
Concetti Introduttivi
1.1 Principali funzioni di un Sistema Operativo
1.2 Cenni Storici
1.3 Classificazione dei Sistemi Operativi
1.4 Struttura dei Sistemi Operativi
1.5 Processi e gestione della memoria
Sistema Operativo:
Componente software del sistema di elaborazione
Intermediario tra la macchina fisica (hardware) e i
programmi applicativi
Obiettivi:
• facilitare l’uso del sistema di elaborazione
• garantire l’efficienza del suo utilizzo
SISTEMA OPERATIVO
HARDWARE
del calcolatore
Facilitare la programmazione:
▪ Utilizzo delle risorse fisiche (ad esempio
I/O) tramite chiamate di sistema
▪ Nasconde i dettagli dei dispositivi fisici
Gestire le risorse:
Cenni Storici
Sistemi Monoprogrammati
▪ Elaborazione seriale
▪ Sistemi Batch
▪ Spooling
▪ Sistemi Multiprogrammati
▪ Sistemi Time-sharing
Sistemi monoprogrammati
Multiprogrammazione e Time-sharing
P1
P2
P3
P1
P2
P3
progr. 1
…
progr. 2
t
P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi
Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi
Organizzazione interna:
▪ monoprogrammati
▪ multiprogrammati
▪ a divisione di tempo
Visibilità utente:
▪ Batch
▪ Interattivi
▪ Transazionali
▪ In tempo reale
▪ PC, PDA
▪ Dedicati
▪ Distribuiti
- Sistemi monolitici
Sistemi modulari
Sistemi a livelli
- Sistemi a microkernel
- Sistemi client-server
Sistema Monolitico
Il sistema UNIX
interf.
utenti utenti
Processi
• Informalmente, il termine processo viene
utilizzato per indicare un programma in
esecuzione.
• “Processo: attività controllata da un programma
che si svolge su un processore”
• È l’unità di esecuzione all’interno del S.O.
– processi sequenziali
– un S.O. multiprogrammato consente l’esecuzione
concorrente di più processi
Programma e processo
• Programma: sequenza di operazioni da eseguire
(flusso)
• Processo: attività di esecuzione, generalmente
discontinua
0
libreria
O1 160
S1
codice
S2 O2 MC
4096
S3 O3
dati
traduzione collegamento caricamento
5632
(compilatore) (linker) (loader) stack
6140
IP
S1, S2, S3: moduli sorgente; O1, O2, O3: moduli oggetto;
MC: modulo di caricamento (file eseguibile);
IP: immagine del processo
P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi
Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi
Stati di un processo
esecuzione
sospensione
assegnazione revoca
unità di unità di bloccato
elaborazione elaborazione
riattivazione
pronto
Proc. P1 Proc. P2
Stack1 Stack2
dati1 dati2
testo1 testo2
Thread
Un thread realizza un flusso di esecuzione all’interno
di un processo
• i thread di uno stesso processo condividono lo (o parte dello)
spazio di indirizzamento del processo e le altre risorse
Multithreading: il S.O. realizza flussi di esecuzione
multipli all’interno dei singoli processi
Multithreading
Esempio: editore di testi con multithreading
Processo: possiede le risorse
• Memoria
• Archivio (memoria secondaria)
• Dispositivi di I/O (tastiera, video, mouse)
Threads: corrispondono ai flussi di esecuzione
1. Gestione del mouse
2. Immissione da tastiera
3. Gestione della struttura dati del testo
4. Visualizzazione sul terminale
5. Controllo ortografico
6. Salvataggio periodico nell’archivio
Processi e Thread
Processo (pesante):
• Risorse di memoria
- codice, dati
• altre risorse
- Archivi aperti, …
• Thread1, Thread2, …..
Thread (processo leggero):
• Condivide (in tutto o in parte) codice e dati del processo
• Possiede stato, contesto (PC, registri), stack, descrittore
Thread
Proprietà dei processi:
• Spazi di indirizzamento (generalmente) separati e reciprocamente
protetti
• Interazioni che implicano chiamate di sistema e cambi di contesto
• Generazione e terminazione: operazioni complesse che implicano anche
l’assegnazione e il rilascio di risorse