Scarica in formato pdf o txt
Scarica in formato pdf o txt
Sei sulla pagina 1di 35

Capitolo 1 – Concetti introduttivi

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

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

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

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Funzioni di un Sistema Operativo


utente 1 utente 2 utente 3 utente n

compilatore interprete text Uso degli


editor archivi

SISTEMA OPERATIVO

HARDWARE
del calcolatore

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Un Sistema Operativo (S.O.) è un insieme di


programmi che operano sull’hardware di un
calcolatore per:
▪ Facilitare la programmazione
▪ Gestire le risorse (hardware e software)
▪ Proteggere le risorse e l’informazione
Realizza una macchina virtuale

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Facilitare la programmazione:
▪ Utilizzo delle risorse fisiche (ad esempio
I/O) tramite chiamate di sistema
▪ Nasconde i dettagli dei dispositivi fisici

▪ Realizzazione di risorse logiche (ad


esempio archivi) e loro utilizzo tramite
chiamate di sistema
▪ Indipendenza del software applicativo
dall’hardware (==> portabilità)
P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi
Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Gestire le risorse:

▪ Ripartire l’uso delle risorse (processore,


memoria, dispositivi, archivi) tra più
programmi, risolvendo i conflitti
▪ Realizzare politiche per l’assegnazione
delle risorse

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Protezione, sicurezza e tolleranza dei guasti:

▪ Protezione del Sistema Operativo contro l’utilizzo


errato o malizioso da parte degli utenti (programmi,
dati, dispositivi)
▪ Protezione di un utente nei confronti degli altri
utenti (interni, esterni)
▪ Garantire le riservatezza dei dati
▪ Identificazione dei guasti e ripristino del corretto
funzionamento

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Astrazione della Macchina Virtuale:

▪ Interfaccia del S.O verso gli utenti


(API: Application Programming Interface)
▪ Realizzata con Chiamate di Sistema (primitive)
Unica modalità di accesso consentita agli utenti

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Cenni Storici

Sistemi Monoprogrammati
▪ Elaborazione seriale
▪ Sistemi Batch
▪ Spooling
▪ Sistemi Multiprogrammati
▪ Sistemi Time-sharing

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Storia dei sistemi operativi

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Prestazioni dei sistemi nel tempo

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Sistemi monoprogrammati

Oltre al S.O. (monitor, BIOS), sistema operativo


in memoria centrale risiede (al
più) un programma
programma
applicativo. applicativo

• Uso inefficiente del processore

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Esecuzione sequenziale in un sistema monoprogrammato

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Sistemi batch multiprogrammati


Più programmi caricati
sistema operativo
contemporaneamente in memoria
programma applicativo
(sistemi multiutente)
1
- ottimizzazione dello spool programma applicativo
2
- ottimizzazione dell’Uso delle
programma applicativo
risorse (processore, dispositivi) 3

>> anche a scapito del tempo di risposta

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Esecuzione sequenziale in un sistema monoprogrammato

Esecuzione in un sistema multitasking

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Sistemi a partizione di tempo (time-sharing)


Estensione della multiprogrammazione
- ottimizzazione del tempo di completamento
- ingresso/uscita interattiva
▪ Ad ogni programma il S.O. assegna ciclicamente un
intervallo (quantum) di tempo della CPU, fino al
suo completamento
▪ Al termine dell’intervallo (o durante, se il
programma inizia un’operazione di I/O) la CPU
viene assegnata ad un altro programma (Round-
Robin)

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Multiprogrammazione e Time-sharing

P1
P2
P3

Sistema con multiprogrammazione

P1
P2
P3

Sistema con time sharing (QdT )

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Overhead per la riassegnazione del


processore
uso della CPU
attesa per I/O o del processore
overhead

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

1.3 Classificazioni dei Sistemi Operativi

Organizzazione interna:

▪ monoprogrammati

▪ multiprogrammati

▪ a divisione di tempo

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Visibilità utente:
▪ Batch

▪ Interattivi

▪ Transazionali

▪ In tempo reale

▪ PC, PDA

▪ Dedicati

▪ Distribuiti

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Struttura dei Sistemi Operativi


Componenti del S.O.
▪ Gestore del processore
==> concetto di processo, coordinamento dei processi

▪ Gestori della memoria principale e secondaria


▪ Gestore dei dispositivi di I/O
▪ Gestore degli archivi (file system)
▪ Sistema di protezione e sicurezza
▪ Gestione della comunicazione tra sistemi remoti
▪ Interfaccia con i programmi applicativi

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Organizzazione di un Sistema Operativo


▪ Come sono organizzate le varie componenti di
un S.O.?
▪ Quali sono le modalità di interazione tra esse?

- Sistemi monolitici
Sistemi modulari
Sistemi a livelli
- Sistemi a microkernel
- Sistemi client-server

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Sistema Monolitico

Il sistema operativo è costituito da un unico


programma contenente un insieme di procedure,
che realizzano le varie componenti.
Le applicazioni richiedono i servizi del S.O
attivando le corrispondenti componenti con
chiamate di sistema, che instaurano lo “stato
supervisore” (o “modo kernel” ) del processore

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Il sistema UNIX

interf.
utenti utenti

interf. programmi di utilità


di libreria (shell, compiler, …)
stato
interf. utente
system libreria standard
call (open, close, read, write, ..)

Nucleo (Kernel) stato


(process management, memory management, file supervisore
system, I/O, ...)
hardware
(CPU, memoria, dischi, terminali, …)

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Struttura del sistema UNIX

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Libreria standard di UNIX


Ogni applicazione C può richiedere l’esecuzione di una
system call attraverso una chiamata alla specifica funzione
C di libreria che la rappresenta:
Esempio: funzione di libreria per la lettura da file
count = read (file, buffer, nbyte);

read = nome della funzione di libreria


file = identificatore del file
buffer = area di memoria per i dati
Nbyte = numero di byte da leggere
- la lettura avviene a partire dal valore corrente del puntatore di lettura

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

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

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Programma e processo
• Programma: sequenza di operazioni da eseguire
(flusso)
• Processo: attività di esecuzione, generalmente
discontinua

==> A uno stesso programma possono corrispondere più


processi, che ciascuno rappresenta l’esecuzione dello
stesso codice in tempi diversi e/o con dati diversi

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Preparazione di un programma per l’esecuzione

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

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

Modello ad ambiente locale


Spazi di indirizzamento (logici) e aree di memoria (fisiche) separati

Proc. P1 Proc. P2
Stack1 Stack2

dati1 dati2

testo1 testo2

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

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

threads threads threads

Processo P1 Processo P2 Processo P3

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

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

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

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

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl
Capitolo 1 – Concetti introduttivi

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

Proprietà dei thread:


• Condividono lo spazio di indirizzamento del processo cui appartengono
• Interazioni con modalità semplificate (attraverso dati comuni)
• Generazione e terminazione non implicano assegnazione e rilascio di
risorse

P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari – Sistemi Operativi


Copyright © 2004 – The McGraw-Hill Companies srl

Potrebbero piacerti anche